Referensi Pengendalian Akses
Copy sebuah 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-peran diatur berdasarkan ruang lingkup — dari organisasi keseluruhan hingga bundle tunggal.
Untuk panduan visual mengelola anggota di dashboard, lihat Organisasi.
Ruang lingkup peran
Bagian berjudul “Ruang lingkup peran”Setiap peran termasuk dalam ruang lingkup yang menentukan sumber daya apa yang memberikan akses.
| Ruang lingkup | Berlaku untuk | Contoh penggunaan |
|---|---|---|
| Organisasi | Seluruh organisasi dan semua aplikasinya | Ko-fondernya mendapatkan Super Admin; akuntannya mendapatkan Billing Manager |
| Aplikasi | Aplikasi tunggal dan saluran-salurannya | Kontraktor yang bekerja pada satu aplikasi mendapatkan App Developer |
| Saluran | Saluran tunggal dalam aplikasi | Insinyur QA hanya mengelola saluran ini staging Paket |
| Versi paket tunggal | __CAPGO_KEEP_0__ | A reviewer memerlukan akses baca ke satu rilis tertentu |
Anggota dapat menjabat Satu peran per target ruang lingkup — misalnya, satu peran 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. Mengontrol sepenuhnya termasuk menghapus org, mengelola tagihan, dan mentransfer aplikasi. Otomatis diberikan kepada pembuat org. |
| Admin | org_admin | Pengaturan Penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus organisasi, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna menjadi Super Admin. |
| Billing Manager | org_billing_admin | Akses Billing-only: melihat dan mengupdate informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota. |
| Member | org_member | Akses baca-saja ke organisasi dan semua aplikasinya. |
Matriks Izin Organisasi
Judul bagian “Matriks Izin Organisasi”| Izin | Deskripsi | Super Admin | Admin | Manajer Tagihan | 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 | Ubah metode pembayaran dan paket | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Lihat faktur | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Lihat log aktivitas organisasi | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Lihat log audit khusus billing | ✅ | ✅ | ✅ | ❌ |
di semua aplikasi dan saluran.
Peran AplikasiDitargetkan pada aplikasi tunggal. Gunakan hal ini ketika anggota tim hanya boleh 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. |
Matris izin aplikasi
Judul bagian “Matris izin aplikasi”| Izin | Deskripsi | Pengelola Aplikasi | Pengembang Aplikasi | Pengunggah Aplikasi | Pembaca Aplikasi |
|---|---|---|---|---|---|
app.read | Lihat detail aplikasi, statistik, dan metadata | ✅ | ✅ | ✅ | ✅ |
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 | Tetapkan, override, atau lepaskan perangkat | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Lihat daftar perangkat | ✅ | ✅ | ✅ | ✅ |
app.build_native | Aktifkan bangunan awan native | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Lihat log aktivitas aplikasi | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Kelola pengaturan peran aplikasi | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Hapus paket | ✅ | ❌ | ❌ | ❌ |
Peran saluran
Judul bagian “Peran saluran”Terbatas pada saluran tunggal. Berguna untuk memberikan akses yang spesifik ke saluran rilis tertentu.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Pengelola Saluran | channel_admin | Kontrol penuh atas satu saluran: pengaturan, promosikan/rollback bundle, mengelola perangkat paksa. |
| Penglihat Saluran | channel_reader | Tidak dapat diedit — bundle saat ini, riwayat, perangkat paksa, log audit. |
Matris otorisasi saluran
Bagian berjudul “Matris otorisasi saluran”| Otorisasi | Deskripsi | Pengaturan Saluran | Pengguna Saluran |
|---|---|---|---|
channel.read | Lihat saluran dan paket saat ini | ✅ | ✅ |
channel.update_settings | Ubah pengaturan saluran (toggle platform, kebijakan update…) | ✅ | ❌ |
channel.delete | Hapus saluran | ✅ | ❌ |
channel.read_history | Lihat riwayat pengaturan paket | ✅ | ✅ |
channel.promote_bundle | Tetapkan paket aktif pada saluran | ✅ | ❌ |
channel.rollback_bundle | Kembali ke paket sebelumnya | ✅ | ❌ |
channel.manage_forced_devices | Tetapkan perangkat tertentu ke saluran ini | ✅ | ❌ |
channel.read_forced_devices | Lihat daftar perangkat yang dipaksa | ✅ | ✅ |
channel.read_audit | Lihat log aktivitas saluran | ✅ | ✅ |
Paketan peran
Judul bagian “Paketan peran”Terbatas pada satu versi paket. Jarang dibutuhkan — sebagian besar tim menggunakan peran aplikasi daripada peran.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Admin Paket | bundle_admin | Membaca, memperbarui metadata, dan menghapus bundle tertentu. |
| Penglihatan Bundle | bundle_reader | Akses baca-saja ke bundle tertentu. |
Penetapan izin saluran (Dashboard)
Judul bagian “Penetapan izin saluran (Dashboard)”Pada dashboard, akses saluran ditentukan oleh peran aplikasi pengguna secara default. Untuk kontrol yang lebih halus, Anda dapat mengatur kembali izin saluran tertentu per pengguna atau kelompok tanpa mengubah peran aplikasi mereka.
Pengaturan diatur dari tab Akses tab aplikasi dengan mengklik tombol izin saluran (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengatur ulang izin saluran untuk melihat panduan visual.
Izin yang dapat diubah
Judul bagian “Izin yang dapat diubah”| Izin | Deskripsi | Tindakan default |
|---|---|---|
| Baca | Lihat saluran dan paket yang sedang berjalan | Diturunkan dari peran aplikasi |
| Riwayat | Lihat riwayat penugasan paket | Diturunkan dari peran aplikasi |
| Asosiasi bundle | Atur atau ubah bundle aktif di saluran | Diturunkan dari peran aplikasi |
Setiap izin dapat diatur menjadi:
- Default — turunkan dari peran aplikasi (default)
- Izinkan — izinkan secara eksplisit, terlepas dari peran aplikasi
- Tolak — tolak secara eksplisit, terlepas dari peran aplikasi
Fungsi ini memungkinkan Anda, misalnya, memberikan App Reader kemampuan untuk mengasosiasikan bundle di saluran tanpa mempromosikannya menjadi App Developer. staging __CAPGO_KEEP_0__
Hierarki peran
Judul bagian “Hierarki peran”Peran membentuk hierarki. Sebuah peran induk mengwarisi semua izin anak-anaknya. Hal ini berarti sebuah org_admin dapat melakukan segala sesuatu yang dapat dilakukan sebuah app_admin dapat melakukan segala sesuatu yang dapat dilakukan sebuah channel_admin 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 organisasi dapat melakukan semua yang dapat dilakukan oleh App Admin pada setiap aplikasi di organisasi.
- Seorang App Admin pada aplikasi tertentu dapat melakukan semua yang dapat dilakukan oleh Channel Admin pada setiap saluran di aplikasi tersebut.
- Seorang App Developer dapat melakukan semua yang dapat dilakukan oleh App Uploader bisa, lebih banyak lagi.
Hierarki hanya mengalir ke bawah — tidak pernah mendapatkan hak akses org-level, bahkan jika mereka juga memiliki peran app-level. channel_admin Grup
Bagian berjudul “Grup”
Alih-alih mengasign peran kepada pengguna individu secara langsung, Anda dapat membuatgrup dan mengasign peran ke grup. Setiap anggota grup akan mewarisi peran secara otomatis. Cara kerja grup
Bagian berjudul “Cara kerja grup”
can, plus more.- Sebuah kelompok termasuk ke dalam satu organisasi — tidak dapat menjangkau organisasi yang lebih dari satu.
- Kelompok dapat menampung pengikat peran pada apapun skop: 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 izin pengguna dievaluasi, semua keanggotaan kelompok mereka diresolusi secara transparan. Jika salah satu kelompok mereka memberikan izin yang diperlukan, akses diizinkan. - __CAPGO_KEEP_0__
- Seorang pengguna dapat menjadi bagian dari berbagai kelompok, dan izin dari semua kelompok bersifat additive.
- Izin berdasarkan kelompok hanya berlaku untuk prinsipal pengguna — kunci API tidak mengwarisi peran kelompok.
Kapan menggunakan kelompok
Judul bagian “Kapan menggunakan kelompok”| Skenario | Tanpa kelompok | Dengan kelompok |
|---|---|---|
| 5 insinyur QA membutuhkan akses Developer ke 3 aplikasi | 15 pengaturan peran individu | 1 kelompok + 3 pengaturan peran |
| Seseorang bergabung dengan tim QA | Tambahkan 3 pengaturan peran secara manual | Tambahkan mereka ke kelompok |
| Seseorang meninggalkan tim QA | Hapus 3 pengaturan peran secara manual | Hapus mereka dari kelompok |
Menangani kelompok melalui API
Bab berjudul “Menangani kelompok melalui API”Semua endpoint kelompok memerlukan autentikasi dan disajikan di bawah /private/groups.
Daftar kelompok
Judul Bagian: Daftar Grupcurl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Memerlukan org.read_members izin.
Buat Grup
Judul Bagian: Buat Grupcurl -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 (Admin Utama atau Admin).
Perbarui sebuah kelompok
Judul bagian “Perbarui sebuah 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 sebuah kelompok
Judul bagian “Hapus sebuah kelompok”curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>"Menghapus sebuah kelompok juga menghapus semua ikatan peran. Anggota tidak dihapus dari organisasi.
Daftar anggota kelompok
Bagian berjudul “Daftar anggota kelompok”curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>"Tambahkan anggota ke kelompok
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>"Menetapkan peran melalui API
Judul bagian “Menetapkan 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
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 | Manajer 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
Bagian berjudul “Peran khusus”Peran bawaan sudah mencakup struktur tim yang paling umum. Pembuatan peran khusus sedang dalam rencana — jika tim Anda membutuhkannya, Hubungi kamiKasus penggunaan Anda akan langsung membantu kami memprioritaskan fitur ini.
Lanjutkan dari Referensi Pengendalian Akses
Bagian berjudul “Lanjutkan dari Referensi Pengendalian Akses”If Anda menggunakan Akses Kontrol Referensi untuk merencanakan dashboard dan API operasi, hubungkannya dengan API Ringkasan untuk detail implementasi di API Ringkasan, Pendahuluan untuk detail implementasi di Pendahuluan, Kunci API untuk detail implementasi di Kunci API, Perangkat untuk detail implementasi di Perangkat, dan Paket untuk detail implementasi di Bundles.