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


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

LingkupBerlaku untukContoh penggunaan
OrganisasiSeluruh org 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 di dalam aplikasiSeorang insinyur QA hanya mengelola saluran-salurannya staging Saluran
PaketVersi paket tunggalSeorang reviewer membutuhkan akses baca untuk satu rilis tertentu

Seorang anggota dapat menjabat satu peran per lingkungan target — misalnya, satu peran di 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. Pengontrol penuh termasuk menghapus organisasi, mengelola tagihan, dan mentransfer aplikasi. Otomatis diberikan kepada pembuat organisasi.
Pengelolaorg_adminPengelolaan penuh — kelola anggota, aplikasi, saluran. Tidak dapat menghapus organisasi, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna ke Pengatur Utama.
Pengelola Tagihanorg_billing_adminAkses tagihan hanya: lihat dan update informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota.
Anggotaorg_memberAkses membaca hanya untuk org dan semua aplikasinya.
IzinDeskripsiSuper AdminAdminPengelola TagihanAnggota
org.readLihat organisasi
org.update_settingsUbah nama org, logo, email pengelolaan
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 khusus tagihan

Disediakan untuk aplikasi tunggal. Gunakan ini ketika anggota tim hanya 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.
IzinDeskripsiAdmin 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_devicesAssign, override, atau lepas perangkat
app.read_devicesLihat daftar perangkat
app.build_nativeAktifkan bangun awan asli
app.read_auditLihat log aktivitas aplikasi
app.update_user_rolesKelola penugasan peran aplikasi
bundle.deleteHapus sebuah paket

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

PeranNama internalDeskripsi
Admin Saluranchannel_adminPenuh kontrol atas satu saluran: pengaturan, promosikan/rollback paket, mengelola perangkat paksa.
Pengunjung Saluranchannel_readerAkses baca saja — paket saat ini, riwayat, perangkat paksa, log audit.
IzinDeskripsiAdmin SaluranPengunjung Saluran
channel.readLihat saluran dan paket saat ini
channel.update_settingsUbah pengaturan saluran (tombol platform, kebijakan pembaruan…)
channel.deleteHapus saluran
channel.read_historyTinjau riwayat pengaturan paket
channel.promote_bundleTetapkan paket aktif pada saluran
channel.rollback_bundleKembali ke paket sebelumnya
channel.manage_forced_devicesKompulasi perangkat tertentu ke saluran ini
channel.read_forced_devicesTinjau daftar perangkat yang dipaksa
channel.read_auditTinjau log aktivitas saluran

Ditetapkan pada versi paket 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.

Pengaturan Izin Saluran (Dashboard)

Izin akses saluran (Dashboard)

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

Pengaturan diatur dari tab Akses di aplikasi dengan mengklik tombol izin saluran (ikon pelindung) di samping pengguna. Lihat Organisasi — Mengatur izin akses saluran untuk panduan visual.

Izin yang dapat diatur

Izin yang dapat diatur
IzinDeskripsiBehavior default
BacaLihat saluran dan bundle saat iniDitetapkan dari peran aplikasi
SejarahLihat riwayat pengaturan bundleDitetapkan dari peran aplikasi
Hubungkan bundleAtur atau ubah bundle aktif di saluranDitetapkan dari peran aplikasi

Setiap izin dapat diatur ke:

  • Bahasa Indonesia — mewarisi peran aplikasi (default)
  • Izinkan — memberikan izin secara eksplisit, terlepas dari peran aplikasi
  • Tolak — secara eksplisit melarang, terlepas dari peran aplikasi

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


Judul bagian “Hierarki peran”

Peran membentuk hierarki. Peran induk

mewarisi semua izin Hierarki Peran dari anak-anaknya. Ini berarti sebuah org_admin dapat melakukan segala sesuatu sebuah app_admin dapat, yang pada gilirannya dapat melakukan segala sesuatu sebuah 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 dalam prakteknya:

  • Sebuah Admin di tingkat org dapat melakukan segala sesuatu sebuah App Admin dapat, di setiap aplikasi di org.
  • Sebuah Admin Aplikasi dapat melakukan semua yang dapat dilakukan oleh Admin Saluran pada setiap saluran di aplikasi tersebut.
  • Seorang Pengembang Aplikasi dapat melakukan semua yang dapat dilakukan oleh Uploader Aplikasi selain itu, dia juga dapat melakukan lebih banyak lagi.

Hierarki hanya mengalir ke bawah — tidak ada yang dapat mengubahnya channel_admin tidak pernah mendapatkan izin organisasi, bahkan jika mereka juga memiliki peran aplikasi.


Alih-alih menugaskan peran ke setiap pengguna secara individu, Anda dapat membuat grup dan menugaskan peran ke grup. Setiap anggota grup mewarisi peran tersebut secara otomatis.

  • Grup milik salah satu organisasi — tidak dapat menjangkau organisasi lain.
  • Grup dapat menampung ikatan peran pada apapun ruang lingkup: organisasi, aplikasi, saluran, atau paket. Misalnya, sebuah kelompok dapat diberi peran App Pengembang pada Aplikasi A dan peran Channel Admin pada saluran aplikasi B. staging Saat hak akses pengguna dievaluasi, semua keanggotaan kelompok mereka diresolusi secara transparan. Jika salah satu kelompok mereka memberikan izin yang diperlukan, akses diizinkan.
  • Pengguna dapat bergabung dengan
  • kelompok-kelompok , dan izin dari semua kelompok bersifat aditif.Izin berbasis kelompok hanya berlaku pada
  • apapun ruang lingkup prinsipal pengguna — API kunci tidak mewarisi peran grup.
SkenarioTanpa 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 kelompok
Seseorang meninggalkan tim QAHapus 3 pengikat peran secara manualHapus mereka dari kelompok

Semua endpoint kelompok 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 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 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_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 yang paling umum. Pembuatan peran khusus sedang dalam rencana — jika tim Anda membutuhkannya, hubungi kami. Kasus guna Anda akan membantu kami memprioritaskan fitur ini secara langsung.

Teruskan dari Referensi Pengendalian Akses

Judul bagian “Teruskan dari Referensi Pengendalian Akses”

Jika Anda menggunakan Referensi Pengendalian Akses untuk merencanakan operasi dashboard dan API , hubungkan 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.