Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Titel

DPA (Data Processing Agreement) API

Status

Status
titleIn ontwikkeling
Status
titleROSA-Architectuurscan
Status
titleBEsluitvorming
Status
colourYellow
titleimplementatie
Status
titlein beheer

Versie

Documentatie: 0.9.01

schemaVersion: 0.9.01

Datum

27 Mei September 2024

Auteur

Architectenraad Edu-V

Acties

  • Geen openstaande acties

...

Table of Contents

Samenvatting

Scope

eduv.dpa

Objecten

Bron

Verwerkersregister

Afnemer

Consentmanagement

Endpoints

Verwerkersregister

GET Agreement Supplier itself has with School Board

GET AgreementVerification for School Board and Supplier

...

Open api
filternone
supportedSubmitMethodsnone
showDownloadButtontrue
openapi: 3.0.0
info:
  title: DPA (Data Processing Agreement) API
  version: 0.9.01
  
  description: |-
    The DPA API is implemented by the reference component `Verwerkersregister` to allow parties to validate if a suppliers has a Data Processing Agreement with a certain school board for a specified ecosystem (Ketensamenwerking) and data services (Gegevensdiesnsten).
    
  contact:
    name: Edu-V
    url: www.edu-v.org/afsprakenstelsel
    email: info@edu-v.org
  
paths:
  
  /agreements/self:
    get:
      summary: GET Agreement Supplier itself has with School Board
      description: |-
         Use this API endpoint to request information about the registration of a data processing agreement the supplier itself has with a school board.
         
         When the requester is not allowed to request this information for this school board then you will get a 403.
         When the requester is allowed to request this information then the agreement data is returned (200).
      tags:
        - Verwerkersregister
      parameters:
        - name: supplierOin
          in: query
          allowEmptyValue: false
          required: true
          description: OIN of the system supplier
          schema:
            type: string
            pattern: (\d|\D){20}
        - name: boardId
          in: query
          allowEmptyValue: false
          required: true
          description: ID of the school board (Onderwijsbestuursnummer)
          schema:
            type: string
        - name: ecosystem
          in: query
          allowEmptyValue: false
          required: true
          description: The name of the Ecosystem to which the Data Processing Agreement must apply to.
          schema:
            type: string
            enum:
              - Edu-V
        - name: data_services
          in: query
          required: false
          description: The names of the Data services to which the Data Processing Agreement must apply to.
          schema:
            type: array
            items:
              type: string
              enum:
                - Onderwijsaanbod
                - Onderwijsinrichting
                - Onderwijsdeelnemers
                - Onderwijsmedewerkers
                - Leveringsorders
                - Aanspraken
                - Leermiddelgebruik
                - Leermateriaalgebruik
                - Leerresultaten
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Agreement'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
          description: Bad Request
        '403':
          description: You are not allowed to view any agreement for the requested school board based on a data processing agreement
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
      security:
        - OAuth2:
            - eduv.dpa
            
  /agreements:
    get:
      summary: GET AgreementVerification for School Board and Supplier
      description: |-
         Use this API endpoint to find out if a school board has a data processing agreement with another supplier.
         
         When the requester is not allowed to request this information for this school board then you will get a 403.
         When the requester is allowed to request this information then the agreement verification data is returned (200).
      tags:
        - Verwerkersregister
      parameters:
        - name: supplierOin
          in: query
          allowEmptyValue: false
          required: true
          description: OIN of the system supplier
          schema:
            type: string
            pattern: (\d|\D){20}
        - name: boardId
          in: query
          allowEmptyValue: false
          required: true
          description: ID of the school board (Onderwijsbestuursnummer)
          schema:
            type: string
        - name: ecosystem
          in: query
          allowEmptyValue: false
          required: true
          description: The name of the Ecosystem to which the Data Processing Agreement must apply to.
          schema:
            type: string
            enum:
              - Edu-V
        - name: data_services
          in: query
          required: false
          description: The names of the Data services to which the Data Processing Agreement must apply to.
          schema:
            type: array
            items:
              type: string
              enum:
                - Onderwijsaanbod
                - Onderwijsinrichting
                - Onderwijsdeelnemers
                - Onderwijsmedewerkers
                - Leveringsorders
                - Aanspraken
                - Leermiddelgebruik
                - Leermateriaalgebruik
                - Leerresultaten
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementVerification'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
          description: Bad Request
        '403':
          description: You are not allowed to view any agreement for the requested school board based on a data processing agreement
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
      security:
        - OAuth2:
            - eduv.dpa
        
components:
  schemas:
    schemaVersion:
      type: string
      description: |
        Schema version of this API using semantic versioning 2.0.0.
        The API version number is communicated in the header.
        The major version is communicated in the URI.
        For more information see the [Edu-V versioning guidelines](https://edu-v.atlassian.net/wiki/spaces/AFSPRAKENS/pages/9437200/Versiebeheer).
      default: 0.9.01
    
    Agreement:
      type: object
      required:
        - agreementId
        - supplierOin
        - boardId
        - valid
      properties:
        agreementId:
          type: string
        supplierOin:
          type: string
        boardId:
          type: string
        ecosystem:
          type: string
          default: Edu-V
        dataServices:
          type: array
          items:
            type: string
            enum:
              - Onderwijsaanbod
                - Onderwijsinrichting
                - Onderwijsdeelnemers
                - Onderwijsmedewerkers
                - Leveringsorders
                - Aanspraken
                - Leermiddelgebruik
                - Leermateriaalgebruik
                - Leerresultaten
        valid:
          type: boolean
          example: true
        startDate:
          example: '2023-07-12'
          type: string
          description: 'Start date of the agreement. Format: YYYY-MM-DD (according to RFC3339).'
        endDate:
          example: '2024-07-12'
          type: string
          description: 'End date of the agreement. Format: YYYY-MM-DD (according to RFC3339).'
      
    AgreementVerification:
      type: object
      required:
        - supplierOin
        - boardId
        - ecosystem
        - valid
      properties:
        supplierOin:
          type: string
        boardId:
          type: string
        ecosystem:
          type: string
          default: Edu-V
        dataServices:
          type: array
          items:
            type: string
            enum:
              - Onderwijsaanbod
                - Onderwijsinrichting
                - Onderwijsdeelnemers
                - Onderwijsmedewerkers
                - Leveringsorders
                - Aanspraken
                - Leermiddelgebruik
                - Leermateriaalgebruik
                - Leerresultaten
        valid:
          type: boolean
          example: true
    
    StatusResponse:
      title: StatusResponse
      type: object
      description: 'Functional status code and status message.'
      properties:
        status:
          type: integer
          description: 'See functional status codes within the Documentation.'
        statusMessage:
          type: string
          description: 'See functional status messages within the Documentation.'
      required:
        - status
  
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.example.com/oauth2/token
          refreshUrl: https://api.example.com/oauth2/token
          scopes:
            eduv.dpa: 'scope that allows parties to request information from the DPA api.'

...

  • 0.0.1: Pagina aangemaakt met verwijzing naar Mandatenregister van OSR Kennisnet.

  • 0.0.2: Eerste versie Mandate API gespecificeerd met endpoint om te valideren of een Leverancier een verwerkersoverenkomst heeft met een onderwijsbestuur. Hierbij is een berichtdefinitie Mandaat toegevoegd en zijn ook de status codes beschreven.

  • 0.0.3: Herziening Consent is verwerkt in deze API uitwerking:

    • Naam is gewijzigd van Mandate API naar DPA API.

    • Naam van mandate is gewijzigd naar Agreement.

    • De endpoints zijn gesplitst in het opvragen van informatie over een verwerkersovereenkomst die de leverancier zelf heeft afgesloten met het onderwijsbestuur en een endpoint voor het opvragen van informatie over een overeenkomst die het onderwijsbestuur met een andere leverancier heeft gesloten.

    • Het attribuut ecosystem is toegevoegd als referentie naar de ketensamenwerking waarvoor de verificatie wordt toegepast.

    • Het attribuut dataServices is toegevoegd als optionele referentie naar de gegevensdiensten waarvoor de verificatie wordt toegepast. Deze dienen dan uiteraard wel vastgelegd te zijn in de registratie van de verwerksovereenkomst bij de referentiecomponent Verwerkersregister.

  • 0.0.4: De pagina is besproken tijdens de bijeenkomst van de Architectenraad Edu-V en is gereed voor de ROSA-architectuurscan.

  • 0.0.5: Gegevensdiensten zijn bijgewerkt in de ENUM.

  • 0.0.6: Conform wijziging in architectuur de schemaVersion als attribuut verwijderd uit de berichtspecificaties.

  • 0.9.0: Het Architectuurkader Edu-V is vastgesteld als startpunt voor de implementatie. Tevens is instemming verleend op verdere doorontwikkeling van het Architectuurkader Edu-V op basis van de Architectuurprincipes. Dit akkoord is verleend op het Bestuurlijk Overleg van 27 mei 2024.

    • De afspraken m.b.t. Regie op gegevens wordt tijdens de eerste release geïmplementeerd. Na een succesvolle implementatie wordt de uiteindelijke 1.0.0 versie vastgesteld.

  • 0.9.1: Op basis van RFC002 is de scope aangepast met een prefix eduv.. Dit stelt leveranciers in staat om onderscheid te maken tussen gegevensuitwisselingen met leveranciers binnen en buiten het Edu-V afsprakenstelsel.