Background
Part of #1152.
Acmebot's position on DNS-PERSIST-01 is that _validation-persist records are persistent issuance authorization managed by the operator, never written by the application. That model needs to be documented, along with its security consequences, before operators start publishing records.
Scope
docs/reference/api.md
- Document
GET /api/account, its response shape, and its authorization requirement
- State that the first call registers an ACME account when none exists yet
docs/guide/
- Acmebot never creates, updates, or deletes
_validation-persist records
- Where each part of the record comes from, using the values shown in the dashboard
- The ACME account key becomes the primary sensitive asset: where Acmebot stores it, and what its compromise implies
- Removal and rollback: deleting the record stops future issuance but does not revoke certificates that were already issued
- Current limitation: certificate issuance through DNS-PERSIST-01 is not available yet, so DNS-01 with a configured DNS provider remains the only issuance path
Notes
The record format is not stable. draft-ietf-acme-dns-persist is in active revision and the accounturi parameter is being replaced with a client-computed hashed URI (ietf-wg-acme/draft-ietf-acme-dns-persist#64, PR ietf-wg-acme/draft-ietf-acme-dns-persist#67). Let's Encrypt has stated it will not deploy DNS-PERSIST-01 until that issue is resolved.
The documentation should therefore link to the draft for the record syntax rather than pinning the exact format, and should be explicit that Acmebot does not generate the value.
Acceptance Criteria
Background
Part of #1152.
Acmebot's position on DNS-PERSIST-01 is that
_validation-persistrecords are persistent issuance authorization managed by the operator, never written by the application. That model needs to be documented, along with its security consequences, before operators start publishing records.Scope
docs/reference/api.mdGET /api/account, its response shape, and its authorization requirementdocs/guide/_validation-persistrecordsNotes
The record format is not stable.
draft-ietf-acme-dns-persistis in active revision and theaccounturiparameter is being replaced with a client-computed hashed URI (ietf-wg-acme/draft-ietf-acme-dns-persist#64, PR ietf-wg-acme/draft-ietf-acme-dns-persist#67). Let's Encrypt has stated it will not deploy DNS-PERSIST-01 until that issue is resolved.The documentation should therefore link to the draft for the record syntax rather than pinning the exact format, and should be explicit that Acmebot does not generate the value.
Acceptance Criteria
GET /api/accountis documented in the API reference, including the account registration side effect_validation-persistrecords