# Roadmap migrasi (eksekusi) ## Fase 1 — API inti (`Json.php`) ✅ (kerangka + logika port) - [x] Audit method & tabel - [x] `MobileJsonService` + `MobileJsonController` - [x] Rute `api/mobile` + alias `json` - [x] Upload path di `public/assets/uploads/...` - [ ] Uji parity di staging dengan DB salinan - [ ] Sinkronisasi file upload lama dari server CI3 (jika perlu) ## Fase 2 — Auth & hardening - [ ] Rate limit `login` - [ ] Rencana upgrade password (dual column / flag migrasi) - [ ] CORS origin spesifik per lingkungan - [ ] Logging audit presensi ## Fase 3 — Admin rebuild - [ ] Pilih stack auth admin (Shield / custom) - [ ] Port modul `admin` per domain: Pegawai, Presensi, Laporan, … - [ ] Ganti PHPExcel → PhpSpreadsheet - [ ] Hapus / kurangi ketergantungan Grocery CRud bertahap ## Fase 4 — Cleanup & optimasi - [ ] Pecah `MobileJsonService` menjadi service + repository/model - [ ] Indeks DB untuk query ramai (`presensi`, `cuti`, …) - [ ] Matikan CI3 endpoint per endpoint setelah cutover - [ ] Build TailAdmin CSS produksi (ganti CDN jika diperlukan) ## Dependensi - DB schema sama antara CI3 dan CI4 selama transisi. - `app.baseURL` dan `.env` database harus benar di CI4. ## Risiko & blocker Lihat [risks.md](risks.md).