Referensi Pengendalian Akses
Membuat prompt pengaturan dengan langkah-langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Capgo menggunakan pengaturan akses berdasarkan peran (RBAC) untuk mengelola apa yang dapat dilakukan oleh setiap anggota tim. Peran diatur berdasarkan ruang lingkup – dari organisasi keseluruhan hingga bundel tunggal.
Untuk melihat panduan visual mengelola anggota di dashboard, lihat Organisasi.
Lingkup peran
Judul “Lingkup peran”Setiap peran termasuk dalam lingkup yang menentukan sumber daya apa yang memberikan akses.
| Lingkup | Berlaku untuk | Contoh penggunaan |
|---|---|---|
| Organisasi | Seluruh org dan semua aplikasinya | Rekan pendiri Anda mendapatkan Super Admin; akuntan Anda mendapatkan Billing Manager |
| Aplikasi | Aplikasi tunggal dan saluran-salurannya | Seorang kontraktor yang bekerja pada satu aplikasi mendapatkan App Developer |
| Saluran | Saluran tunggal di dalam aplikasi | Seorang insinyur QA hanya mengelola saluran-salurannya staging Saluran |
| Paket | Versi paket tunggal | Seorang reviewer membutuhkan akses baca untuk satu rilis tertentu |
Seorang anggota dapat menjabat satu peran per lingkungan target — misalnya, satu peran di organisasi, satu peran di Aplikasi A, dan peran yang berbeda di Aplikasi B.
Peran Organisasi
Judul Bagian “Peran Organisasi”Peran-peran ini diberikan ketika mengundang anggota. Mereka memberikan akses di seluruh organisasi.
| Peran | Nama Internal | Deskripsi |
|---|---|---|
| Pengatur Utama | org_super_admin | Sama dengan pemilik. Pengontrol penuh termasuk menghapus organisasi, mengelola tagihan, dan mentransfer aplikasi. Otomatis diberikan kepada pembuat organisasi. |
| Pengelola | org_admin | Pengelolaan penuh — kelola anggota, aplikasi, saluran. Tidak dapat menghapus organisasi, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna ke Pengatur Utama. |
| Pengelola Tagihan | org_billing_admin | Akses tagihan hanya: lihat dan update informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota. |
| Anggota | org_member | Akses membaca hanya untuk org dan semua aplikasinya. |
Matris Izin Organisasi
Bab berjudul “Matris Izin Organisasi”| Izin | Deskripsi | Super Admin | Admin | Pengelola Tagihan | Anggota |
|---|---|---|---|---|---|
org.read | Lihat organisasi | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Ubah nama org, logo, email pengelolaan | ✅ | ✅ | ❌ | ❌ |
org.delete | Hapus organisasi secara permanen | ✅ | ❌ | ❌ | ❌ |
org.read_members | Lihat daftar anggota | ✅ | ✅ | ❌ | ✅ |
org.invite_user | Undang anggota baru | ✅ | ✅ | ❌ | ❌ |
org.update_user_roles | Ubah peran anggota (Admin tidak dapat mempromosikan ke Super Admin — diblokir oleh hierarki peran) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | Lihat informasi tagihan dan paket saat ini | ✅ | ✅ | ✅ | ❌ |
org.update_billing | Perbarui metode pembayaran dan paket | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Lihat faktur | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Lihat log aktivitas organisasi | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Lihat log audit khusus tagihan | ✅ | ✅ | ✅ | ❌ |
Peran Aplikasi
Judul bagian “Peran Aplikasi”Disediakan untuk aplikasi tunggal. Gunakan ini ketika anggota tim hanya bekerja pada satu aplikasi, bukan seluruh organisasi.
| Peran | Nama Internal | Deskripsi |
|---|---|---|
| Admin Aplikasi | app_admin | Kontrol penuh atas satu aplikasi — saluran, perangkat, peran pengguna untuk aplikasi. Tidak dapat menghapus atau mentransfer aplikasi (operasi tingkat organisasi). |
| Pengembang Aplikasi | app_developer | Unggah bundle, kelola perangkat, trigger build native, update pengaturan saluran. Tidak ada penghapusan, tidak ada perubahan pengaturan aplikasi, tidak ada pembuatan saluran. |
| Uploader Aplikasi | app_uploader | Akses baca + unggah versi bundle baru. |
| Pembaca Aplikasi | app_reader | Tidak dapat diedit — statistik, bundle, saluran, log, perangkat. |
Matriks Izin Aplikasi
Bagian berjudul “Matriks Izin Aplikasi”| Izin | Deskripsi | Admin Aplikasi | Pengembang Aplikasi | Uploader Aplikasi | Baca Aplikasi |
|---|---|---|---|---|---|
app.read | Lihat detail, statistik, dan metadata aplikasi | ✅ | ✅ | ✅ | ✅ |
app.update_settings | Ubah pengaturan aplikasi | ✅ | ❌ | ❌ | ❌ |
app.read_bundles | Lihat daftar bundle yang diunggah | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Unggah versi bundle baru | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Buat saluran baru | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Lihat saluran | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Lihat log pengiriman update | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Assign, override, atau lepas perangkat | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Lihat daftar perangkat | ✅ | ✅ | ✅ | ✅ |
app.build_native | Aktifkan bangun awan asli | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Lihat log aktivitas aplikasi | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Kelola penugasan peran aplikasi | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Hapus sebuah paket | ✅ | ❌ | ❌ | ❌ |
Peran saluran
Judul bagian “Peran saluran”Ditujukan pada saluran tunggal. Berguna untuk memberikan akses yang spesifik ke saluran rilis tertentu.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Admin Saluran | channel_admin | Penuh kontrol atas satu saluran: pengaturan, promosikan/rollback paket, mengelola perangkat paksa. |
| Pengunjung Saluran | channel_reader | Akses baca saja — paket saat ini, riwayat, perangkat paksa, log audit. |
Matris Izin Saluran
Judul bagian “Matris Izin Saluran”| Izin | Deskripsi | Admin Saluran | Pengunjung Saluran |
|---|---|---|---|
channel.read | Lihat saluran dan paket saat ini | ✅ | ✅ |
channel.update_settings | Ubah pengaturan saluran (tombol platform, kebijakan pembaruan…) | ✅ | ❌ |
channel.delete | Hapus saluran | ✅ | ❌ |
channel.read_history | Tinjau riwayat pengaturan paket | ✅ | ✅ |
channel.promote_bundle | Tetapkan paket aktif pada saluran | ✅ | ❌ |
channel.rollback_bundle | Kembali ke paket sebelumnya | ✅ | ❌ |
channel.manage_forced_devices | Kompulasi perangkat tertentu ke saluran ini | ✅ | ❌ |
channel.read_forced_devices | Tinjau daftar perangkat yang dipaksa | ✅ | ✅ |
channel.read_audit | Tinjau log aktivitas saluran | ✅ | ✅ |
Pengaturan peran paket
Judul bagian “Pengaturan peran paket”Ditetapkan pada versi paket tunggal. Jarang dibutuhkan — kebanyakan tim menggunakan peran aplikasi daripada ini.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Pengelola Paket | bundle_admin | Baca, update metadata, dan hapus paket tertentu. |
| Penglihat Paket | bundle_reader | Akses baca-saja ke paket tertentu. |
Pengaturan Izin Saluran (Dashboard)
Izin akses saluran (Dashboard)Di dashboard, akses saluran ditentukan oleh peran aplikasi pengguna secara default. Untuk kontrol yang lebih halus, Anda dapat mengatur izin akses saluran tertentu per pengguna atau kelompok tanpa mengubah peran aplikasi mereka.
Pengaturan diatur dari tab Akses di aplikasi dengan mengklik tombol izin saluran (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengatur izin akses saluran untuk panduan visual.
Izin yang dapat diatur
Izin yang dapat diatur| Izin | Deskripsi | Behavior default |
|---|---|---|
| Baca | Lihat saluran dan bundle saat ini | Ditetapkan dari peran aplikasi |
| Sejarah | Lihat riwayat pengaturan bundle | Ditetapkan dari peran aplikasi |
| Hubungkan bundle | Atur atau ubah bundle aktif di saluran | Ditetapkan dari peran aplikasi |
Setiap izin dapat diatur ke:
- Bahasa Indonesia — mewarisi peran aplikasi (default)
- Izinkan — memberikan izin secara eksplisit, terlepas dari peran aplikasi
- Tolak — secara eksplisit melarang, terlepas dari peran aplikasi
Ini memungkinkan Anda, misalnya, memberikan kemampuan App Reader untuk menghubungkan bundle pada saluran tanpa mempromosikannya ke App Developer. staging Hierarki peran
Judul bagian “Hierarki peran”
Peran membentuk hierarki. Peran indukmewarisi semua izin Hierarki Peran dari anak-anaknya. Ini berarti sebuah org_admin dapat melakukan segala sesuatu sebuah app_admin dapat, yang pada gilirannya dapat melakukan segala sesuatu sebuah channel_admin dapat, dan seterusnya.
Super Admin (org_super_admin) └── Admin (org_admin) └── App Admin (app_admin) ├── App Developer (app_developer) │ └── App Uploader (app_uploader) │ └── App Reader (app_reader) ├── Bundle Admin (bundle_admin) │ └── Bundle Viewer (bundle_reader) └── Channel Admin (channel_admin) └── Channel Viewer (channel_reader)Bagaimana cara kerjanya dalam prakteknya:
- Sebuah Admin di tingkat org dapat melakukan segala sesuatu sebuah App Admin dapat, di setiap aplikasi di org.
- Sebuah Admin Aplikasi dapat melakukan semua yang dapat dilakukan oleh Admin Saluran pada setiap saluran di aplikasi tersebut.
- Seorang Pengembang Aplikasi dapat melakukan semua yang dapat dilakukan oleh Uploader Aplikasi selain itu, dia juga dapat melakukan lebih banyak lagi.
Hierarki hanya mengalir ke bawah — tidak ada yang dapat mengubahnya channel_admin tidak pernah mendapatkan izin organisasi, bahkan jika mereka juga memiliki peran aplikasi.
Alih-alih menugaskan peran ke setiap pengguna secara individu, Anda dapat membuat grup dan menugaskan peran ke grup. Setiap anggota grup mewarisi peran tersebut secara otomatis.
Bagaimana grup bekerja
Judul bagian “Bagaimana grup bekerja”- Grup milik salah satu organisasi — tidak dapat menjangkau organisasi lain.
- Grup dapat menampung ikatan peran pada apapun ruang lingkup: organisasi, aplikasi, saluran, atau paket. Misalnya, sebuah kelompok dapat diberi peran App Pengembang pada Aplikasi A dan peran Channel Admin pada saluran aplikasi B.
stagingSaat hak akses pengguna dievaluasi, semua keanggotaan kelompok mereka diresolusi secara transparan. Jika salah satu kelompok mereka memberikan izin yang diperlukan, akses diizinkan. - Pengguna dapat bergabung dengan
- kelompok-kelompok , dan izin dari semua kelompok bersifat aditif.Izin berbasis kelompok hanya berlaku pada
- apapun ruang lingkup prinsipal pengguna — API kunci tidak mewarisi peran grup.
Kapan menggunakan grup
Bagian berjudul “Kapan menggunakan grup”| Skenario | Tanpa grup | Dengan grup |
|---|---|---|
| 5 insinyur QA membutuhkan akses Developer ke 3 aplikasi | 15 pengikat peran individu | 1 grup + 3 pengikat peran |
| Seseorang bergabung dengan tim QA | Tambahkan 3 pengikat peran secara manual | Tambahkan mereka ke kelompok |
| Seseorang meninggalkan tim QA | Hapus 3 pengikat peran secara manual | Hapus mereka dari kelompok |
Mengelola kelompok melalui API
Judul bagian “Mengelola kelompok melalui API”Semua endpoint kelompok memerlukan autentikasi dan disajikan di /private/groups.
Daftar kelompok
Judul bagian “Daftar kelompok”curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Memerlukan org.read_members izin.
Buat kelompok
Judul bagian “Buat kelompok”curl -X POST "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "name": "QA Team", "description": "Quality assurance engineers" }'Memerlukan org.update_user_roles izin (Super Admin atau Admin).
Perbarui kelompok
Judul bagian “Perbarui kelompok”curl -X PUT "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "name": "QA Team", "description": "Updated description" }'Hapus grup
Judul bagian “Hapus grup”curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>"Menghapus grup juga menghapus semua ikatan peran di dalamnya. Anggota tidak dihapus dari organisasi.
Daftar anggota grup
Judul bagian “Daftar anggota grup”curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>"Menambahkan anggota ke grup
Bagian berjudul “Tambahkan anggota ke kelompok”curl -X POST "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "user_id": "<USER_UUID>" }'Pengguna harus sudah menjadi anggota organisasi. Menambahkan anggota yang sudah ada adalah tidak ada tindakan.
Hapus anggota dari kelompok
Bagian berjudul “Hapus anggota dari kelompok”curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \ -H "authorization: <API_KEY>"Mengasignkan peran melalui API
Bagian berjudul “Mengasignkan peran melalui API”Daftar anggota
Bagian berjudul “Daftar anggota”curl -X GET "https://api.capgo.app/organization/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "orgId": "<ORG_ID>" }'Respons:
[ { "uid": "user-uuid", "email": "alice@example.com", "image_url": "https://...", "role": "org_admin", "is_tmp": false }]Undang anggota
Bagian berjudul “Undang anggota”curl -X POST "https://api.capgo.app/organization/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "orgId": "<ORG_ID>", "email": "bob@example.com", "invite_type": "org_admin" }'Nilai-nilai yang diterima invite_type:
| Nilai | Peran yang diberikan |
|---|---|
org_super_admin | Super Admin |
org_admin | Admin |
org_billing_admin | Pengelola Billing |
org_member | Anggota |
Hapus anggota
Judul bagian “Hapus anggota”curl -X DELETE "https://api.capgo.app/organization/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "orgId": "<ORG_ID>", "email": "bob@example.com" }'Mengasignkan peran melalui CLI
Judul Bagian “Mengasignkan peran melalui CLI”Daftar organisasi
Judul Bagian “Daftar organisasi”npx @capgo/cli organization list --apikey <API_KEY>Daftar anggota
Judul Bagian “Daftar anggota”npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>Peran khusus
Judul bagian “Peran khusus”Peran bawaan mencakup struktur tim yang paling umum. Pembuatan peran khusus sedang dalam rencana — jika tim Anda membutuhkannya, hubungi kami. Kasus guna Anda akan membantu kami memprioritaskan fitur ini secara langsung.
Teruskan dari Referensi Pengendalian Akses
Judul bagian “Teruskan dari Referensi Pengendalian Akses”Jika Anda menggunakan Referensi Pengendalian Akses untuk merencanakan operasi dashboard dan API , hubungkan dengan API Ringkasan untuk detail implementasi di API Ringkasan, Pendahuluan untuk detail implementasi di Pendahuluan, API Kunci untuk detail implementasi di API Kunci, Perangkat untuk detail implementasi di Perangkat, dan Paket untuk detail implementasi di Paket.