Resource Script dan endpoint
Terakhir diperbarui: 18 Juli 2026
Script adalah endpoint backend deklaratif yang dipanggil oleh frontend melalui HTTP (konsep dan struktur tingkat tertingginya dibahas di Ringkasan Script). Halaman ini membahas struktur sys dan properti badan dari resource Script, serta spesifikasi endpoint HTTP yang menyusun dan menjalankan Script.
Script ditangani di dua API pengelolaan. Di CMA (identitas Weegloo User) Anda dapat melakukan semuanya: daftar, pengambilan, pembuatan, penyuntingan, penghapusan, serta eksekusi dan polling. Di ACMA (identitas ServiceUser, yaitu end-user yang mendaftar ke produk) Anda hanya dapat menjalankan dan melakukan polling; penyusunan (pembuatan, penyuntingan, penghapusan) hanya ada di CMA. API pengiriman baca-saja (CDA, ACDA) tidak memiliki Script.
Script adalah resource yang memiliki version dan merupakan resource yang dapat ditagih (Billable) dengan batas jumlah per paket. Namun, berbeda dengan Content atau Media, ia tidak memiliki status publikasi. sys-nya tidak memiliki properti terkait publikasi seperti status atau publish, dan hanya version yang naik setiap kali ada perubahan. Karena tidak ada konsep publikasi maupun pembatalan publikasi, penghapusan pun langsung terjadi tanpa pembatalan publikasi.
Struktur resource
Berikut adalah respons pengambilan tunggal dari Script "t6-http". Bersama dengan sys (properti sistem), ia memiliki dua properti badan: name dan definition.
{
"sys": {
"id": "3trmXRMZcTAjDnphewjj1AaxYcaxlK",
"type": "Script",
"space": { "sys": { "id": "6jSUUAWT", "type": "Refer", "targetType": "Space" } },
"createdBy": { "sys": { "id": "3p4tcFbQYJNvYTBJf2rYKr42xegQLJ", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-07-15T12:35:47.575Z",
"updatedBy": { "sys": { "id": "3p4tcFbQYJNvYTBJf2rYKr42xegQLJ", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-07-15T12:35:47.575Z",
"version": 1
},
"name": "t6-http",
"definition": {
"method": "Post",
"executionMode": "Async",
"statements": [
{
"name": "resp",
"method": "POST",
"url": "https://postman-echo.com/post",
"headers": [ { "key": "Content-Type", "value": "application/json", "secret": false } ],
"body": { "prompt": "{ /payload/prompt }" },
"timeoutMs": 10000,
"retry": 0,
"type": "Http"
},
{
"value": { "status": "{ /resp/status }", "prompt": "{ /resp/body/json/prompt }" },
"isError": false,
"statusCode": 200,
"type": "Return"
}
]
}
}Kunci utama:
sys.id: Pengenal unik dari Script. Nilai ini masuk ke{scriptId}pada jalur pengambilan tunggal, penyuntingan, penghapusan, dan eksekusi.name: Nama dari Script (1~64 karakter). Digunakan pada daftar di layar dan untuk identifikasi pengelolaan.definition:ScriptDefinitionyang mendeklarasikan apa yang dilakukan Script ini. Terdiri dari metode pemanggilan (method), mode eksekusi (executionMode), array statement (statements), dan skema payload opsional (payloadSchema). Struktur terperincinya dibahas di Definisi dan nama di bawah dan di struktur tingkat tertinggi pada Ringkasan Script.
Perhatikan bahwa sys tidak memiliki status, publish, maupun archive. Script bukanlah resource yang dipublikasikan ke jalur pengiriman, melainkan resource yang disusun dan dijalankan di API pengelolaan.
Properti sistem (sys)
Setiap Script menempatkan properti sistem umum di dalam objek sys. space, createdBy, dan updatedBy masuk dalam bentuk Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).
| Properti | Tipe | Keterangan |
|---|---|---|
id | string | Pengenal unik resource. |
type | string | Jenis resource. Script selalu "Script". |
space | Refer<Space> | Space tempat Script ini berada. |
createdBy | Refer<User> | Pengguna yang membuatnya. |
createdAt | string (date-time) | Waktu pembuatan. |
updatedBy | Refer<User> | Pengguna yang terakhir menyuntingnya. |
updatedAt | string (date-time) | Waktu penyuntingan terakhir. |
version | integer (≥1) | Versi resource. Naik 1 pada setiap pembuatan dan penyuntingan. |
status (status publikasi) dan publish (riwayat publikasi) yang ada pada sys dari Content, Content Type, dan Media tidak ada pada Script. Ini karena Script tidak dipublikasikan. Properti archive juga tidak ada. Karena itu, version dari Script murni bertambah sebanyak jumlah pembuatan dan penyuntingan, tanpa publikasi.
Definisi dan nama (name, definition)
Properti badan Script ada dua: name dan definition.
| Properti | Wajib | Keterangan |
|---|---|---|
name | Wajib | Nama Script. 1~64 karakter. |
definition | Wajib | ScriptDefinition. Terdiri dari kunci-kunci pada tabel di bawah. |
Kunci dari definition (ScriptDefinition):
| Kunci | Wajib | Keterangan |
|---|---|---|
method | Wajib | Metode HTTP yang digunakan untuk memanggil Script ini. Salah satu dari Get, Post, Put, Patch, Delete. Saat eksekusi, pencocokan dilakukan dengan nilai ini. |
executionMode | Wajib | Lokasi eksekusi. Sync (langsung di jalur permintaan) atau Async (latar belakang). |
statements | Wajib | Array terurut dari statement yang akan dijalankan. Minimal 1. |
payloadSchema | Opsional | JSON Schema. Jika ditentukan, payload permintaan divalidasi dengan skema ini sebelum eksekusi. |
Jenis dan field dari tiap statement yang dimasukkan ke array statements dibahas di Katalog Statement, sedangkan ekspresi { /pointer } yang mengalirkan nilai dibahas di Ekspresi nilai.
Pada contoh "t6-http" di atas, definition memiliki method Post dan executionMode Async; ia memanggil API eksternal dengan statement Http lalu mengembalikan hasilnya dengan statement Return. Script yang memiliki I/O eksternal seperti statement Http harus memiliki executionMode Async (lihat Batasan di bawah).
Batasan
| Sasaran | Batasan |
|---|---|
name | 1~64 karakter, wajib. |
definition.statements | Minimal 1, wajib. |
| Definisi dengan I/O eksternal | executionMode harus Async (ditolak jika disimpan sebagai Sync). |
| Panggilan eksternal per definisi | Maksimal 3 (nilai bawaan). |
SetVar per definisi | Maksimal 5 (nilai bawaan). |
| Total statement per definisi | Maksimal 15 (nilai bawaan, termasuk yang bersarang). |
Batasan statis di atas diperiksa saat menyimpan (membuat atau menyunting) Script, dan jika ada pelanggaran, penyimpanan ditolak. Saat penyimpanan, sistem juga memeriksa apakah penulis benar-benar memiliki izin resource dan aksi yang digunakan oleh statement-statement tersebut (jika satu saja tidak ada, ditolak dengan WGL403015). Aturan terperinci dan anggaran waktu dibahas di Semantik eksekusi, batasan, dan keamanan.
Script adalah resource yang dapat ditagih (Billable), dan jumlahnya per Organization dibatasi menurut paket (Free 3 / Basic 10 / Pro 50 / Enterprise tanpa batas). Ketika batas tercapai, pembuatan Script baru ditolak (lihat batas jumlah per paket).
API
URL dasar untuk endpoint daftar, pengambilan, pembuatan, penyuntingan, dan penghapusan di bawah adalah CMA, yaitu https://cma.weegloo.com/v1, dan diperlukan token Bearer yang mengautentikasi CMA pada header Authorization. Penyuntingan harus menyertakan header X-Weegloo-Version (sys.version resource saat ini) untuk kendali konkurensi optimistis.
Eksekusi (/execute) dan polling (/executions/{requestId}) juga disediakan di ACMA dengan jalur yang sama. Dalam hal ini URL dasarnya adalah https://acma.weegloo.com/v1, dan autentikasi dilakukan dengan token Bearer dari identitas ServiceUser. Penyusunan (pembuatan, penyuntingan, penghapusan) tidak ada di ACMA dan hanya di CMA.
Respons penyelesaian pada contoh eksekusi dan polling di atas tidak memiliki return, karena Script sasaran selesai tanpa mencapai Return yang berisi nilai (dalam hal ini statusCode bernilai bawaan 200). Jika Return mengembalikan nilai, respons akan memuat return (atau error jika Return.isError bernilai true). Aturan lengkap respons dibahas di bagian permintaan dan respons pada Ringkasan Script.
Dokumen terkait
- Ringkasan Script: Membahas struktur
ScriptDefinitiontingkat tertinggi, mode eksekusi, serta permintaan dan respons. - Katalog Statement: Membahas field dan hasil dari tiap statement yang dimasukkan ke
statements. - Ekspresi nilai: Membahas referensi
{ /pointer }dan operasi JsonLogic. - Semantik eksekusi, batasan, dan keamanan: Membahas batasan statis, batas jumlah per paket, serta model izin dan keamanan.
- SpaceRole dan ServiceUserRole: Membahas cara memberikan izin aksi Script (termasuk
Execute) kepada sebuah peran.
