- CORS production memakai allowlist dan tidak menggabungkan wildcard dengan credentials.
- Validasi body, query, params, enum, ukuran payload, dan ownership di server.
- Gunakan parameter/query builder; jangan membangun query dari string input mentah.
- Secret hanya di server runtime dan Vercel Environment Variables.
- Rate limit auth, upload, dan public endpoints secara terpisah.
- Beri request id pada log dan response tanpa membocorkan token atau stack trace.
- Gunakan idempotency untuk payment, invitation, dan workflow yang bisa di-retry.
- Audit status transition dan actor pada resource transaksi atau ledger.
- Tenant scope selalu dimulai dari resource owner; scalar reference lintas database bukan foreign key atau izin akses.
- Aksi berfitur wajib lulus entitlement tenant dan permission actor; subscription tidak memberikan permission.
- Jangan memakai transaction/join Prisma lintas Billing, Runner, Catalog, Commerce, dan Inventory; gunakan outbox/inbox idempoten dan reconciliation.
- Archive bukan delete. Purge mengikuti retention policy, legal hold, pemberitahuan, export window, dan audit.