ADR-0039: ASI attributes described by the source (asi capability in source metadata)¶
- Status: accepted, partly implemented. In demo v0.9.0, the authorization server takes its resource list from configuration (ICTU/GBO-demo#592 is open).
- Date: 2026-11-02
- Satisfies: S10, S07, S11, P-10, P-02
- Deliberation: Q-38, and demo ICTU/GBO-demo#592 steps 1 to 5, up to PR #624
- Implemented in:
asiCapabilityin gbo-source-metadata-v1.schema.json#L95.- The attribute catalogue schemas/asi-attributes.json.
- The mapping module services/asi-mapping.
- The validation by the reconciler in source_registration.go#L396-L406.
- The release snapshot in services/source-registry/asisnapshot.
- The query per request in verification/service.go#L238-L268 and plan.go#L22-L35.
- The BRP description in gbo-source-metadata.json#L204.
- The rules in docs/source-onboarding.md#L391-L487.
Context and problem statement¶
Per data service, the ASIP must know three things:
- Which attributes the source offers.
- Which source fields make each attribute.
- How to ask for these fields.
The first demo ASIP had this knowledge in code, as a BRP adapter. That breaks REQ-64: a GBO component works only with the description that the source publishes itself. With the adapter, a new source needs a code change in the ASIP.
Q-38 named three options: code, GBO configuration, or a description that the source publishes. On October 27, the direction became the third option, with a "copy only" mapping. ETSI expects attribute identifiers and value schemas from the EU catalogue of attributes. That catalogue did not exist on November 2, 2026.
This ADR extends ADR-0016 from EUDI issuance to the ASIP.
Decision¶
The decision has seven parts:
- The source describes its attributes. Source metadata schema 1.1 adds
the capability
asinext toeudi. The capability holds these parts:authentic_source: the legal name and country, used in responses and discovery records.graphql: one query document that ends in...Selected, the subject variable, and the result pointer.attributes: per attribute identifier, the source fields per member of the value.
- GBO keeps the shape of each value. GBO keeps a
value_schemaper attribute identifier inschemas/asi-attributes.json, until the EU catalogue of attributes provides it. The identifiers are provisional. The value schemas use onlytype,properties,required,items, andformat. -
The source composes values with four operations. Each member of a value has exactly one operation:
pointer: copy a field.joinwithseparator: concatenate fields.const: a fixed value.eachwithpointer: per list element.
Pointers are RFC 6901 JSON Pointers over GraphQL field names. This part deviates from the "copy only" direction of October 27. A source cannot always deliver a catalogue value with a copy only. An example is a house number made of three BRP fields.
-
gbo-simple-v1stays for theeudicapability only (ADR-0017). The two capabilities have different targets. Theeuditarget is wallet claims that the source defines. Theasitarget is values that the catalogue of GBO defines. - The reconciler validates, and the ASIP reads the active release. The
reconciler validates
asiagainst the catalogue, as part of the source metadata (ADR-0016). Ifasiis invalid, the reconciler refuses the whole source. The ASIP reads the active release from the source registry every 5 seconds, with the reader role. - One query per request. The ASIP replaces
...Selectedwith only the fields of the requested attributes and fragments (REQ-92). If the description does not name an attribute, the ASIP answers 404 and does not ask the source. - Fuzzy matching follows the value schema. A string with a
format, such as a date, matches exactly or does not match. Only strings without aformatgetMatchWithVariation(REQ-113).
Consequences¶
- A new source for the ASIP needs a description and a configured data service. It needs no code. The discovery records and the legal name of the source follow the description without a restart.
- If no current description exists (absent, without
asi, or stale), the ASIP answers 503 for verify, retrieve, and discovery (REQ-93). - A source with
asigets release snapshot version 4.0. A source withoutasistays at 3.0. Onboarding still refuses a document with onlyasi, because onboarding requires the issuance certificate sets. - Onboarding validates the form only. It does not validate against the GraphQL schema of the source. It also does not check whether the policy of the source allows the selection. A difference shows at the first request. A demo test holds the BRP description against rule ASI0001.
- The ASIP still normalizes a code without a
format, such as a nationality or a postal code. For codes, demo v0.9.0 does not meet REQ-113 (Q-70). - The shape of name and address is provisional (Q-71).
Open points¶
These points are open:
- The authorization server takes its data services from
AZSP_RESOURCES(main.go#L105), and not from the descriptions. This is the open part of ICTU/GBO-demo#592. - The identifiers and value schemas move to the EU catalogue of attributes when it exists (Q-31).
- Which normalization applies per kind of value (Q-70)?
- The document format is part of the open PSA S10 decision on the source-specific configuration (ADR-0016).