Rotate service credentials and encryption keys #23

Open
opened 2026-07-14 22:32:27 -04:00 by caleb-brown · 0 comments
Owner

What to build

Temper Operators can rotate Forgejo, provider, webhook, and encryption credentials safely, verify the replacement, and recover from mistakes without exposing secret material.

Acceptance criteria

  • PAT and provider-credential replacement verifies the new credential before retiring the old encrypted value.
  • Webhook-secret rotation provides a safe transition and clearly coordinates the required Forgejo change.
  • Credential encryption uses an active-plus-previous keyring so stored secrets can be rewrapped without a flag day.
  • Session-signing and credential-encryption keys remain separate through rotation.
  • Interrupted or failed rotation leaves the Deployment in a recoverable, clearly reported state.
  • Rotation actions and outcomes are audited without recording secret values or sensitive headers.
  • Tests cover successful, interrupted, invalid, rollback, and previous-key decryption scenarios.

Blocked by

  • #10 — Configure and verify the model provider
  • #11 — Connect and verify a Forgejo service identity
  • #22 — Manage Temper Operators and sessions
## What to build Temper Operators can rotate Forgejo, provider, webhook, and encryption credentials safely, verify the replacement, and recover from mistakes without exposing secret material. ## Acceptance criteria - [ ] PAT and provider-credential replacement verifies the new credential before retiring the old encrypted value. - [ ] Webhook-secret rotation provides a safe transition and clearly coordinates the required Forgejo change. - [ ] Credential encryption uses an active-plus-previous keyring so stored secrets can be rewrapped without a flag day. - [ ] Session-signing and credential-encryption keys remain separate through rotation. - [ ] Interrupted or failed rotation leaves the Deployment in a recoverable, clearly reported state. - [ ] Rotation actions and outcomes are audited without recording secret values or sensitive headers. - [ ] Tests cover successful, interrupted, invalid, rollback, and previous-key decryption scenarios. ## Blocked by - [#10](https://git.caleb-brown.dev/caleb-brown/temper/issues/10) — Configure and verify the model provider - [#11](https://git.caleb-brown.dev/caleb-brown/temper/issues/11) — Connect and verify a Forgejo service identity - [#22](https://git.caleb-brown.dev/caleb-brown/temper/issues/22) — Manage Temper Operators and sessions
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
caleb-brown/temper#23
No description provided.