Skip to content

The "enhancement" link relation - #257

Merged
davidben merged 4 commits into
mainfrom
link-rel-enhancement
Jun 29, 2026
Merged

The "enhancement" link relation#257
davidben merged 4 commits into
mainfrom
link-rel-enhancement

Conversation

@davidben

Copy link
Copy Markdown
Collaborator

Another ACME option. Fourth time's the charm? :-)

Another ACME option. Fourth time's the charm? :-)
@davidben
davidben force-pushed the link-rel-enhancement branch from 1dbc067 to 58659cd Compare June 24, 2026 00:01
Comment thread draft-ietf-plants-merkle-tree-certs.md Outdated
Co-authored-by: Aaron Gable <aaron@aarongable.com>
mcpherrinm added a commit to mcpherrinm/cactus that referenced this pull request Jun 24, 2026
Re-introduce the landmark-relative cert over ACME using the new
"enhancement" link relation (ietf-plants-wg/merkle-tree-certs#257),
instead of the rel="alternate" form that was removed for stalling
clients.

The standalone /cert response advertises

  Link: <.../cert/{id}/landmark-relative/{number}>;rel="enhancement"

An enhancement is an optional, non-blocking substitute: the URL returns
HTTP 202 (Accepted) until the covering landmark is allocated, then the
signature-free landmark-relative cert. Clients retry the 202 honouring
Retry-After but never block deploying the standalone cert — so a
not-yet-available landmark can't stall issuance the way the old
alternate + 503 + Retry-After did (lego's go-retryablehttp treated that
503's Retry-After as a multi-hour blocking sleep).

The URL pins the number of the single landmark the entry is relative to
(ContainingIndex), making it an immutable resource: 202 until that
landmark is allocated, the same cert bytes forever after, and a
permanent 404 for any other number. Retry-After is derived from the
remaining time in the §6.3.2 landmark interval, so it reflects when the
cert is actually expected.

Adds landmark.Sequence.NextNumber and TimeUntilNextLandmark; re-wires the
acme.Config landmark fields; new tests acme/enhancement_test.go and
integration/landmark_enhancement_test.go; updates README/MTC/test-instance.
@davidben
davidben merged commit 957e0be into main Jun 29, 2026
2 of 4 checks passed
@davidben
davidben deleted the link-rel-enhancement branch June 29, 2026 15:58
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.

3 participants