Issuer and resource gates, retry floors, and authserver 0.2.0 alignment - #58
Merged
Merged
Conversation
Brings main up to the current development line. The CHANGELOG's [Unreleased] section is the authoritative list; the themes are: - A failed metadata or JWKS fetch opens a retry floor (fetchFailureBackoffSeconds) instead of turning every wave of verification traffic into a fresh stalling fetch. - AS metadata is re-read on the verification path, and a jwks_uri rotation is followed under a stable kid. - Resource and issuer identifiers are gated wherever they are consumed: absolute URL with a scheme and a host, no fragment, whitespace refused, and a non-future server expiry ignored. - Internal error messages and the DPoP nonce no longer reach the WWW-Authenticate challenge or the JSON body. - resource_metadata can point at an AS-hosted PRM document. - ipaddr.js is loaded through a default import so the SSRF guard works under Node ESM. - authserver 0.2.0: access_denied and invalid_target are typed and kept out of the circuit breaker; VerifiedClaims.mayAct is deprecated. - The conformance catalog pin moves to 583a6d9. Two things keep what main already had rather than taking the development line's copy: the package versions stay on the 0.4.1-dev.0 line main was bumped to, and one CHANGELOG bullet is condensed to a single line to match the family's shape.
muralx
approved these changes
Sep 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings
mainup to the current development line ahead of the 0.5.0 cut. The[Unreleased]section ofCHANGELOG.mdis the authoritative list of what changed for a caller; this body covers the mechanics a reviewer needs.What is in it
fetchFailureBackoffSeconds(newAuthplaneClient.create()option, default30, clamped to[1s, the cache’s refresh interval]). An unreachable authorization server used to turn every wave of verification traffic into a fresh stalling fetch.jwks_urirotation is followed under a stablekid.WWW-Authenticatechallenge or the JSON body, acrosssdk,mcp,honoandnestjs.resource_metadatacan point at a document the authorization server hosts.ipaddr.jsis loaded through a default import; the named import resolved toundefinedunder ESM interop, which disabled the guard silently.access_deniedandinvalid_targetare typed and excluded from the circuit breaker shared with introspection.VerifiedClaims.mayActis deprecated — the AS no longer issuesmay_act.583a6d9.Two deliberate carry-forwards
Both are places where this branch keeps what
mainalready had rather than taking the development line’s copy:0.4.1-dev.0, the linemainwas bumped to after 0.4.0. The development line is still on0.4.0-dev.0; taking it would have walked the published dev version backwards across all sixpackage.jsonfiles and the lockfile’s workspace snapshots.[Unreleased]bullet is condensed to a single line, matching the shape the rest of the family writes. Nothing a caller needs was dropped.Verification
lint,typecheckandtestgreen locally, with the conformance suites driven against the pinned catalog583a6d9, which is what CI reads.