-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontentstack-entry-schema.json
More file actions
203 lines (203 loc) · 6.5 KB
/
Copy pathcontentstack-entry-schema.json
File metadata and controls
203 lines (203 loc) · 6.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://contentstack.com/schemas/contentstack/entry.json",
"title": "Contentstack Entry",
"description": "Schema representing a Contentstack content entry with its system metadata, localization properties, and workflow state. Entries are instances of content types and hold the actual content data for delivery via the Content Delivery API.",
"type": "object",
"required": ["uid", "title", "locale"],
"properties": {
"uid": {
"type": "string",
"description": "Unique identifier for the entry, assigned by Contentstack.",
"pattern": "^[a-zA-Z0-9_-]+$"
},
"title": {
"type": "string",
"description": "The primary title or name of the entry, typically mapped to the title field of the content type.",
"minLength": 1,
"maxLength": 1000
},
"locale": {
"type": "string",
"description": "The locale code for this entry (e.g., en-us, fr-fr, de-de). Follows BCP 47 language tag format.",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"examples": ["en-us", "fr-fr", "de-de", "ja-jp"]
},
"_version": {
"type": "integer",
"description": "Version number of the entry. Increments with each save. Published versions may differ from the current draft version.",
"minimum": 1
},
"_in_progress": {
"type": "boolean",
"description": "Indicates whether the entry is currently being processed (e.g., during a publish operation)."
},
"created_by": {
"type": "string",
"description": "UID of the user who originally created this entry."
},
"updated_by": {
"type": "string",
"description": "UID of the user who last updated this entry."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 UTC timestamp of when the entry was first created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 UTC timestamp of when the entry was last saved."
},
"published_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 UTC timestamp of when the entry was last published. Null if never published."
},
"ACL": {
"type": "object",
"description": "Access control list defining role-level permissions for this entry.",
"additionalProperties": {
"$ref": "#/$defs/AclEntry"
}
},
"tags": {
"type": "array",
"description": "Arbitrary string tags associated with the entry for categorization and filtering.",
"items": {
"type": "string",
"maxLength": 100
},
"uniqueItems": true
},
"_metadata": {
"$ref": "#/$defs/EntryMetadata"
},
"publish_details": {
"type": "array",
"description": "List of environments and locales where this entry is currently published.",
"items": {
"$ref": "#/$defs/PublishDetail"
}
}
},
"$defs": {
"AclEntry": {
"type": "object",
"description": "Access control permissions for a specific role.",
"properties": {
"read": {
"type": "boolean",
"description": "Permission to read this entry."
},
"write": {
"type": "boolean",
"description": "Permission to create or update this entry."
},
"delete": {
"type": "boolean",
"description": "Permission to delete this entry."
}
}
},
"EntryMetadata": {
"type": "object",
"description": "Workflow and editorial metadata for the entry.",
"properties": {
"workflow": {
"$ref": "#/$defs/WorkflowState"
}
}
},
"WorkflowState": {
"type": "object",
"description": "Current workflow stage assignment for the entry.",
"properties": {
"workflow": {
"type": "object",
"description": "Reference to the assigned workflow.",
"properties": {
"uid": {
"type": "string",
"description": "UID of the workflow."
},
"name": {
"type": "string",
"description": "Display name of the workflow."
}
}
},
"workflow_stage": {
"type": "object",
"description": "Current stage within the workflow.",
"properties": {
"uid": {
"type": "string",
"description": "UID of the workflow stage."
},
"title": {
"type": "string",
"description": "Display name of the workflow stage."
},
"color": {
"type": "string",
"description": "Hex color code used to visually represent the workflow stage.",
"pattern": "^#[0-9A-Fa-f]{6}$"
}
}
},
"due_date": {
"type": "string",
"format": "date-time",
"description": "Optional due date for completing this entry in the current workflow stage."
},
"assigned_to": {
"type": "array",
"description": "List of users assigned to review this entry in the current stage.",
"items": {
"type": "object",
"properties": {
"uid": {
"type": "string",
"description": "UID of the assigned user."
},
"name": {
"type": "string",
"description": "Display name of the assigned user."
}
}
}
}
}
},
"PublishDetail": {
"type": "object",
"description": "Publication state for an entry in a specific environment and locale.",
"properties": {
"environment": {
"type": "string",
"description": "UID of the environment where the entry is published."
},
"locale": {
"type": "string",
"description": "Locale code of the published entry version."
},
"time": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp of when the entry was published to this environment."
},
"user": {
"type": "string",
"description": "UID of the user who published the entry."
},
"version": {
"type": "integer",
"description": "Version number of the entry that is published.",
"minimum": 1
}
}
}
}
}