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 bundel tunggal.
Untuk walkthrough visual mengelola anggota di dashboard, lihat Organisasi.
Skop peran
Judul bagian “Skop peran”Setiap peran termasuk dalam suatu skop yang menentukan sumber daya apa yang memberikan akses.
| Skop | Aplikasi | Contoh penggunaan |
|---|---|---|
| Organisasi | Seluruh organisasi 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 dalam aplikasi | Seorang insinyur QA hanya mengelola saluran staging saluran |
| Paket | Versi paket tunggal | Seorang reviewer memerlukan akses baca pada satu rilis tertentu |
Seorang anggota dapat menjabat satu peran per lingkungan target — misalnya, satu peran organisasi, satu peran pada Aplikasi A, dan peran yang berbeda pada Aplikasi B.
Peran organisasi
[Section titled “Organisasi peran”]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. Otomatis diberikan kepada pembuat org. |
| Admin | org_admin | Pengelolaan penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus org, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna ke Super Admin. |
| Pengelola Tagihan | org_billing_admin | Akses tagihan-saja: lihat dan update informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota. |
| Anggota | org_member | Akses baca-saja ke org dan semua aplikasinya. |
Matriks izin organisasi
Judul “Matriks izin organisasi”| Izin | Deskripsi | Super Admin | Admin | Manajer Billing | Anggota |
|---|---|---|---|---|---|
org.read | Lihat organisasi | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Ubah nama org, logo, alamat email pengelola | ✅ | ✅ | ❌ | ❌ |
org.delete | Hapus organisasi secara permanen | ✅ | ❌ | ❌ | ❌ |
org.read_members | View 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
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 tersebut adalah 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. |
| Penglihatan Aplikasi | app_preview | Siklus hidup CI yang terikat organisasi dan aplikasi: unggah bundle dan buat saluran penglihatan. Membuat saluran tersebut secara otomatis memberikan hak siklus hidup hanya untuk saluran tersebut. |
Matriks Izin Aplikasi
Bagian berjudul “Matriks Izin Aplikasi”| Izin | Deskripsi | Pengguna 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 | Tentukan, mengganti, 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 penugasan peran aplikasi skop | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Hapus paket | ✅ | ❌ | ❌ | ❌ |
Akses Pratinjau Aplikasi
Judul bagian “Akses Pratinjau Aplikasi”Pilih Akses Pratinjau (app_previewuntuk kunci CI yang terkait dengan organisasi dan aplikasi, yang mengelola siklus pratinjau PR tanpa akses luas aplikasi atau organisasi.
Kunci app_preview mengeluarkan izin aplikasi berikut:
| Izin | Mengizinkan |
|---|---|
app.read | Membaca aplikasi yang dipilih |
app.read_bundles | Membaca bundle yang diunggah |
app.upload_bundle | Unggah sebuah bundle |
app.create_channel | Buat sebuah 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 | Baca saluran yang dibuat oleh kunci |
channel.promote_bundle | Atur bundle yang diunggah kunci tersebut pada saluran tersebut |
channel.delete | Hapus saluran tersebut |
Karena app_preview menyimpan app.read, kunci tersebut mungkin memperoleh metadata saluran dalam aplikasi yang dipilih. Pengikat anak otomatis adalah sebuah Pengelolaan Pembatasan: tidak memberikan mutasi siklus hidup untuk sebuah saluran yang kunci tidak menciptakan.
Capgo merekam kunci pratinjau yang menciptakan setiap saluran dan mengunggah setiap paket. Oleh karena itu, sebuah kunci Pratinjau Aplikasi dapat menciptakan setiap saluran pratinjau non-umum yang dibutuhkan, mempromosikan paket sendiri, dan menghapus saluran dan paket secara atomik dengan channel delete --delete-bundle; tidak dapat melakukan hal-hal tersebut pada saluran default/main yang ada, saluran kunci pratinjau lain, atau paket kunci lain.
Pengingat app.update_settingsPengingat channel.update_settings, channel.rollback_bundleSetiap ikatan Pratinjau Aplikasi tetap terkait dengan organisasi yang dimiliki aplikasi yang dipilih. Peran ini mengabaikan peran organisasi; tidak menghapus asosiasi organisasi. Mengambil kembali atau mengakhiri ikatan aplikasi menghapus akses siklus hidup efektif kunci. bundle.delete.
Pengaturan batas: tidak memberikan mutasi siklus hidup untuk sebuah saluran yang kunci tidak menciptakan.
__CAPGO_KEEP_0__ merekam kunci pratinjau yang menciptakan setiap saluran dan mengunggah setiap paket. Oleh karena itu, sebuah kunci Pratinjau Aplikasi dapat menciptakan setiap saluran pratinjau non-umum yang dibutuhkan, mempromosikan paket sendiri, dan menghapus saluran dan paket secara atomik denganDitargetkan pada saluran tunggal. Berguna untuk memberikan akses yang spesifik ke saluran rilis tertentu.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Pengelola Saluran | channel_admin | Penuh kontrol atas satu saluran: pengaturan, promosikan/rollback paket, dan mengelola perangkat paksa. |
| Penglihat Saluran | channel_reader | Akses baca saja — paket saat ini, riwayat, perangkat paksa, dan log audit. |
| Penglihatan Saluran | channel_preview | Ditugaskan secara otomatis ke kunci App Preview yang menciptakan saluran: baca, promosikan paket sendiri, dan hapus saluran tersebut. |
Matris Izin Saluran
Bagian berjudul “Matris Izin Saluran”| Izin | Penjelasan | Pengelola Saluran | Penglihat Saluran | Penglihatan Saluran |
|---|---|---|---|---|
channel.read | Lihat saluran dan paket saat ini | ✅ | ✅ | ✅ |
channel.update_settings | Edit pengaturan saluran (toggle platform, kebijakan pembaruan…) | ✅ | ❌ | ❌ |
channel.delete | Hapus saluran | ✅ | ❌ | ✅ |
channel.read_history | Lihat riwayat pengaturan paket | ✅ | ✅ | ❌ |
channel.promote_bundle | Atur paket aktif pada saluran | ✅ | ❌ | ✅ |
channel.rollback_bundle | Kembali ke paket 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 Paket
Judul bagian “Peran Paket”Terbatas pada versi bundle tunggal. Jarang dibutuhkan — sebagian besar tim menggunakan peran aplikasi daripada peran ini.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Pengelola Bundle | bundle_admin | Baca, update metadata, dan hapus bundle tertentu. |
| Penglihat Bundle | bundle_reader | Akses baca-saja ke bundle tertentu. |
Izin saluran mengalahkan (Dashboard)
Judul bagian “Izin saluran mengalahkan (Dashboard)”Di dashboard, akses saluran ditentukan oleh peran aplikasi pengguna secara default. Untuk kontrol yang lebih halus, Anda dapat mengalahkan izin saluran tertentu per pengguna atau kelompok tanpa mengubah peran aplikasi mereka.
Pengaturan penggantian diatur dari tab Akses tab Akses dengan mengklik tombol izin saluran (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengalahkan Izin Saluran
untuk panduan visual. Pengaturan yang dapat diubah
Bagian berjudul “Izin yang Dapat Diperbarui”| Izin | Deskripsi | Tindakan Default |
|---|---|---|
| Baca | Lihat saluran dan paket saat ini | Diturunkan dari peran aplikasi |
| Riwayat | Lihat riwayat pengaturan paket | Diturunkan dari peran aplikasi |
| Hubungkan Paket | Atur atau ubah paket aktif di saluran | Diteruskan dari peran aplikasi |
Masing-masing izin dapat diatur menjadi:
- Bawaan — mewarisi dari peran aplikasi (default)
- Izinkan — secara eksplisit berikan, terlepas dari peran aplikasi
- Ditolak — secara eksplisit blokir, terlepas dari peran aplikasi
Fitur ini memungkinkan Anda, misalnya, memberikan pembaca aplikasi kemampuan untuk menghubungkan paket pada saluran tanpa mempromosikannya ke pengembang aplikasi. staging Tata letak peran
Judul bagian “Tata letak peran”
Inherited from app rolePeran membentuk hierarki. Sebuah peran induk mewarisi semua izin anak-anaknya. Artinya, org_admin dapat melakukan semua yang dapat dilakukan oleh app_admin yang dapat melakukan semua yang dapat dilakukan oleh channel_admin yang dapat melakukan semua 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)Salin ke clipboard
- Bagaimana cara kerjanya dalam prakteknya: Seorang Admin di tingkat organisasi dapat melakukan semua yang dapat dilakukan oleh App Admin dapat dilakukan pada setiap aplikasi di organisasi.
- Seorang Admin Aplikasi pada aplikasi tertentu dapat melakukan semua yang dapat dilakukan oleh Admin Saluran dapat dilakukan pada setiap saluran di aplikasi tersebut.
- Seorang Pengembang Aplikasi dapat melakukan semua yang dapat dilakukan oleh Uploader Aplikasi lebih banyak lagi.
Hierarki hanya mengalir turun ke bawah – sebuah channel_admin tidak pernah mendapatkan hak akses org-level, bahkan jika mereka juga memiliki peran app-level.
Kelompok
Bab berjudul “Kelompok”Alih-alih menugaskan peran kepada setiap pengguna secara individu, Anda dapat membuat kelompok dan menugaskan peran ke kelompok. Setiap anggota kelompok mewarisi peran-peran tersebut secara otomatis.
Bagaimana kelompok bekerja
Bab berjudul “Bagaimana kelompok bekerja”- Sebuah kelompok termasuk ke dalam satu organisasi — tidak dapat menjangkau beberapa org.
- Grup dapat menempatkan ikatan peran pada apapun ruang lingkup: org, aplikasi, saluran, atau paket. Misalnya, sebuah grup dapat diberikan peran App Developer pada Aplikasi A dan peran Channel Admin pada saluran aplikasi B.
stagingSaat hak akses pengguna dievaluasi, semua keanggotaan grup mereka diresolusi secara transparan. Jika salah satu grup mereka memberikan izin yang diperlukan, akses diizinkan. - Pengguna dapat menjadi anggota
- beberapa grup __CAPGO_KEEP_0__dan izin dari semua kelompok bersifat additive.
- Hanya izin berdasarkan kelompok yang berlaku untuk prinsipal pengguna — API kunci tidak mengwarisi peran kelompok.
Kapan menggunakan kelompok
Bab berjudul “Kapan menggunakan kelompok”| Skenario | Tidak ada 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 grup |
| Seseorang meninggalkan tim QA | Hapus 3 pengikat peran secara manual | Hapus mereka dari grup |
Mengelola grup melalui API
Judul bagian “Mengelola grup melalui API”Semua endpoint grup memerlukan autentikasi dan disajikan di /private/groups.
Daftar grup
Judul bagian “Daftar grup”curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Memerlukan org.read_members iizinkan.
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 (Admin Utama atau Admin).
Update sebuah grup
Judul bagian “Update sebuah 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 sebuah grup
Judul bagian “Hapus sebuah grup”curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>"Menghapus sebuah grup juga menghapus semua ikatan peran. 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 kelompok
Judul bagian “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
Judul bagian “Hapus anggota dari kelompok”curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \ -H "authorization: <API_KEY>"Menugaskan peran melalui API
Judul bagian “Menugaskan 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 “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 “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 sudah mencakup struktur tim yang paling umum. Pembuatan peran khusus akan segera ditambahkan — jika tim Anda membutuhkannya, hubungi kami. Penggunaan kasus 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 operasional, hubungkannya 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.