Referensi Pengendalian Akses
Copy prompt pengaturan dengan 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 bundle tunggal.
Untuk walkthrough visual mengelola anggota di dashboard, lihat Organisasi.
Skop Peran
Bagian berjudul “Skop Peran”Setiap peran termasuk dalam suatu skop yang menentukan sumber daya apa yang memberikan akses.
| Skop | Berlaku pada | Contoh penggunaan |
|---|---|---|
| Organisasi | Seluruh org dan semua aplikasinya | Rekan bisnis 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 dalam aplikasi | Seorang insinyur QA hanya mengelola saluran staging saluran |
| Paket | Versi paket tunggal | Seorang reviewer memerlukan akses baca untuk satu rilis tertentu |
Seorang anggota dapat menempati satu peran per target ruang lingkup — misalnya, satu peran organisasi, satu peran di Aplikasi A, dan peran yang berbeda di Aplikasi B.
Peran organisasi
Bagian berjudul “Peran Organisasi”Peran-peran ini diberikan ketika mengundang anggota. Mereka memberikan akses di seluruh organisasi.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Super Admin | org_super_admin | Sama dengan pemilik. Pengontrolan penuh termasuk menghapus org, mengelola tagihan, dan mentransfer aplikasi. Diberikan secara otomatis kepada pembuat org. |
| Admin | org_admin | Pengelolaan penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus org, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna menjadi Super Admin. |
| Pengelola Tagihan | org_billing_admin | Akses tagihan saja: melihat dan mengupdate informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota. |
| Anggota | org_member | Akses baca-saja ke organisasi dan semua aplikasinya. |
Matriks izin organisasi
Judul bagian “Matriks izin organisasi”| Izin | Deskripsi | Super Admin | Admin | Manajer Billing | Anggota |
|---|---|---|---|---|---|
org.read | Lihat organisasi | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Ubah nama organisasi, logo, alamat email pengelola | ✅ | ✅ | ❌ | ❌ |
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 tagihan khusus | ✅ | ✅ | ✅ | ❌ |
Peran Aplikasi
Judul bagian “Peran Aplikasi”Terbatas pada aplikasi tunggal. Gunakan ketika anggota tim hanya bekerja pada satu aplikasi, bukan seluruh organisasi.
| Peran | Nama Internal | Deskripsi |
|---|---|---|
| Admin Aplikasi | app_admin | Penuh kontrol atas satu aplikasi — saluran, perangkat, peran pengguna untuk aplikasi. Tidak dapat menghapus atau mentransfer aplikasi (operasi organisasi tingkat). |
| 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. |
Matris Izin Aplikasi
Judul bagian “Matris Izin Aplikasi”| Izin | Deskripsi | Admin Aplikasi | Developer Aplikasi | Uploader Aplikasi | Baca Aplikasi |
|---|---|---|---|---|---|
app.read | Lihat detail, statistik, dan metadata aplikasi | ✅ | ✅ | ✅ | ✅ |
app.update_settings | Edit 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 | Tetapkan, ubah, atau lepas perangkat | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Lihat daftar perangkat | ✅ | ✅ | ✅ | ✅ |
app.build_native | Aktifkan bangunan 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 SaluranDisediakan untuk saluran tunggal. Berguna untuk memberikan akses yang spesifik ke saluran rilis tertentu.
| Peran | Nama Internal | Deskripsi |
|---|---|---|
| Pengaturan Saluran | channel_admin | Penuh kontrol atas satu saluran: pengaturan, promosikan/rollback paket, mengelola perangkat paksa. |
| Penglihat Saluran | channel_reader | Tidak dapat diedit — paket saat ini, riwayat, perangkat paksa, log audit. |
Matriks Izin Saluran
Judul bagian “Matriks Izin Saluran”| Izin | Deskripsi | Pengatur Saluran | Penglihat Saluran |
|---|---|---|---|
channel.read | Lihat saluran dan paket saat ini | ✅ | ✅ |
channel.update_settings | Sunting pengaturan saluran (tombol platform, kebijakan pembaruan…) | ✅ | ❌ |
channel.delete | Hapus saluran | ✅ | ❌ |
channel.read_history | Lihat riwayat pengaturan bundle | ✅ | ✅ |
channel.promote_bundle | Atur bundle aktif pada saluran | ✅ | ❌ |
channel.rollback_bundle | Kembali ke bundle sebelumnya | ✅ | ❌ |
channel.manage_forced_devices | Tunggu perangkat tertentu ke saluran ini | ✅ | ❌ |
channel.read_forced_devices | Lihat daftar perangkat yang ditunggu | ✅ | ✅ |
channel.read_audit | Lihat log aktivitas saluran | ✅ | ✅ |
Peran bundle
Judul bagian “Peran bundle”Ditetapkan pada versi bundle 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)
Judul bagian “Pengaturan Izin Saluran (Dashboard)”In dashboard, akses kanal ditentukan oleh peran aplikasi pengguna secara default. Untuk kontrol yang lebih halus, Anda dapat mengatur izin kanal tertentu untuk pengguna atau kelompok tanpa mengubah peran aplikasi mereka.
Konfigurasi pengaturan ini dilakukan dari tab Akses di aplikasi dengan mengklik tombol izin kanal (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengatur izin kanal untuk panduan visual.
izin yang dapat diatur
Judul bagian "Izin yang dapat diatur"| izin | Penjelasan | __CAPGO_KEEP_0__ |
|---|---|---|
| Baca | __CAPGO_KEEP_1__ dan __CAPGO_KEEP_2__ yang sedang aktif | Ditetapkan dari peran aplikasi |
| Riwayat | __CAPGO_KEEP_3__ riwayat pengaturan bundle | Ditetapkan dari peran aplikasi |
| Asosiasi bundle | Atur atau ubah bundle aktif di channel | Ditetapkan dari peran aplikasi |
Setiap izin dapat diatur menjadi:
- __CAPGO_KEEP_0__ Mewarisi dari peran aplikasi (default)
- Izinkan Mewarisi dari peran aplikasi (default) — secara eksplisit berikan, tanpa mempertimbangkan peran aplikasi
- Ditolak Mewarisi dari peran aplikasi (default) — secara eksplisit tolak, tanpa mempertimbangkan peran aplikasi
Fitur ini memungkinkan Anda, misalnya, memberikan peran App Reader kemampuan untuk menghubungkan bundle pada saluran tanpa mempromosikannya ke peran App Developer. staging Struktur Hierarki Peran
Judul bagian ‘Struktur Hierarki Peran’
Peran membentuk hierarki. Peran indukmewarisi semua izin peran anaknya. Hal ini berarti bahwa peran App Developer mewarisi semua izin peran App Reader dan App Publisher. org_admin dapat melakukan semua yang dapat dilakukan oleh app_admin dapat, yang pada gilirannya dapat melakukan semua yang dapat dilakukan oleh 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 secara praktis:
- Seorang Admin di tingkat org dapat melakukan semua yang dapat dilakukan oleh Admin Aplikasi dapat, pada setiap aplikasi di org.
- Seorang Admin Aplikasi di sebuah aplikasi tertentu dapat melakukan semua yang dapat dilakukan oleh Pengelola Saluran di setiap saluran di aplikasi tersebut.
- Seorang Pengembang Aplikasi dapat melakukan semua yang dapat dilakukan oleh Uploader Aplikasi dan lebih banyak lagi.
Hierarki hanya mengalir ke bawah — tidak pernah mendapatkan hak akses organisasi tingkat, bahkan jika mereka juga menjabat sebagai peran aplikasi tingkat. channel_admin __CAPGO_KEEP_0__
Kelompok
Judul Bagian “Kelompok”Alihkan peran ke setiap pengguna secara individual, Anda dapat membuat kelompok dan menugaskan peran ke kelompok. Setiap anggota kelompok mewarisi peran secara otomatis.
Bagaimana kelompok bekerja
Judul Bagian “Bagaimana kelompok bekerja”- Kelompok milik satu organisasi — tidak dapat menjangkau organisasi lebih dari satu.
- Kelompok dapat menampung pengikat peran pada apapun ruang lingkupUntuk organisasi, aplikasi, saluran, atau paket. Misalnya, sebuah kelompok dapat diberikan peran Pengembang Aplikasi pada Aplikasi A dan peran Admin Saluran pada saluran Aplikasi B.
stagingKetika hak akses pengguna dievaluasi, semua keanggotaan kelompok mereka diresolusi secara transparan. Jika salah satu kelompok mereka memberikan izin yang diperlukan, akses diizinkan. - Seorang pengguna dapat bergabung dengan
- kelompok-kelompok , dan izin dari semua kelompok bersifat aditif.Hak akses berdasarkan kelompok hanya berlaku untuk
- prinsipal pengguna App Developer — API kunci tidak mewarisi peran grup.
Kapan menggunakan grup
Judul bagian “Kapan menggunakan grup”| Skenario | Tidak ada 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 grup |
| Seseorang meninggalkan tim QA | Hapus 3 pengikat peran secara manual | Hapus mereka dari kelompok |
Mengelola kelompok melalui API
Bab berjudul “Mengelola kelompok melalui API”Semua endpoint kelompok memerlukan autentikasi dan disajikan di bawah /private/groups.
Daftar kelompok
Bab berjudul “Daftar kelompok”curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Diperlukan org.read_members izin.
Buat grup
Judul bagian “Buat grup”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 grup
Judul bagian “Perbarui grup”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>"Tambahkan anggota ke grup
Judul bagian “Tambahkan anggota ke grup”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 operasi tidak berubah.
Hapus anggota dari kelompok
Judul bagian “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
Judul Bagian “Mengasignkan peran melalui API”Daftar anggota
Judul Bagian “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
Judul Bagian “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 ditugaskan |
|---|---|
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
Bagian berjudul “Mengasignkan peran melalui CLI”Daftar organisasi
Bagian berjudul “Daftar organisasi”npx @capgo/cli organization list --apikey <API_KEY>Daftar anggota
Bagian berjudul “Daftar anggota”npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>Peran khusus
Judul bagian “Peran khusus”Peran bawaan mencakup struktur tim sebagian besar. Pembuatan peran khusus ada di roadmap kami — jika hal ini diperlukan oleh tim Anda, hubungi kamiKasus penggunaan Anda akan langsung membantu kami memprioritaskan fitur ini.
Lanjutkan dari Referensi Pengendalian Akses
Judul bagian “Lanjutkan dari Referensi Pengendalian Akses”Jika Anda menggunakan Referensi Pengendalian Akses untuk merencanakan dashboard dan API operasi, hubungkannya dengan API Overview untuk detail implementasi di API Overview, 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.