Permission Release SOP
SOP ini menjadi acuan rilis perubahan role-permission admin agar aman dan terukur.
Scope
- Berlaku untuk perubahan pada:
permission-keys-mappermission-matrix.json- seeder permission di backend
Pre-deploy checklist
- Perubahan permission sudah direview minimal oleh 2 pihak (engineering + ops/compliance).
-
permission-matrix.jsonsudah updateversion. - Changelog PR mencantumkan:
- role yang berubah
- permission baru/hapus/rename
- dampak operasional
- UAT role kritikal selesai:
super-admincompliance-adminwallet-ops-l1wallet-ops-l2
- Backup snapshot tabel permission/role sudah disiapkan.
Deploy steps
- Pastikan aplikasi dalam kondisi normal (tidak ada incident aktif).
- Deploy kode backend + dokumen matrix.
- Jalankan seeder permission:
php artisan db:seed --class=AdminPermissionSeeder
- Jalankan drift check:
- ikuti
admin-panel/permission-drift-check
- ikuti
- Validasi login dan akses minimal per role.
Post-deploy validation
-
missing_in_db_count = 0 -
extra_in_db_count = 0(atau terdokumentasi exception) - Tidak ada mismatch role assignment kritikal
- Route high-risk bisa diakses hanya oleh role yang seharusnya
- Endpoint test (
send.notification,fcm.test) tetap terkontrol
Rollback plan
Jika terjadi akses berlebih/terputus:
- Restore mapping role-permission dari snapshot sebelum deploy.
- Re-run seeder versi stabil sebelumnya.
- Validasi ulang route kritikal (approve/reject/suspend/maintenance).
- Catat incident + root cause + action item.
Operasional guardrail
- Jadwalkan perubahan permission di jam low traffic.
- Hindari menggabungkan perubahan permission besar dengan rilis fitur kritikal lain.
- Wajib monitoring audit log selama minimal 24 jam setelah rilis.