Consent API
Titel | Consent API |
Status | DRAFT ARCHITECTenraad REDACTIE BEsluitvorming CONCEPT |
Stadium | POC PILOT BEHEER |
Versie | 0.0.3 |
Datum | 12 Juli 2023 |
Auteur | Architectenraad Edu-V |
Acties |
|
De Consent API is de technische implementatie van het proces van het (de)activeren van een gegevensuitwisseling voor een Onderwijsaanbieder (Consent).
De technische specificatie bestaat uit:
Samenvatting
Scopes | consent |
Entiteiten | |
Producer | Registerhouder – Consentmanagement |
Consumer | Registerhouder – Consentmanagement Dashboardaanbieder – Overkoepelend dashboard instemming |
Endpoints | Consentmanagement POST Inform Consent Update GET Consents by School GET Consent by School and API |
Zodra een Administrator van een Onderwijsaanbieder een gegevensuitwisseling heeft geactiveerd in een component Consentmanagement dan wordt de andere Leverancier op de hoogte gebracht van de activering. Hiervoor wordt gebruik gemaakt van het POST endpoint Inform Consent Update.
Berichtdefinitie: Consent
Veld | Type | Format | Omschrijving | Voorbeeld | O/V | Vullingsregel |
producer | string | uuid | Unieke identifier gegenereerd door de Verzender (Producer) van de API met de gegevenssoort die is geactiveerd voor de Onderwijsaanbieder. | - | V | Let op! De Producer staat niet gelijk aan de leverancier die het POST endpoint inform consent aanbiedt. Het betreft de Verzender of bron van de API waarvoor een activering is gedaan. Voor de SIS API is dat bijvoorbeeld de Leverancier in de rol van Administratiesysteem-aanbieder. |
consumer | string | uuid | Unieke identifier gegenereerd door de Ontvanger (Consumer) van de API met de gegevenssoort die is geactiveerd voor de Onderwijsaanbieder. | - | V | Let op! De Consumer staat niet gelijk aan de leverancier die het POST endpoint inform consent bevraagt. Het betreft de Ontvanger, of afnemer van de API waarvoor waarvoor een activering is gedaan. Voor de SIS API is dat bijvoorbeeld de Leverancier in de rol van Leermiddelenshop, Leermiddelenaanbieder, Leerportaalaanbieder of Dashboardaanbieder. |
schemaVersion | string | string | Het versienummer van de berichtdefinitie die wordt gehanteerd. | 1.3.0 | V | Conform Semantic Versioning 2.0.0 |
edu_org_id | string | string | Unieke identifier van de Onderwijsaanbieder waarvoor de gegevensuitwisseling is geactiveerd. | - | V |
|
api | string | ENUM | De API met de gegevenssoort die is geactiveerd voor de Onderwijsaanbieder. | sis-api entitlement-api usage-api results-api | V | Betreft een API uit het Ecosysteem waarvoor activering een vereiste is voor uitwisseling. |
scopes | array | ENUM | De scope van de gegevenssoort die is geactiveerd voor de Onderwijsaanbieder | sis.school sis.student-teacher-group sis.student-delivery ls.entitlement la.usage.activation la.usage.usage la.result | V | Betreft één of meerdere scopes van de geactiveerde api. |
producer | string | ENUM | De (nieuwe) status van de activering | accepted declined revoked pending | V | In lijn met de beschrijving bij producer |
consumer | string | ENUM | De (nieuwe) status van de activering | accepted declined revoked pending | V | In lijn met de beschrijving bij consumer |
Berichtdefinitie: Consentupdate
Veld | Type | Format | Omschrijving | Voorbeeld | O/V | Vullingsregel |
referenceId | string | uuid | Unieke identifier gegenereerd door de Leverancier bij wie de gegevensuitwisseling is geactiveerd. |
| V | In praktijk is dit altijd de Leverancier die het POST endpoint aanroept. Dit kan zowel de Verzender of bron (Producer) of de Ontvanger of afnemer (Consumer) van de gegevens zijn. |
schemaVersion | string | string | Het versienummer van de berichtdefinitie die wordt gehanteerd. | 1.3.0 | V | Conform Semantic Versioning 2.0.0 |
edu_org_id | string | string | Unieke identifier van de Onderwijsaanbieder waarvoor de gegevensuitwisseling is geactiveerd. | - | V | Een Consent wordt geregistreerd op het niveau van een Onderwijsaanbieder. Indien er in de component Consentmanagement een instemming is verleend op een hoger niveau in de organisatie van de school (bijvoorbeeld op Onderwijsbestuur) dan wordt er voor alle onderliggende Onderwijsaanbieders een Inform Consent Update verstuurd. |
api | string | ENUM | De API met de gegevenssoort die is geactiveerd voor de Onderwijsaanbieder. | sis-api entitlement-api usage-api results-api | V | Betreft een API uit het Ecosysteem waarvoor activering een vereiste is voor uitwisseling. |
scopes | array | ENUM | De scope van de gegevenssoort die is geactiveerd voor de Onderwijsaanbieder | sis.school sis.student-teacher-group sis.student-delivery ls.entitlement la.usage.activation la.usage.usage la.result | V | Betreft één of meerdere scopes van de geactiveerde api. |
newStatus | string | ENUM | De (nieuwe) status van de activering | accepted declined revoked | V | De status kan bijvoorbeeld wijzigen zodra een Applicatiebeheerder een gegevensuitwisseling deactiveerd. |
Status- en foutcodes
Status code | Status | statusMessage | Omschrijving |
200 | 0 | OK | Consent geregistreerd |
400 | 1 | Schema incorrect | Schemavalidatie niet succesvol |
400 | 2 | schemaVersion not supported | De ontvanger kan de gehanteerde schemaVersion niet verwerken |
400 | 3 | referenceId already used for different API/School combination | referenceId al een keer gebruikt |
401 | 4 | scope required | Leverancier is niet geautoriseerd voor scope consent |
404 | 5 | School unknown | Onderwijsaanbieder onbekend |
404 | 6 | referenceId unknown | Referentie naar consent onbekend |
400 | 99 | Vullingsregel: in statusMessage een beschrijving van de reden opnemen | Overige reden |
Technisch: API specificatie
Release notes
0.0.1: Eerste draft van de API.
0.0.2: Berichtdefinities en YAML files zijn toegevoegd t.b.v. de 80 procent specificatie.
0.0.3: De technische specificatie is verder uitgewerkt.
edu_org_id is toegevoegd aan alle endpoints als implementatie van het activeren en deactiveren van gegevensuitwisselingen en de M2M identificatie en authenticatie.
scopes zijn toegevoegd aan het object consent. Het is daarmee mogelijk om een consent te registreren voor een specifieke gegevenssoort uit een API.
De status- en foutcodes zijn toegevoegd aan de documentatie en aan de YAML.
In de YAML is aangegeven welke referentiecomponent de endpoints aanbiedt als Producer.
De YAML is geactualiseerd op basis van de bovenstaande wijzigingen.