Follows the Flexo live-test reconciliation. Today the identity
adapters validate signature shape + claims projection against
pre-generated tokens but never hit a real IdP.
The GitHub adapter (oracle/identity/adapters/github.py) can be
covered today against https://api.github.com/users/{login} and an
optional GH_TOKEN — no decision needed there. The other two need
a sanctioned test point.
Generic OIDC adapter (oracle/identity/adapters/oidc.py)
Live test would prove:
- The discovery doc fetch (
/.well-known/openid-configuration) parses
correctly
- JWKS rotation works (cache invalidation on
kid mismatch)
aud / iss claim policy matches what a real provider emits
Candidate IdPs:
- Google — discovery doc public; token issuance needs a user
flow / device-code flow. Heavyweight for CI.
- Auth0 — free tier; programmatic client-credentials flow easy.
- Project-owned Keycloak — capex; full control.
- Sigstore Fulcio (
https://oauth2.sigstore.dev/) — already
public; pairs naturally with Cosign live test in companion issue.
GitHub Actions OIDC adapter (oracle/identity/adapters/gha_oidc.py)
Only meaningful from inside a real GHA workflow with
id-token: write. The live test must run in CI:
- Add
live-identity-gha-oidc job to .github/workflows/ci.yml with
id-token: write
- Request a token, hand to the adapter, assert claim projection
matches the workflow's identity
- Keep
permissions: minimal so the test doesn't expand CI blast
radius
Decision needed:
- Which OIDC IdP (Sigstore Fulcio? Auth0? something else?) is the
v0.1 live target?
- OK to add an
id-token: write job to CI for the GHA adapter?
Follows the Flexo live-test reconciliation. Today the identity
adapters validate signature shape + claims projection against
pre-generated tokens but never hit a real IdP.
The GitHub adapter (
oracle/identity/adapters/github.py) can becovered today against
https://api.github.com/users/{login}and anoptional
GH_TOKEN— no decision needed there. The other two needa sanctioned test point.
Generic OIDC adapter (
oracle/identity/adapters/oidc.py)Live test would prove:
/.well-known/openid-configuration) parsescorrectly
kidmismatch)aud/issclaim policy matches what a real provider emitsCandidate IdPs:
flow / device-code flow. Heavyweight for CI.
https://oauth2.sigstore.dev/) — alreadypublic; pairs naturally with Cosign live test in companion issue.
GitHub Actions OIDC adapter (
oracle/identity/adapters/gha_oidc.py)Only meaningful from inside a real GHA workflow with
id-token: write. The live test must run in CI:live-identity-gha-oidcjob to.github/workflows/ci.ymlwithid-token: writematches the workflow's identity
permissions:minimal so the test doesn't expand CI blastradius
Decision needed:
v0.1 live target?
id-token: writejob to CI for the GHA adapter?