PgFlowDashboard.Config (PgFlow v0.1.0)

Copy Markdown View Source

Configuration validation and management for PgFlowDashboard.

Uses NimbleOptions to validate configuration options passed to the dashboard router.

Required Options

  • :repo - The Ecto repository module to use for database queries.
  • :pubsub - The Phoenix.PubSub module for real-time updates.

Optional Options

  • :refresh_interval - Polling interval in milliseconds. Default: 5_000.
  • :time_zone - Time zone for displaying timestamps. Default: "UTC".
  • :default_time_range - Default time range filter. Default: :last_24h.
  • :max_grid_runs - Maximum runs to show in history grid. Default: 50.
  • :query_timeout - Database query timeout in milliseconds. Default: 10_000.
  • :enable_pubsub - Whether to enable real-time PubSub updates. Default: true.
  • :cache_ttl - Cache TTL in milliseconds. Default: 5_000.

Examples

config = PgFlowDashboard.Config.validate!(
  repo: MyApp.Repo,
  pubsub: MyApp.PubSub,
  refresh_interval: 10_000
)

Summary

Functions

Returns the NimbleOptions schema for PgFlowDashboard configuration.

Validates the given configuration options.

Functions

schema()

@spec schema() :: keyword()

Returns the NimbleOptions schema for PgFlowDashboard configuration.

validate!(opts)

@spec validate!(keyword()) :: keyword()

Validates the given configuration options.

Raises ArgumentError if the configuration is invalid.

Examples

iex> PgFlowDashboard.Config.validate!(repo: MyApp.Repo, pubsub: MyApp.PubSub)
[repo: MyApp.Repo, pubsub: MyApp.PubSub, ...]

iex> PgFlowDashboard.Config.validate!(pubsub: MyApp.PubSub)
** (ArgumentError) required :repo option not found