Skip to content

feat(ordo-server): runtime config hot-reload#61

Open
Pama-Lee wants to merge 1 commit into
mainfrom
feat/config-hot-reload
Open

feat(ordo-server): runtime config hot-reload#61
Pama-Lee wants to merge 1 commit into
mainfrom
feat/config-hot-reload

Conversation

@Pama-Lee
Copy link
Copy Markdown
Collaborator

Summary

  • Add RuntimeConfig struct with hot-reloadable fields: audit_sample_rate, default_tenant_qps/burst/timeout_ms, max_rules_per_tenant, max_total_rules
  • New admin endpoints: GET /api/v1/admin/config (read current) and PUT /api/v1/admin/config (apply atomically)
  • Changes apply immediately to AuditLogger, TenantManager, and RuleStore — no restart needed
  • NATS sync: writer broadcasts RuntimeConfigChanged event; all reader nodes apply atomically
  • TenantDefaults wrapped in parking_lot::RwLock to support concurrent hot updates
  • AppState gains runtime_config: SharedRuntimeConfig and a shared NATS sync_tx

What is hot-reloadable

Field Effect on change
audit_sample_rate Fraction of executions logged
default_tenant_qps/burst/timeout_ms Defaults for new tenants
max_rules_per_tenant Per-tenant ruleset cap
max_total_rules Global ruleset cap

Test plan

  • cargo test -p ordo-server passes (172 tests)
  • cargo clippy -p ordo-server -- -D warnings clean
  • Manual: PUT /api/v1/admin/config with new audit_sample_rate, verify GET reflects change
  • Manual: Update max_rules_per_tenant, verify subsequent creates are rejected at new limit
  • Multi-node: update config on writer, verify reader reflects change via NATS

🤖 Generated with Claude Code

- Add RuntimeConfig struct (audit_sample_rate, tenant defaults, resource limits)
- New endpoints: GET/PUT /api/v1/admin/config apply changes without restart
- Changes propagate immediately to AuditLogger, TenantManager, RuleStore
- NATS broadcast: RuntimeConfigChanged event syncs all cluster nodes atomically
- TenantDefaults now hot-reloadable via parking_lot::RwLock
- Backward-compatible: all startup config still works; runtime overrides independently
@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ordo_docs Ready Ready Preview, Comment Mar 18, 2026 2:35pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant