SC-DAP Pilot Evidence — scoladev (2026-06-11)¶
Mode: server · Workspace: /home/scola/odoo
Pilot tenant: scoladev · Odoo: odoo-devscola.conf port 8074
Docs read: provisioning-runbook.md §5.3, support-playbook.md, odoo-best-practice-gap-register.md GAP-04
1. Scope¶
Controlled rollout replay for SC-DAP (Dapodik connector + bridges) on the existing dev pilot server (scoladev), aligned with Phase 6 public-sector rollout notes in provisioning-runbook.md.
Out of scope for this pilot slice: live Dapodik server connectivity (no NPSN/token configured on pilot DB).
2. Topology & entitlement¶
| Check | Result |
|---|---|
scola_bundle_dapodik installed |
✅ installed |
Bridge modules (scola_dapodik_*_bridge) |
✅ installed |
Company scola_enabled_addon_skus contains SC-DAP |
✅ |
scola_dapodik_entitlement |
default (enabled path) |
Admin login feature_flags.scola_dapodik |
true |
Installed modules (psql ir_module_module):
scola_bundle_dapodikscola_bundle_dapodik_attendancescola_dapodik_academic_bridgescola_dapodik_attendance_bridgescola_dapodik_connectorscola_dapodik_report_card_bridge
3. API smoke (admin session, 2026-06-11)¶
| Endpoint | Method | Expected pilot behaviour | Observed |
|---|---|---|---|
/api/dapodik/config |
GET | 404 JSON when no config row | ✅ {"success":false,"error":"No Dapodik configuration found"} |
/api/dapodik/test-connection |
POST (jsonrpc) | Graceful error without config | ✅ success:false, No Dapodik configuration found |
/api/v1/report-card/dapodik/bootstrap |
POST (jsonrpc) | Returns bootstrap payload | ✅ success:true with sync metadata |
/api/dapodik/sync-logs |
GET | Paginated logs (empty OK) | ✅ HTTP 200 {"success":true,"data":{"logs":[],"total":0}} — fix c4972ae |
Not observed: feature_disabled on Dapodik paths with SC-DAP provisioned — APIs are reachable under entitlement, not hard-blocked at registry layer.
4. Registry alignment (GAP-01)¶
Dapodik prefixes are covered in api_route_access wave-2 (scola_dapodik feature flag). Teacher session on scoladev also reports scola_dapodik: true, consistent with full-profile dev tenant.
5. Verdict¶
| Item | Status |
|---|---|
| Install topology optional + bundle path | ✅ Proven on pilot |
| Entitlement + feature flag on live tenant | ✅ Proven |
| Operator API contract (config/test/bootstrap) | ✅ Proven (no live Dapodik host) |
| Sync log listing | ✅ Fixed (_dap_search_count — BE c4972ae) |
GAP-04 (public-sector rollout evidence): Closed (pilot topology) on scoladev. Widen rollout after operator configures Dapodik credentials and repeats sync-students/GTK smoke on staging with real or mock Dapodik host.
6. Replay commands¶
# Auth + feature flag
curl -s -X POST http://127.0.0.1:8074/api/auth/login \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"call","params":{"login":"admin","password":"admin"}}' \
| jq '.result.feature_flags.scola_dapodik'
# Test connection (expect no-config error on fresh pilot)
curl -s -X POST http://127.0.0.1:8074/api/dapodik/test-connection \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"call","params":{}}'
# Disposable DB full replay (local CI path)
cd scola-fe-v2 && scripts/modular/capture_public_sector_evidence.sh dapodik
7. Follow-up (non-blocker)¶
- Staging replay checklist (GAP-04 widen):
- [ ] Provision
SC-DAPSKU on staging tenant - [ ] Configure Dapodik NPSN + token (or mock host)
- [ ] Run
/api/dapodik/test-connection→ expect success or structured error - [ ] Run
/api/dapodik/sync-studentssmoke → verify sync log row created - [ ] Run
/api/v1/report-card/dapodik/bootstrap→success:true - [ ] Capture evidence in updated
SC-DAP-pilot-evidence-*.md - [ ] Sign off in
uat-signoff-template.md§ public-sector add-ons - GAP-05: SC-BOS pilot evidence — see
SC-BOS-pilot-evidence-2026-06-11.md. - GAP-01-R1: shrink
ROLE_CAPABILITIESexport map (post-launch, requires regression suite).