Evidence
How it works
What your platform reads at each step, where a request stops, and how long each answer lasts.
What each step reads
-
Presents
The agent's entity configuration, published at its own identifier.
The entity configuration this agent publishes Observed
The signed bytes
The Records Assistant, signed PS256, typ entity-statement+jwt. Payload fields, cut at the ellipses.
"iss": "https://rp.directory.showcase.raidiam.io/…/70219aeb-…", "sub": "https://rp.directory.showcase.raidiam.io/…/70219aeb-…", "authority_hints": [ "https://authority.directory.showcase.raidiam.io/…/845f7286-…", "https://authority.directory.showcase.raidiam.io/…/2ec610f4-…" ], "trust_marks": [ { "trust_mark_type": "…/tarnbrook.records.reader" … }, … four more, one of them from the second authority ], "metadata": { "openid_relying_party": { … } }, "jwks": { "keys": [ { "kid": "mrk-097d8498…" … } ] }, "iat": 1789522439, "exp": 1789526039authority_hintsThe authorities to fetch next. The walk follows both.trust_marksThe marks the platform asks each issuer about.metadataWhat the folded policy lands on.
Read at 01:33 UTC on 16 September 2026. This copy expired an hour later. The link fetches the current one. Open the live entity configuration
-
Resolves
One subordinate statement per hop, each verified with the keys above it, ending on the anchor key your platform holds.
When the walk has no next hop Observed
The signed bytes
Ask an authority about an identity it does not govern and the chain stops. Your platform issues nothing.
GET …/authority/845f7286-…/fetch ?sub=…/openid_relying_party/00000000-0000-0000-0000-000000000000 HTTP 404 "error": "not_found", "error_description": "unknown entity identifier"Read at 01:35 UTC on 16 September 2026. The link repeats it. Open the refusal itself
-
Folds
The policy on each statement, folded anchor first. Then each required mark and its status.
The policy the authority publishes about this agent Observed
The signed bytes
The metadata_policy for openid_relying_party, from the Tarnbrook subordinate statement, cut at the ellipses.
"authorization_details_types": { "value": [ "records.read", "records.annotate", "transfer.initiate", "transfer.status" ] }, "grant_types": { "value": [ "client_credentials", "authorization_code", … ] }, "token_endpoint_auth_method": { "value": "private_key_jwt" }authorization_details_typesThe four this authority permits. Your platform issues within them or refuses.
Read at 01:37 UTC on 16 September 2026. That copy was minted at 01:37:51 and expires at 01:42:51. Open the subordinate statement
The status query, and what the authority signed back Observed
The signed bytes
The request is a form post of the mark itself. The answer is typ trust-mark-status-response+jwt.
POST …/authority/845f7286-…/trust-mark-status trust_mark=eyJhbGciOiJQUzI1NiIs… HTTP 200 application/trust-mark-status-response+jwt "iss": "https://authority.directory.showcase.raidiam.io/…/845f7286-…", "status": "active", "trust_mark": "eyJhbGciOiJQUzI1NiIs…", "iat": 1789522650statusThe answer for the tarnbrook.agent.member mark on this agent.
Read at 01:37 UTC on 16 September 2026. The mark it asks about is one of those in the entity configuration under step 01. Open the row and its register entry
When the query is asked the wrong way Observed
The signed bytes
A consumer posts the mark it holds. A query by subject and mark type is refused, so the endpoint answers only somebody who already holds the mark.
POST …/trust-mark-status sub=…/70219aeb-…&trust_mark_type=…/tarnbrook.agent.member HTTP 400 "error": "invalid_request", "error_description": "request missing required parameter 'trust_mark'"Read at 01:37 UTC on 16 September 2026. Open the row and its register entry
-
Issues
The requested types, against each ceiling in order.
- Registered4
- Attested4
- Granted1
Where a request stops
Resolves
federation-client-resolver.ts
no_chain_to_pinned_anchorTold noEvery path fails before it reaches an anchor you pinanchor_not_for_admissionTold noThe path ends on an anchor pinned for marks onlyauthority_unreachableCould not tellA fetch failed over the network and no path closed
Folds
federation-client-resolver.ts
policy_violationTold noThe agent's metadata breaks the folded policyaccreditation_missingTold noThe required mark is absent from the agentaccreditation_withdrawnTold noThe issuer reports it inactive, or dropped the agent or its role policyaccreditation_unconfirmedCould not tellStatus, list or statement unreadable, with no recent active answer held
Issues
containment.ts, grants.ts
human_step_requiredTold noThe type needs a person's approval hereset_containmentTold noA type outside a ceiling. The refusal names the outermost onescope_not_registeredTold noA scope outside the resolved metadata
The resolver stops a path at its first refusal. The token endpoint refuses a human step first, then runs containment, then checks the scope.
How long each answer lasts
A platform reads again when the answer it holds expires. Values for the API platform.
What each consumer pins
Each consumer pins an anchor as the pair of entity identifier and key, and states in advance how long it will honour a mark it verified earlier when the status endpoint fails to answer. That window is read from the estate declaration rather than typed into this page.
| Consumer | Pins | Requires the mark | Honours a verified mark for | Treatment |
|---|---|---|---|---|
| The API platform | The Tarnbrook anchor, and the Aldercross anchor for marks only | The Tarnbrook member mark or the enforcement point mark | 300 s | Reference implementation |
| The workforce platform | The Tarnbrook anchor, and the Aldercross anchor for marks only | The Tarnbrook member mark | 300 s | Reference implementation |
| The records resource | The Tarnbrook anchor | It reads the token the platform issued | 0 s | Reference implementation |
| The transfers resource | The Tarnbrook anchor | It reads the token the platform issued | 0 s | Reference implementation |
| Larkspur's gateway | The Aldercross anchor | The scheme's accreditation mark | 300 s | Reference implementation stands in for a third party |
| The attester | The Tarnbrook anchor | The agent's member mark | 0 s | Reference implementation |
| The agent runtime | The Tarnbrook anchor | The resource mark on what it discovered | 0 s | Customer side |
| The platform edge | The Tarnbrook anchor | The Tarnbrook member mark | 300 s | Reference implementation |
| The Batch Reviewer | The Tarnbrook anchor | It reads the token the platform issued | 0 s | Reference implementation |
| The portfolios resource | The Tarnbrook anchor | It reads the token the platform issued | 0 s | Reference implementation |
Business meaning
OpenID Federation (open standard) 1.0 supplies the signed chain, the trust marks and the metadata policy your platform folds.
Role rows on the governed record become the metadata policy in the authority's signed statement about the agent. That statement is what your platform folds to derive the client. Observed
Technical evidence
The resolver every consumer here shares is one module, and its dependency list is part of the deployment manifest. The rows below are the claims this page carries.
Metadata policy on the subordinate statement is projected from role rows on the governed record. The rows set on the role appear as the policy operators in the authority's statement about the entity. Observed
Govern · Role rows as the source of published policy. Lives in: Raidiam Connect. The row on the evidence page.
- authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch, read 2026-09-09: the statement about the hosted scratch agent carries subset_of, one_of and value operators from the role rows
- docs/verification/tenant-showcase-2026-09.md#row-3b, read 2026-09-09: a row's value shape must match the parameter's shape; one_of and subset_of leave an absent parameter absent
A consumer holding an accreditation mark asks the issuing authority for its current status and receives a signed answer. The status query is a form post of the mark itself; a query by subject and type is refused. Observed
Discover · Trust mark status from the issuing authority. Lives in: Raidiam Connect. The row on the evidence page.
- rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753/.well-known/openid-federation, read 2026-09-09: the configuration carries the live mark a consumer posts to the status endpoint
- docs/verification/tenant-showcase-2026-09.md#row-6, read 2026-09-09: a signed status response for a live mark; the answer for a withdrawn mark is the row withdraw.accreditation-status-follows
Every service on this estate, including the hosts that stand in for a third party, is deployed and operated by Raidiam for this showcase from one deployment manifest. Deployment evidence
Keys · One operator for the whole estate. Lives in: reference implementation. The row on the evidence page.
- deploy/manifest.json: every service, its host and its treatment
Raw artefact
Every read below is an unauthenticated GET that the capability matrix declares for this page. The command shown is the whole request, and it carries an accept header only.
https://authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753
the statement about the hosted scratch agent carries subset_of, one_of and value operators from the role rows Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/fetch?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753"
https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753/.well-known/openid-federation
the configuration carries the live mark a consumer posts to the status endpoint Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753/.well-known/openid-federation"