Skip to main content

Permission Release SOP

SOP ini menjadi acuan rilis perubahan role-permission admin agar aman dan terukur.

Scope

  • Berlaku untuk perubahan pada:
    • permission-keys-map
    • permission-matrix.json
    • seeder permission di backend

Pre-deploy checklist

  • Perubahan permission sudah direview minimal oleh 2 pihak (engineering + ops/compliance).
  • permission-matrix.json sudah update version.
  • Changelog PR mencantumkan:
    • role yang berubah
    • permission baru/hapus/rename
    • dampak operasional
  • UAT role kritikal selesai:
    • super-admin
    • compliance-admin
    • wallet-ops-l1
    • wallet-ops-l2
  • Backup snapshot tabel permission/role sudah disiapkan.

Deploy steps

  1. Pastikan aplikasi dalam kondisi normal (tidak ada incident aktif).
  2. Deploy kode backend + dokumen matrix.
  3. Jalankan seeder permission:
    • php artisan db:seed --class=AdminPermissionSeeder
  4. Jalankan drift check:
    • ikuti admin-panel/permission-drift-check
  5. 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:

  1. Restore mapping role-permission dari snapshot sebelum deploy.
  2. Re-run seeder versi stabil sebelumnya.
  3. Validasi ulang route kritikal (approve/reject/suspend/maintenance).
  4. 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.