D6 — Contractpoort: toets de OciServe-routes tegen een gepinde speckopie #2042
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2042
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Het probleem
Keiko is beschermd tegen contractdrift:
make check-api-driftvergelijkt debronpin, de capabilitycatalogus en de werkelijk gebruikte routes met de
OpenAPI-spec van OciServe. OciDeck heeft niets van dat alles.
lib/services/ociserve/ociserve_gateway.dartis handwerk, er is geengegenereerde 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
docs/openapi.yamlop in de repo, met decommit-sha van de OciServe-versie waartegen is gebouwd.
ociserve_gateway.dartwerkelijk aanroept, opzoekt in die kopie. Een pad dat er niet in staat, of
een methode die niet klopt, faalt.
waarvan OciDeck velden uitleest.
make check, zodat hij niet vergeten kan worden.test draaien.
Klaar wanneer
worden in plaats van de app stil te laten breken bij een gebruiker.
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.
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.