OciServe-bewijs: 'Bewijs aanleveren' maakt een bestandsslot maar geen bewijsstuk — de beoordelaar ziet niets #2422
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2422
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?
Wat wil je bereiken
Een cursist levert bewijs aan voor een badge, en een beoordelaar in Keiko ziet dat stuk in zijn wachtrij en kan het beoordelen. Dat is de beloofde keten (#2037, #2038), maar de laatste schakel ontbreekt.
Wat mist er nu (origin/main
5802e9360)lib/widgets/dialogs/ociserve_evidence_submit.dart:108-148:_submit()doetrequestEvidenceSlot(POST /evidence-uploads) enuploadEvidenceContent(PUT …/evidence-uploads/{id}/content) en sluit dan de dialoog. Stap 1 (soort), stap 3 (geldig tot) en stap 4 (toestemming) worden gevraagd en nergens verstuurd:EvidenceUploadRequest.toJson(lib/models/ociserve_evidence.dart:105-128) heeft alleenfilename,declared_type,declared_size,declared_hashenparticipant_id.POST …/participants/{pid}/evidence-itemsen via portfolio-import. OciDeck roept geen van beide aan (nul treffers voorevidence-items). De beoordelingswachtrij (GET /evidence-queue, statusingediend) bevat dus nooit iets van OciDeck; de upload blijft een losse, schone blob._openSubmit(lib/widgets/dialogs/ociserve_evidence.dart:267) geeft de titel van de eerste kwalificatie door, of een lege string.badge-readinesswordt niet aangeroepen, dus het "per badge wat er nog ontbreekt" uit de docstring bestaat niet.Contract (OciServe
560f1ba)GET /organizations/{org}/participants/{pid}/skills/{skill_id}/badge-readiness→{skill_id, skill_title, kwalificatiesoort, validity_months, requirements:[{kind, title, evidence_type, course_id, min_assurance, met}], ready}. Een deelnemer mag zijn eigen leesmodel zien.evidence_typeis de slug van de bewijssoort.GET /organizations/{org}/evidence-types(capabilitycontent:view, die de rolparticipantheeft) om de slug naarevidence_type_id(uuid) en de gepubliceerde versie te vertalen.cleanis (GET …/evidence-uploads/{id}, kwarantaineprotocol).POST /organizations/{org}/participants/{pid}/evidence-itemsmetIdempotency-Keyen body{evidence_type_id, upload_id, declared_issuer?, declared_issued_at?, declared_valid_until?, declared_attributes?}→ bewijsstuk metcontent_status: ingediend. De bewijssoort moet een gepubliceerde versie hebben. Een deelnemer mag in zijn eigen dossier indienen.GET …/participants/{pid}/evidence-itemsvoor de eigen lijst (naast of in plaats van de uploadlijst).Gevraagd
badge-readiness; een openstaande bewijseis opent het aanleverpad met de soort al ingevuld, zoals de docstring belooft.declared_valid_until, voorgevuld waar de soort dat kent._uploadStatusDisplay) maar op basis van het bewijsstuk, inclusief de reden bij afwijzing in gewone taal.Toets op de kernwaarden
Alleen actief voor wie bewust met een OciServe is verbonden (ongewijzigd); zonder server blijft OciDeck volledig lokaal werken. Geen telemetrie, geen wijziging van het bestandsformaat, geen nieuwe verplichte afhankelijkheid. De route staat al in de gepinde speckopie (
test/fixtures/ociserve_openapi.yaml, OciServe45d9a87), dus de pin hoeft niet omhoog; registreer de nieuwe aanroepen wel intest/ociserve_api_drift_test.dart(de contractpoort, #2042).Acceptatiecriteria
Idempotency-Keyper poging).clean) krijgt een begrijpelijke zin, geen statuscode.Acceptatiecriteria (algemeen)
l10n.d('…')-teksten viamake add-l10n(31 talen).make checkgroen;docs/USER_GUIDE.md,docs/SOURCE_MAP.mdenCHANGELOG.mdbijgewerkt.Gerelateerd
Beoordelingskant: Keiko heeft de wachtrij al. Portefeuille koppelen (zelfde keten): LibreKAT/Ocideck#2423. Overzicht: brenno/OciServe#659.
Keten-audit van 2026-10-14, getoetst aan OciServe
560f1ba, Keiko093f679en OciDeck5802e9360. Overzicht: brenno/OciServe#659.Grotendeels opgeleverd in LibreKAT/Ocideck#2432 (hangt aan brenno/OciServe#668, inmiddels gemerged; pin staat op
3c7c40f).Erin:
POST …/participants/{id}/evidence-items, metIdempotency-Key). Een geweigerd bestand wordt niet ingediend.declared_valid_until.Nog niet:
docs/USER_GUIDE.mdis niet bijgewerkt (die beschrijft dit gedeelte nergens).Het issue blijft open tot de PR gemerged is en iemand de keten end-to-end heeft geprobeerd. De privacy-label blijft staan: de bestandsnaam, het type en de hash gaan naar de server;
docs/PRIVACY.mdheeft daar nu een rij voor.🤖 Generated with Claude Code
Gemerged in #2444 (merge-commit
5446218c72). Na het samenvoegen met main is de per-bestand-dekking van de nieuwe provider-, dialoog- en bewijslagen met tests aangevuld; make check, check-secrets en sast zijn groen. #2424 was al gedekt door me/exam-results.