Domain: Dapodik Sync & Integrasi Regulasi
SSOT untuk integrasi regulasi pendidikan Indonesia di Scola, terutama Dapodik, validasi master data, dan sinkronisasi lintas domain.
Last verified: 2026-04-05
1. Visi & Best Practice
1.1 Regulasi / Standar Acuan
| Regulasi / standar |
Relevansi |
| Dapodik Kemendikbud |
Master data sekolah, siswa, GTK, rombel, dan profil sekolah |
| Pola integrasi e-Rapor Dapodik |
Pertukaran nilai/rapor dengan Web Service Dapodik |
| NPSN, NISN, NUPTK |
Identitas nasional yang harus konsisten lintas domain |
| Praktik audit trail integrasi pemerintah |
Log sinkronisasi, fallback export, dan jejak validasi |
1.2 Kondisi Ideal
- Setiap tenant memiliki satu control plane regulasi yang jelas: NPSN, token Web Service, status koneksi, dan jejak sinkronisasi.
- Validasi data dilakukan sebelum sync, bukan setelah error di Web Service pemerintah.
- Integrasi regulasi kini punya loader/control-plane terpisah lewat
scola_dapodik_connector dan diprovision sebagai add-on opsional SC-DAP di atas SC-CORE.
- Export/manual fallback tetap tersedia ketika endpoint pemerintah tidak stabil atau berbeda versi.
- Sinkronisasi dan export menjaga batas company/tenant, audit trail, dan observability operasional.
2. Arsitektur & Data Model
2.1 Backend Modules
| Module |
Deskripsi |
scola_dapodik_connector |
Konfigurasi Dapodik, sync log, validation report, export wizard, API control plane, dan export kesiswaan |
scola_dapodik_report_card_bridge |
Ownership endpoint sinkronisasi e-Rapor ke Dapodik |
scola_dapodik_academic_bridge |
Ownership endpoint export akademik ke format Dapodik |
scola_dapodik_attendance_bridge |
Ownership endpoint export attendance saat smart attendance terpasang |
scola_core |
School-profile sync dan tenant/company data yang dipakai connector |
scola_report_card |
Domain model rapor yang dikonsumsi bridge Dapodik |
scola_timetable |
Domain model akademik yang dikonsumsi bridge Dapodik |
scola_smart_attendance |
Runtime source untuk export attendance opsional |
2.2 Frontend Structure
src/views/
├── SettingsManagement/DapodikConfig.vue
├── ReportCardManagement/Admin/DapodikRaporSync.vue
├── AdminViews/AcademicConfig/ModulAjar/ModulAjarList.vue
└── AdminViews/WakasekDashboard.vue
src/services/
├── reportCard/reportCardDapodik.service.js
└── counseling/warningLetter.service.js
2.3 Kapabilitas & Akses
| Area |
Catatan |
| Konfigurasi Dapodik |
Surface admin/settings yang hidup di connector control plane opsional |
| Export akademik |
Terkait master data akademik dan rombel |
| Export kesiswaan |
Terkait rekap BK/kesiswaan untuk pelaporan |
| Sinkronisasi rapor |
Terkait workflow report card manager / admin |
Catatan:
- Family capability
scola_dapodik kini sudah live di FE dan BE.
SC-DAP base kini diprovision melalui scola_bundle_dapodik di atas SC-CORE.
- Export attendance adalah extension eksplisit via
scola_bundle_dapodik_attendance, bukan bagian default dari base bundle.
2.4 API Endpoints
| Endpoint |
Method |
Deskripsi |
/api/dapodik/config |
GET, POST |
Ambil/simpan konfigurasi Dapodik |
/api/dapodik/test-connection |
POST |
Uji koneksi ke Web Service Dapodik |
/api/dapodik/sync/students |
POST |
Sync peserta didik |
/api/dapodik/sync/gtk |
POST |
Sync GTK |
/api/dapodik/sync/rombel |
POST |
Sync rombel |
/api/dapodik/sync-logs |
GET |
Daftar log sinkronisasi |
/api/v1/academic/export/dapodik |
GET |
Export akademik ke format Dapodik |
/api/v1/kesiswaan/export/dapodik |
GET |
Export kesiswaan ke format Dapodik |
/api/v1/report-card/dapodik/* |
POST |
Bootstrap, validate, execute, export, dan delete sync rapor |
/api/rfid/attendance/export/dapodik |
POST |
Export attendance untuk Dapodik |
3. Fitur & Status Implementasi
| Fitur |
Status |
Catatan |
| Konfigurasi koneksi Dapodik |
✅ Done |
scola.dapodik.config + SettingsManagement/DapodikConfig.vue |
| Test koneksi + status koneksi |
✅ Done |
Menyimpan hasil koneksi terakhir dan pesan error |
| Sync peserta didik, GTK, dan rombel |
✅ Done |
Ada endpoint + sync log per jenis data |
| Log sinkronisasi dan detail log |
✅ Done |
scola.dapodik.sync.log + detail log API |
| Sync profil sekolah dari Dapodik |
✅ Done |
school_profile.sync_from_dapodik() menyimpan dapodik_last_sync |
| Export akademik ke Dapodik |
✅ Done |
/api/v1/academic/export/dapodik |
| Export kesiswaan ke Dapodik |
✅ Done |
/api/v1/kesiswaan/export/dapodik |
| Sinkronisasi rapor ke Dapodik |
✅ Done |
Bootstrap, validate, execute, export, delete tersedia |
| Export attendance ke Dapodik |
✅ Done |
/api/rfid/attendance/export/dapodik |
| Packaging sebagai add-on terpisah |
🟡 Controlled Rollout |
scola_bundle_dapodik menjadi base bundle SC-DAP, sedangkan attendance export kini menjadi extension eksplisit melalui scola_bundle_dapodik_attendance saat smart attendance terpasang |
4. Gap Analysis & Backlog
P1 — Important
| Gap |
Dampak |
Solusi |
Remote pilot evidence SC-DAP belum terkumpul |
Harness lokal sudah hijau, tetapi controlled rollout belum punya bukti dari tenant publik-sektor yang hidup |
Replay auth/session payload, sync log, validate/export trace, dan evidence route gating pada tenant pilot |
| Observability sync belum dibakukan untuk UAT paket |
Sulit membedakan error data, error koneksi lokal, dan error versi endpoint Dapodik |
Tambahkan checklist Phase 4/5 untuk bootstrap, validate, sync log, dan fallback export |
| Capability/routing Dapodik tersebar di beberapa surface admin |
Sulit mengaudit boundary akses saat hardening RBAC |
Audit route/menu dapodik dan satukan catatan akses selama stream extraction Phase 6 |
P2 — Nice to Have
| Backlog |
Konteks |
Catatan |
Perluasan rollout SC-DAP di luar controlled public-sector pilot |
Base quote rules, companion bundle attendance, dan harness lokal sudah jelas |
Buka general availability hanya setelah remote pilot evidence stabil |
| Integrasi regulator lain seperti SIMPATIKA/EMIS |
Relevan untuk sekolah tertentu |
Jangan dipisah jadi SKU baru sebelum strategi connector matang |
| Scheduler sinkronisasi yang lebih kaya |
Tenant dengan kebutuhan sync terjadwal |
Dasarnya sudah ada via auto_sync; observability dulu |
| Retensi artifact export dan audit attachment |
Kebutuhan audit/internal control |
Cocok dikerjakan setelah Phase 5 |
5. File References
Frontend
src/views/SettingsManagement/DapodikConfig.vue — konfigurasi koneksi, sync manual, log terakhir
src/views/ReportCardManagement/Admin/DapodikRaporSync.vue — workflow sync rapor ke Dapodik
src/services/reportCard/reportCardDapodik.service.js — client service untuk bootstrap/validate/execute/export sync rapor
src/services/counseling/warningLetter.service.js — export kesiswaan ke Dapodik
Backend
../scola-odoo-module/scola_dapodik_connector/controllers/dapodik_api.py — config, test connection, sync, sync log
../scola-odoo-module/scola_dapodik_connector/controllers/kesiswaan_dapodik_api.py — export kesiswaan ke Dapodik
../scola-odoo-module/scola_dapodik_connector/models/dapodik_config.py — model konfigurasi Dapodik per company
../scola-odoo-module/scola_dapodik_connector/models/dapodik_sync_log.py — log sinkronisasi
../scola-odoo-module/scola_dapodik_connector/models/dapodik_validation.py — validation report
../scola-odoo-module/scola_dapodik_connector/models/dapodik_export.py — export wizard peserta didik / GTK / rombel
../scola-odoo-module/scola_dapodik_report_card_bridge/models/dapodik_rapor_sync.py — model sinkronisasi rapor
../scola-odoo-module/scola_dapodik_report_card_bridge/controllers/report_card_dapodik_api.py — endpoint /api/v1/report-card/dapodik/*
../scola-odoo-module/scola_dapodik_academic_bridge/controllers/timetable_dapodik_api.py — export akademik ke Dapodik
../scola-odoo-module/scola_dapodik_attendance_bridge/controllers/attendance_dapodik_api.py — attendance export ke Dapodik saat smart attendance terpasang
../scola-odoo-module/scola_bundle_dapodik/__manifest__.py — base bundle SC-DAP
../scola-odoo-module/scola_bundle_dapodik_attendance/__manifest__.py — companion bundle untuk attendance export Dapodik