SopsConfigProvider
Decrypt and load secrets from sops file to your application config.
Installation
The package can be installed
by adding sops_config_provider to your list of dependencies in mix.exs:
def deps do
[
{:sops_config_provider, "~> 0.1.0"}
]
endUsage
[ATTENTION] Please make sure that you have sops installed, and proper permission to encrypt and decrypt the file. See SOPS docs for sops intallation and setup
After the installation, you need to add the provider into def project section in
mix.exs.
releases: [
change_with_your_app_name: [
config_providers: [
{
SopsConfigProvider,
%{
app_name: :change_with_your_app_name,
secret_file_path: "priv/secrets.yml" # I'd recommend to put
# the secrets inside the priv directory, as it automatically get
# copied on release
}
}
]
]
]
In your release, the secrets content would be loaded into config :sops,
which can be called with Application.get_env/2.
For example, if you have secrets config in yaml as below
# priv/secrets.yml
hello: world
Then, you can fetch the value with Application.get_env(:sops, :hello) # => "world"