Script रिसोर्स और एंडपॉइंट
अंतिम अपडेट: 18 जुलाई 2026
Script एक घोषणात्मक बैकएंड एंडपॉइंट है जिसे फ्रंटएंड HTTP के ज़रिए कॉल करता है (इसकी अवधारणा और शीर्ष-स्तरीय संरचना Script अवलोकन में दी गई है)। यह पेज Script रिसोर्स की sys संरचना और बॉडी प्रॉपर्टीज़, तथा Script को लिखने और चलाने वाले HTTP एंडपॉइंट का विनिर्देश कवर करता है।
Script दो मैनेजमेंट API में संभाला जाता है। CMA (Weegloo User पहचान) पर आप सूची देखना, पढ़ना, बनाना, अपडेट करना, हटाना, तथा निष्पादन और पोलिंग, सब कुछ कर सकते हैं। ACMA (उत्पाद में साइन अप किए हुए ServiceUser की पहचान) पर आप केवल निष्पादन और पोलिंग कर सकते हैं, और लेखन (बनाना, अपडेट करना, हटाना) केवल CMA पर होता है। केवल-पढ़ने वाले डिलीवरी API (CDA, ACDA) में Script नहीं है।
Script एक ऐसा रिसोर्स है जो version रखता है, और यह प्रति-प्लान गिनती सीमा के अधीन एक बिलिंग-योग्य (Billable) रिसोर्स है। लेकिन Content या Media के विपरीत, इसमें कोई publish स्थिति नहीं होती। इसके sys में status या publish जैसी publish-संबंधी प्रॉपर्टीज़ नहीं होतीं; हर बदलाव पर केवल version बढ़ता है। publish और unpublish की कोई अवधारणा न होने के कारण, इसे हटाना भी बिना unpublish किए तुरंत हो जाता है।
रिसोर्स संरचना
नीचे Script "t6-http" का सिंगल-रीड रिस्पॉन्स है। sys (सिस्टम प्रॉपर्टीज़) के साथ-साथ इसमें name और 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"
}
]
}
}मुख्य कीज़:
sys.id: Script का यूनीक आइडेंटिफ़ायर। यह सिंगल-रीड, अपडेट, हटाने और निष्पादन वाले पाथ के{scriptId}में जाता है।name: Script का नाम (1 से 64 अक्षर)। स्क्रीन पर दिखने वाली सूची और मैनेजमेंट-संबंधी पहचान के लिए उपयोग होता है।definition: यहScriptDefinitionहै जो घोषित करता है कि यह Script क्या करता है। यह कॉल मेथड (method), निष्पादन मोड (executionMode), स्टेटमेंट (statements) ऐरे, और वैकल्पिक payload स्कीमा (payloadSchema) से मिलकर बनता है। इसकी विस्तृत संरचना नीचे परिभाषा और नाम में और Script अवलोकन में शीर्ष-स्तरीय संरचना में दी गई है।
ध्यान दें कि sys में status, publish या archive नहीं होते। Script कोई ऐसा रिसोर्स नहीं है जो डिलीवरी पाथ पर publish होता हो; यह वह रिसोर्स है जिसे आप मैनेजमेंट API में लिखते और चलाते हैं।
सिस्टम प्रॉपर्टीज़ (sys)
हर Script सामान्य सिस्टम प्रॉपर्टीज़ को sys ऑब्जेक्ट में रखता है। space, createdBy और updatedBy Refer आकार ({ "sys": { "id", "type": "Refer", "targetType" } }) में आते हैं।
| प्रॉपर्टी | टाइप | विवरण |
|---|---|---|
id | string | रिसोर्स का यूनीक आइडेंटिफ़ायर। |
type | string | रिसोर्स का प्रकार। Script के लिए यह हमेशा "Script" होता है। |
space | Refer<Space> | वह Space जिससे यह Script संबंधित है। |
createdBy | Refer<User> | बनाने वाला उपयोगकर्ता। |
createdAt | string (date-time) | बनाए जाने का समय। |
updatedBy | Refer<User> | अंतिम बार अपडेट करने वाला उपयोगकर्ता। |
updatedAt | string (date-time) | अंतिम अपडेट का समय। |
version | integer (≥1) | रिसोर्स वर्शन। हर बार बनाने या अपडेट करने पर यह 1 बढ़ता है। |
Content, Content Type और Media के sys में मौजूद status (publish स्थिति) और publish (publish इतिहास) Script में नहीं होते। ऐसा इसलिए है क्योंकि Script publish नहीं होता। archive प्रॉपर्टी भी नहीं होती। इसलिए Script का version बिना किसी publish के, केवल बनाने और अपडेट की संख्या के अनुसार बढ़ता है।
परिभाषा और नाम (name, definition)
Script की बॉडी प्रॉपर्टीज़ दो हैं: name और definition।
| प्रॉपर्टी | आवश्यक | विवरण |
|---|---|---|
name | आवश्यक | Script का नाम। 1 से 64 अक्षर। |
definition | आवश्यक | ScriptDefinition. नीचे दी गई तालिका की कीज़ से मिलकर बनता है। |
definition (ScriptDefinition) की कीज़:
| की | आवश्यक | विवरण |
|---|---|---|
method | आवश्यक | इस Script को कॉल करने के लिए HTTP मेथड। Get, Post, Put, Patch, Delete में से एक। निष्पादन के समय इसी मान से मैचिंग होती है। |
executionMode | आवश्यक | निष्पादन का स्थान। Sync (रिक्वेस्ट पाथ पर तुरंत) या Async (बैकग्राउंड में)। |
statements | आवश्यक | निष्पादित किए जाने वाले स्टेटमेंट (statement) का क्रमबद्ध ऐरे। कम से कम 1। |
payloadSchema | वैकल्पिक | JSON Schema। निर्दिष्ट करने पर, निष्पादन से पहले रिक्वेस्ट payload को इसी स्कीमा से सत्यापित किया जाता है। |
statements ऐरे में डाले जाने वाले हर स्टेटमेंट के प्रकार और फ़ील्ड Statement कैटलॉग में दिए गए हैं, और मान को आगे भेजने वाली { /pointer } अभिव्यक्तियाँ मान अभिव्यक्तियाँ में दी गई हैं।
ऊपर दिए उदाहरण "t6-http" के definition में method Post है और executionMode Async है; यह Http स्टेटमेंट से एक बाहरी API को कॉल करता है और फिर Return स्टेटमेंट से उसका परिणाम लौटाता है। Http स्टेटमेंट की तरह बाहरी I/O वाले Script का executionMode अनिवार्य रूप से Async होना चाहिए (नीचे प्रतिबंध देखें)।
प्रतिबंध
| लक्ष्य | प्रतिबंध |
|---|---|
name | 1 से 64 अक्षर, आवश्यक। |
definition.statements | कम से कम 1, आवश्यक। |
| बाहरी I/O वाली परिभाषा | executionMode Async होना चाहिए (Sync के रूप में सेव करने पर अस्वीकृत)। |
| प्रति परिभाषा बाहरी कॉल | अधिकतम 3 (डिफ़ॉल्ट)। |
प्रति परिभाषा SetVar | अधिकतम 5 (डिफ़ॉल्ट)। |
| प्रति परिभाषा कुल स्टेटमेंट | अधिकतम 15 (डिफ़ॉल्ट, नेस्टेड सहित)। |
ऊपर दिए गए स्थैतिक प्रतिबंध Script को सेव (बनाने/अपडेट) करने के समय जाँचे जाते हैं, और उल्लंघन होने पर सेव अस्वीकृत हो जाता है। सेव के समय यह भी जाँचा जाता है कि लेखक के पास वे रिसोर्स और ऐक्शन अनुमतियाँ वास्तव में हैं या नहीं जिनका उपयोग वे स्टेटमेंट करते हैं (यदि कोई एक भी न हो, तो WGL403015 के साथ अस्वीकृत)। विस्तृत नियम और समय-बजट निष्पादन सिमैंटिक्स, प्रतिबंध और सुरक्षा में दिए गए हैं।
Script एक बिलिंग-योग्य (Billable) रिसोर्स है, और प्रति Organization इसकी संख्या प्लान के अनुसार सीमित होती है (Free 3 / Basic 10 / Pro 50 / Enterprise असीमित)। सीमा तक पहुँचने पर नया Script बनाना अस्वीकृत हो जाता है (प्लान-वार संख्या सीमा देखें)।
API
नीचे दिए गए सूची, पढ़ने, बनाने, अपडेट और हटाने वाले एंडपॉइंट का बेस URL CMA का https://cma.weegloo.com/v1 है, और Authorization हेडर में CMA को प्रमाणित करने वाला Bearer टोकन आवश्यक है। अपडेट करते समय, ऑप्टिमिस्टिक कन्करेंसी कंट्रोल के लिए X-Weegloo-Version हेडर (वर्तमान रिसोर्स का sys.version) भी भेजना ज़रूरी है।
निष्पादन (/execute) और पोलिंग (/executions/{requestId}) ACMA पर भी उन्हीं पाथ के साथ उपलब्ध हैं। इस स्थिति में बेस URL https://acma.weegloo.com/v1 होता है, और प्रमाणीकरण ServiceUser पहचान के Bearer टोकन से किया जाता है। लेखन (बनाना, अपडेट करना, हटाना) ACMA पर नहीं है और यह केवल CMA पर है।
ऊपर दिए गए निष्पादन और पोलिंग उदाहरणों के पूर्ण-रिस्पॉन्स में return नहीं है, क्योंकि लक्षित Script किसी मान को धारण करने वाले Return तक पहुँचे बिना ही समाप्त हो गया (ऐसी स्थिति में statusCode का डिफ़ॉल्ट मान 200 होता है)। यदि Return से कोई मान लौटाया जाए, तो रिस्पॉन्स में return (या Return.isError सत्य होने पर error) आता है। रिस्पॉन्स के पूरे नियम Script अवलोकन के रिक्वेस्ट और रिस्पॉन्स भाग में दिए गए हैं।
संबंधित दस्तावेज़
- Script अवलोकन: शीर्ष-स्तरीय
ScriptDefinitionसंरचना, निष्पादन मोड, और रिक्वेस्ट व रिस्पॉन्स को कवर करता है। - Statement कैटलॉग:
statementsमें डाले जाने वाले हर स्टेटमेंट के फ़ील्ड और परिणाम को कवर करता है। - मान अभिव्यक्तियाँ:
{ /pointer }संदर्भ और JsonLogic संक्रियाओं को कवर करता है। - निष्पादन सिमैंटिक्स, प्रतिबंध और सुरक्षा: स्थैतिक प्रतिबंध, प्लान-वार संख्या सीमा, और अनुमति व सुरक्षा मॉडल को कवर करता है।
- SpaceRole और ServiceUserRole: किसी role को Script की ऐक्शन अनुमतियाँ (
Executeसहित) देने का तरीका कवर करते हैं।
