Lompat 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 bundel tunggal.

Untuk walkthrough visual mengelola anggota di dashboard, lihat Organisasi.


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

SkopAplikasiContoh penggunaan
OrganisasiSeluruh organisasi dan semua aplikasinyaRekan pendiri 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 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-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. Otomatis diberikan kepada pembuat org.
Adminorg_adminPengelolaan penuh — mengelola anggota, aplikasi, saluran. Tidak dapat menghapus org, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna ke Super Admin.
Pengelola Tagihanorg_billing_adminAkses tagihan-saja: lihat dan update informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota.
Anggotaorg_memberAkses baca-saja ke org dan semua aplikasinya.
IzinDeskripsiSuper AdminAdminManajer BillingAnggota
org.readLihat organisasi
org.update_settingsUbah nama org, logo, alamat email pengelola
org.deleteHapus organisasi secara permanen
org.read_membersView 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 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 tersebut adalah 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.
Penglihatan Aplikasiapp_previewSiklus 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.
IzinDeskripsiPengguna AplikasiPengembang AplikasiUploader AplikasiBaca Aplikasi
app.readLihat detail, statistik, dan metadata aplikasi
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_devicesTentukan, mengganti, atau melepas 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 skop
bundle.deleteHapus paket

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:

IzinMengizinkan
app.readMembaca aplikasi yang dipilih
app.read_bundlesMembaca bundle yang diunggah
app.upload_bundleUnggah sebuah bundle
app.create_channelBuat 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:

IzinMengizinkan
channel.readBaca saluran yang dibuat oleh kunci
channel.promote_bundleAtur bundle yang diunggah kunci tersebut pada saluran tersebut
channel.deleteHapus 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.


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

PeranNama internalDeskripsi
Pengelola Saluranchannel_adminPenuh kontrol atas satu saluran: pengaturan, promosikan/rollback paket, dan mengelola perangkat paksa.
Penglihat Saluranchannel_readerAkses baca saja — paket saat ini, riwayat, perangkat paksa, dan log audit.
Penglihatan Saluranchannel_previewDitugaskan secara otomatis ke kunci App Preview yang menciptakan saluran: baca, promosikan paket sendiri, dan hapus saluran tersebut.
IzinPenjelasanPengelola SaluranPenglihat SaluranPenglihatan Saluran
channel.readLihat saluran dan paket saat ini
channel.update_settingsEdit pengaturan saluran (toggle platform, kebijakan pembaruan…)
channel.deleteHapus saluran
channel.read_historyLihat riwayat pengaturan paket
channel.promote_bundleAtur paket aktif pada saluran
channel.rollback_bundleKembali ke paket sebelumnya
channel.manage_forced_devicesTunggu perangkat tertentu ke saluran ini
channel.read_forced_devicesLihat daftar perangkat yang ditunggu
channel.read_auditLihat log aktivitas saluran

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

PeranNama internalDeskripsi
Pengelola Bundlebundle_adminBaca, update metadata, dan hapus bundle tertentu.
Penglihat Bundlebundle_readerAkses baca-saja ke bundle tertentu.

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”
IzinDeskripsiTindakan Default
BacaLihat saluran dan paket saat iniDiturunkan dari peran aplikasi
RiwayatLihat riwayat pengaturan paketDiturunkan dari peran aplikasi
Hubungkan PaketAtur atau ubah paket aktif di saluranDiteruskan 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 role

Peran 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.


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.

  • 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. staging Saat 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.
SkenarioTidak ada kelompokDengan kelompok
5 insinyur QA membutuhkan akses Developer ke 3 aplikasi15 pengikat peran individu1 kelompok + 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 grup

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

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

Memerlukan org.read_members iizinkan.

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 grup 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 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 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 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.