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 melihat panduan visual mengelola anggota di dashboard, lihat Organisasi.
Ruangan peran
Bagian berjudul “Ruangan peran”Setiap peran termasuk dalam ruang lingkup yang menentukan sumber daya apa yang memberikan akses.
| Ruang lingkup | context: Halaman/area: Bantuan / halaman bantuan premium atau bagian bantuan di footer. Peran: Judul bagian atau halaman. Dilihat di: halaman support-policy.astro. Kunci pesan `support_policy_scope_title` (Judul Ruang Lingkup Bantuan). | Contoh penggunaan kasus |
|---|---|---|
| Organisasi | Seluruh organisasi dan semua aplikasinya | Kolaborator 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 | A versi bundel tunggal | Seorang reviewer memerlukan akses baca ke satu rilis tertentu |
Seorang anggota dapat menjabat suatu peran per lingkungan 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 | Pengertian |
|---|---|---|
| Pengurus Utama | org_super_admin | Setara Pemilik. Pengontrolan penuh termasuk menghapus organisasi, mengelola tagihan, dan mentransfer aplikasi. Otomatis diberikan kepada pembuat organisasi. |
| Pengelola | org_admin | Pengelolaan penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus organisasi, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna menjadi Super Pengelola. |
| Pengelola Tagihan | org_billing_admin | Akses tagihan hanya: 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
Bab berjudul “Matris Izin Organisasi”| Izin | Deskripsi | Pengelola Utama | Admin | Pengelola Billing | 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 | Ganti peran anggota (Admin tidak dapat mempromosikan ke Super Admin — diblokir oleh hierarki peran) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | Lihat informasi pembayaran dan paket saat ini | ✅ | ✅ | ✅ | ❌ |
org.update_billing | Ubah metode pembayaran dan paket | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Lihat faktur | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Melihat log aktivitas organisasi | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Melihat log audit yang terkait dengan billing | ✅ | ✅ | ✅ | ❌ |
Saluran Admin dapat melakukan semua hal yang dapat dilakukan oleh Admin Aplikasi atau Admin Paket, di semua aplikasi dan saluran.
Judul Bagian: Peran AplikasiTerbatas pada satu aplikasi. Gunakan peran ini ketika anggota tim hanya boleh bekerja pada satu aplikasi, bukan seluruh organisasi.
| Peran | Nama Internal | Deskripsi |
|---|---|---|
| Pengelola Aplikasi | app_admin | Penuh kontrol atas satu aplikasi — saluran, perangkat, peran pengguna untuk aplikasi. Tidak dapat menghapus atau mentransfer aplikasi (operasi tersebut adalah tingkat organisasi). |
| Pengembang Aplikasi | app_developer | Muat bundle, kelola perangkat, trigger build native, ubah pengaturan saluran. Tidak dapat menghapus, tidak dapat mengubah pengaturan aplikasi, tidak dapat membuat saluran. |
| Pemuat Bundle | app_uploader | Akses baca + muat versi bundle baru. |
| Pembaca Aplikasi | app_reader | Akses baca saja — statistik, paket, saluran, log, perangkat. |
| Pratinjau Aplikasi | app_preview | Pratinjau CI siklus yang terikat dengan organisasi dan aplikasi: unggah paket dan buat 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 | Tampilkan daftar bundle yang diunggah | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Unggah versi bundle baru | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Buat saluran baru | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Tampilkan saluran | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Tampilkan log pengiriman update | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Assign, override, atau hapus perangkat | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Tampilkan daftar perangkat | ✅ | ✅ | ✅ | ✅ |
app.build_native | Trigger build cloud native | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Tampilkan log aktivitas aplikasi | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Kelola penugasan peran aplikasi | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Hapus bundle | ✅ | ❌ | ❌ | ❌ |
yang dapat melakukan mereka, terlepas dari peran aplikasi.
Pengaturan Izin Pratinjau AplikasiJudul bagian “Pengaturan Izin Pratinjau Aplikasi” Pakai (app_previewPratinjau Aplikasi
Pengikat hanya memberikan izin aplikasi berikut ini: app_preview Izin
| Mengizinkan | Membaca aplikasi yang dipilih |
|---|---|
app.read | Membaca bundle yang diunggah |
app.read_bundles | Upload bundle |
app.upload_bundle | Membuat saluran |
app.create_channel | Ketika kunci App Preview membuat saluran, __CAPGO_KEEP_0__ secara otomatis memberikan kunci itu hak anak untuk saluran baru hanya: |
When an App Preview key creates a channel, Capgo automatically gives that key a child channel_preview Mengizinkan
| Membaca aplikasi yang dipilih | Membaca bundle yang diunggah |
|---|---|
channel.read | Read the channel yang dibuat oleh kunci |
channel.promote_bundle | Set kunci sendiri yang telah diunggah bundle di channel tersebut |
channel.delete | Hapus channel tersebut |
Karena app_preview menyimpan app.read, kunci tersebut dapat mengelompokkan metadata channel di aplikasi yang dipilih. Batasan otomatis anak adalah manajemen batas: tidak memberikan mutasi siklus untuk channel yang tidak dibuat oleh kunci tersebut.
Capgo merekam kunci pratinjau yang membuat setiap channel dan mengunggah setiap bundle. Oleh karena itu, kunci Pratinjau Aplikasi dapat membuat setiap channel pratinjau non-umum yang diperlukan, mempromosikan bundle sendiri, dan menghapus atomik channel dan bundle tersebut dengan channel delete --delete-bundle ; tidak dapat melakukan hal itu pada channel default/main yang ada, channel kunci pratinjau lainnya, atau bundle kunci lainnya.
Tidak termasuk app.update_settings, manajemen perangkat atau peran channel.update_settings, channel.rollback_bundlePengelolaan perangkat paksa, atau umum bundle.delete.
Peran saluran
Judul bagian “Peran saluran”Disediakan untuk saluran perangkat lunak 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 bundle, dan mengelola perangkat paksa. |
| Penglihat Saluran | channel_reader | Akses baca saja — bundle saat ini, riwayat, perangkat paksa, dan log audit. |
| Penglihat Saluran Pra-Rilis | channel_preview | Dibuat secara otomatis oleh kunci App Preview yang membuat saluran: baca, promosikan bundle sendiri, dan hapus saluran tersebut. |
Matris Izin Saluran
Judul: Matris Izin Saluran| Izin | Deskripsi | Pengelola Saluran | Penglihat Saluran | Penglihatan Saluran |
|---|---|---|---|---|
channel.read | Lihat saluran dan paket aktifnya 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 | Set paket aktif pada saluran | ✅ | ❌ | ✅ |
channel.rollback_bundle | Kembali ke bundle sebelumnya | ✅ | ❌ | ❌ |
channel.manage_forced_devices | Forcekan perangkat tertentu ke saluran ini | ✅ | ❌ | ❌ |
channel.read_forced_devices | Tampilkan daftar perangkat yang dipaksa | ✅ | ✅ | ❌ |
channel.read_audit | Tampilkan log aktivitas saluran | ✅ | ✅ | ❌ |
Peran bundle
Judul bagian “Peran bundle”Terbatas pada versi bundle tunggal. Jarang dibutuhkan — kebanyakan tim menggunakan peran aplikasi daripada ini.
| Peran | Nama internal | Deskripsi |
|---|---|---|
| Pengelola Paket | bundle_admin | Baca, ubah metadata, dan hapus paket tertentu. |
| Penglihat Paket | bundle_reader | Akses baca-saja ke paket 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 untuk pengguna atau kelompok tanpa mengubah peran aplikasi mereka.
Konfigurasi penggantian dilakukan dari aplikasi’s Akses tab dengan mengklik tombol izin saluran (ikon pelindung) di samping pengguna. Lihat Organisasi — Menggantikan izin saluran untuk walkthrough visual.
Pengaturan Izin yang Dapat Digantikan
Bab berjudul ‘Pengaturan Izin yang Dapat Digantikan’| Izin | Deskripsi | Kebiasaan Default |
|---|---|---|
| Baca | Lihat saluran dan paket terkait saat ini | Inherited dari peran aplikasi |
| Riwayat | Lihat riwayat pengaturan bundle | Inherited dari peran aplikasi |
| Arsipkan bundle | Set atau ubah bundle aktif di saluran | Inherited dari peran aplikasi |
Setiap izin dapat diatur menjadi:
- Default — warisi dari peran aplikasi (default)
- Biarkan — izinkan secara eksplisit, terlepas dari peran aplikasi
- Menghalangi — secara eksplisit blokir, terlepas dari peran aplikasi
Fitur ini memungkinkan Anda, misalnya, memberikan hak kepada Pembaca Aplikasi untuk mengasosiasikan bundle pada saluran tanpa mempromosikannya menjadi Pengembang Aplikasi. staging Struktur Peran
Judul bagian ‘Struktur Peran’
Peran membentuk struktur piramida. Peran indukmengambil semua hak kebijaksanaan kebijaksanaan org_admin kebijaksanaan app_admin dan seterusnya. channel_admin Struktur Peran
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 Pengguna Admin di tingkat organisasi dapat melakukan semua yang dapat dilakukan oleh Pengguna App Admin pada setiap aplikasi di organisasi.
- Seorang Pengguna App Admin pada aplikasi tertentu dapat melakukan semua yang dapat dilakukan oleh Pengguna Channel Admin pada setiap saluran di aplikasi tersebut.
- Seorang Pengembang Aplikasi bisa melakukan semua yang bisa dilakukan oleh Pengunggah Aplikasi lebih banyak.
Hierarki hanya mengalir ke bawah — tidak pernah mendapatkan izin organisasi tingkat, bahkan jika mereka juga menjabat sebagai pengguna aplikasi tingkat. channel_admin Grup
Judul bagian “Grup”
Alih-alih mengasignkan peran kepada setiap pengguna secara individu, Anda dapat membuat__CAPGO_KEEP_0__ kelompok dan tambahkan peran ke kelompok tersebut. Setiap anggota kelompok akan mewarisi peran-peran tersebut secara otomatis.
Bagaimana kelompok bekerja
Judul bagian “Bagaimana kelompok bekerja”- Sebuah kelompok termasuk ke dalam satu organisasi tidak dapat menjangkau organisasi lain.
- Kelompok dapat menyimpan pengikat peran pada apapun tingkat: organisasi, aplikasi, saluran, atau paket. Misalnya, sebuah kelompok dapat diberikan peran App Developer pada Aplikasi A dan peran Pengaturan Saluran peran di saluran aplikasi B.
stagingKetika hak akses pengguna dievaluasi, semua keanggotaan grup mereka diresolusi secara transparan. Jika salah satu grup mereka memberikan hak akses yang diperlukan, akses diizinkan. - Pengguna dapat bergabung dengan
- beberapa grup , dan hak akses dari semua grup bersifat aditif.Hak akses berbasis grup hanya berlaku untuk
- prinsipal pengguna — kunci __CAPGO_KEEP_0__ tidak mengwarisi peran grup. — API keys do not inherit group roles.
Bagian berjudul “Kapan menggunakan grup”
Pengguna dapat memiliki beberapa peran dalam grup yang berbeda.| Skenario | Tidak ada kelompok | 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 |
Mengelola grup melalui API
Judul Bagian “Mengelola grup melalui API”Semua endpoint grup memerlukan autentikasi dan disajikan di bawah /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 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" }'Membutuhkan org.update_user_roles izin (Pengguna Admin Utama atau Page/area: Alternatif pembaruan hidup Capacitor. Role: Paragraf pemasaran atau hukum panjang. Dilihat di: halaman alternatives.astro. | Halaman/area: Perbandingan/migrasi Appflow pemasaran. Role: Paragraf pemasaran atau hukum panjang. Dilihat di: halaman ionic-appflow.astro. | Halaman/area: Halaman perbandingan Capawesome. Role: Paragraf pemasaran atau hukum panjang. Dilihat di: halaman capwesome.astro. | Halaman/area: Halaman layanan konsultasi. Role: Judul bagian atau tagline. Dilihat di: halaman consulting.astro. | Halaman/area: Perbandingan/migrasi Appflow pemasaran. Role: Label UI singkat atau item navigasi. Dilihat di: halaman ionic-appflow.astro, halaman ionic-enterprise-plugins.astro, halaman solusi/ionic-enterprise-plugins.astro.).
Pengguna Admin
Update sebuah kelompokcurl -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" }'Salin ke clipboard
Hapus sebuah kelompokcurl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>"Menghapus sebuah kelompok juga menghapus semua ikatannya. 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
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.
Angkat anggota dari kelompok
Judul bagian “Angkat 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
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 diperbolehkan untuk invite_type:
| Nilai | Peran yang ditugaskan |
|---|---|
org_super_admin | Admin Utama |
org_admin | Admin |
org_billing_admin | Pengelola Tagihan |
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" }'Mengasignasikan peran melalui CLI
Judul Bagian “Mengasignasikan peran melalui CLI”Daftar Organisasi
Judul Bagian “Daftar Organisasi”npx @capgo/cli organization list --apikey <API_KEY>Daftar anggota
Bab berjudul “Daftar anggota”npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>Peran khusus
Bab berjudul “Peran khusus”Peran bawaan sudah mencakup struktur tim yang umum. Pembuatan peran khusus masih dalam rencana kami — jika hal ini diperlukan oleh tim Anda, Hubungi kamiKasus Anda akan langsung membantu kami memprioritaskan fitur ini.
Teruskan dari Referensi Pengendalian Akses
Judul bagian “Teruskan dari Referensi Pengendalian Akses”Jika Anda menggunakan Pengendalian Akses untuk merencanakan dashboard dan operasi API, hubungkannya dengan API Overview untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Pendahuluan, Kunci API untuk detail implementasi di API Keys, Peralatan untuk detail implementasi di Peralatan, dan Paket untuk detail implementasi di Paket.