DopplerConfigProvider View Source
Doppler ConfigProvider for Elixir projects.
Installation
The package can be installed by adding :doppler_config_provider
to your list of dependencies in mix.exs
:
def deps do
[
{:doppler_config_provider, "~> 0.2.0"},
# Mojito is optional, but it is the default if you don't specify `:http_module` in options.
{:mojito, "~> 0.7.10"},
]
end
Usage
- Generate a service token.
- Add necessary config.
- Add the config provider to
release
config inmix.exs
.
Options
:service_token
(required) - The Doppler service token.:http_module
(optional) - The HTTP client module. Defaults to{:mojito, Mojito}
. Should implementDopplerConfigProvider.HTTPClient
behaviour.:json_module
(optional) - The JSON decoding module. Defaults to{:jason, Jason}
or{:poison, Poison}
. Should implementDopplerConfigProvider.JSONDecoder
behaviour.:mappings
(required) - A map specifying how to translate the Doppler config to application config.
Note: The options provided to the config provider in releases
are merged with
the config provided in your config files.
Config example:
config :doppler_config_provider,
service_token: System.fetch_env!("DOPPLER_TOKEN"),
mappings: %{
"DATABASE_URL" => {:my_app, MyApp.Repo, :url},
"SECRET_KEY_BASE" => {:my_app, MyAppWeb.Endpoint, :secret_key_base},
"STRIPE_SECRET_KEY" => {:stripity_stripe, :api_key},
}
mix.exs
example:
releases: [
release_name: [
include_executables_for: [:unix],
applications: [
runtime_tools: :permanent,
app_name_here: :permanent
],
config_providers: [
{DopplerConfigProvider, http_module: MyFinchDopplerClient}
]
]
],