Peran dan izin
Siapa yang boleh menulis, siapa yang boleh menerbitkan, dan siapa yang boleh mengubah pengaturan brand.
Baca 3 menit
Tiga peran per brand
Setiap anggota brand punya tepat satu peran di brand itu. Orang yang sama bisa menjadi editor di satu brand dan admin di brand lain. API memeriksa peran sebelum melihat isi permintaan, jadi panggilan yang tidak boleh Anda lakukan gagal dengan 403 apa pun yang Anda kirim.
| Peran | Bisa |
|---|---|
| Editor | Menulis draf, meminta tinjauan, mengunggah media, membuat term, dan memindahkan halaman yang belum tayang. |
| Publisher | Semua yang bisa dilakukan editor, ditambah menerbitkan, menjadwalkan, rollback, dan menghapus entri, mengubah atau memindahkan halaman yang tayang, mengelola redirect, menu, fragmen, dan string, menghapus media, mencoba ulang pengiriman webhook, serta membaca dan mengelola lead. |
| Admin | Semua yang bisa dilakukan publisher, ditambah pengaturan, tema, modul, definisi block, webhook, anggota, token API, integrasi, secret, skrip kustom, impor, dan log audit. |
Brand selalu memiliki minimal satu admin aktif. Anda tidak bisa menghapus atau menangguhkan admin terakhir.
Platform admin itu berbeda
Platform admin mengelola brand di seluruh instalasi (membuat, mengganti nama, menangguhkan). Ini bukan peran brand, hanya diatur lewat perintah di server, dan tidak memberi akses ke konten sebuah brand. Untuk membaca atau mengedit brand, platform admin tetap butuh keanggotaan di sana.
Peran minimum per tipe konten
Admin bisa memberi tipe konten kustom min_role berupa editor, publisher, atau admin. Tanpa itu, semua anggota bisa memakai tipe tersebut.
Anggota yang peringkatnya di bawah min_role mendapat 403 pada entri tipe itu: filter daftar, tampilkan, buat, simpan draf, terbitkan, revisi, aksi AI, tinjauan, dan ekspor. Daftar tanpa filter cukup tidak menyertakan entri tersebut. Pengiriman publik tidak terpengaruh.
Alur tinjauan
Editor tidak bisa menerbitkan, jadi mereka meminta tinjauan. Tinjauan mengunci satu revisi, sehingga menyetujuinya menerbitkan persis apa yang ditinjau.
| Langkah | Panggilan | Siapa |
|---|---|---|
| Minta | POST /v1/manage/entries/{entry}/review dengan note opsional | Anggota mana pun |
| Daftar | GET /v1/manage/reviews | Publisher dan admin melihat semua, editor melihat miliknya |
| Setujui | POST /v1/manage/reviews/{review}/approve, dengan publish: true agar tayang | Publisher, admin |
| Kembalikan | POST /v1/manage/reviews/{review}/changes dengan note wajib | Publisher, admin |
| Batalkan | POST /v1/manage/reviews/{review}/cancel | Peminta, publisher, admin |
| Komentar | POST /v1/manage/reviews/{review}/comments dengan body | Peminta, publisher, admin |
Jika halaman berubah setelah tinjauan diminta, menyetujui dengan publish: true dijawab 409 revision_changed dan tidak ada yang tayang. Permintaan baru untuk versi yang lebih baru membatalkan permintaan terbuka yang lama. Setiap langkah diaudit dan mengirim pembaruan realtime.
Anggota dan undangan
Hanya admin yang mengelola anggota. Semua panggilan butuh header X-Brand-Id.
| Panggilan | Fungsi |
|---|---|
GET /v1/manage/members | Mendaftar anggota dengan role dan status (active atau suspended). |
POST /v1/manage/members | Body {email, role}. Menambahkan akun yang sudah ada (201) atau, untuk email yang belum dikenal, membuat undangan dan dijawab 202. |
PATCH /v1/manage/members/{user} | Mengubah peran anggota. |
POST /v1/manage/members/{user}/suspend | Memblokir anggota di brand ini. Brand lain tidak terpengaruh. |
POST /v1/manage/members/{user}/unsuspend | Memulihkan anggota. |
DELETE /v1/manage/members/{user} | Mengeluarkan anggota dari brand. |
GET /v1/manage/invitations | Mendaftar undangan yang masih menunggu. |
POST /v1/manage/invitations/{id}/resend | Mengirim tautan baru dan memperpanjang undangan menjadi 7 hari. |
DELETE /v1/manage/invitations/{id} | Mencabut undangan. |
{ "email": "[email protected]", "role": "editor" }Tautan undangan hanya dikirim lewat email dan tidak pernah menjadi bagian jawaban API, sehingga pemegang tautan harus memiliki kotak masuk tersebut. Jika brand tidak punya koneksi email yang berfungsi, jawabannya email_sent: false: perbaiki pengaturan email lalu tekan Resend. Anggota yang ditangguhkan tetap memiliki keanggotaan dan peran, tetapi mendapat 403 pada setiap panggilan brand itu.
Jenis token dan siapa yang membuatnya
POST /v1/manage/api-tokens membuat token. Admin bisa membuat semua jenis. Satu-satunya pengecualian untuk anggota lain adalah token preview yang singkat.
| Jenis | Siapa yang boleh membuat | Kedaluwarsa |
|---|---|---|
read | Admin | Opsional, 1 sampai 43200 menit. Tanpa itu tidak pernah kedaluwarsa. |
preview | Admin, atau anggota mana pun | Wajib. Hingga 7 hari untuk admin, 1 sampai 120 menit untuk anggota. |
agent | Admin, saat pengaturan brand agent.enabled menyala | 15 menit sampai 90 hari, default 30 hari. |
developer | Admin | 15 menit sampai 90 hari, default 30 hari. |
Anggota yang meminta jenis lain, atau preview yang lebih lama, mendapat 403. Hanya admin yang bisa mendaftar dan mencabut token. Lihat token dan keamanan untuk cara mengirimnya dan MCP dan akses agen untuk token agen, yang hanya menulis draf dan selalu bertindak dengan peran editor.
Brand lain dan log audit
- Record milik brand lain dijawab 404, bukan 403. Setiap kueri dibatasi ke brand aktif, sehingga id asing terlihat persis seperti id yang tidak ada, dan id tidak bocor.
- Brand yang ditangguhkan dijawab 403 baik di panggilan publik maupun dashboard.
- Otorisasi berjalan lebih dulu. Pemeriksaan peran dan tipe konten terjadi sebelum validasi, sehingga panggilan terlarang tidak pernah mengungkap apakah body-nya valid.
- Setiap perubahan pada konten tayang diaudit. Penerbitan, rollback, penghapusan, perubahan pengaturan, anggota, dan token menulis baris audit berisi id, tidak pernah isi konten atau secret.
GET /v1/manage/audit-logs mendaftar baris audit untuk admin, terbaru lebih dulu, 50 per halaman. Tambahkan ?action=member.suspended untuk menyaring satu aksi.
Untuk daftar lengkap aturan, lihat token dan keamanan.
Apakah halaman ini membantu?