SpaceRole

Terakhir diperbarui: 22 Juni 2026

SpaceRole adalah kumpulan izin yang diberikan kepada anggota Space. Dalam satu resource, ia memuat apa yang dapat dilakukan (membaca, membuat, mengedit, menghapus, mempublikasikan) terhadap Content Type, Content, dan Media, serta apakah pengaturan Space dapat diakses. Filter yang mempersempit cakupan izin, seperti hanya Content Type tertentu atau hanya yang dibuat sendiri, juga ditetapkan di dalam SpaceRole.

SpaceRole yang sudah dibuat tidak diterapkan ke siapa pun dengan sendirinya. Anda memberikannya ke anggota dengan memasukkan Refer SpaceRole ini ke roles pada Space Membership. Satu anggota dapat memiliki beberapa SpaceRole sekaligus. Selain itu, DeliveryAccessToken juga terikat pada satu SpaceRole yang least-privilege (hak akses minimum), sehingga cakupan yang dapat dikirim melalui token tersebut ditentukan oleh peran itu.

Struktur resource

Berikut adalah respons pengambilan tunggal dari SpaceRole "Produk Hanya-baca". Bersama dengan sys (properti sistem), ia memiliki properti isi yang menetapkan izin: contentType, content, media, dan settings.

{
  "sys": {
    "id": "3trmXRM3RqbgSnifyg7ObyNrQQbHbm",
    "type": "SpaceRole",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-06-16T09:53:16.617Z",
    "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-06-16T09:53:16.617Z",
    "isLocked": false,
    "version": 1
  },
  "name": "Produk Hanya-baca",
  "contentType": { "All": { "Allow": [] } },
  "content": {
    "Read": {
      "Allow": [
        { "contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } } }
      ]
    }
  },
  "media": { "All": { "Allow": [] } },
  "settings": []
}

Kunci utama:

  • contentType: Peta izin atas Content Type itu sendiri (skema). Menetapkan izin membaca, membuat, mengedit, menghapus, dan mempublikasikan Content Type per aksi.
  • content: Peta izin atas Content (data konten). Contoh di atas memperlihatkan keadaan yang dibatasi hanya untuk membaca Content dari Content Type tertentu.
  • media: Peta izin atas Media (berkas, gambar).
  • settings: Larik string yang menetapkan izin akses ke pengaturan Space. Akses penuh adalah ["SETTING_ALL"], dan jika tidak diberi akses pengaturan apa pun, nilainya [].
  • isLocked: Jika true, ini adalah peran yang disediakan secara bawaan oleh Weegloo (misalnya Administrator) sehingga tidak dapat diubah atau dihapus.

Properti sistem (sys)

Setiap SpaceRole memuat properti sistem umum dalam objek sys. space, createdBy, dan updatedBy masuk dalam bentuk Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).

PropertiTipeDeskripsi
idstringPengidentifikasi unik resource.
typestringJenis resource. SpaceRole selalu "SpaceRole".
spaceRefer<Space>Space tempat SpaceRole ini berada.
createdByRefer<User>Pengguna yang membuat.
createdAtstring (date-time)Waktu pembuatan.
updatedByRefer<User>Pengguna yang terakhir mengubah.
updatedAtstring (date-time)Waktu perubahan terakhir.
isLockedbooleanJika true, ini peran bawaan sehingga tidak dapat diubah atau dihapus. Peran yang Anda buat sendiri bernilai false.
versioninteger (≥1)Versi resource. Bertambah 1 setiap kali diubah.

SpaceRole adalah resource pengaturan yang tidak memiliki konsep publikasi. Karena itu, berbeda dari Content dan Media, sys-nya tidak memiliki publish, archive, atau status, dan hanya memiliki version. version bertambah setiap kali SpaceRole diubah.

Peta izin: contentType, content, media

contentType, content, dan media masing-masing adalah peta yang memiliki aksi sebagai kunci. Aksinya adalah Read (membaca), Create (membuat), Edit (mengedit), Delete (menghapus), dan Publish (mempublikasikan), serta ada All yang menunjuk semua aksi sekaligus. Nilai setiap aksi adalah objek yang memuat larik aturan Allow (mengizinkan) dan Deny (menolak).

"content": {
  "Read":   { "Allow": [ /* aturan */ ], "Deny": [ /* aturan */ ] },
  "Edit":   { "Allow": [ /* aturan */ ] }
}

Setiap objek aturan (rule) memiliki filter opsional yang mempersempit cakupan izin.

  • contentType: Membatasi sasaran penerapan aturan itu pada satu Content Type tertentu. Anda memasukkan Refer yang menunjuk ke Content Type.
  • createdBy: Membatasi hanya pada resource yang dibuat oleh pengguna tertentu. Jika Anda memasukkan id pengguna tertentu pada sys.id, hanya yang dibuat orang itu; jika memasukkan nilai cadangan :self, dibatasi pada "hanya yang dibuat oleh pengguna yang memanggil saat ini".
  • tag: Membatasi hanya pada resource yang diberi Tag tertentu.

Larik Allow kosong [] berarti mengizinkan aksi pada seluruh jenis tersebut. Karena filter kosong, tidak ada yang disaring, sehingga aksi itu terbuka untuk semua resource.

Contoh 1: Administrator (izin penuh, disediakan bawaan)

Peran Administrator memberikan Allow kosong pada aksi All untuk contentType, content, dan media sehingga mengizinkan seluruhnya, dan memberikan ["SETTING_ALL"] pada settings sehingga mengakses seluruh pengaturan Space. Peran ini disediakan bawaan oleh Weegloo, jadi sys.isLocked-nya true dan tidak dapat diubah atau dihapus.

{
  "sys": {
    "id": "3trmXRLdJF4GBlAjtcuoWfVubsasp4",
    "type": "SpaceRole",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "createdBy": { "sys": { "id": "_", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-06-14T14:56:04.737Z",
    "updatedBy": { "sys": { "id": "_", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-06-14T14:56:04.737Z",
    "isLocked": true,
    "version": 1
  },
  "name": "Administrator",
  "description": "Members of this role have full access to everything in this space.",
  "contentType": { "All": { "Allow": [] } },
  "content": { "All": { "Allow": [] } },
  "media": { "All": { "Allow": [] } },
  "settings": ["SETTING_ALL"]
}

Contoh 2: Hanya baca (hanya Content Type tertentu)

Ini contoh peran least-privilege yang Anda buat sendiri. Aturan hanya diletakkan pada aksi Read dari content, dan dengan filter contentType pada aturan itu dibatasi pada satu Content Type tertentu. Content Type itu sendiri dan Media dibuka dengan All ber-Allow kosong, tetapi data konten hanya dapat dibaca untuk satu jenis itu. Karena settings adalah [], pengaturan Space tidak dapat diakses. Jika peran seperti ini diikat ke DeliveryAccessToken, token pengiriman hanya membaca cakupan itu. JSON peran ini sama dengan "Produk Hanya-baca" pada Struktur resource di atas.

settings (akses pengaturan Space)

settings bukan peta izin melainkan larik string. Ia memuat izin akses ke pengaturan Space; akses penuh diisi ["SETTING_ALL"], dan jika tidak diberi akses apa pun, dibiarkan [].

Daftar aksi (Read, Create, Edit, Delete, Publish, All), kunci filter (contentType, createdBy, tag), dan makna :self mengacu pada definisi aturan izin weegloo-space-role.

API

Base URL untuk semua endpoint di bawah adalah https://cma.weegloo.com/v1, dan diperlukan token Bearer yang mengautentikasi ke CMA pada header Authorization. Untuk mengubah peran (PUT, PATCH), Anda harus mengirim juga header X-Weegloo-Version (sys.version resource saat ini) demi kontrol konkurensi optimistik. Pembuatan dan penghapusan tidak memerlukan header ini. Peran bawaan dengan sys.isLocked bernilai true tidak dapat diubah atau dihapus.