T6J W19 Dapodik Sync — Harness Result (Pilot PASS)
| Item |
Value |
| Wave |
W19 / PILOT-DAP-W19 (SC-DAP controlled pilot) |
| Contract |
T6J-W19-dapodik-contract-DRAFT.md (APPROVED via prompt) |
| Harness |
custom_addons_scola/gcgscola/scripts/golden/w19_runtime_certify.py |
| Overlay |
gt-w19-1.0 |
| Executed (UTC) |
2026-08-31 |
| Database |
disposable scola_t6j_dapodik_audit_* (template scoladev) |
| Base URL |
http://127.0.0.1:8110 |
| Result |
11/11 PASS ×2 — pilot wave PASS (QG-17 bounded) |
Sign-off (product owner via Cursor prompt)
| Field |
Value |
| Authorized by |
product owner via Cursor prompt |
| Authorization date |
2026-08-31 UTC |
| Engineering witness |
agent session |
| Case |
Matrix ID |
Status |
Notes |
| W19-POS-PREVIEW-EXECUTE |
RT-W19-POS-01 |
PASS |
Operator preview→execute; write set matches stub; audit log |
| W19-NEG-VIEWER-CONFIG-SPLIT |
RT-W19-NEG-01 |
PASS |
Viewer/configurator denied preview+execute (capability split) |
| W19-SCP-FOREIGN-LOG |
RT-W19-SCP-01 |
PASS |
T1 operator denied T2 sync log detail |
| W19-TEN-CROSS-COMPANY |
RT-W19-TEN-01 |
PASS |
T1 preview/sync does not leak/mutate T2 NISN |
| W19-VAL-INVALID-NPSN |
RT-W19-VAL-01 |
PASS |
Malformed NPSN rejected before write |
| W19-STA-NO-PREVIEW |
RT-W19-STA-01 |
PASS |
Execute without preview denied |
| W19-IDM-REPLAY |
RT-W19-IDM-01 |
PASS |
Same preview_hash replay → idempotent no-op |
| W19-REC-ROLLBACK |
RT-W19-REC-01 |
PASS |
Recover endpoint rolls back created students |
| W19-XRP-READER-BOUNDARY |
RT-W19-XRP-01 |
PASS |
Operator reads logs; viewer denied |
| W19-XMD-ENTITLEMENT-OFF |
RT-W19-XMD-01 |
PASS |
SC-DAP off → feature_disabled |
| W19-UIA-API-ALIGNMENT |
RT-W19-UIA-01 |
PASS |
Route meta + token redaction in config GET |
Evidence (×2)
Engineering fixes
| Fix |
File |
Reason |
| Preview model + hash/version |
scola_dapodik_connector/models/dapodik_preview.py |
STAB-004 preview/write parity |
| Configure/preview/execute split |
scola_dapodik_connector/controllers/dapodik_api.py |
Capability + state machine |
| Company-scoped config/log/student |
scola_dapodik_connector/controllers/dapodik_support.py |
TEN/SCP boundary |
| Deterministic remote stub |
scola_dapodik_connector/models/dapodik_config.py |
GT-OVL-SC-DAP harness |
| Idempotency + recover |
scola_dapodik_connector/models/dapodik_sync_log.py |
IDM/REC matrix slices |
| Route capability registry |
scola_platform_support/api_route_access.py |
UIA alignment |
| Role caps split |
scola_core/services/auth_capabilities.py |
NEG configure≠execute |
| dapodik_configurator role |
scola_core/models/res_users.py |
Configurator persona |
| Full 11-case harness |
scripts/golden/w19_runtime_certify.py |
Disposable DB @ port 8110 |
Deferred (not claimed)
| Item |
Track |
| National Dapodik SLA / credential vault |
Owner policy matrix |
| Report card / attendance bridge parity |
Separate SKU XMD follow-up |
| Production-wide pilot allowlist manifest |
Phase 5 owner checklist items 1–5 |
| V1 CERTIFIED / production / QG-18 human pass |
Out of scope |
Phase 5 status
Phase 5 engineering COMPLETE (bounded) — W12 + W19 pilot harnesses both 11/11 ×2 PASS. Recommend Phase 7 QG-01–18 rollup next.