According to the Kerckhoffs' principle only secrecy of the key provides security, you should take great care of your secrets
In Tabulify, they come in 2 forms:
In an development environment, a secret can be shared broadly because the data should have no secrecy character.
In an production environment, the secret should be manipulated with care and be kept private.
How the secrets are distributed depend on your threat model.
There are generally 2 modes of distribution:
Storing configuration in the environment is one of the tenets of a twelve-factor app. Anything that is likely to change between deployment environments–such as resource handles for databases or credentials for external services–should be extracted from the code into environment variables.
Secret management is to broad to be kept in a single article, if you want more advice contact us.
If you choose to use a wrapper script to provide the secret (not recommended), the script should at minimum get the following permissions.
Example:
tabli --passphrase secret "$@"