Released docs. You are viewing the documentation published with v0.25.0. Development docs are available at Latest.
Data minimization and purpose limitation by design
As a data protection officer or privacy reviewer, you are asked whether a system supports the principles you work to (data minimization, purpose limitation, accountability) and where those supports stop. This page answers one question about Registry Stack: how does its architecture support data minimization and purpose limitation by design, where are those supports conditional on how an operator configures a deployment, and which data-protection obligations does the architecture not address at all? This page makes no compliance claim and gives no legal advice. Conformance to the underlying specifications does not imply conformance to any external standard, nor to GDPR or any data-protection regulation, and no jurisdiction-specific reading is offered: that judgement remains yours. The specifications here are all draft, pre-1.0 documents and may change, so treat the design as a posture under development rather than a finished or warranted product. Four terms are enough to follow this page. A requirement is one predefined, reviewed question about one set of subject roles, together with the exact set of values its answer may carry, asked against a registry the institution already holds. A Relay consultation is a Relay-owned contract that fixes the closed request inputs and the minimized typed outputs one protected read route may return. Minimized evidence means a response shaped by data minimization or selective disclosure; a purpose-bound request is a request that carries or is evaluated against a stated purpose.
Two runtime patterns carry these principles, Registry Relay and Evidence Gateway, and each enforces them at its own boundary rather than in one chain.
How the requirement model limits collection at the source
Section titled “How the requirement model limits collection at the source”The first place minimization appears is in the unit of data the system is built around. A requirement describes one reviewed question and the exact values its answer may carry, not a whole record, so returning a full record would over-collect relative to the question actually asked. The design treats the narrow question, not the record, as the thing to be answered.
That principle is enforced at two separate boundaries. A Relay integration declares closed request inputs and minimized typed outputs. An Evidence Gateway requirement uses a closed single or search-then-fetch acquisition whose sources, origins, methods, paths, headers, and client-side response projections are all set by reviewed configuration, and it discloses only the concepts it declares. Callers cannot choose a source destination, credential, selector field, adapter capability, or undeclared output at request time in either product.
The project author still decides which source fields the answer needs. Minimization therefore depends on a reviewed contract and its fixtures, not on a runtime deriving a source projection from the question it was asked.
Purpose limitation as an enforced gate, not a label
Section titled “Purpose limitation as an enforced gate, not a label”Purpose limitation in this design is more than a field written into a log. In Evidence Gateway, the purpose a caller states is one dimension of a single authorization decision that also binds the requester, the requirement revision, every subject role and selector profile, the subject authority, and the audience. The match must be exact and complete, and it happens before audit, credential resolution, or source access, so a request with a missing or unauthorized purpose reaches no source at all. Relay separately verifies its own caller, scopes, and governed policy gates before source work.
The closed request schema carries the same idea further: a caller supplies a nonce, a requirement, a purpose, one selector per declared role, and optionally a holder public key that matters only to the SD-JWT VC response format. There are no thresholds, expressions, paths, headers, source fields, or response projections a caller can set. The effect a reviewer should take away is that purpose, when configured, acts as a precondition for access rather than an after-the-fact annotation.
Several of these protections apply only when configured; the operator-responsibilities section lists them.
Minimization at the output: closed value forms
Section titled “Minimization at the output: closed value forms”Minimization also applies to what leaves the boundary. Evidence Gateway has no caller-selectable disclosure at all, so there is no request-time negotiation to review.
Instead, a requirement declares one to sixteen concepts, and each concept fixes the exact value form its fact takes: a boolean, a code from a reviewed codelist, a bounded number, a date or time bucket, an audience-scoped opaque reference, or a reviewed closed structure. The set of forms is closed at eleven, and a requirement issuing under the holder-bound subject binding mode may use nine of them: the two entity-reference forms take the audience as a derivation input, so a holder-bound requirement declaring either is refused at startup rather than served with a degenerate reference. The answer carries a value for each declared concept and nothing else, and the assertion schema rejects additional properties. For a reviewer, this moves the disclosure decision from request time, where a caller could argue for more, to authoring and review time, where an operator justifies it once and can be held to it. (The forms themselves are catalogued in Disclosure modes and computed answers and are out of scope here.)
There is no equivalent of the retired redacted mode, and this is structural rather than an omission: an assertion must carry at least one supported value, so an assertion with nothing in it cannot be produced. A request that cannot be answered returns a problem document and no assertion.
Minimization can continue past the response boundary when the operator enables the SD-JWT VC
format. That format is a second encoding of the same assertion, never a credential lifecycle: the
signed body carries a SHA-256 digest of each selectively disclosable value, so a holder can later
present a subset. A value uses one disclosure by default. A governed structured value can instead
place each direct field in a separate disclosure while keeping nested field values atomic. Two
limits matter to a reviewer. The issuer appends every disclosure, so the response the caller
receives reveals the same set as the signed JWS, and holder-side omission is outside this version.
Evidence Gateway also runs no wallet interaction and speaks no part of OID4VCI. Under the default
audience-scoped binding mode a caller may supply a holder public key that Evidence Gateway echoes
into the cnf claim for a relying party to check itself, and nothing verifies it.
A requirement may instead declare the holder-bound subject binding mode, which changes what the
credential is bound to and moves the audience check from issuance to presentation. The service
still issues no key-binding JWT and holds no presentation state; verification is a relying-party
act, performed by the portable verifier or the evidence verify-presentation operator command.
For minimization the mode is a trade rather than a gain: the same holder key, trust domain,
purpose, subject role, selector profile, and selector values yield the same binding for every
verifier, so a holder who reuses one key is correlatable across the verifiers it presents to.
Holder-bound issuance also refuses the two entity-reference value forms, and a holder-bound
assertion carries neither an audience nor the request nonce, because it names no relying party to
echo them to.
Purpose behaves the same way on both sides of the boundary. A relying party compares the issuance purpose as signed provenance: it records why the assertion was produced and licenses, limits, or authorizes nothing about what the relying party may now do with it. Under the holder-bound mode that record is also disclosed to every verifier the credential reaches, and it is a low-cardinality attribute, so treat it as visible rather than internal.
A further minimization detail guards against a subtler leak. No match, ambiguity, a missing required fact, and an unresolved derivation input all collapse into one problem response with the same title and body shape, so a caller cannot use a refusal to learn whether a record exists. The outcomes stay distinct in the audit record; collapsing is a property of what the caller sees, not of what the operator can review.
Data stays at source: distributed custody
Section titled “Data stays at source: distributed custody”Underneath all of this is an architectural choice that matters for minimization at the system level: data stays at source. The design premise is distributed custody: the stack provides an API surface for lawful exchange between authorities and does not aggregate data into a central system. The read component must not mutate source registry data and exposes no write-back route, and runtime services are read-only in this version, with no source-registry data-mutation routes at all.
For a reviewer this has a direct consequence. Because the architecture cannot alter or delete source records, it is also why no erasure flow exists at the source layer: the design has no mechanism to reach into and change the registry it reads from. The What the architecture does not provide section describes this as a limit, not a feature.
One related boundary is positive rather than cautionary. The portable metadata the stack publishes must not carry person-level data or runtime secrets and bindings, which is precisely why those artifacts are safe to share: they hold no personal data. But publishing metadata only describes; it does not authorize access, enforce a policy, or assert that any record exists, so a published manifest carries no data-protection guarantee about live data.
Audit as an accountability primitive
Section titled “Audit as an accountability primitive”Accountability is supported through audit, which is treated as a security control rather than an optional log. Every request that returns person-level records or an assertion must be recorded with at least the caller principal, the scopes exercised, a request identifier, and the purpose value where one was supplied, and a deployment can run audit fail-closed so that a request whose audit record cannot be written does not succeed. Evidence Gateway takes that further and is fail-closed by construction rather than by configuration: it writes an access record before it contacts any source and a release record after signing and before release, and an audit failure fails the request. Selector, source, and disclosed values never appear in those records or in logs, and raw source responses are never persisted.
Audit fail-closed is a capability a deployment can turn on, not a guarantee that every route in any given build has been individually audited against it. Whether a particular deployment meets it is something a reviewer verifies in that deployment, not something the design asserts on its behalf.
What the architecture does not provide
Section titled “What the architecture does not provide”Some of the most important things for a DPO to know are the absences. The full, canonical inventory is in Known limitations and non-guarantees.
- No data-subject erasure or right-to-be-forgotten workflow: There is no built-in erasure or deletion flow anywhere in the design, so it does not satisfy erasure obligations on its own. As the Data stays at source: distributed custody section notes, the read-only design cannot mutate source records, so erasure, where it is required, remains an operation on the source registry outside this system.
- No rectification or data-subject-rights flow: Beyond erasure, there is no rectification or general data-subject-rights mechanism.
There is also no revocation, suspension, status list, or credential-status endpoint of any kind: an assertion carries a validity window and is otherwise final once released. Cross-authority federation, aggregate-analytics privacy budgeting, and the general compliance disclaimer are likewise stack-wide absences rather than specifics of data minimization or purpose limitation, but a data-protection assessment should weigh them too. See the known limitations hub for the full inventory.
Operator responsibilities: what the design leaves to you
Section titled “Operator responsibilities: what the design leaves to you”The minimization and purpose-limitation posture this page describes is the design default, but the operator owns the configuration. Several of the protections are conditional, and a reviewer should test the deployment, not the design, for each one.
The main conditional control is the authored projection. A runtime can stop a caller from reaching past the reviewed contract, but it cannot decide which values an institution has a lawful reason to expose. Project reviewers must confirm the source authority, selector inputs, output projection, purpose, requirements, and declared value forms together, and Evidence Gateway expects the complete simultaneously enabled configuration to be reviewed as one disclosure surface, since two answers that are each defensible alone can reconstruct a protected value between them. Operators must then bind only the reviewed source and workload credentials to the generated product inputs.
More broadly, the architecture defines primitives and leaves a large set of data-protection-relevant controls to the operator. Secret and key provisioning, audit retention and storage, tenant isolation, transport security, edge rate limiting, deployment configuration, and incident response are not defined by the design; they are responsibilities you provision and verify in a deployment. For the concrete stores and product expiry points, see Retention and persistent state. Registry Stack offers minimization, purpose limitation, and accountability as enforceable design primitives, but whether a given deployment realizes them (and whether it meets any legal obligation) depends on how the operator configures and runs it.
Related
Section titled “Related”- Disclosure modes and computed answers: the closed value forms and what each one reveals
- Threat model: the boundaries, assets, and threats behind this posture
- Security overview: the high-level security summary
- Known limitations and non-guarantees: the full inventory of edges
- Records stay home: what stays inside the institution’s boundary and what crosses it
- The security and protocol specifications: RS-SEC-G, RS-PR-EVIDENCE, RS-PR-RELAY