Common Maintenance Tasks (Task-Based)
Fokus: skenario praktis yang sering kejadian. Semua langkah di bawah diasumsikan dilakukan di branch terpisah + environment non-production dulu.
1) Tambah field baru di API response
Tujuan: menambah informasi tanpa merusak client lama.
File yang diubah:
- Controller/Resource terkait endpoint
docs/api-reference.mddocs/request-response-catalog.md
Langkah aman:
- Tambah field sebagai optional (jangan langsung mandatory).
- Pastikan default/null handling aman.
- Tambah test response schema.
- Update dokumentasi endpoint.
Verifikasi:
- Endpoint lama tetap lolos kontrak minimal.
- Client lama tidak error parsing.
Risiko rollback:
- Jika client bermasalah, rollback ke response sebelumnya.
- Simpan kompatibilitas minimal 1 versi rilis.
2) Perbaiki bug transisi status PO
Tujuan: mencegah status lompat tanpa otorisasi.
File yang diubah:
- Controller/service status PO
- Rule validasi role
docs/state-machine.md
Langkah aman:
- Mapping status saat ini vs status target.
- Tambah guard per role.
- Tambah test untuk jalur valid dan invalid.
Verifikasi:
- Role tidak berhak mendapat 403.
- Jalur valid tetap berjalan.
Risiko rollback:
- Revert patch status guard.
- Audit data PO yang sempat berubah selama window issue.
3) Menambah endpoint internal baru
Tujuan: menyediakan kebutuhan data modul lain.
File yang diubah:
- Routes + controller endpoint baru
- Middleware access
docs/api-endpoints.md,docs/api-reference.md
Langkah aman:
- Definisikan kontrak request/response jelas.
- Pasang middleware akses minimum.
- Rate-limit bila endpoint berat.
Verifikasi:
- Hanya role berhak yang bisa akses.
- Latency endpoint masih dalam batas tim.
Risiko rollback:
- Disable route baru.
- Revert release endpoint.
4) Rotasi credential integrasi
Tujuan: ganti credential service eksternal tanpa downtime.
File yang diubah:
- File env/config integrasi
docs/integration-points.md
Langkah aman:
- Siapkan credential baru (dual-valid jika memungkinkan).
- Deploy dengan fallback ke key lama (sementara).
- Uji koneksi read-only dulu.
Verifikasi:
- Request integrasi sukses.
- Tidak ada lonjakan error auth.
Risiko rollback:
- Balik ke credential lama yang masih aktif.
- Dokumentasikan waktu rotasi.
5) Menangani failed queue job
Tujuan: memulihkan job gagal tanpa duplikasi efek samping.
File yang diubah:
- Job handler terkait
- Konfigurasi queue/retry
docs/observability-ops.md
Langkah aman:
- Identifikasi root cause dari failed_jobs/log.
- Pastikan job idempotent sebelum retry massal.
- Retry bertahap.
Verifikasi:
- Failed job count turun.
- Tidak ada data dobel.
Risiko rollback:
- Stop retry.
- Restore data terdampak jika ada duplikasi.
6) Patch query lambat
Tujuan: menurunkan waktu respon endpoint berat.
File yang diubah:
- Repository/query builder
- Migration index (jika perlu)
docs/database-design-full.md
Langkah aman:
- Ambil baseline query plan.
- Ubah query/index satu per satu.
- Uji performa di data staging representatif.
Verifikasi:
- P95 latency membaik.
- Hasil query tetap konsisten.
Risiko rollback:
- Revert query/index baru jika menurunkan performa write.
7) Update rule validasi input
Tujuan: menutup data invalid masuk sistem.
File yang diubah:
- FormRequest/validator
- Test validasi
docs/api-cookbook.md
Langkah aman:
- Tandai validasi baru yang berpotensi breaking.
- Jika breaking, rilis bertahap + komunikasi.
- Tambah contoh payload valid/invalid.
Verifikasi:
- Input invalid ditolak dengan pesan jelas.
- Input valid lama tetap aman (jika non-breaking).
Risiko rollback:
- Kembalikan rule lama sementara.
- Catat dampak data invalid yang terlanjur masuk.
8) Penyesuaian role permission
Tujuan: menyesuaikan hak akses tanpa membuka celah.
File yang diubah:
- Middleware/Policy/Gate
- Seeder role-permission (jika ada)
docs/role-access-matrix.md
Langkah aman:
- List endpoint terdampak.
- Update policy + test akses per role.
- Review oleh senior sebelum merge.
Verifikasi:
- Role target dapat akses sesuai kebutuhan.
- Role lain tetap terblokir.
Risiko rollback:
- Revert mapping permission.
- Audit akses selama periode perubahan.
9) Hotfix bug produksi (non-schema)
Tujuan: memperbaiki bug kritikal secepat mungkin tapi tetap aman.
File yang diubah:
- File bug source (controller/service)
- Test regresi
docs/changelog.md
Langkah aman:
- Reproduce bug.
- Patch minimal (smallest safe fix).
- Tambah test regresi sebelum deploy.
Verifikasi:
- Gejala hilang.
- Jalur utama tidak rusak.
Risiko rollback:
- Rollback release hotfix.
- Aktifkan workaround sementara jika tersedia.
10) Perubahan enum/status bisnis
Tujuan: menambah/mengubah status tanpa merusak alur lama.
File yang diubah:
- Enum/model/status validator
- State transition logic
docs/state-machine.md,docs/business-flows.md
Langkah aman:
- Definisikan state transition baru lengkap.
- Cek dampak ke report, notifikasi, dan API.
- Backfill data lama jika diperlukan.
Verifikasi:
- Transisi status valid sesuai flow.
- Report dan notifikasi tidak salah hitung.
Risiko rollback:
- Nonaktifkan status baru.
- Kembalikan data ke status lama (sesuai playbook data).