Lompat ke konten

Referensi Pengendalian Akses

Capgo uses role-based access control (RBAC) untuk mengelola apa yang dapat dilakukan oleh setiap anggota tim. Peran-peran diatur berdasarkan ruang lingkup — dari organisasi keseluruhan hingga sebuah 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 lingkupBerlaku untukContoh penggunaan
OrganisasiSeluruh organisasi dan semua aplikasinyaKo-fondernya mendapatkan Super Admin; akuntannya 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 membutuhkan akses baca ke satu rilis tertentu

Seorang anggota dapat menempati __CAPGO_KEEP_0__ per ruang lingkup 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 InternalDeskripsi
Super Adminorg_super_adminSama dengan pemilik. Mengontrol sepenuhnya termasuk menghapus organisasi, mengelola tagihan, dan mentransfer aplikasi. Diberikan secara otomatis kepada pembuat organisasi.
Pengelolaorg_adminManajemen penuh — mengelola anggota, aplikasi, saluran.
Tidak dapat menghapus organisasi, mengupdate tagihan, mentransfer aplikasi, atau mempromosikan pengguna menjadi Super Admin.org_billing_adminPengelola Tagihan
Akses tagihan saja: lihat dan update informasi tagihan, faktur, dan log audit tagihan. Tidak ada akses ke aplikasi atau anggota.org_memberAnggota

Akses baca-saja ke organisasi dan semua aplikasinya.

Matris izin organisasi
Bab berjudul “Matris izin organisasi”IzinDeskripsiSuper AdminPengelola (Adminstrator Utama) tidak ada dalam bahasa Indonesia, penggunaan yang lebih umum adalah 'Pengelola Utama' atau 'Admin Utama' untuk 'Super Admin' dan 'Pengelola' untuk 'Admin' dan 'Pengelola Tagihan' untuk 'Billing Manager' untuk mempertahankan konsistensi dalam bahasa Indonesia, namun perlu diingat bahwa istilah-istilah ini mungkin tidak sepenuhnya akurat atau umum digunakan dalam konteks ini. Untuk keakuratan dan konsistensi, sebaiknya gunakan istilah-istilah yang lebih umum dan akurat dalam konteks ini, seperti 'Pengelola Utama', 'Pengelola', dan 'Pengelola Tagihan'.Anggota
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_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 tagihan

dapat melakukan di semua aplikasi dan saluran.

Peran aplikasi

Judul bagian “Peran aplikasi”

Peran__CAPGO_KEEP_0__Deskripsi
Admin Aplikasiapp_adminPenuh kontrol 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.

Matris Izin Aplikasi

Matriks Izin Aplikasi
IzinDeskripsiAdmin AplikasiPengembang AplikasiUploader 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, menggantikan, atau melepas perangkat
app.read_devicesLihat daftar perangkat
app.build_nativeAktifkan bangunan awan asli
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 sasaran kepada saluran rilis tertentu.

PeranNama internalDeskripsi
Pengelola Saluranchannel_adminPenuh kontrol atas satu saluran: pengaturan, promosikan/rollback bundle, mengelola perangkat paksa.
Penglihat Saluranchannel_readerAkses baca saja — bundle saat ini, riwayat, perangkat paksa, log audit.
IzinDeskripsiPengatur ChannelPengguna Channel
channel.readLihat channel dan bundle saat ini
channel.update_settingsUbah pengaturan channel (toggle platform, kebijakan update…)
channel.deleteHapus channel
channel.read_historyLihat riwayat pengaturan bundle
channel.promote_bundleTetapkan bundle aktif pada channel
channel.rollback_bundleKembali ke bundle sebelumnya
channel.manage_forced_devicesKerjakan perangkat tertentu ke channel ini
channel.read_forced_devicesLihat daftar perangkat yang dipaksa
channel.read_auditLihat log aktivitas channel

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

PeranNama internalDeskripsi
Pengelola Bundlebundle_adminBaca, update metadata, dan hapus bundle tertentu.
Penglihatan Paketbundle_readerAkses baca-saja ke paket tertentu.

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

IzinDeskripsiTindakan default
BacaLihat saluran dan paket saat iniDitetapkan dari peran aplikasi
RiwayatLihat riwayat penugasan paketDitetapkan dari peran aplikasi
Hubungkan paketAtur atau ubah bundle aktif di saluranDiteruskan dari peran aplikasi

Masing-masing izin dapat diatur menjadi:

  • Default — mewarisi dari peran aplikasi (default)
  • Biarkan — memberikan izin secara eksplisit, terlepas dari peran aplikasi
  • Dilarang — melarang secara eksplisit, terlepas dari peran aplikasi

Fungsi ini memungkinkan Anda, misalnya, memberikan kemampuan untuk menghubungkan bundle pada saluran kepada pembaca aplikasi tanpa mempromosikannya menjadi pengembang aplikasi. staging Tata kerja peran


__CAPGO_KEEP_0__

Struktur Hierarchy

Struktur peran membentuk suatu hierarki. Sebuah peran induk mengambil semua hak akses anaknya. Hal ini berarti sebuah org_admin dapat melakukan apa saja yang dapat dilakukan oleh app_admin dapat melakukan apa saja yang dapat dilakukan oleh channel_admin dapat melakukan apa saja 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)

Bagaimana cara kerjanya dalam prakteknya:

  • Seorang Admin di tingkat organisasi dapat melakukan apa saja yang dapat dilakukan oleh App Admin dapat melakukan hal-hal berikut pada setiap aplikasi di organisasi. App Admin dapat melakukan hal-hal berikut pada setiap aplikasi di organisasi.
  • Seorang App Admin pada aplikasi tertentu dapat melakukan semua hal yang dapat dilakukan oleh Channel Admin pada setiap saluran di aplikasi tersebut.
  • Seorang App Developer dapat melakukan semua hal yang dapat dilakukan oleh App Uploader dan dapat melakukan 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 menugaskan peran ke grup. Setiap anggota grup akan mewarisi peran tersebut secara otomatis. Cara kerja grup

Judul bagian “Cara kerja grup”

Grup termasuk
  • A group belongs to __CAPGO_KEEP_0__ satu organisasi — tidak dapat menjangkau beberapa organisasi.
  • Grup dapat menampung ikatan peran pada apapun ruang lingkup: organisasi, aplikasi, saluran, atau paket. Misalnya, sebuah grup dapat diberikan peran Pengembang Aplikasi pada Aplikasi A dan peran Admin Saluran pada saluran Aplikasi B. staging Ketika izin pengguna dievaluasi, semua keanggotaan grup mereka diresolusi secara transparan. Jika salah satu grup mereka memberikan izin yang diperlukan, akses diizinkan.
  • Seorang pengguna dapat menjadi anggota
  • dari berbagai kelompokhak akses dari semua kelompok bersifat aditif.
  • Hanya hak akses berdasarkan kelompok yang berlaku untuk prinsipal pengguna — API kunci tidak mewarisi peran kelompok.
SkenarioTanpa 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 kelompok
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>"

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 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 umum. Pembuatan peran khusus sedang dalam rencana — jika tim Anda membutuhkannya, Hubungi kamiKasus guna Anda akan langsung membantu kami memprioritaskan fitur ini.