Evidence
Governance: who sets each bound
The working behind the claim: six bounded decisions, five withdrawal scopes, every control surface and the freshness bound a consumer can rely on.
Six bounded decisions
Six decisions, each owned by a party you can name. Select a stage.
Publisher
Control which publishers you recognise.
A publisher signs its releases and publishes its own root. You decide whether that root becomes a subordinate of your authority.
- Recognise a publisher's own root, or leave it unrecognised.
- Set the ceiling on every identity that chains through that hop.
- Stop publishing the recognition and every identity beneath it stops resolving.
On this estate Deployment evidence
- Publisher
- Quillon Software Limited
- Trust path
- The Quillon root, recognised by the Tarnbrook authority
- Authority ceiling
- tarnbrook.external.reader
- What that role sets
- authorization_details_types subset_of records.read, transfer.status
- And
- token_endpoint_auth_method one_of private_key_jwt
The recognition mints nothing. Quillon already publishes its own configuration at its own identifier, and the authority becomes a superior of it.
Organisation
Name the organisation that answers for the agent.
An authority binds role claims to an organisation. Every role an agent can carry comes from its operator's bindings.
- Bind an organisation's roles at one authority, or at several.
- Name the person accountable for each agent it operates.
- Change a binding and every agent under it resolves differently.
On this estate Deployment evidence
- Operator
- Tarnbrook Financial Group Limited
- Register
- Showcase register, SR-100001
- Bound at
- The Tarnbrook authority, and the Aldercross Scheme Authority
- Accountable owner
- Imogen Falk, for the Records Assistant
Two organisations may operate the same release and hold different bindings. That is why the same software gets a different envelope under each.
Agent
Separate what an agent asks for from what it gets.
An agent asserts detail types. The authority states an envelope. A person permits one task. Three sets, tested in order.
- Treat what an agent asserts as a request, not a fact.
- State the envelope on the hop above it.
- Leave the last cut to the person who authorises the task.
Balance Monitor, operated by Quillon Software Deployment evidence
-
Requested
What the agent asserts in its own entity configuration.
-
records.read -
transfer.status -
transfer.initiate
-
-
Registered
The envelope the authority permits on this hop.
-
records.read -
transfer.status -
transfer.initiaterefused
The subset_of row on tarnbrook.external.reader sets this ceiling. The declaration records transfer.initiate as an over claim.
-
-
Granted
What a person permitted for one task, carried in the token.
-
records.read -
transfer.status
This tenant declares no grant record for this agent, so the column shows the ceiling a grant starts from. Where a person grants, the platform tests the grant at the token endpoint and the resource tests its own limit again.
-
The same release under the Tarnbrook authority is registered for a different envelope. The software is identical. The operator is not.
Accreditation
Let an authority you do not run say something about your agent.
An accreditation is a governance act by a scheme, published on the wire as a trust mark with its own status endpoint.
- Recognise a scheme as an accepted issuer of marks.
- Let that scheme grant a role your own authority does not grant.
- Withdraw the accreditation at the scheme, with a recorded intent.
On this estate Deployment evidence
- Agent
- Records Assistant
- Accreditation
- aldercross.accredited.agent
- Issued by
- Aldercross Scheme Authority
- Recognised as an issuer by
- The Tarnbrook authority, as tarnbrook.recognised.scheme
- What the role sets
- authorization_details_types value records.read, transfer.status
Whether a consumer reads this mark before it admits an agent is a property of that consumer. This page states what the authority publishes. Withdrawing an accreditation is one of the five scopes below.
Runtime
Tell an identity apart from the copies that run it.
An agent is one governed record. An instance is one running copy. An attester binds that copy's key and vouches for what it can see.
- Govern one identity however many copies run under it.
- Let an attester cut the envelope for a copy it can say less about.
- Stop one copy without touching the identity.
Two copies, two assurances Deployment evidence
- Batch Reviewer
- Runs on the workload domain. Authenticates with attest_jwt_client_auth. Assurance attested.
- Its evidence
- A SPIFFE X.509 SVID from the workload trust domain, so the attester withholds nothing.
- Analyst Companion
- Runs on a workstation. Authenticates with attest_jwt_client_auth. Assurance asserted.
- Its evidence
- An operator enrolment only, so the attester withholds records.annotate, transfer.status, transfer.initiate and review.submit.
The attester's stated reason for the second row is that it has a key, an enrolled person and a claimed release, and no evidence about the machine or the binary.
Granted ceiling
The platform issues the token, and it is the last word.
A token carries three ceilings tested in order: registered, attested, granted. The answer names the outermost one that decides the request.
- Keep the decision at the platform you already run.
- Hold the resolved answer for the lifetime it prints on itself.
- Resolve again when that answer expires.
The bounds this tenant prints Deployment evidence
- Resolved answer held, at most
- 300 s
- Access token lifetime
- 300 s
- Transfer ceiling
- 1000.00 GBP
Neither lifetime is a propagation time. Each is how long a consumer may go on trusting an answer it has yet to read again.
Withdrawing an accreditation, on this tenant
The design needs the mark status endpoint to follow a withdrawal. On this tenant it keeps answering active, so a consumer here reads two more surfaces before it admits an agent.
The scheme withdraws
An officer at the scheme, in Connect, with a recorded intent
-
The mark status endpoint
The design needs it to answer inactive. On this tenant it keeps answering active for the withdrawn mark.
Answers activeNot observed on this tenant
-
The issuer's list
Drops the agent within seconds when its last claim at that authority goes inactive.
Your API platform, admitting the Holdings Reader
Asks the status, then requires the agent on the issuer's list and the role's policy on the issuer's statement. Either one missing refuses the agent.
accreditation_withdrawn
Refused Deployment evidence
How far a revocation reaches
Pick a scope. The figure draws what it reaches and what keeps running.
Why the smallest control is the right one
Act at the layer where the trust changed. A compromised key, a withdrawn accreditation, one bad running copy, a withdrawn identity and a token in flight each have their own control. The smaller control reaches less, and reaching less is the point.
The verb says what the act does to the record. Stop sets a running copy's status bit and a later stop sets it back. Withdraw changes lifecycle or claim state, so the authority stops publishing an identity, an accreditation or a recognition. Revoke invalidates a credential. Three verbs, five scopes, and a reader who knows which verb is on the control knows what survives it.
The control surfaces
Each row names one thing that can change, the surface that carries the change, and the bound a consumer can rely on. The bound is read from the artefact it appears on: the lifetime printed on a statement, the expiry printed on a token, the next update printed on a revocation list.
| What changed | Control surface | Who publishes | Who consumes | Pull or push | Freshness bound | Where the capability lives | Demonstrated here |
|---|---|---|---|---|---|---|---|
| One running copy | The instance's status bit on the signed list the attester publishes | The attester | A platform that reads the list on each token request | Pull | The platform's list refresh interval, printed by the platform | Reference implementation (the attester) | Deployment evidence |
| The identity, hosted by Connect | Lifecycle state, then a soft delete, which is permanent | The authority | Every consumer, at its next resolve | Pull | The subordinate statement lifetime, printed on the statement | Raidiam Connect | Observed |
| The identity, hosted by the enterprise | Lifecycle state and claims set inactive, then the catalogue stops publishing the configuration. Reversible. | The authority and the catalogue | Every consumer, at its next resolve | Pull | The statement lifetime, and the catalogue's lifecycle cache | Raidiam Connect and customer side | Deployment evidence |
| A publisher's recognition | The subordinate statement about the recognised root | The authority | Every consumer whose chain used that hop | Pull | The statement lifetime | Raidiam Connect | Deployment evidence |
| An accreditation | The issuing authority's list, and the role's policy on the subordinate statement | The issuing authority | A consumer that reads the list at admission | Pull | The statement lifetime; the list follows within the mint cadence | Raidiam Connect | Not observed on this tenant |
| A certificate | The published key set, the revocation list, and the status responder | Connect's certificate service | Whoever validates that credential | Pull | The key set at the next resolve; the revocation list's next update, printed on it | Raidiam Connect | Deployment evidence |
| A token already issued | Expiry, and introspection where the platform offers it | The issuing platform | The resource | Pull | The token lifetime, printed on the token | Reference implementation | Deployment evidence |
| A record, for a subscriber | The record change webhook | Raidiam Connect | A subscribed system | Push | Notification shortens the wait before the next read. The signed source stays authoritative. | Raidiam Connect | Deployment evidence |
| The anchor key | Every consumer's pinned configuration | The consumer's operator | The consumer | Configuration change | The overlap window the anchor publishes | Raidiam Connect publishes and the customer pins | Deployment evidence |
Scroll to see all columns.
Two rows deserve a second reading. The accreditation row is where this tenant and the design differ today, and the row says so with the artefacts that show it. The webhook row is a notification rather than a control: it shortens the wait before a consumer reads the signed source again, and the signed source is what decides.
The bounds this tenant declares
300 s
The longest a consumer holds a resolved answer
A consumer that resolved before a change holds its answer until this expires.
60 s
The mark status cache
An answer can rest on a cached status up to twice this old. When the status endpoint cannot be read, the API platform honours a recent active answer for 300 s. On this tenant the endpoint keeps answering active after a withdrawal, which is Not observed in the matrix.
300 s
The access token lifetime
A token already issued runs to this bound, whatever changed behind it.
about 61 s
The mint cadence on this tenant
One run, on 9 September 2026, recorded in the verification register. It is a measurement of one run rather than a property of the design.
A consumer that resolved just before a change holds a valid answer until that answer expires. A token already issued lives to its own expiry. Neither figure is a propagation time. Each is how long a consumer may go on trusting an answer it has yet to read again, and each is printed on the artefact beside it.
A consumer that prefers a shorter window reads on the call and pays for it in latency. That window is a choice for each control, and the governed record answers the same way whichever choice a consumer makes.
The capability rows this page carries, with their evidence
Publication follows the record's lifecycle state. One write changes the record and the publication follows it; there is no second publish action to perform. An authority's entity configuration is served within seconds of its domain mapping, and an entity leaves the authority's list within seconds of its only claim going inactive. Observed
Govern · Publication driven by governed state. Lives in: Raidiam Connect. The row on the evidence page.
- authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/.well-known/openid-federation, read 2026-09-09: the scratch authority's entity configuration, served three seconds after the mapping was written
- federation.directory.showcase.raidiam.io/federation_entity/ec54688a-3e67-414d-84e6-9372e736e4c2/list, read 2026-09-09: the scratch federation entity lists the authority
- docs/verification/tenant-showcase-2026-09.md#row-9c, read 2026-09-09
- docs/verification/tenant-showcase-2026-09.md#row-10, read 2026-09-09: the list dropped the entity at the first poll after the claim went inactive
The design requires that a withdrawn accreditation stops being issued as a mark and answers not active from the status endpoint within the mint cadence. On this tenant the generated entity configuration and the authority's list drop the accreditation within a minute, while the mark endpoint keeps issuing the mark and the status endpoint keeps answering active. Until this changes, a consumer treats a mark as valid only while the subject is on the issuing authority's list and the subordinate statement carries the role's policy. Not observed on this tenant
Revoke · Accreditation withdrawal reaching the mark and status endpoints. Lives in: Raidiam Connect. The row on the evidence page.
- authority.directory.showcase.raidiam.io/authority/5bb31966-3818-4454-808d-3d94f9989af7/trust-mark, read 2026-09-09: the mark is issued while the claim is active; a withdrawal makes issuance refuse with a 500 naming the inactive claim, re-read both ways on 10 September
- docs/verification/tenant-showcase-2026-09.md#row-i, read 2026-09-09: the status endpoint answered active for the withdrawn mark at six minutes and again the next day
- docs/ledger.yaml#T3: the product change record
Raw artefact: the declared reads
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/.well-known/openid-federation
the scratch authority's entity configuration, served three seconds after the mapping was written Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/96f37fd5-1f2e-4d8e-adbf-de069b3ba978/.well-known/openid-federation"
https://federation.directory.showcase.raidiam.io/federation_entity/ec54688a-3e67-414d-84e6-9372e736e4c2/list
the scratch federation entity lists the authority Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://federation.directory.showcase.raidiam.io/federation_entity/ec54688a-3e67-414d-84e6-9372e736e4c2/list"
https://authority.directory.showcase.raidiam.io/authority/5bb31966-3818-4454-808d-3d94f9989af7/trust-mark?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753&trust_mark_type=https://trustmark.directory.showcase.raidiam.io/trustmark/2a0d5e07-22de-4367-87bb-3025b63754d4/showcase-scratch-2/scratch2.accredited
the mark is issued while the claim is active; a withdrawal makes issuance refuse with a 500 naming the inactive claim, re-read both ways on 10 September Read on the wire 2026-09-09.
Fetch it yourself
$ curl -s "https://authority.directory.showcase.raidiam.io/authority/5bb31966-3818-4454-808d-3d94f9989af7/trust-mark?sub=https://rp.directory.showcase.raidiam.io/openid_relying_party/9108cb50-119d-47a9-b90b-825377971753&trust_mark_type=https://trustmark.directory.showcase.raidiam.io/trustmark/2a0d5e07-22de-4367-87bb-3025b63754d4/showcase-scratch-2/scratch2.accredited"