TruelayerClient.Config (truelayer_client v1.0.0)

Copy Markdown View Source

Validated configuration struct for a TruelayerClient instance.

Created internally by TruelayerClient.new/1. Do not build directly.

Fields

  • :client_id - OAuth2 client ID (required)
  • :client_secret - OAuth2 client secret (required)
  • :environment - :sandbox or :live (default: :sandbox)
  • :api_url - resolved API base URL
  • :auth_url - resolved Auth server base URL
  • :redirect_uri - OAuth2 redirect URI for user-facing flows
  • :signing_key_pem - PEM-encoded EC private key for request signing
  • :signing_key_id - key ID registered in the TrueLayer Console
  • :webhook_signing_secret - HMAC-SHA256 secret for webhook verification
  • :webhook_replay_tolerance_sec - max accepted webhook age in seconds (default: 300)
  • :request_timeout_ms - HTTP timeout in milliseconds (default: 30_000)
  • :max_retries - maximum retry attempts (default: 3)
  • :base_retry_delay_ms - base exponential-backoff delay in ms (default: 300)
  • :token_store - module implementing TruelayerClient.Auth.TokenStore
  • :telemetry_prefix - prefix for telemetry events (default: [:truelayer_client])

Summary

Functions

Build and validate a Config from keyword options.

Types

environment()

@type environment() :: :sandbox | :live

t()

@type t() :: %TruelayerClient.Config{
  api_url: String.t(),
  auth_url: String.t(),
  base_retry_delay_ms: non_neg_integer(),
  client_id: String.t(),
  client_secret: String.t(),
  environment: environment(),
  max_retries: non_neg_integer(),
  redirect_uri: String.t() | nil,
  request_timeout_ms: pos_integer(),
  signing_key_id: String.t() | nil,
  signing_key_pem: binary() | nil,
  telemetry_prefix: [atom()],
  token_store: module(),
  webhook_replay_tolerance_sec: non_neg_integer(),
  webhook_signing_secret: binary() | nil
}

Functions

new(opts)

@spec new(keyword()) :: {:ok, t()} | {:error, TruelayerClient.Error.t()}

Build and validate a Config from keyword options.

Returns {:ok, config} or {:error, %TruelayerClient.Error{type: :validation_error}}.