DopplerConfigProvider

TestsHex.pmHex.pmHex.pm

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.4.0"},
    # Mojito is optional, but it is the default if you don't specify `:http_module` in options.
    {:mojito, "~> 0.7.10"},
  ]
end

Usage

  1. Generate a service token.
  2. Add necessary config.
  3. Add the config provider to release config in mix.exs.

Options

The :http_module and :json_module options can take either a module (e.g. MyApp.Foobar) or a tuple with the module and the apps that need to be started for the module to work properly (e.g. {MyApp.Foobar, :mojito} or {MyApp.Foobar, [:tesla, :hackney]}).

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: [
  my_app: [
    # ...
    config_providers: [
      {DopplerConfigProvider, http_module: {MyDopplerHTTPClient, [:tesla, :hackney]}}
    ]
  ]
],

Notes: