Uh oh!
There was an error while loading. Please reload this page.
PPA certification framework: levels, assessment matrix and identity assurance - #1118
Merged
Conversation
Contributor
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 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 |
Verified against live congo-basin proofs: the digest is over GitW3's struct field order, not the order a statement arrives in. Every genuine release was being rejected. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
A geometric mean of 3.13 beside an award of L2 reads as an arithmetic mistake. It is the IAL4 requirement for L3 and above, so say that. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
Replaces the minted Chatterbox/Ledgerly world with what is actually on the network: platforms and certificates from awareness, deployments and their binding documents from the eVaults holding them, and the signed-in owner's own records grouped by the domain each schema declares. Split into Platforms, Your data and Your terms. Terms are signed by the real wallet — the signing session id is the statement's canonical payload, so the signature verifies standalone — and published to the owner's eVault. Possession reports 'not attempted' without a key rather than claiming a check failed that was never made. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
The QR encoded localhost, so a phone scanning it called back to itself and the login never completed. Also adds the w3ds://sign callback route, which was missing entirely. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
Certification says which data a release was assessed for; it says nothing about operations. Adds a third gate over the existing AccessGrant ontology: resource:Action permissions, deny by default, append-only revisions, with a withdrawn grant distinguishable from one never made. Deployment keys move to the top of the flow rather than appearing after a failed check, since possession decides what a check can mean. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
A request that answered allow or deny without touching the eVault proved nothing. A permitted read now fetches and renders the records; a refused one fetches nothing and says the vault was never asked; a permitted write really writes and reads the domain back. Also summarises balances, amounts and file sizes, which have no prose field and were rendering as unreadable. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
The domains a platform was not certified for are the ones worth asking for, so the list is the whole vocabulary with the uncertified ones marked. Read and write move next to the domain being asked about, replacing the matrix above it. Reputation has one service and no threshold, so it is stated rather than typed. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
Grants are the platform's to manage through the API; the panel sends requests and shows what came back. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
The four dependencies added with the demonstrator never reached the lockfile, so CI could not install with a frozen lockfile. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
A release under review has not been deployed yet, so the row was always L0 and dragged every assessment down for a fact about the future. Framework version 3: the scoring set changed, so an assessment judged under version 2 is not comparable to one judged now. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
The header still described the minimum rule the geometric mean replaced, and the framework was cached for the life of the process, so editing the policy file appeared to do nothing. Claude-Session: https://claude.ai/code/session_01UpwygDu2cizLp12tvvKqVZ
…rm-migration-services Platform management transfer, and two certification framework corrections
…h-demonstrator PP Auth: prove which platform is calling, and let the owner set terms
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
Description of change
Implements the PPA certification framework: six levels (L0–L5) scored from sixteen independently recorded assurance dimensions, plus identity assurance per accountable actor.
The level is calculated, not picked. The reviewer works through the matrix in a drawer; the level is the geometric mean of the per-dimension levels, capped by the identity floor (L0 needs IAL2, L1–L2 IAL3, L3–L5 IAL4). The calculation is shown with the weakest dimension named. A reviewer may still award something else, but that is behind a disclosure and requires a written justification, and both the computed and awarded level are signed into the certificate.
Nine of the sixteen rows answer themselves from evidence already verified — the release proof, the repository, attested deployments, and signed eReputation references. Identity assurance is derived from binding documents: an
id_documentgives IAL3, three attestations from passport-verified people give IAL4, and the weakest actor caps the release.Findings are published as a new
PlatformAssessmentrecord in the reviewed platform's eVault alongside the certificate, so a later reader can inspect the evidence rather than trusting the headline level — which is what the framework asks for.Also publishes
Certification LevelandIdentity Assurance Levelas ontology schemas, following theDomainprecedent.Issue Number
n/a
Type of change
New
How the change has been tested
pnpm --filter ppa test— 20 passed. Covers the scoring rules (a weak row drags but does not pin; a single L0 row does not collapse the score; the identity floor caps independently; an unanswered dimension blocks) and identity derivation (each IAL tier, one-level-deep attester resolution, a mutual attestation terminating, an unreadable vault staying IAL1).congo-basinauthor resolves to IAL3 from a realid_document, which correctly caps that release at L2.ereputation.w3ds.metastate.foundation; reference counts feed the three reputation rows.pnpm --filter ppa checkandbuildpass; the ontology service boots and serves all 36 schemas.Change checklist