सिस्टम प्रॉपर्टी (sys)
WEEGLOO के हर संसाधन का रिस्पॉन्स दो भागों में बँटा होता है। एक ओर fields जैसा उस संसाधन का मुख्य डेटा होता है, और दूसरी ओर सिस्टम द्वारा प्रबंधित मेटाडेटा होता है। यह सारा मेटाडेटा sys ऑब्जेक्ट में रखा जाता है।
sys में संसाधन का पहचानकर्ता (id), प्रकार (type), बनाने और बदलने का समय, वर्शन, और दूसरे संसाधनों के साथ संबंध आते हैं। यह पेज sys की उस संरचना को, जो हर संसाधन में समान रूप से होती है, और संसाधन के प्रकार के अनुसार आने वाले अंतरों को एक ही जगह संकलित करता है। हर अलग संसाधन की रेफ़रेंस उस संसाधन की अपनी sys कुंजियों को ही अलग से समझाती है, और साझा हिस्से के लिए इस पेज का संदर्भ देती है।
साझा फ़ील्ड
लगभग हर संसाधन का sys निम्नलिखित फ़ील्ड रखता है। createdBy, updatedBy और space दूसरे संसाधनों की ओर इशारा करने वाले Refer रूप ({ "sys": { "id", "type": "Refer", "targetType" } }) में आते हैं। विस्तृत रूप नीचे Refer रूप में दिया गया है।
| प्रॉपर्टी | टाइप | विवरण |
|---|---|---|
id | string | संसाधन का अनूठा पहचानकर्ता। एकल पठन, संशोधन और विलोपन पथ के {...Id} स्थान पर आता है। |
type | string | संसाधन का प्रकार। उस संसाधन के प्रकार का नाम मान होता है (उदाहरण: "Content", "Media", "Tag")। |
createdBy | Refer<User> | बनाने वाला उपयोगकर्ता। |
updatedBy | Refer<User> | अंतिम बार संशोधन करने वाला उपयोगकर्ता। |
createdAt | string (date-time) | बनाने का समय। |
updatedAt | string (date-time) | अंतिम संशोधन का समय। |
version | integer (≥1) | वर्तमान वर्शन। संसाधन में हर संशोधन पर 1 बढ़ता है। |
space | Refer<Space> | वह Space जिससे यह संसाधन संबंधित है। केवल Space के अधीनस्थ संसाधन ही इसे रखते हैं। |
version का उपयोग एक साथ होने वाले संशोधन के टकराव को रोकने में भी होता है। संशोधन और प्रकाशन जैसे परिवर्तन वाले अनुरोधों में वर्तमान version मान को X-Weegloo-Version हेडर में भेजना ज़रूरी है। विस्तृत नियम के लिए नियमावली देखें।
Organization किसी Space के अधीनस्थ नहीं है, इसलिए वह space नहीं रखता। इसके बदले वह अपने प्लान की ओर इशारा करने वाला plan (Refer<Plan>) और आधिकारिक होने या न होने का isOfficial (boolean) रखता है। Space अपने ऊपर के Organization की ओर इशारा करने वाला organization (Refer<Organization>) और plan रखता है।
Refer रूप
sys के भीतर दूसरे संसाधन की ओर इशारा करने वाला संदर्भ हमेशा एक ही रूप में होता है। type "Refer" पर तय रहता है, और targetType यह बताता है कि वह किस प्रकार के संसाधन की ओर इशारा कर रहा है।
{
"sys": {
"id": "HnQ32YiH",
"type": "Refer",
"targetType": "Space"
}
}targetType में जिस संसाधन की ओर इशारा किया जा रहा है उसके प्रकार का नाम आता है। उदाहरण के लिए space का targetType "Space" होता है, createdBy और updatedBy का "User", और Content के contentType का "ContentType" होता है। यानी Refer<User>, Refer<Space> के रूप में लिखे जाने वाले सभी टाइप इसी रूप में होते हैं, और केवल targetType अलग होता है।
संसाधन के प्रकार के अनुसार अंतर
साझा फ़ील्ड के ऊपर संसाधन के प्रकार के अनुसार अतिरिक्त प्रॉपर्टी जुड़ती हैं। ये मोटे तौर पर तीन भागों में बँटती हैं।
प्रकाशन जीवनचक्र वाले संसाधन (Content, Media)
Content और Media के पास लेखन, प्रकाशन और संग्रहण का जीवनचक्र होता है। इसलिए sys में प्रकाशन स्थिति दर्शाने वाली प्रॉपर्टी और जुड़ती हैं।
| प्रॉपर्टी | टाइप | विवरण |
|---|---|---|
status | string (enum) | प्रकाशन स्थिति। Draft, Changed, Published, Archived में से एक। |
publish | object | प्रकाशन स्थिति का पॉइंटर। नीचे की कुंजियाँ देखें। |
archive | object | संग्रहण जानकारी। केवल संग्रहित होने पर मौजूद रहती है, अन्यथा यह कुंजी नहीं होती। |
status निम्नलिखित 4 में से एक होता है।
status | अर्थ |
|---|---|
Draft | लिखा जा रहा है और अभी तक प्रकाशित नहीं हुआ है। |
Changed | पहले प्रकाशित हो चुका है, पर उसके बाद संशोधित होकर अभी तक प्रकाशित न हुए परिवर्तन मौजूद हैं। |
Published | प्रकाशित है और कोई अप्रकाशित परिवर्तन नहीं है। |
Archived | संग्रहित अवस्था। |
publish ऑब्जेक्ट प्रकाशन स्थिति की ओर इशारा करने वाला पॉइंटर है। प्रकाशित होने पर यह निम्नलिखित सभी कुंजियाँ रखता है।
| कुंजी | टाइप | विवरण |
|---|---|---|
version | integer | प्रकाशन के समय का sys.version। |
at | string (date-time) | अंतिम प्रकाशन का समय। |
firstAt | string (date-time) | प्रथम प्रकाशन का समय। प्रकाशन रद्द करने पर भी सुरक्षित रहता है। |
counter | integer | कुल प्रकाशन की संख्या। |
by | Refer<User> | अंतिम बार प्रकाशन करने वाला उपयोगकर्ता। |
प्रकाशन रद्द करने पर publish से version, at, by हट जाते हैं और केवल firstAt, counter शेष रहते हैं। यदि कभी प्रकाशित नहीं किया गया, तो publish { "counter": 0 } होता है।
archive ऑब्जेक्ट केवल संग्रहित होने पर मौजूद रहता है, और संग्रहण के समय का version, संग्रहण समय at, तथा संग्रहण करने वाले उपयोगकर्ता by को रखता है। यदि संग्रहित अवस्था में नहीं है, तो archive कुंजी ही नहीं होती।
यहाँ sys.version कार्य के दौरान का वर्शन है (निर्माण, संशोधन, प्रकाशन आदि हर परिवर्तन पर बढ़ता है), और publish.version अंतिम बार प्रकाशित किया गया वर्शन है। दोनों अलग हो सकते हैं।
नीचे प्रकाशित Content के sys का एक उदाहरण है।
{
"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"
}प्रकाशन जीवनचक्र के स्थिति-परिवर्तन का क्रम और हर चरण के रिस्पॉन्स को Content और Media में समझाया गया है।
सेटिंग संसाधन (Tag, Locale, Organization, Space आदि)
Tag, Locale, Organization, Space, SpaceRole, ServiceUserRole, Webhook, ServiceLogin जैसे संसाधनों में प्रकाशन की अवधारणा नहीं होती। बनाते ही ये तुरंत लागू हो जाते हैं, और प्रकाशित करके डिलीवरी पथ पर चढ़ाने का कोई चरण नहीं होता।
इसलिए इनके sys में status, publish, archive नहीं होते, और साझा फ़ील्ड के साथ केवल version होता है। version हर संशोधन पर 1 बढ़ता है, और परिवर्तन अनुरोध के समय X-Weegloo-Version हेडर में भेजा जाता है।
SpaceRole इसके अतिरिक्त isLocked (boolean) रखता है। यदि true है, तो इसका अर्थ है कि यह WEEGLOO द्वारा डिफ़ॉल्ट रूप से प्रदान की गई भूमिका है।
विशेष संसाधन (ServiceUser, WebHosting)
कुछ संसाधन ऊपर के दोनों भागों में नहीं आते और इनका sys अलग होता है।
ServiceUser वह संसाधन है जो प्रोडक्ट के सदस्य-पंजीकरण से बनता है। यह वह संसाधन नहीं है जिसे कोई व्यक्ति कंटेंट स्टूडियो में बनाता और बदलता है, इसलिए इसके sys में createdBy, updatedBy, version नहीं होते। इसके बदले यह लॉगिन साधन provider (string) और email (string) रखता है। version न होने के कारण ServiceUser को संशोधित करते समय X-Weegloo-Version हेडर की ज़रूरत नहीं होती।
WebHosting वह संसाधन है जो परिनियोजन सामग्री को होस्ट करता है। यह साझा फ़ील्ड और version रखता है, और इसके साथ परिनियोजन प्रक्रिया की स्थिति state (enum) जुड़ती है। यह प्रकाशन स्थिति नहीं, बल्कि अपलोड की गई परिनियोजन सामग्री को संसाधित करने की प्रगति-स्थिति है।
state | अर्थ |
|---|---|
PENDING | प्रक्रिया की प्रतीक्षा में। |
PROCESSING | प्रक्रिया जारी है। |
COMPLETED | प्रक्रिया पूर्ण। |
FAILED | प्रक्रिया विफल। |
CMA और CDA का अंतर: version बनाम revision
एक ही Content या Media होने पर भी, वह किस API से प्राप्त होता है, इसके अनुसार sys का रूप अलग होता है।
CMA (प्रबंधन) से प्राप्त Content और Media कार्य के दौरान वाले संसाधन होते हैं। इसलिए वे version, status, publish (और संग्रहित होने पर archive) सबको रखकर वर्तमान कार्य-स्थिति और प्रकाशन स्थिति, दोनों एक साथ बताते हैं।
CDA (डिलीवरी) केवल प्रकाशित स्नैपशॉट को डिलीवर करता है। यहाँ कार्य के दौरान वाली स्थिति की अवधारणा नहीं होती, इसलिए sys में version, status, publish, archive नहीं होते। इसके बदले प्रकाशित स्नैपशॉट के नंबर की ओर इशारा करने वाला एक revision (integer) होता है। revision में हर प्रकाशन पर उस समय का वर्शन रखा जाता है।
{
"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
}प्रकाशन डिलीवरी मॉडल (केवल प्रकाशित सामग्री ही डिलीवर होती है, प्रकाशन स्नैपशॉट, revision) को CDA परिचय में विस्तार से समझाया गया है।
संबंधित दस्तावेज़
- साझा क्वेरी पैरामीटर: सूची पठन और पेजिनेशन।
- नियमावली: मीडिया टाइप, JSON Patch, समवर्तीता (
X-Weegloo-Version)। - एरर: त्रुटि रिस्पॉन्स का प्रारूप और साझा कोड।
- CDA परिचय: प्रकाशन स्नैपशॉट (
revision) डिलीवरी मॉडल।
