OPS-009: Secret Rotation #160
Labels
No labels
blocked:children
blocked:commit-ready-failed
blocked:depends-231
blocked:depends-236
blocked:depends-237
blocked:depends-238
blocked:depends-239
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:preflight
blocked:verify-failed
bug
enhancement
feature-request
high-priority
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-retry
ops-task
phase-5
quickfix
security/medium
self-building
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/mesh-seed#160
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Required
Acceptance Criteria
Feature Triage Assessment
Scope: medium
Risk: high
Spec Alignment: partial
Summary: Add a secret rotation subsystem with scheduled, atomic rotation of API keys, DB passwords, and TLS certs without requiring service restarts.
Recommendation: Implement as an ops worker capability (opworker pattern) — the rotation engine emits intent.rotate signals consumed by a dedicated rotation worker, keeping infrastructure thin. Add a file-based audit log under a known path (substrate/audit/). For no-restart TLS/DB, wire file watchers or SIGUSR2 handlers into api_gateway.py and the DB pool. Start with one secret type (env-backed API key) as a proving ground before tackling TLS.
Rationale: SCOPE: medium — extends existing runtime/secrets_manager.py with a rotation engine and adds 5-8 new/modified files (rotator module, config, audit logger, integration hooks, tests). Not small because 'no restart required' touches multiple subsystems (TLS socket, DB pool). Not large because it's additive, not a refactor. RISK: high — TLS cert rotation without restart is genuinely dangerous (mis-rotation drops live connections), DB password rotation requires coordinated pool drain, and atomic rollback across distributed nodes is complex. Existing infrastructure issues (#98, #102) are still open, adding integration risk. SPEC: partial — the agentic architecture supports this cleanly via a rotation worker intent pattern, but the issue body describes a traditional ops approach (no mention of intents/workers), and AGENTS.md has zero ops/rotation coverage. The project's current focus is agent orchestration capability, not ops tooling.
Labeled
blocked:needs-decision— unblock on Forgejo to dispatch to the fixer pipeline.Closed: implementation already shipped on
mainas83784a3(see commit message). Verified locally: feature is inmain.