Pengaturan Kontrol Akses
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Capgo menggunakan pengaturan akses berdasarkan peran (RBAC) Mengatur apa yang dapat dilakukan 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 memiliki ruang lingkup yang menentukan sumber daya apa yang memberikan akses.
| Ruang lingkup | Berlaku untuk | Contoh penggunaan |
|---|---|---|
| Organisasi | Semua organisasi dan semua aplikasinya | Ko-founding Anda mendapatkan Super Admin; akuntan Anda mendapatkan Billing Manager |
| Aplikasi | Aplikasi tunggal dan saluran-salurannya | A kontraktor yang bekerja pada satu aplikasi mendapatkan App Developer |
| Saluran | Saluran tunggal dalam sebuah aplikasi | A saluran tunggal dalam aplikasi staging channel |
| Saluran | Versi Paket tunggal | Seorang reviewer memerlukan akses baca ke satu rilis tertentu |
A anggota dapat memegang peran satu per target ruang lingkup — misalnya, satu peran organisasi, satu peran di Aplikasi A, dan peran yang berbeda di Aplikasi B.
Peran Organisasi
Section titled “Organization roles”Peran-peran ini diberikan ketika mengundang anggota. Mereka memberikan akses di seluruh organisasi.
| Role | Nama Internal | Nama Internal |
|---|---|---|
| Deskripsi | org_super_admin | Pemilik setara. Memiliki kontrol penuh termasuk menghapus organisasi, mengelola tagihan, dan mentransfer aplikasi. Diberikan secara otomatis kepada pembuat organisasi. |
| Admin | org_admin | Pengaturan Penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus organisasi, 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. |
Matris Izin Organisasi
Bagian berjudul “Matris Izin Organisasi”| Izin | Deskripsi | Pengguna Utama | Admin | Pengelola Tagihan | Anggota |
|---|---|---|---|---|---|
org.read | Lihat organisasi | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Ubah nama, logo, dan alamat email pengelola organisasi | ✅ | ✅ | ❌ | ❌ |
org.delete | Hapus organisasi secara permanen | ✅ | ❌ | ❌ | ❌ |
org.read_members | Lihat daftar anggota | ✅ | ✅ | ❌ | ✅ |
org.invite_user | Undang anggota baru | ✅ | ✅ | ❌ | ❌ |
org.update_user_roles | Ganti 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
Section titled “App roles”Terbatas pada aplikasi tunggal. Gunakan opsi ini ketika anggota tim hanya boleh 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 tersebut adalah operasi tingkat organisasi). |
| Pengembang Aplikasi | app_developer | Muat bundle, manajemen perangkat, trigger build native, atur pengaturan saluran. Tidak ada penghapusan, tidak ada perubahan pengaturan aplikasi, tidak ada pembuatan saluran. |
| Uploader Aplikasi | app_uploader | Akses baca + muat versi bundle baru. |
| Pembaca Aplikasi | app_reader | Baca-saja — statistik, bundle, saluran, log, perangkat. |
| Tampilan Aplikasi | app_preview | Organisasi- dan aplikasi terkait pratinjau CI siklus: unggah sebuah paket dan buat sebuah saluran pratinjau. Pembuatan saluran tersebut secara otomatis memberikan hak siklus hanya untuk saluran tersebut. |
Matris izin aplikasi
Judul Bagian “Matris Izin Aplikasi”| Izin | Deskripsi | Admin 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 paket yang diunggah | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Mengunggah versi bundle baru | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Membuat saluran baru | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Melihat saluran | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Melihat log pengiriman update | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Menugaskan, menggantikan, atau melepas perangkat | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Melihat daftar perangkat | ✅ | ✅ | ✅ | ✅ |
app.build_native | Mengaktifkan bangun awan asli | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Melihat log aktivitas aplikasi | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Mengatur pengaturan peran aplikasi | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Menghapus bundle | ✅ | ❌ | ❌ | ❌ |
Set Ijin Tampilan Aplikasi
Bab berjudul “Set Ijin Tampilan Aplikasi”Pakai Tampilan Aplikasi (app_preview) untuk kunci CI yang terkait dengan organisasi dan aplikasi yang mengelola siklus pratinjau PR tanpa akses luas aplikasi atau organisasi.
The app_preview Peran organisasi dan aplikasi dapat dilihat di halaman ini.
| Izin | Mengizinkan |
|---|---|
app.read | Membaca aplikasi yang dipilih |
app.read_bundles | Membaca paket yang diunggah |
app.upload_bundle | Mengunggah paket |
app.create_channel | Membuat saluran |
Ketika sebuah kunci App Preview membuat sebuah saluran, Capgo secara otomatis memberikan kunci tersebut sebuah anak channel_preview ikatannya untuk saluran baru hanya:
| Izin | Mengizinkan |
|---|---|
channel.read | Membaca saluran yang dibuat oleh kunci |
channel.promote_bundle | Mengatur paket yang diunggah kunci itu sendiri pada saluran |
channel.delete | Hapus saluran itu |
Karena app_preview menyimpan app.read, kunci metadata saluran dapat dienumerasi dalam aplikasi yang dipilih. Pengikatan anak otomatis adalah management boundary: tidak memberikan mutasi siklus untuk sebuah channel yang tidak dibuat oleh kunci tersebut.
Capgo records the preview key that created each channel and uploaded each bundle. Therefore an App Preview key can create each non-public preview channel it needs, promote its own bundle, and atomically delete that channel and bundle with channel delete --delete-bundleTidak dapat melakukan hal itu pada saluran default/main yang sudah ada, saluran lain yang berlisensi, atau bundle lain yang berlisensi.
, manajemen perangkat atau peran app.update_settings, manajemen perangkat paksa, atau manajemen channel.update_settings, channel.rollback_bundle, pengelolaan perangkat paksa, atau umum bundle.delete.
Peran saluran
Judul bagian “Peran saluran”Ditetapkan pada saluran tunggal. Berguna untuk memberikan akses sasaran pada saluran rilis tertentu.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Pengelola Kanal | channel_admin | Penuh kontrol atas satu kanal: pengaturan, promosikan/rollback bundle, dan mengelola perangkat paksa. |
| Penglihatan Kanal | channel_reader | Baca-saja — bundle saat ini, riwayat, perangkat paksa, dan log audit. |
| Penglihatan Pratinjau Kanal | channel_preview | Ditugaskan sistem ke kunci App Pratinjau yang menciptakan kanal: baca, promosikan bundle sendiri, dan hapus kanal tersebut. |
Matriks Izin Saluran
Bagian berjudul “Matris Izin Kanal”| Izin | Deskripsi | Pengelola Saluran | Penglihat Saluran | Pratinjau Saluran |
|---|---|---|---|---|
channel.read | Lihat saluran dan paket aktifnya | ✅ | ✅ | ✅ |
channel.update_settings | Ubah pengaturan saluran (toggle platform, kebijakan pembaruan…) | ✅ | ❌ | ❌ |
channel.delete | Hapus saluran | ✅ | ❌ | ✅ |
channel.read_history | Lihat riwayat pengaturan paket | ✅ | ✅ | ❌ |
channel.promote_bundle | Set paket aktif pada saluran | ✅ | ❌ | ✅ |
channel.rollback_bundle | Kembali ke paket sebelumnya | ✅ | ❌ | ❌ |
channel.manage_forced_devices | Kompaksa perangkat tertentu ke saluran ini | ✅ | ❌ | ❌ |
channel.read_forced_devices | Melihat daftar perangkat yang dipaksa | ✅ | ✅ | ❌ |
channel.read_audit | Tampilkan log aktivitas saluran | ✅ | ✅ | ❌ |
Rapatkan peran
Judul: Rapatkan peranDitetapkan pada versi bundle tunggal. Jarang dibutuhkan — sebagian besar tim menggunakan peran aplikasi daripada peran bundle.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Admin Paket | bundle_admin | Baca, update metadata, dan hapus paket tertentu. |
| Pengguna Paket | bundle_reader | Akses baca-saja ke paket tertentu. |
Otorisasi saluran (Dashboard)
Judul bagian “Otorisasi saluran (Dashboard)”Pada dashboard, akses saluran ditentukan oleh peran aplikasi pengguna secara default. Untuk kontrol yang lebih halus, Anda dapat mengatur otorisasi saluran tertentu per pengguna atau kelompok tanpa mengubah peran aplikasi mereka.
Otorisasi diatur dari pengaturan Akses tab dengan mengklik tombol izin saluran (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengatasi izin saluran untuk panduan visual.
Izin yang Dapat Diubah
Bab berjudul “Izin yang Dapat Diubah”| Izin | Deskripsi | Keadaan Default |
|---|---|---|
| Baca | Lihat saluran dan paket bundel saat ini | Diturunkan dari peran aplikasi |
| Riwayat | Melihat riwayat pengaturan bundle | Ditetapkan dari peran aplikasi |
| Hubungkan bundle | Setel atau ubah bundle aktif di saluran | Ditetapkan dari peran aplikasi |
Setiap izin dapat diatur menjadi:
- Default — mewarisi dari peran aplikasi (default)
- Biarkan — memberikan secara eksplisit, terlepas dari peran aplikasi
- Dilarang — melarang secara eksplisit, terlepas dari peran aplikasi
Dengan ini, Anda dapat memberikan hak kepada pembaca aplikasi untuk menghubungkan bundle pada staging Saluran ini tanpa mempromosikannya menjadi pengembang aplikasi.
Struktur Hiertarki
Bab berjudul “Struktur Hiertarki”Struktur peran membentuk piramida. Sebuah peran induk mewarisi semua izin anaknya. Ini berarti bahwa org_admin Semua yang dapat dilakukan oleh app_admin bisa melakukan apa saja yang bisa dilakukan oleh channel_admin Bisa, 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 hal ini berlaku dalam prakteknya:
- Seorang Admin di tingkat organisasi dapat melakukan semua hal Admin Aplikasi pada setiap aplikasi di organisasi.
- Seorang Admin Aplikasi di sebuah aplikasi tertentu dapat melakukan segalanya Admin Saluran pada setiap saluran di aplikasi tersebut.
- Seorang Aplikasi Pengembang bisa melakukan semua yang dapat dilakukan oleh Uploader Aplikasi bisa, plus lebih lagi.
Hirarki hanya mengalir ke bawah — a channel_admin Tidak pernah mendapatkan izin organisasi, bahkan jika mereka juga memiliki peran aplikasi.
Groups
Sebagai gantinya dari mengasign peran kepada setiap pengguna secara individu, Anda dapat membuatInstead of assigning roles to each user individually, you can create groups bisa melakukan semua yang dapat dilakukan oleh App Uploader, plus lebih lagi.
Bagaimana kelompok bekerja
Judul bagian “Bagaimana kelompok bekerja”- Kelompok ini termasuk ke satu organisasi – tidak dapat menyebar ke beberapa org.
- Kelompok dapat menampung pengikat peran pada Apa Ruang LingkupOrganisasi, aplikasi, saluran, atau paket. Misalnya, sebuah grup dapat diberikan Peran Pengembang Aplikasi peran pada Aplikasi A dan Peran Admin Saluran peran pada
stagingsaluran Aplikasi B. - Ketika hak akses 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 beberapa grup, dan izin dari semua grup bersifat aditif.
- Hak akses berbasis grup hanya berlaku untuk prinsipal pengguna — kunci API tidak mewarisi peran grup.
Kapan menggunakan grup
Bagian berjudul “Kapan menggunakan grup”| Skenario | Tanpa grup | Dengan kelompok |
|---|---|---|
| 5 insinyur QA memerlukan 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 |
Menangani kelompok melalui API
Judul bagian “Menangani kelompok melalui API”Semua endpoint grup memerlukan autentikasi dan disajikan di bawah /private/groups.
Daftar grup
Bab berjudul “Daftar grup”curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Membutuhkan org.read_members izin.
Create a group
Bab 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" }'Membutuhkan org.update_user_roles izin akses (Pengguna Utama atau Admin).
Bagian berjudul “Perbarui kelompok”
Section titled “Update a group”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" }'Bagian berjudul “Hapus kelompok”
Section titled “Delete a group”curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>"Menghapus kelompok juga menghapus semua ikatan peran kelompoknya. Anggota tidak dihapus dari organisasi.
Daftar anggota kelompok
Judul Bagian: Daftar Anggota Kelompokcurl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>"Tambahkan anggota ke kelompok
Judul Bagian: Tambahkan Anggota ke Kelompokcurl -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 Kelompokcurl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \ -H "authorization: <API_KEY>"Menugaskan peran melalui API
Bab berjudul “Menugaskan peran melalui API”Daftar anggota
Bab 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
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 untuk invite_type:
| Nilai | Peran yang ditugaskan |
|---|---|
org_super_admin | Pengguna Utama |
org_admin | Admin |
org_billing_admin | Pengelola Tagihan |
org_member | Anggota |
Hapus anggota
Section titled “Remove a member”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: Mengasignkan peran melalui CLIDaftar organisasi
Section titled “List organizations”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 sudah mencakup struktur tim yang umum. Pembuatan peran khusus sedang dalam rencana — jika tim Anda membutuhkannya, Hubungi kami. Penggunaan kasus Anda akan langsung membantu kami memprioritaskan fitur ini.
Teruskan dari Referensi Pengendalian Akses
Judul bagian “Teruskan dari Referensi Pengendalian Akses”Jika Anda menggunakan Referensi Pengendalian Akses untuk merencanakan dashboard dan operasi API, hubungkannya dengan Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Pendahuluan, Kunci API untuk detail implementasi di Kunci API, Perangkat untuk detail implementasi di Perangkat, dan Bundel untuk detail implementasi di Bundel.