Langsung ke konten

Referensi Pengendalian Akses

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 bundle tunggal.

Untuk walkthrough visual mengelola anggota di dashboard, lihat Organisasi.


Setiap peran termasuk dalam suatu skop yang menentukan sumber daya apa yang memberikan akses.

SkopBerlaku padaContoh penggunaan
OrganisasiSeluruh org dan semua aplikasinyaRekan bisnis 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
PaketVersi paket tunggalSeorang reviewer memerlukan akses baca untuk satu rilis tertentu

Seorang anggota dapat menempati 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
Super Adminorg_super_adminSama dengan pemilik. Pengontrolan penuh termasuk menghapus org, mengelola tagihan, dan mentransfer aplikasi. Diberikan secara otomatis kepada pembuat org.
Adminorg_adminPengelolaan penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus org, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna menjadi Super Admin.
Pengelola Tagihanorg_billing_adminAkses tagihan saja: 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.
IzinDeskripsiSuper AdminAdminManajer BillingAnggota
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_billingPerbarui metode pembayaran dan paket
org.read_invoicesLihat faktur
org.read_auditLihat log aktivitas organisasi
org.read_billing_auditLihat log audit tagihan khusus

Terbatas pada aplikasi tunggal. Gunakan ketika anggota tim hanya bekerja pada satu aplikasi, bukan seluruh organisasi.

PeranNama InternalDeskripsi
Admin Aplikasiapp_adminPenuh kontrol atas satu aplikasi — saluran, perangkat, peran pengguna untuk aplikasi. Tidak dapat menghapus atau mentransfer aplikasi (operasi organisasi tingkat).
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.
IzinDeskripsiAdmin AplikasiDeveloper AplikasiUploader AplikasiBaca Aplikasi
app.readLihat detail, statistik, dan metadata aplikasi
app.update_settingsEdit 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, ubah, atau lepas perangkat
app.read_devicesLihat daftar perangkat
app.build_nativeAktifkan bangunan awan asli
app.read_auditLihat log aktivitas aplikasi
app.update_user_rolesKelola penugasan peran aplikasi
bundle.deleteHapus sebuah paket

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

PeranNama InternalDeskripsi
Pengaturan Saluranchannel_adminPenuh kontrol atas satu saluran: pengaturan, promosikan/rollback paket, mengelola perangkat paksa.
Penglihat Saluranchannel_readerTidak dapat diedit — paket saat ini, riwayat, perangkat paksa, log audit.
IzinDeskripsiPengatur SaluranPenglihat Saluran
channel.readLihat saluran dan paket saat ini
channel.update_settingsSunting pengaturan saluran (tombol platform, kebijakan pembaruan…)
channel.deleteHapus saluran
channel.read_historyLihat riwayat pengaturan bundle
channel.promote_bundleAtur bundle aktif pada saluran
channel.rollback_bundleKembali ke bundle sebelumnya
channel.manage_forced_devicesTunggu perangkat tertentu ke saluran ini
channel.read_forced_devicesLihat daftar perangkat yang ditunggu
channel.read_auditLihat log aktivitas saluran

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

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

In dashboard, akses kanal ditentukan oleh peran aplikasi pengguna secara default. Untuk kontrol yang lebih halus, Anda dapat mengatur izin kanal tertentu untuk pengguna atau kelompok tanpa mengubah peran aplikasi mereka.

Konfigurasi pengaturan ini dilakukan dari tab Akses di aplikasi dengan mengklik tombol izin kanal (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengatur izin kanal untuk panduan visual.

izinPenjelasan__CAPGO_KEEP_0__
Baca__CAPGO_KEEP_1__ dan __CAPGO_KEEP_2__ yang sedang aktifDitetapkan dari peran aplikasi
Riwayat__CAPGO_KEEP_3__ riwayat pengaturan bundleDitetapkan dari peran aplikasi
Asosiasi bundleAtur atau ubah bundle aktif di channelDitetapkan dari peran aplikasi

Setiap izin dapat diatur menjadi:

  • __CAPGO_KEEP_0__ Mewarisi dari peran aplikasi (default)
  • Izinkan Mewarisi dari peran aplikasi (default) — secara eksplisit berikan, tanpa mempertimbangkan peran aplikasi
  • Ditolak Mewarisi dari peran aplikasi (default) — secara eksplisit tolak, tanpa mempertimbangkan peran aplikasi

Fitur ini memungkinkan Anda, misalnya, memberikan peran App Reader kemampuan untuk menghubungkan bundle pada saluran tanpa mempromosikannya ke peran App Developer. staging Struktur Hierarki Peran


Judul bagian ‘Struktur Hierarki Peran’

Peran membentuk hierarki. Peran induk

mewarisi semua izin peran anaknya. Hal ini berarti bahwa peran App Developer mewarisi semua izin peran App Reader dan App Publisher. org_admin dapat melakukan semua yang dapat dilakukan oleh app_admin dapat, yang pada gilirannya dapat melakukan semua yang dapat dilakukan oleh channel_admin dapat, 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 secara praktis:

  • Seorang Admin di tingkat org dapat melakukan semua yang dapat dilakukan oleh Admin Aplikasi dapat, pada setiap aplikasi di org.
  • Seorang Admin Aplikasi di sebuah aplikasi tertentu dapat melakukan semua yang dapat dilakukan oleh Pengelola Saluran di setiap saluran di aplikasi tersebut.
  • Seorang Pengembang Aplikasi dapat melakukan semua yang dapat dilakukan oleh Uploader Aplikasi dan lebih banyak lagi.

Hierarki hanya mengalir ke bawah — tidak pernah mendapatkan hak akses organisasi tingkat, bahkan jika mereka juga menjabat sebagai peran aplikasi tingkat. channel_admin __CAPGO_KEEP_0__


Alihkan peran ke setiap pengguna secara individual, Anda dapat membuat kelompok dan menugaskan peran ke kelompok. Setiap anggota kelompok mewarisi peran secara otomatis.

  • Kelompok milik satu organisasi — tidak dapat menjangkau organisasi lebih dari satu.
  • Kelompok dapat menampung pengikat peran pada apapun ruang lingkupUntuk 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 hak akses pengguna dievaluasi, semua keanggotaan kelompok mereka diresolusi secara transparan. Jika salah satu kelompok mereka memberikan izin yang diperlukan, akses diizinkan.
  • Seorang pengguna dapat bergabung dengan
  • kelompok-kelompok , dan izin dari semua kelompok bersifat aditif.Hak akses berdasarkan kelompok hanya berlaku untuk
  • prinsipal pengguna App Developer — API kunci tidak mewarisi peran grup.
SkenarioTidak ada grupDengan grup
5 insinyur QA membutuhkan akses Developer ke 3 aplikasi15 pengikat peran individu1 grup + 3 pengikat peran
Seseorang bergabung dengan tim QATambahkan 3 pengikat peran secara manualTambahkan mereka ke grup
Seseorang meninggalkan tim QAHapus 3 pengikat 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>"

Diperlukan 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 (Super Admin 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 grup juga menghapus semua ikatan peran di dalamnya. 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 diterima invite_type:

NilaiPeran yang ditugaskan
org_super_adminSuper Admin
org_adminAdmin
org_billing_adminPengelola 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 mencakup struktur tim sebagian besar. Pembuatan peran khusus ada di roadmap kami — jika hal ini diperlukan oleh tim Anda, hubungi kamiKasus penggunaan 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 operasi, hubungkannya dengan API Overview untuk detail implementasi di API Overview, 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.