feat: revoke tenant-safe credential references - #10
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 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 |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head review request for af03805: credential revocation is tenant/learner/registration/decision/credential bound, persists revoked_at, and is idempotent for retries. Local Rust checks, actionlint, and real PostgreSQL 18.4 issue/revoke/cross-tenant evidence passed. Please independently review this exact head and rerun required checks; no approval or protected merge bypass is requested.
seonghobae
left a comment
There was a problem hiding this comment.
Current-head review request for 230fde8. Re-verify the exact-head diff, required Checks, tenant/security boundaries, and any valid review findings after the shared Rust component-install fix. COMMENT only; no approval or protected-merge bypass is requested.
…nto HEAD # Conflicts: # .github/workflows/quality.yml # CHANGELOG.md # docs/product-technical-gap-baseline.md
|
Current-head review request for |
Summary
revoked_at; repeated revocation returns the same revoked projectionBuyer-visible outcome
A tenant can retire a previously issued credential reference without mutating the completion decision or copying the external Open Badges/CLR payload. The learner, registration, decision, and credential boundaries remain explicit and tenant-safe.
Evidence
actionlint .github/workflows/quality.ymlcargo +1.97.1 fmt --all -- --checkcargo +1.97.1 test --workspace --all-targets --locked(6 passed)cargo +1.97.1 clippy --workspace --all-targets --locked -- -D warningsRUSTDOCFLAGS='-D warnings' cargo +1.97.1 doc --workspace --no-deps --lockedcargo +1.97.1 build --bin lms_api --lockedNOSUPERUSER NOBYPASSRLSrole: credential issue returnedissued; revoke returnedrevokedwithrevoked_at; repeated revoke returned HTTP 200; cross-tenant revoke returned HTTP 400app.tenant_idthroughPGOPTIONSunder forced RLS, so current-head database counts are tenant-visible rather than false zeroes32440646796, SAST32440646759, Security32440646749, OpenCode32440645089, Noema32440645057, Strix32440645073, scheduler32440645064, Close Empty PR32440645068Scope boundary
The external credential authority remains responsible for the portable credential payload and external distribution. Open Badges/CLR conformance, released external contracts, assessment execution, browser E2E, audit/outbox, and production coverage/load evidence remain explicit gaps.
Merge gate
This PR is stacked on PR #9. Please review exact current head
cb3ed30d09e967d662095107a685c79baad02c62against basef22806a539a9e6fe3f1943013dd74f14e648ffdb. Do not treat local or green CI checks as semantic approval.