BankingCircle.Config (banking_circle v1.0.0)

Copy Markdown View Source

Validated runtime configuration for a Banking Circle client instance.

Supports multiple named clients (e.g. one per legal entity / company id) running side by side, each with its own credentials, certificate, and environment — configured either via config/config.exs or passed explicitly at call time.

Example

config :banking_circle, BankingCircle,
  environment: :sandbox,
  username: {:system, "BC_USERNAME"},
  password: {:system, "BC_PASSWORD"},
  certificate_thumbprint: {:system, "BC_CERT_THUMBPRINT"},
  client_cert_path: {:system, "BC_CLIENT_CERT_PATH"},
  client_key_path: {:system, "BC_CLIENT_KEY_PATH"},
  request_timeout_ms: 15_000,
  max_retries: 3

Multiple clients:

config :banking_circle, :entities,
  eu_entity: [environment: :production, username: {:system, "BC_EU_USER"}, ...],
  uk_entity: [environment: :production, username: {:system, "BC_UK_USER"}, ...]

Summary

Functions

Loads named config from Application.get_env/3 and validates it.

Builds and validates a BankingCircle.Config from a keyword list.

Types

t()

@type t() :: %BankingCircle.Config{
  api_base_url_override: String.t() | nil,
  auth_base_url_override: String.t() | nil,
  certificate_thumbprint: String.t(),
  client_cert_path: String.t() | nil,
  client_key_path: String.t() | nil,
  environment: BankingCircle.Environment.t(),
  finch_pool_size: pos_integer(),
  max_retries: non_neg_integer(),
  name: atom(),
  password: String.t(),
  request_timeout_ms: pos_integer(),
  retry_base_delay_ms: pos_integer(),
  username: String.t(),
  webhook_encryption_key: String.t() | nil
}

Functions

load!(name \\ :default)

@spec load!(atom()) :: t()

Loads named config from Application.get_env/3 and validates it.

new!(opts)

@spec new!(keyword()) :: t()

Builds and validates a BankingCircle.Config from a keyword list.

Values may be given as literals or as {:system, "ENV_VAR"} tuples, which are resolved at build time (never compiled into a release artifact).

Raises NimbleOptions.ValidationError on invalid input.