@gemeentenijmegen/attestatie-registratie-component
v0.0.32
Published
Herbruikbaar component voor het uitgeven en intrekken van digitale attestaties (verifieerbare credentials) aan burgers, conform het [Common Ground](https://commonground.nl/) model.
Keywords
Readme
Attestatie Registratie Component (ARC)
Herbruikbaar component voor het uitgeven en intrekken van digitale attestaties (verifieerbare credentials) aan burgers, conform het Common Ground model.
Wat is ARC?
ARC koppelt databronnen (zoals Open Product) aan een attestatie-provider (zoals Ver.ID) om gemeentelijke producten als verifieerbare credentials in een id-wallet te laden.
Voorbeeld: Een burger op mijn.nijmegen.nl bekijkt zijn standplaatsvergunning en laadt deze in zijn id-wallet. Een handhaver kan de attestatie vervolgens scannen ter verificatie.
Architectuur
Bron → Attestatie (mapping) → Provider
↕ ↕ ↕
OpenProduct Standplaatsvergunning Ver.ID
Overlijdensakte (andere provider)ARC is opgebouwd uit pluggable abstracties:
- Source — Haalt data op uit een extern systeem (bijv. Open Product API)
- Attestation — Vertaalt brondata naar credential-attributen
- Provider — Handelt de daadwerkelijke uitgifte en intrekking af
- Store — Tijdelijke opslag voor sessiestate (bijv. DynamoDB)
Zie docs/architectuur.md voor een volledig overzicht.
Snel starten
npm install @gemeentenijmegen/attestatie-registratie-componentimport { ARC, OpenProduct, OpenProductStandplaatsvergunning, VerID, DynamoDb } from '@gemeentenijmegen/attestatie-registratie-component';
const arc = new ARC({
provider: new VerID(
{ issuerUri: '...', redirectUri: '...', clientSecret: '...' },
{ 'standplaatsvergunning': { flowUuid: '...' } },
),
store: new DynamoDb({ tableName: 'arc-sessions' }),
sources: [new OpenProduct({ baseUrl: '...', apiToken: '...' })],
attestations: [new OpenProductStandplaatsvergunning()],
});
arc.on('issuance', async (event) => {
await mijnDatabase.update(event.sessionId, { status: event.status });
});
// Attestatie uitgeven
const result = await arc.issue({
source: 'openproduct', id: 'product-uuid',
});
// result.type === 'oauth' → redirect naar result.url
// result.type === 'direct' → direct afgerond
// Status opvragen
const { status } = await arc.status({ sessionId: result.sessionId });
// Intrekken
await arc.revoke({ sessionId });Documentatie
- Architectuur — Hoe ARC werkt
- Integratie — ARC koppelen aan uw applicatie
- Een provider toevoegen — Nieuwe attestatie-provider implementeren
- Een bron toevoegen — Nieuwe databron aansluiten
- Een attestatie toevoegen — Nieuw attestatietype definiëren
Ontwikkeling
npx projen build # compileren + lint + testen
npx jest # alleen testen
npx tsc --noEmit # alleen typecheckAchtergrond
Ontwikkeld door Gemeente Nijmegen in samenwerking met Ver.ID en Maykin Media (Open Product). Ontstaan op de Common Ground Field Labs, georganiseerd door VNG Realisatie.
