Langsung ke konten

Referensi Pengendalian Akses

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.


Setiap peran termasuk dalam ruang lingkup yang menentukan sumber daya apa yang memberikan akses.

Ruang lingkupcontext: 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
OrganisasiSeluruh organisasi dan semua aplikasinyaKolaborator Anda mendapatkan Super Admin; akuntan Anda mendapatkan Billing Manager
AplikasiAplikasi tunggal dan saluran-salurannyaSeorang kontraktor yang bekerja pada satu aplikasi mendapatkan App Developer
SaluranSaluran tunggal dalam aplikasiSeorang insinyur QA hanya mengelola saluran staging Saluran
PaketA versi bundel tunggalSeorang 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-peran ini diberikan ketika mengundang anggota. Mereka memberikan akses di seluruh organisasi.

PeranNama InternalPengertian
Pengurus Utamaorg_super_adminSetara Pemilik. Pengontrolan penuh termasuk menghapus organisasi, mengelola tagihan, dan mentransfer aplikasi. Otomatis diberikan kepada pembuat organisasi.
Pengelolaorg_adminPengelolaan penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus organisasi, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna menjadi Super Pengelola.
Pengelola Tagihanorg_billing_adminAkses tagihan hanya: melihat dan mengupdate informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota.
Anggotaorg_memberAkses baca-saja ke organisasi dan semua aplikasinya.
IzinDeskripsiPengelola UtamaAdminPengelola BillingAnggota
org.readLihat organisasi
org.update_settingsUbah nama organisasi, logo, dan alamat email pengelola
org.deleteHapus organisasi secara permanen
org.read_membersLihat daftar anggota
org.invite_userUndang anggota baru
org.update_user_rolesGanti peran anggota (Admin tidak dapat mempromosikan ke Super Admin — diblokir oleh hierarki peran)
org.read_billingLihat informasi pembayaran dan paket saat ini
org.update_billingUbah metode pembayaran dan paket
org.read_invoicesLihat faktur
org.read_auditMelihat log aktivitas organisasi
org.read_billing_auditMelihat 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 Aplikasi

Terbatas pada satu aplikasi. Gunakan peran ini ketika anggota tim hanya boleh bekerja pada satu aplikasi, bukan seluruh organisasi.

PeranNama InternalDeskripsi
Pengelola Aplikasiapp_adminPenuh kontrol atas satu aplikasi — saluran, perangkat, peran pengguna untuk aplikasi. Tidak dapat menghapus atau mentransfer aplikasi (operasi tersebut adalah tingkat organisasi).
Pengembang Aplikasiapp_developerMuat bundle, kelola perangkat, trigger build native, ubah pengaturan saluran. Tidak dapat menghapus, tidak dapat mengubah pengaturan aplikasi, tidak dapat membuat saluran.
Pemuat Bundleapp_uploaderAkses baca + muat versi bundle baru.
Pembaca Aplikasiapp_readerAkses baca saja — statistik, paket, saluran, log, perangkat.
Pratinjau Aplikasiapp_previewPratinjau 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.
IzinDeskripsiAdmin AplikasiPengembang AplikasiPengunggah AplikasiPembaca Aplikasi
app.readLihat detail aplikasi, statistik, dan metadata
app.update_settingsUbah pengaturan aplikasi
app.read_bundlesTampilkan daftar bundle yang diunggah
app.upload_bundleUnggah versi bundle baru
app.create_channelBuat saluran baru
app.read_channelsTampilkan saluran
app.read_logsTampilkan log pengiriman update
app.manage_devicesAssign, override, atau hapus perangkat
app.read_devicesTampilkan daftar perangkat
app.build_nativeTrigger build cloud native
app.read_auditTampilkan log aktivitas aplikasi
app.update_user_rolesKelola penugasan peran aplikasi
bundle.deleteHapus bundle

yang dapat melakukan mereka, terlepas dari peran aplikasi.

Pengaturan Izin Pratinjau Aplikasi

Judul bagian “Pengaturan Izin Pratinjau Aplikasi” Pakai (app_previewPratinjau Aplikasi

Pengikat hanya memberikan izin aplikasi berikut ini: app_preview Izin

MengizinkanMembaca aplikasi yang dipilih
app.readMembaca bundle yang diunggah
app.read_bundlesUpload bundle
app.upload_bundleMembuat saluran
app.create_channelKetika 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 dipilihMembaca bundle yang diunggah
channel.readRead the channel yang dibuat oleh kunci
channel.promote_bundleSet kunci sendiri yang telah diunggah bundle di channel tersebut
channel.deleteHapus 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.


Disediakan untuk saluran perangkat lunak tunggal. Berguna untuk memberikan akses yang spesifik ke saluran rilis tertentu.

PeranNama internalDeskripsi
Pengelola Saluranchannel_adminPenuh kontrol atas satu saluran: pengaturan, promosikan/rollback bundle, dan mengelola perangkat paksa.
Penglihat Saluranchannel_readerAkses baca saja — bundle saat ini, riwayat, perangkat paksa, dan log audit.
Penglihat Saluran Pra-Rilischannel_previewDibuat secara otomatis oleh kunci App Preview yang membuat saluran: baca, promosikan bundle sendiri, dan hapus saluran tersebut.

Matris Izin Saluran

Judul: Matris Izin Saluran
IzinDeskripsiPengelola SaluranPenglihat SaluranPenglihatan Saluran
channel.readLihat saluran dan paket aktifnya saat ini
channel.update_settingsUbah pengaturan saluran (toggle platform, kebijakan update…)
channel.deleteHapus saluran
channel.read_historyLihat riwayat pengaturan paket
channel.promote_bundleSet paket aktif pada saluran
channel.rollback_bundleKembali ke bundle sebelumnya
channel.manage_forced_devicesForcekan perangkat tertentu ke saluran ini
channel.read_forced_devicesTampilkan daftar perangkat yang dipaksa
channel.read_auditTampilkan log aktivitas saluran

Terbatas pada versi bundle tunggal. Jarang dibutuhkan — kebanyakan tim menggunakan peran aplikasi daripada ini.

PeranNama internalDeskripsi
Pengelola Paketbundle_adminBaca, ubah metadata, dan hapus paket tertentu.
Penglihat Paketbundle_readerAkses baca-saja ke paket tertentu.

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.

IzinDeskripsiKebiasaan Default
BacaLihat saluran dan paket terkait saat iniInherited dari peran aplikasi
RiwayatLihat riwayat pengaturan bundleInherited dari peran aplikasi
Arsipkan bundleSet atau ubah bundle aktif di saluranInherited 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 induk

mengambil 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


__CAPGO_KEEP_0__ kelompok dan tambahkan peran ke kelompok tersebut. Setiap anggota kelompok akan mewarisi peran-peran tersebut secara otomatis.

  • 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. staging Ketika 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.
SkenarioTidak ada kelompokDengan kelompok
5 insinyur QA memerlukan akses Developer ke 3 aplikasi15 pengikat peran individu1 kelompok + 3 pengikat peran
Seseorang bergabung dengan tim QATambahkan 3 pengikat peran secara manualTambahkan mereka ke kelompok
Seseorang meninggalkan tim QAHapus 3 pengikat peran secara manualHapus mereka dari kelompok

Semua endpoint grup memerlukan autentikasi dan disajikan di bawah /private/groups.

Jendela Terminal
curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>"

Memerlukan org.read_members izin.

Jendela Terminal
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.).

Judul bagian “Update 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"
}'

Salin ke clipboard

Hapus sebuah kelompok
Jendela terminal
curl -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.

Jendela terminal
curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>"
Jendela terminal
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.

Jendela terminal
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \
-H "authorization: <API_KEY>"

Jendela terminal
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
}
]
Jendela terminal
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:

NilaiPeran yang ditugaskan
org_super_adminAdmin Utama
org_adminAdmin
org_billing_adminPengelola Tagihan
org_memberAnggota
Jendela Terminal
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"
}'

Jendela terminal
npx @capgo/cli organization list --apikey <API_KEY>
Jendela terminal
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

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.