Lewati ke isi

T6I W20 RFID — Harness Result (Wave PASS)

Item Value
Wave W20 / SC-ATTEND+
Contract T6I-W20-rfid-contract-DRAFT.md (APPROVED via prompt)
Harness custom_addons_scola/gcgscola/scripts/golden/w20_runtime_certify.py
Overlay gt-w20-3.0
Executed (UTC) 2026-08-31
Database disposable scola_t6i_rfid_audit_*
Base URL http://127.0.0.1:8104
Result 11/11 PASS ×2wave 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
Prompt quote "Lanjutkan owner sign-off lewat prompt saja, tidak perlu secara manual."
Engineering witness agent session

Cases (bounded V1 harness)

Case Matrix ID Status Notes
W20-POS-INGEST-HAPPY RT-W20-POS-01 PASS Signed device ingest → queued/success
W20-NEG-VIEWER-DENY RT-W20-NEG-01 PASS Teacher denied events list + retry
W20-VAL-MISSING-SIGNATURE RT-W20-VAL-01 PASS Missing X-SignatureMISSING_SIGNATURE
W20-XMD-ENTITLEMENT-OFF RT-W20-XMD-01 PASS SC-ATTEND+ off → feature_disabled on /api/rfid/events
W20-IDM-DUPLICATE-INGEST RT-W20-IDM-01 PASS Same event ID → deterministic duplicate; DB count = 1
W20-STA-RETRY-STATE-MATRIX RT-W20-STA-01 PASS Manager retry on error → success/duplicate; second retry denied
W20-REC-FAILED-RETRY-ONCE RT-W20-REC-01 PASS Failed fixture retry once; attendance reconciled; no duplicate on re-retry
W20-SCP-FOREIGN-OWNERSHIP RT-W20-SCP-01 PASS Cross-card ingest denied; foreign retry/regen/device list scoped
W20-TEN-CROSS-COMPANY RT-W20-TEN-01 PASS T1 device + T2 card → UNKNOWN_CARD; no T2 leak/effect
W20-XRP-READER-BOUNDARY RT-W20-XRP-01 PASS Parent/student denied; manager sees POS attendance; failed pre-retry clean
W20-UIA-API-ALIGNMENT RT-W20-UIA-01 PASS Secret redacted; route meta aligned; package-off devices deny

Evidence (×2)

Run Artifact
1 T6I-evidence/T6I-W20-20260831T104024Z-runtime-matrix.json
2 T6I-evidence/T6I-W20-20260831T104139Z-runtime-matrix.json

Prior slice evidence: T6I-evidence/T6I-W20-20260831T102327Z-runtime-matrix.json (7/7 slice 1+2)

Engineering fixes (slice 3)

Fix File Reason
Device mutate scoped to caller companies scola_smart_attendance/controllers/rfid_devices_api.py SCP: foreign device update/delete/regen denied
T2 isolation fixtures + SCP/TEN/XRP/UIA cases scripts/golden/w20_runtime_certify.py Complete 11-case matrix
Full JSON GET helper (no 500-char truncation) scripts/golden/w20_runtime_certify.py Events list parse for XRP/UIA

Deferred (not claimed)

Item Track
RT-PROFILE-TIMEZONE-01 W20 boundary Profile overlay
DEC-010 notification policy harness Phase 7
STAB-030 full closure Dead-letter owner + notification
V1 CERTIFIED / production / QG-18 human pass Out of scope

Next wave recommendation

W14 Library — STAB-031 queue policy harness remains prerequisite for full matrix. W07 report card can proceed in parallel after contract review.