Niet functionele eisen
OPMERKING!
De niet-functionele eisen hieronder zijn op basis van het ontwerp vastgesteld, maar moeten zich nog in de praktijk bewijzen. Tijdens het gebruik van het koppelvlak zal bijgehouden worden hoe de oplossing werkt en of aanscherping van de niet-functionele eisen nodig is. Deze kunnen dan in een aparte afspraak vastgelegd worden, tot de koppelvlakspecificatie als geheel bijgewerkt wordt. Als er inderdaad aparte afspraken over de niet-functionele eisen vastgelegd zijn, gaan die vóór de eisen die in deze koppelvlakspecificatie staan.
Beschikbaarheid
De toepassing is niet kritisch: er is geen hoge beschikbaarheid vereist.
De services moeten beschikbaar zijn op de momenten dat CBS de gegevens verzameld. Hierover moeten nog afspraken gemaakt worden.
Performance
De berichtenuitwisseling is synchroon. De API moet daarom binnen de "time-out" tijd reageren op een request. Er is nog te weinig ervaring met het koppelvlak om een goed onderbouwde maximale response-tijd en daaraan gekoppeld een maximaal aantal records. Vooralsnog wordt uitgegaan van de volgende maximale aantallen records (vroegsignalen/schuldhulptrajecten):
| Items | Maximaal aantal per bericht |
|---|---|
| Schuldhulptrajecten | 25.000 |
| Vroegsignalen | 50.000 |
Als het maximaal aantal records overschreven dreigt te worden, moeten de gegevens over verschillende berichten verdeeld worden. In het response-bericht worden dan de velden in het object paginering gevuld worden.
Dit gebeurt conform de volgende definities:
| Veld | Betekenis | Waarde |
|---|---|---|
| pageSize | Het aantal records (schuldhulptrajecten/vroegsignalen) per pagina | integer [min: 1, max: 25.000 of 50.000 (zie hierboven)] |
| currentPage | De huidige pagina | integer [min: 1] |
| totalPages | Het totaal aantal beschikbare pagina's | integer [min: 1] |
| totalRecords | Het totaal aantal te versturen records (schuldhulptrajecten/vroegsignalen) | integer [min: 0] |
Het paginering-object is optioneel (als alle gegevens in één bericht passen hoeft het object niet opgenomen te worden in het bericht), maar als er gebruik gemaakt wordt van paginering, moeten alle paginering-velden gevuld zijn.
In het request-bericht van CBS worden dan ook de volgende paginering velden meegestuurd:
| Veld | Betekenis | Waarde | Opmerking |
|---|---|---|---|
| page | De opgevraagde pagina | integer [min: 1] | Als een niet bestaande pagina opgevraagd wordt, wordt de eerste pagina in het response-bericht teruggestuurd, met paginering-gegevens. Als er geen page in het request-bericht zit, maar er wel gepagineerd moet worden, wordt de eerste pagina in het response-bericht gestuurd. |
| pageSize | Het aantal records (schuldhulptrajecten/vroegsignalen) dat in het response-bericht opgenomen mag worden | integer [min: 1, max: zie hierboven] | Als PageSize in het request-bericht zit en er meer records verstuurd moeten worden, moet er gebruik gemaakt worden van paginering |
Om belasting van de productiesystemen te beperken mag een cache gebruikt worden, onder de volgende voorwaarden:
-
De cache wordt minimaal dagelijks ververst.
-
De integriteit van de gegevens in de cache kan gegarandeerd worden. De gegevensleverancier bepaalt zelf hoe deze garantie gegeven kan worden (bijvoorbeeld met controles, checksums, logging of andere maatregelen).
Logging en Monitoring
Verantwoordelijkheid voor monitoring ligt bij partij die verantwoording hierover moet afleggen.
FSC vereist dat er transactielogging bijgehouden wordt. Hiervoor wordt de logging module van OpenFSC gebruikt. Deze vorm van logging bevat geen persoonsgegevens en vereist daarom geen specifieke privacy maatregelen.
Bij de logging van de vragende en leverende systemen, moet er rekening gehouden worden met de AVG als persoonsgegevens (zoals het BSN) gelogd worden. De DPIA heeft uitgewezen dat de uitgewisselde BSN's niet individueel gelogd hoeven te worden om te voldoen aan het inzagerecht (een algemene vermelding dat schuldhulpverleningsgegevens aan CBS beschikbaar gesteld worden, is voldoende). Dit wordt daarom afgeraden - logging met individuele BSN's vormen immers een nieuwe verwerking met daaraan gekoppelde risico's.