Properti sistem (sys)
Terakhir diperbarui: 3 Juli 2026
Setiap respons resource WEEGLOO terbagi menjadi dua bagian. Data inti resource tersebut berada di satu sisi, seperti fields, dan metadata yang dikelola sistem berada di sisi lain. Metadata ini seluruhnya dimuat dalam objek sys.
sys berisi identifier resource (id), jenis (type), waktu pembuatan dan perubahan, versi, serta relasi dengan resource lain. Halaman ini merangkum di satu tempat struktur sys yang dimiliki bersama oleh semua resource beserta perbedaannya per jenis resource. Referensi resource individual hanya menjelaskan kunci sys khusus milik resource itu sendiri, dan untuk bagian yang umum mengacu ke halaman ini.
Field umum
sys dari hampir semua resource memiliki field berikut. createdBy, updatedBy, dan space dimuat dalam bentuk Refer yang menunjuk ke resource lain ({ "sys": { "id", "type": "Refer", "targetType" } }). Bentuk detailnya dibahas di bawah pada Bentuk Refer.
| Properti | Tipe | Deskripsi |
|---|---|---|
id | string | Identifier unik resource. Mengisi posisi {...Id} pada path pengambilan, pengubahan, dan penghapusan tunggal. |
type | string | Jenis resource. Nilainya adalah nama jenis resource tersebut (misalnya "Content", "Media", "Tag"). |
createdBy | Refer<User> | Pengguna yang membuat. |
updatedBy | Refer<User> | Pengguna yang terakhir mengubah. |
createdAt | string (date-time) | Waktu pembuatan. |
updatedAt | string (date-time) | Waktu perubahan terakhir. |
version | integer (≥1) | Versi saat ini. Naik 1 setiap kali resource diubah. |
space | Refer<Space> | Space tempat resource ini berada. Hanya dimiliki oleh resource di bawah Space. |
version juga digunakan untuk mencegah konflik perubahan bersamaan. Permintaan jenis perubahan seperti pengubahan dan penerbitan harus mengirimkan nilai version saat ini pada header X-Weegloo-Version. Untuk aturan detailnya, lihat Konvensi.
Organization tidak berada di bawah Space, sehingga tidak memiliki space. Sebagai gantinya, ia memiliki plan (Refer<Plan>) yang menunjuk ke paket langganan dan isOfficial (boolean) yang menyatakan status resmi. Space memiliki organization (Refer<Organization>) yang menunjuk ke Organization induk dan plan.
Bentuk Refer
Referensi di dalam sys yang menunjuk ke resource lain selalu menggunakan bentuk yang sama. type ditetapkan ke "Refer", dan targetType memberi tahu jenis resource yang ditunjuk.
{
"sys": {
"id": "HnQ32YiH",
"type": "Refer",
"targetType": "Space"
}
}targetType berisi nama jenis resource yang ditunjuk. Sebagai contoh, space memiliki targetType "Space", createdBy dan updatedBy memiliki "User", dan contentType milik Content memiliki "ContentType". Artinya, tipe yang ditulis sebagai Refer<User> atau Refer<Space> semuanya menggunakan bentuk ini, dan hanya targetType yang berbeda.
Perbedaan per jenis resource
Di atas field umum, properti tambahan disertakan tergantung jenis resource. Secara garis besar terbagi menjadi tiga kelompok.
Resource dengan siklus hidup penerbitan (Content, Media)
Content dan Media memiliki siklus hidup berupa penulisan, penerbitan, dan pengarsipan. Oleh karena itu, properti yang menyatakan status penerbitan ditambahkan ke sys.
| Properti | Tipe | Deskripsi |
|---|---|---|
status | string (enum) | Status penerbitan. Salah satu dari Draft, Changed, Published, Archived. |
publish | object | Pointer status penerbitan. Lihat kunci di bawah. |
archive | object | Informasi pengarsipan. Hanya ada saat sedang diarsipkan; jika tidak, kunci ini tidak ada. |
status adalah salah satu dari 4 nilai berikut.
status | Arti |
|---|---|
Draft | Status sedang ditulis dan belum diterbitkan. |
Changed | Status yang pernah diterbitkan, tetapi kemudian diubah sehingga ada perubahan yang belum diterbitkan. |
Published | Status yang sudah diterbitkan dan tidak ada perubahan yang belum diterbitkan. |
Archived | Status terarsip. |
Objek publish adalah pointer yang menunjuk ke status penerbitan. Saat sedang diterbitkan, ia memiliki semua kunci berikut.
| Kunci | Tipe | Deskripsi |
|---|---|---|
version | integer | sys.version pada saat diterbitkan. |
at | string (date-time) | Waktu penerbitan terakhir. |
firstAt | string (date-time) | Waktu penerbitan pertama. Tetap dipertahankan meskipun penerbitan dibatalkan. |
counter | integer | Jumlah kumulatif penerbitan. |
by | Refer<User> | Pengguna yang terakhir menerbitkan. |
Saat penerbitan dibatalkan, version, at, dan by dihapus dari publish dan hanya firstAt serta counter yang tersisa. Jika belum pernah diterbitkan sekali pun, publish bernilai { "counter": 0 }.
Objek archive hanya ada saat sedang diarsipkan, dan memiliki version pada saat pengarsipan, waktu pengarsipan at, serta pengguna yang mengarsipkan by. Jika tidak dalam status terarsip, kunci archive itu sendiri tidak ada.
Di sini sys.version adalah versi yang sedang dikerjakan (naik pada setiap perubahan seperti pembuatan, pengubahan, penerbitan), sedangkan publish.version adalah versi yang terakhir diterbitkan. Keduanya bisa berbeda.
Berikut adalah contoh sys dari Content yang sedang diterbitkan.
{
"id": "3trmXRM3RqbgSnifyg7PUl8DzDgDzP",
"type": "Content",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } },
"publish": {
"version": 1,
"at": "2026-06-18T09:51:44.128Z",
"firstAt": "2026-06-18T09:51:44.128Z",
"counter": 1,
"by": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } }
},
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T09:51:14.597Z",
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-18T09:51:44.128Z",
"version": 2,
"status": "Published"
}Urutan transisi status pada siklus hidup penerbitan dan respons di setiap tahap dibahas di Content dan Media.
Resource pengaturan (Tag, Locale, Organization, Space dll.)
Resource seperti Tag, Locale, Organization, Space, SpaceRole, ServiceUserRole, Webhook, ServiceLogin tidak memiliki konsep penerbitan. Begitu dibuat, langsung berlaku, tanpa tahap menerbitkan untuk menaikkannya ke jalur pengiriman.
Oleh karena itu, sys resource-resource ini tidak memiliki status, publish, archive, dan hanya memiliki version bersama field umum. version naik 1 setiap kali diubah, dan disertakan pada header X-Weegloo-Version saat permintaan perubahan.
SpaceRole selain itu juga memiliki isLocked (boolean). Jika true, artinya itu adalah peran yang disediakan secara bawaan oleh WEEGLOO.
Resource khusus (ServiceUser, WebHosting)
Sebagian resource memiliki sys yang tidak sesuai dengan dua kelompok di atas.
ServiceUser adalah resource yang muncul dari pendaftaran anggota produk. Karena bukan resource yang dibuat dan diubah orang di studio konten, sys-nya tidak memiliki createdBy, updatedBy, version. Sebagai gantinya, ia memiliki cara masuk provider (string) dan email (string). Karena tidak ada version, saat mengubah ServiceUser tidak diperlukan header X-Weegloo-Version.
WebHosting adalah resource yang menghosting hasil deployment. Ia memiliki field umum dan version, dan ditambah status pemrosesan deployment state (enum). Ini bukan status penerbitan, melainkan status kemajuan pemrosesan hasil deployment yang diunggah.
state | Arti |
|---|---|
PENDING | Menunggu pemrosesan. |
PROCESSING | Sedang diproses. |
COMPLETED | Pemrosesan selesai. |
FAILED | Pemrosesan gagal. |
Perbedaan CMA dan CDA: version vs revision
Bahkan untuk Content dan Media yang sama, bentuk sys berbeda tergantung API mana yang menerimanya.
Content dan Media yang diterima dari CMA (manajemen) adalah resource yang sedang dikerjakan. Karena itu ia memuat version, status, publish (dan archive jika sedang diarsipkan) seluruhnya, sehingga memberi tahu sekaligus status kerja saat ini dan status penerbitan.
CDA (pengiriman) hanya mengirimkan snapshot yang sudah diterbitkan. Karena tidak ada konsep status sedang dikerjakan, sys tidak memuat version, status, publish, archive. Sebagai gantinya, ia menggunakan satu revision (integer) yang menunjuk nomor snapshot yang diterbitkan. revision diisi dengan versi pada saat penerbitan setiap kali diterbitkan.
{
"id": "3trmXRM3RqbgSnifyg7PUl8DzDgDzP",
"type": "Content",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } },
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T09:51:14.597Z",
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-18T09:51:44.128Z",
"revision": 3
}Model pengiriman penerbitan (hanya yang diterbitkan yang dikirimkan, snapshot penerbitan, revision) dibahas secara rinci di Ikhtisar CDA.
Dokumen terkait
- Parameter query umum: pengambilan daftar dan paginasi.
- Konvensi: tipe media, JSON Patch, konkurensi (
X-Weegloo-Version). - Error: format respons error dan kode umum.
- Ikhtisar CDA: model pengiriman snapshot penerbitan (
revision).
