Lompat 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 panduan visual mengelola anggota di dashboard, lihat Organisasi.


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

Ruang lingkupBerlaku untukContoh penggunaan
OrganisasiSeluruh organisasi dan semua aplikasinyaKo-fondernya mendapatkan Super Admin; akuntannya mendapatkan Billing Manager
AplikasiAplikasi tunggal dan saluran-salurannyaKontraktor yang bekerja pada satu aplikasi mendapatkan App Developer
SaluranSaluran tunggal dalam aplikasiInsinyur QA hanya mengelola saluran ini staging Paket
Versi paket tunggal__CAPGO_KEEP_0__A reviewer memerlukan akses baca ke satu rilis tertentu

Anggota dapat menjabat Satu peran per target ruang lingkup — 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 InternalDeskripsi
Pengatur Utamaorg_super_adminSama dengan pemilik. Mengontrol sepenuhnya termasuk menghapus org, mengelola tagihan, dan mentransfer aplikasi. Otomatis diberikan kepada pembuat org.
Adminorg_adminPengaturan Penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus organisasi, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna menjadi Super Admin.
Billing Managerorg_billing_adminAkses Billing-only: melihat dan mengupdate informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota.
Memberorg_memberAkses baca-saja ke organisasi dan semua aplikasinya.
IzinDeskripsiSuper AdminAdminManajer TagihanAnggota
org.readLihat organisasi
org.update_settingsUbah nama organisasi, logo, alamat email pengelola
org.deleteHapus organisasi secara permanen
org.read_membersLihat daftar anggota
org.invite_userUndang anggota baru
org.update_user_rolesUbah peran anggota (Admin tidak dapat mempromosikan ke Super Admin — diblokir oleh hierarki peran)
org.read_billingLihat informasi tagihan dan paket saat ini
org.update_billingUbah metode pembayaran dan paket
org.read_invoicesLihat faktur
org.read_auditLihat log aktivitas organisasi
org.read_billing_auditLihat log audit khusus billing

di semua aplikasi dan saluran.

Peran Aplikasi

Ditargetkan pada aplikasi tunggal. Gunakan hal ini ketika anggota tim hanya boleh bekerja pada satu aplikasi, bukan seluruh organisasi.

PeranNama internalDeskripsi
Admin Aplikasiapp_adminKontrol penuh atas satu aplikasi — saluran, perangkat, peran pengguna untuk aplikasi. Tidak dapat menghapus atau mentransfer aplikasi (operasi tingkat organisasi).
Pengembang Aplikasiapp_developerUnggah bundle, kelola perangkat, trigger build native, update pengaturan saluran. Tidak ada penghapusan, tidak ada perubahan pengaturan aplikasi, tidak ada pembuatan saluran.
Uploader Aplikasiapp_uploaderAkses baca + unggah versi bundle baru.
Pembaca Aplikasiapp_readerTidak dapat diedit — statistik, bundle, saluran, log, perangkat.
IzinDeskripsiPengelola AplikasiPengembang AplikasiPengunggah AplikasiPembaca Aplikasi
app.readLihat detail aplikasi, statistik, dan metadata
app.update_settingsUbah pengaturan aplikasi
app.read_bundlesLihat daftar bundle yang diunggah
app.upload_bundleUnggah versi bundle baru
app.create_channelBuat saluran baru
app.read_channelsLihat saluran
app.read_logsLihat log pengiriman update
app.manage_devicesTetapkan, override, atau lepaskan perangkat
app.read_devicesLihat daftar perangkat
app.build_nativeAktifkan bangunan awan native
app.read_auditLihat log aktivitas aplikasi
app.update_user_rolesKelola pengaturan peran aplikasi
bundle.deleteHapus paket

Terbatas pada saluran tunggal. Berguna untuk memberikan akses yang spesifik ke saluran rilis tertentu.

PeranNama internalDeskripsi
Pengelola Saluranchannel_adminKontrol penuh atas satu saluran: pengaturan, promosikan/rollback bundle, mengelola perangkat paksa.
Penglihat Saluranchannel_readerTidak dapat diedit — bundle saat ini, riwayat, perangkat paksa, log audit.
OtorisasiDeskripsiPengaturan SaluranPengguna Saluran
channel.readLihat saluran dan paket saat ini
channel.update_settingsUbah pengaturan saluran (toggle platform, kebijakan update…)
channel.deleteHapus saluran
channel.read_historyLihat riwayat pengaturan paket
channel.promote_bundleTetapkan paket aktif pada saluran
channel.rollback_bundleKembali ke paket sebelumnya
channel.manage_forced_devicesTetapkan perangkat tertentu ke saluran ini
channel.read_forced_devicesLihat daftar perangkat yang dipaksa
channel.read_auditLihat log aktivitas saluran

Terbatas pada satu versi paket. Jarang dibutuhkan — sebagian besar tim menggunakan peran aplikasi daripada peran.

PeranNama internalDeskripsi
Admin Paketbundle_adminMembaca, memperbarui metadata, dan menghapus bundle tertentu.
Penglihatan Bundlebundle_readerAkses baca-saja ke bundle tertentu.

Pada 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 diatur dari tab Akses tab aplikasi dengan mengklik tombol izin saluran (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengatur ulang izin saluran untuk melihat panduan visual.

IzinDeskripsiTindakan default
BacaLihat saluran dan paket yang sedang berjalanDiturunkan dari peran aplikasi
RiwayatLihat riwayat penugasan paketDiturunkan dari peran aplikasi
Asosiasi bundleAtur atau ubah bundle aktif di saluranDiturunkan dari peran aplikasi

Setiap izin dapat diatur menjadi:

  • Default — turunkan dari peran aplikasi (default)
  • Izinkan — izinkan secara eksplisit, terlepas dari peran aplikasi
  • Tolak — tolak secara eksplisit, terlepas dari peran aplikasi

Fungsi ini memungkinkan Anda, misalnya, memberikan App Reader kemampuan untuk mengasosiasikan bundle di saluran tanpa mempromosikannya menjadi App Developer. staging __CAPGO_KEEP_0__


Peran membentuk hierarki. Sebuah peran induk mengwarisi semua izin anak-anaknya. Hal ini berarti sebuah org_admin dapat melakukan segala sesuatu yang dapat dilakukan sebuah app_admin dapat melakukan segala sesuatu yang dapat dilakukan sebuah channel_admin 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 cara kerjanya dalam prakteknya:

  • Sebuah Admin di tingkat organisasi dapat melakukan semua yang dapat dilakukan oleh App Admin pada setiap aplikasi di organisasi.
  • Seorang App Admin pada aplikasi tertentu dapat melakukan semua yang dapat dilakukan oleh Channel Admin pada setiap saluran di aplikasi tersebut.
  • Seorang App Developer dapat melakukan semua yang dapat dilakukan oleh App Uploader bisa, 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


grup dan mengasign peran ke grup. Setiap anggota grup akan mewarisi peran secara otomatis. Cara kerja grup

Bagian berjudul “Cara kerja grup”

can, plus more.
  • Sebuah kelompok termasuk ke dalam satu organisasi — tidak dapat menjangkau organisasi yang lebih dari satu.
  • Kelompok dapat menampung pengikat peran pada apapun skop: organisasi, aplikasi, saluran, atau paket. Misalnya, sebuah kelompok dapat diberikan peran Pengembang Aplikasi pada Aplikasi A dan peran Admin Saluran pada saluran Aplikasi B. staging Ketika izin pengguna dievaluasi, semua keanggotaan kelompok mereka diresolusi secara transparan. Jika salah satu kelompok mereka memberikan izin yang diperlukan, akses diizinkan.
  • __CAPGO_KEEP_0__
  • Seorang pengguna dapat menjadi bagian dari berbagai kelompok, dan izin dari semua kelompok bersifat additive.
  • Izin berdasarkan kelompok hanya berlaku untuk prinsipal pengguna — kunci API tidak mengwarisi peran kelompok.
SkenarioTanpa kelompokDengan kelompok
5 insinyur QA membutuhkan akses Developer ke 3 aplikasi15 pengaturan peran individu1 kelompok + 3 pengaturan peran
Seseorang bergabung dengan tim QATambahkan 3 pengaturan peran secara manualTambahkan mereka ke kelompok
Seseorang meninggalkan tim QAHapus 3 pengaturan peran secara manualHapus mereka dari kelompok

Semua endpoint kelompok 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"
}'

Memerlukan org.update_user_roles izin (Admin Utama atau Admin).

Jendela terminal
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"
}'
Jendela terminal
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.

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 tidak ada tindakan.”

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 diterima invite_type:

NilaiPeran yang diberikan
org_super_adminSuper Admin
org_adminAdmin
org_billing_adminManajer Billing
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 paling umum. Pembuatan peran khusus sedang dalam rencana — jika tim Anda membutuhkannya, Hubungi kamiKasus penggunaan Anda akan langsung membantu kami memprioritaskan fitur ini.

If Anda menggunakan Akses Kontrol Referensi untuk merencanakan dashboard dan API operasi, hubungkannya dengan API Ringkasan untuk detail implementasi di API Ringkasan, Pendahuluan untuk detail implementasi di Pendahuluan, Kunci API untuk detail implementasi di Kunci API, Perangkat untuk detail implementasi di Perangkat, dan Paket untuk detail implementasi di Bundles.