Skip to content

Herald: Add Configuration Management #15

@jorisvilardell

Description

@jorisvilardell

**
Priority: High
Dependencies: None

Description:
Implement configuration loading from environment variables and config files for Herald service.

Acceptance Criteria:

  • Create Config struct in application/config.rs
  • Support environment variables for all configuration
  • Include fields: dataplane_id, shard_index, shard_count, poll_interval_secs, control_plane_url, OIDC config, RabbitMQ config
  • Validate configuration on load (e.g., shard_index < shard_count)
  • Add defaults for optional values
  • Use config or figment crate
  • Unit tests for config parsing and validation

Example Configuration:

#[derive(Deserialize)]
pub struct Config {
    pub dataplane_id: String,
    pub shard_index: usize,
    pub shard_count: usize,
    pub poll_interval_secs: u64,
    pub control_plane: ControlPlaneConfig,
    pub oidc: OidcConfig,
    pub rabbitmq: RabbitMqConfig,
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions