IdP resolve: discovery + JWKS, keep-last-good on failure #7
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lab/authz-bridge!7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/idp-resolve"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #2
Implements the IdP resolve step (spec #1, seam 3) as a pure-Go package,
internal/idp:Resolvefetches the OIDC discovery document from the per-ClientissuerURLand returns the resolved token endpoint and authorization endpoint, plus the JWKS signing keys (raw JWKS JSON) from the document'sjwks_uri.Resolvent(the leader-owned, per-Client state tracker) re-fetches onRefresh; on any fetch failure it keeps the last-good state, so a transient IdP outage never blanks the signing keys. A successful refresh picks up rotated keys; a partial (JWKS-only) failure never replaces the state.jwks_uri). The refresh TTL timer is seam 1's concern per the spec and is deliberately not in this change.Also adds
docs/agents/issue-tracker.md(Forgejo conventions + PR workflow) so the engineering skills' hard-check passes in this repo.Verification:
make test(envtest controllers + unit, go1.26.0 toolchain) andmake lint(golangci-lint) pass clean.