Certificate lifecycle: force-renew a single name #41

Open
opened 2026-10-22 11:22:50 +00:00 by james.oates · 0 comments
Owner

Deferred from the per-name ACME work (spec: obsidian/Personal/Projects/edge-router/specs/2026-10-22-remove-tpm-openbao-encryption-design.md).

An operator-triggered renewal for one name, outside the reconciler's 30-day schedule.

Why it waits: it interacts with Let's Encrypt's duplicate-certificate limit — 5 per exact set of identifiers per 7 days, with no overrides and renewals counting against it. A force-renew endpoint is a way to exhaust that budget by hand, so it needs a guard (a cooldown, or a refusal when the remaining duplicate budget is unknown) rather than being a thin wrapper over the order path. That design is not needed to ship the removal work.

Prerequisite: the per-name certificate table and reconciler from the spec above.

Deferred from the per-name ACME work (spec: `obsidian/Personal/Projects/edge-router/specs/2026-10-22-remove-tpm-openbao-encryption-design.md`). An operator-triggered renewal for one name, outside the reconciler's 30-day schedule. **Why it waits:** it interacts with Let's Encrypt's duplicate-certificate limit — 5 per exact set of identifiers per 7 days, with no overrides and renewals counting against it. A force-renew endpoint is a way to exhaust that budget by hand, so it needs a guard (a cooldown, or a refusal when the remaining duplicate budget is unknown) rather than being a thin wrapper over the order path. That design is not needed to ship the removal work. **Prerequisite:** the per-name certificate table and reconciler from the spec above.
Sign in to join this conversation.
No labels
No milestone
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.

Dependencies

No dependencies set

Reference
IsoHex/edge-router#41
No description provided.