D6 — Contractpoort: toets de OciServe-routes tegen een gepinde speckopie #2042

Closed
opened 2026-09-09 20:57:06 +00:00 by brenno · 1 comment
Owner

Voortgekomen uit een integratiecontrole op het bouwplan voor bewijs bij
badges.

Het probleem

Keiko is beschermd tegen contractdrift: make check-api-drift vergelijkt de
bronpin, de capabilitycatalogus en de werkelijk gebruikte routes met de
OpenAPI-spec van OciServe. OciDeck heeft niets van dat alles.
lib/services/ociserve/ociserve_gateway.dart is handwerk, er is geen
gegenereerde client, en er is geen poort die merkt dat een pad, een statuscode
of een responsveld is verschoven.

Zolang OciDeck drie routes gebruikte was dat te overzien. Met het bewijswerk
erbij — bewijssoorten, bewijsstukken, indienen, intrekken, portefeuille, eisen
per badge — groeit dat oppervlak fors, en groeit het over een periode waarin de
server los wordt gebouwd.

Te doen

  1. Neem een gepinde kopie van docs/openapi.yaml op in de repo, met de
    commit-sha van de OciServe-versie waartegen is gebouwd.
  2. Schrijf een test die de paden en methodes die ociserve_gateway.dart
    werkelijk aanroept, opzoekt in die kopie. Een pad dat er niet in staat, of
    een methode die niet klopt, faalt.
  3. Laat de test ook de verwachte succesresponsvorm controleren voor de routes
    waarvan OciDeck velden uitleest.
  4. Hang de test aan make check, zodat hij niet vergeten kan worden.
  5. Documenteer hoe de pin wordt bijgewerkt: kopie vervangen, sha bijwerken,
    test draaien.

Klaar wanneer

  • Een verwijderde of hernoemde route in OciServe laat de OciDeck-poort rood
    worden in plaats van de app stil te laten breken bij een gebruiker.
  • De gepinde speckopie zegt tegen welke serverversie is gebouwd.

Waarom nu

Dit hoort vóór #2037 en #2038, of er meteen naast. Het is goedkoper om de poort
te bouwen terwijl het oppervlak nog klein is dan er later een reeks routes
achteraf onder te schuiven.

> Voortgekomen uit een integratiecontrole op het bouwplan voor bewijs bij > badges. ## Het probleem Keiko is beschermd tegen contractdrift: `make check-api-drift` vergelijkt de bronpin, de capabilitycatalogus en de werkelijk gebruikte routes met de OpenAPI-spec van OciServe. **OciDeck heeft niets van dat alles.** `lib/services/ociserve/ociserve_gateway.dart` is handwerk, er is geen gegenereerde client, en er is geen poort die merkt dat een pad, een statuscode of een responsveld is verschoven. Zolang OciDeck drie routes gebruikte was dat te overzien. Met het bewijswerk erbij — bewijssoorten, bewijsstukken, indienen, intrekken, portefeuille, eisen per badge — groeit dat oppervlak fors, en groeit het over een periode waarin de server los wordt gebouwd. ## Te doen 1. Neem een **gepinde kopie van `docs/openapi.yaml`** op in de repo, met de commit-sha van de OciServe-versie waartegen is gebouwd. 2. Schrijf een test die de paden en methodes die `ociserve_gateway.dart` werkelijk aanroept, opzoekt in die kopie. Een pad dat er niet in staat, of een methode die niet klopt, faalt. 3. Laat de test ook de verwachte succesresponsvorm controleren voor de routes waarvan OciDeck velden uitleest. 4. Hang de test aan `make check`, zodat hij niet vergeten kan worden. 5. Documenteer hoe de pin wordt bijgewerkt: kopie vervangen, sha bijwerken, test draaien. ## Klaar wanneer - Een verwijderde of hernoemde route in OciServe laat de OciDeck-poort rood worden in plaats van de app stil te laten breken bij een gebruiker. - De gepinde speckopie zegt tegen welke serverversie is gebouwd. ## Waarom nu Dit hoort vóór #2037 en #2038, of er meteen naast. Het is goedkoper om de poort te bouwen terwijl het oppervlak nog klein is dan er later een reeks routes achteraf onder te schuiven.
Author
Owner

Reeds geimplementeerd op main in commit a626d5e6b (PR gemerged). Tests in ociserve_evidence_test.dart en ociserve_evidence_ui_test.dart dekken het bewijs. Gesloten omdat het werk al geland was.

Reeds geimplementeerd op main in commit a626d5e6b (PR gemerged). Tests in ociserve_evidence_test.dart en ociserve_evidence_ui_test.dart dekken het bewijs. Gesloten omdat het werk al geland was.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2042
No description provided.