Lewati ke isi

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