Satu SPA, lima produk: shell aplikasi opex-aio
Lima produk, satu login, satu shell aplikasi. Ini bentuk shell tersebut.
Product switcher
Baris tenant_product menentukan apa yang boleh dipakai sebuah tenant.
/api/me mengembalikan entitlements, dan product switcher di shell hanya
menampilkan produk yang berhak dipakai tenant. Membeli produk adalah satu
insert — /api/me berikutnya menampilkannya, tanpa deploy klien.
Command palette
Cmd+K melompat ke item nav mana pun dan mencari semua resource yang bisa dilihat tenant — tiket, task, kontak, deals, time entries — melalui satu endpoint pencarian yang sadar-entitlement. Setiap fan-out resource terisolasi dari kegagalan, jadi satu tabel lambat tidak pernah memblokir palette.
Sidebar
Setiap produk mendeklarasikan konfigurasi nav-nya sendiri
(NavGroup/NavItem), dijaga oleh role dan entitlement, dan shell
merendernya. Satu konfigurasi, tiga permukaan: sidebar, rail yang diciutkan,
dan bottom nav mobile.
Kebenaran server
Gate klien hanyalah UX. Gate sesungguhnya adalah requireProduct(code) di
setiap namespace /api/<produk>/* — tenant yang hanya punya helpdesk
mendapat 402 sebelum permintaannya menyentuh tabel PMO.