quality(coverage): measure OIDC verification core - #404
Draft
seonghobae wants to merge 22 commits into
Draft
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Purpose
Advance issue #84 from current protected
mainwith a bounded OIDC verification coverage/security slice. This PR keeps the OIDC JWT verification core inside owned-production coverage and closes realistic upstream-document and claim-validation branches without restoring broad V8 exclusions or weakening the 100% coverage gate.Current exact state
quality/oidc-core-coverage-slice56fde1865bd8e1ab4798d1650632ba71ba9f5b1c378e8fc76e18d7beb635e75bd97a417247d146f2Coverage and reliability work
The slice removes only the broad V8 exclusion around
base64UrlDecode,base64UrlEncode,decodeJson,fetchGithubOidcKeys, andverifyGithubOidcJwt. Executable public/exchangeregressions now cover or harden:jwks_urivalues;workflow_reffallback handling;kid, missing signing keys with forced refresh, invalid signatures, futurenbf, missingexp, missing workflow ref, malformed payload JSON, workflow-repository mismatch, and unexpected verifier failure.Test-first JWKS entry-shape repair
Exact head
ecfaecad75dc14794151a7866ccd0143449c59bastill failed applicationrelease verifyafter the residual-branch regressions, while reviewer-ci and Security Scan succeeded. During the next RCA pass, source inspection exposed a separate Noema-owned reliability/security classification defect:fetchGithubOidcKeysaccepted any array askeys, so a malformed upstream document such as{ "keys": [null] }reachedkey.kid, raisedTypeError, and was misclassified by the JWT catch boundary as clientERR_TOKEN_MALFORMEDinstead of an upstream OIDC document failure.b77ee98b8180e077df2d36626eb19de80187c1b4adds a public-path regression requiring malformed JWKS key entries to fail closed as HTTP 502 /ERR_OIDC_VERIFICATIONbefore key selection.378e8fc76e18d7beb635e75bd97a417247d146f2validates every JWKS key entry as a plain JSON object before caching/selection and preserves the existing valid-key path. The GREEN commit changes only three production lines insrc/index.tsrelative to the RED head.No source behavior outside this upstream schema boundary, coverage threshold, or central security gate was weakened.
Evidence boundary
Fresh exact-head workflows for
378e8fc76e18d7beb635e75bd97a417247d146f2were queued at the first post-write refetch:31993727469: queued;31993727486: queued;31993727453: queued.Queued/pending evidence is non-passing. Keep Draft and do not merge until the unchanged exact head has terminal-success application CI plus every applicable live central Security/review/governance gate and zero valid unresolved findings. If application CI still fails, identify the new exact first failing boundary before another repair; do not restore broad coverage exclusions or weaken thresholds.
Related: #84.