Referensi Pengendalian Akses
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Capgo uses role-based access control (RBAC) untuk mengelola apa yang dapat dilakukan oleh setiap anggota tim. Peran-peran diatur berdasarkan ruang lingkup — dari organisasi keseluruhan hingga sebuah bundle tunggal.
Untuk melihat 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 | 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 membutuhkan akses baca ke satu rilis tertentu |
Seorang anggota dapat menempati __CAPGO_KEEP_0__ per ruang lingkup target — 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 |
|---|---|---|
| Super Admin | org_super_admin | Sama dengan pemilik. Mengontrol sepenuhnya termasuk menghapus organisasi, mengelola tagihan, dan mentransfer aplikasi. Diberikan secara otomatis kepada pembuat organisasi. |
| Pengelola | org_admin | Manajemen penuh — mengelola anggota, aplikasi, saluran. |
| Tidak dapat menghapus organisasi, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna menjadi Super Admin. | org_billing_admin | Pengelola Tagihan |
| Akses tagihan saja: lihat dan update informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota. | org_member | Anggota |
Akses baca-saja ke organisasi dan semua aplikasinya.
Matris izin organisasi| Bab berjudul “Matris izin organisasi” | Izin | Deskripsi | Super Admin | Pengelola (Adminstrator Utama) tidak ada dalam bahasa Indonesia, penggunaan yang lebih umum adalah 'Pengelola Utama' atau 'Admin Utama' untuk 'Super Admin' dan 'Pengelola' untuk 'Admin' dan 'Pengelola Tagihan' untuk 'Billing Manager' untuk mempertahankan konsistensi dalam bahasa Indonesia, namun perlu diingat bahwa istilah-istilah ini mungkin tidak sepenuhnya akurat atau umum digunakan dalam konteks ini. Untuk keakuratan dan konsistensi, sebaiknya gunakan istilah-istilah yang lebih umum dan akurat dalam konteks ini, seperti 'Pengelola Utama', 'Pengelola', dan 'Pengelola Tagihan'. | Anggota |
|---|---|---|---|---|---|
org.read | Lihat organisasi | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Ubah nama organisasi, logo, dan 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 tagihan | ✅ | ✅ | ✅ | ❌ |
dapat melakukan di semua aplikasi dan saluran.
Peran aplikasiJudul bagian “Peran aplikasi”
| Peran | __CAPGO_KEEP_0__ | Deskripsi |
|---|---|---|
| Admin Aplikasi | app_admin | Penuh kontrol 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
Matriks Izin Aplikasi| Izin | Deskripsi | Admin Aplikasi | Pengembang Aplikasi | Uploader 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, menggantikan, atau melepas 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 pengaturan peran aplikasi | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Hapus paket | ✅ | ❌ | ❌ | ❌ |
Peran saluran
Judul bagian “Peran saluran”Terbatas pada saluran tunggal. Berguna untuk memberikan akses yang sasaran kepada saluran rilis tertentu.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Pengelola Saluran | channel_admin | Penuh kontrol atas satu saluran: pengaturan, promosikan/rollback bundle, mengelola perangkat paksa. |
| Penglihat Saluran | channel_reader | Akses baca saja — bundle saat ini, riwayat, perangkat paksa, log audit. |
Matris izin saluran
Bab berjudul “Matris izin saluran”| Izin | Deskripsi | Pengatur Channel | Pengguna Channel |
|---|---|---|---|
channel.read | Lihat channel dan bundle saat ini | ✅ | ✅ |
channel.update_settings | Ubah pengaturan channel (toggle platform, kebijakan update…) | ✅ | ❌ |
channel.delete | Hapus channel | ✅ | ❌ |
channel.read_history | Lihat riwayat pengaturan bundle | ✅ | ✅ |
channel.promote_bundle | Tetapkan bundle aktif pada channel | ✅ | ❌ |
channel.rollback_bundle | Kembali ke bundle sebelumnya | ✅ | ❌ |
channel.manage_forced_devices | Kerjakan perangkat tertentu ke channel ini | ✅ | ❌ |
channel.read_forced_devices | Lihat daftar perangkat yang dipaksa | ✅ | ✅ |
channel.read_audit | Lihat log aktivitas channel | ✅ | ✅ |
Peran Bundle
Bagian berjudul “Bundle peran”Dibatasi pada versi bundle tunggal. Jarang dibutuhkan — sebagian besar tim menggunakan peran aplikasi daripada.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Pengelola Bundle | bundle_admin | Baca, update metadata, dan hapus bundle tertentu. |
| Penglihatan Paket | bundle_reader | Akses baca-saja ke paket tertentu. |
Pengaturan izin saluran (Dashboard)
Judul bagian “Pengaturan izin saluran (Dashboard)”Di 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 dilakukan dari tab Akses dengan mengklik tombol izin saluran (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengatur ulang izin saluran untuk panduan visual.
Izin yang dapat diubah
Judul bagian “Izin yang dapat diubah”| Izin | Deskripsi | Tindakan default |
|---|---|---|
| Baca | Lihat saluran dan paket saat ini | Ditetapkan dari peran aplikasi |
| Riwayat | Lihat riwayat penugasan paket | Ditetapkan dari peran aplikasi |
| Hubungkan paket | Atur atau ubah bundle aktif di saluran | Diteruskan dari peran aplikasi |
Masing-masing izin dapat diatur menjadi:
- Default — mewarisi dari peran aplikasi (default)
- Biarkan — memberikan izin secara eksplisit, terlepas dari peran aplikasi
- Dilarang — melarang secara eksplisit, terlepas dari peran aplikasi
Fungsi ini memungkinkan Anda, misalnya, memberikan kemampuan untuk menghubungkan bundle pada saluran kepada pembaca aplikasi tanpa mempromosikannya menjadi pengembang aplikasi. staging Tata kerja peran
__CAPGO_KEEP_0__
Struktur HierarchyStruktur peran membentuk suatu hierarki. Sebuah peran induk mengambil semua hak akses anaknya. Hal ini berarti sebuah org_admin dapat melakukan apa saja yang dapat dilakukan oleh app_admin dapat melakukan apa saja yang dapat dilakukan oleh channel_admin dapat melakukan apa saja yang dapat dilakukan oleh
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:
- Seorang Admin di tingkat organisasi dapat melakukan apa saja yang dapat dilakukan oleh App Admin dapat melakukan hal-hal berikut pada setiap aplikasi di organisasi. App Admin dapat melakukan hal-hal berikut pada setiap aplikasi di organisasi.
- Seorang App Admin pada aplikasi tertentu dapat melakukan semua hal yang dapat dilakukan oleh Channel Admin pada setiap saluran di aplikasi tersebut.
- Seorang App Developer dapat melakukan semua hal yang dapat dilakukan oleh App Uploader dan dapat melakukan 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
Judul bagian “Grup”
Alih-alih menugaskan peran kepada setiap pengguna secara individu, Anda dapat membuatgrup dan menugaskan peran ke grup. Setiap anggota grup akan mewarisi peran tersebut secara otomatis. Cara kerja grup
Judul bagian “Cara kerja grup”
Grup termasuk- A group belongs to __CAPGO_KEEP_0__ satu organisasi — tidak dapat menjangkau beberapa organisasi.
- Grup dapat menampung ikatan peran pada apapun ruang lingkup: organisasi, aplikasi, saluran, atau paket. Misalnya, sebuah grup dapat diberikan peran Pengembang Aplikasi pada Aplikasi A dan peran Admin Saluran pada saluran Aplikasi B.
stagingKetika izin pengguna dievaluasi, semua keanggotaan grup mereka diresolusi secara transparan. Jika salah satu grup mereka memberikan izin yang diperlukan, akses diizinkan. - Seorang pengguna dapat menjadi anggota
- dari berbagai kelompokhak akses dari semua kelompok bersifat aditif.
- Hanya hak akses berdasarkan kelompok yang berlaku untuk prinsipal pengguna — API kunci tidak mewarisi 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 pengikat peran individu | 1 kelompok + 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 bawah /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 grup
Bagian berjudul “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 (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
Judul bagian “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 operasi tidak berubah.
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 }]Ajak anggota
Judul bagian “Ajak 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
Bagian berjudul “Menghapus 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
Bagian berjudul “Peran khusus”Peran bawaan sudah mencakup struktur tim yang umum. Pembuatan peran khusus sedang dalam rencana — jika tim Anda membutuhkannya, Hubungi kamiKasus guna Anda akan langsung membantu kami memprioritaskan fitur ini.