You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As the system grows, we'll need more configuration points (rate limits, cache sizes, etc.). Hard-coding these creates operational friction and requires code changes for tuning.
Proposed Solution
Design and implement a unified configuration management system that:
Requirements
Environment variable support - Standard 12-factor app pattern
Configuration file support - YAML/TOML for complex setups
Runtime updates - Where safe (e.g., log levels), allow hot reload
Type safety - Strongly typed config structs with validation
Defaults - Sensible defaults for all settings
Documentation - Auto-generate config docs from struct tags
This is a foundational feature that will enable future operational flexibility. While it adds complexity, it's essential for production deployments where different environments need different tuning.
The configuration system should be designed to prevent accidental retroactive breaking changes (retcon) - once a config key is published, maintain backwards compatibility or provide migration path.
Problem
We currently have several hard-coded configuration values that should be runtime-configurable:
pkg/http/middleware/signet.goAs the system grows, we'll need more configuration points (rate limits, cache sizes, etc.). Hard-coding these creates operational friction and requires code changes for tuning.
Proposed Solution
Design and implement a unified configuration management system that:
Requirements
Configuration Categories
Security Settings
Storage Settings
Observability Settings
Implementation Approach
Phase 1: Basic ENV support (Week 1)
github.com/kelseyhightower/envconfigor similarPhase 2: Config files (Week 2)
--configflag to CLI commandsPhase 3: Validation & Docs (Week 3)
signet validate-config)Phase 4: Hot Reload (Future)
Example Usage
Testing Strategy
Related Issues
Success Criteria
Notes
This is a foundational feature that will enable future operational flexibility. While it adds complexity, it's essential for production deployments where different environments need different tuning.
The configuration system should be designed to prevent accidental retroactive breaking changes (retcon) - once a config key is published, maintain backwards compatibility or provide migration path.