@dotcms/ai 1.5.6-beta.1 → 1.6.0-next.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -27
- package/spec.cjs.js +129 -82
- package/spec.esm.js +129 -82
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dotcms/ai",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0-next.36",
|
|
4
4
|
"description": "The dotCMS agentic runtime — run model-written or human-written code safely against a dotCMS instance, with auth and policy owned in one place.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,30 +16,10 @@
|
|
|
16
16
|
},
|
|
17
17
|
"exports": {
|
|
18
18
|
"./package.json": "./package.json",
|
|
19
|
-
"./runtime":
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"default": "./runtime.cjs.js"
|
|
24
|
-
},
|
|
25
|
-
"./sandbox": {
|
|
26
|
-
"module": "./runtime.esm.js",
|
|
27
|
-
"types": "./src/sandbox/index.d.ts",
|
|
28
|
-
"import": "./runtime.cjs.mjs",
|
|
29
|
-
"default": "./runtime.cjs.js"
|
|
30
|
-
},
|
|
31
|
-
"./adapter": {
|
|
32
|
-
"module": "./runtime.esm.js",
|
|
33
|
-
"types": "./src/adapter/index.d.ts",
|
|
34
|
-
"import": "./runtime.cjs.mjs",
|
|
35
|
-
"default": "./runtime.cjs.js"
|
|
36
|
-
},
|
|
37
|
-
"./spec": {
|
|
38
|
-
"module": "./spec.esm.js",
|
|
39
|
-
"types": "./src/spec/index.d.ts",
|
|
40
|
-
"import": "./spec.cjs.js",
|
|
41
|
-
"default": "./spec.cjs.js"
|
|
42
|
-
},
|
|
19
|
+
"./runtime": "./src/runtime.ts",
|
|
20
|
+
"./sandbox": "./src/sandbox/index.ts",
|
|
21
|
+
"./adapter": "./src/adapter/index.ts",
|
|
22
|
+
"./spec": "./src/spec/index.ts",
|
|
43
23
|
".": {
|
|
44
24
|
"module": "./runtime.esm.js",
|
|
45
25
|
"types": "./runtime.d.ts",
|
|
@@ -56,7 +36,7 @@
|
|
|
56
36
|
"typesVersions": {
|
|
57
37
|
"*": {
|
|
58
38
|
"runtime": [
|
|
59
|
-
"./runtime.d.ts"
|
|
39
|
+
"./src/runtime.d.ts"
|
|
60
40
|
],
|
|
61
41
|
"sandbox": [
|
|
62
42
|
"./src/sandbox/index.d.ts"
|
|
@@ -89,4 +69,4 @@
|
|
|
89
69
|
"module": "./runtime.esm.js",
|
|
90
70
|
"main": "./runtime.cjs.js",
|
|
91
71
|
"types": "./runtime.d.ts"
|
|
92
|
-
}
|
|
72
|
+
}
|
package/spec.cjs.js
CHANGED
|
@@ -989,7 +989,7 @@ var paths = {
|
|
|
989
989
|
requestBody: {
|
|
990
990
|
description: "Updated container configuration data including identifier and modified properties",
|
|
991
991
|
content: {
|
|
992
|
-
"
|
|
992
|
+
"application/json": {
|
|
993
993
|
schema: {
|
|
994
994
|
required: [
|
|
995
995
|
"title"
|
|
@@ -1135,7 +1135,7 @@ var paths = {
|
|
|
1135
1135
|
requestBody: {
|
|
1136
1136
|
description: "Container configuration data including title, code, content type structures, and display settings",
|
|
1137
1137
|
content: {
|
|
1138
|
-
"
|
|
1138
|
+
"application/json": {
|
|
1139
1139
|
schema: {
|
|
1140
1140
|
required: [
|
|
1141
1141
|
"title"
|
|
@@ -3149,61 +3149,41 @@ var paths = {
|
|
|
3149
3149
|
}
|
|
3150
3150
|
}
|
|
3151
3151
|
},
|
|
3152
|
-
"/api/v1/folder/
|
|
3153
|
-
|
|
3152
|
+
"/api/v1/folder/sitename/{siteName}/uri/{uri}": {
|
|
3153
|
+
get: {
|
|
3154
3154
|
tags: [
|
|
3155
3155
|
"Folders"
|
|
3156
3156
|
],
|
|
3157
|
-
summary: "
|
|
3158
|
-
description: "Retrieves
|
|
3159
|
-
operationId: "
|
|
3157
|
+
summary: "Load a folder by site name and URI",
|
|
3158
|
+
description: "Retrieves a folder by its URI path within the specified site.",
|
|
3159
|
+
operationId: "loadFolderByURI",
|
|
3160
3160
|
parameters: [
|
|
3161
3161
|
{
|
|
3162
|
-
name: "
|
|
3163
|
-
"in": "
|
|
3164
|
-
|
|
3162
|
+
name: "siteName",
|
|
3163
|
+
"in": "path",
|
|
3164
|
+
required: true,
|
|
3165
3165
|
schema: {
|
|
3166
|
-
type: "
|
|
3167
|
-
format: "int32",
|
|
3168
|
-
"default": 0
|
|
3166
|
+
type: "string"
|
|
3169
3167
|
}
|
|
3170
3168
|
},
|
|
3171
3169
|
{
|
|
3172
|
-
name: "
|
|
3173
|
-
"in": "
|
|
3174
|
-
|
|
3170
|
+
name: "uri",
|
|
3171
|
+
"in": "path",
|
|
3172
|
+
required: true,
|
|
3175
3173
|
schema: {
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
"default": 40
|
|
3174
|
+
pattern: ".+",
|
|
3175
|
+
type: "string"
|
|
3179
3176
|
}
|
|
3180
3177
|
}
|
|
3181
3178
|
],
|
|
3182
|
-
requestBody: {
|
|
3183
|
-
content: {
|
|
3184
|
-
"*/*": {
|
|
3185
|
-
schema: {
|
|
3186
|
-
type: "object",
|
|
3187
|
-
properties: {
|
|
3188
|
-
path: {
|
|
3189
|
-
type: "string"
|
|
3190
|
-
}
|
|
3191
|
-
}
|
|
3192
|
-
}
|
|
3193
|
-
}
|
|
3194
|
-
}
|
|
3195
|
-
},
|
|
3196
3179
|
responses: {
|
|
3197
3180
|
"200": {
|
|
3198
|
-
description: "
|
|
3181
|
+
description: "Folder retrieved successfully",
|
|
3199
3182
|
content: {
|
|
3200
3183
|
"application/json": {
|
|
3201
3184
|
}
|
|
3202
3185
|
}
|
|
3203
3186
|
},
|
|
3204
|
-
"400": {
|
|
3205
|
-
description: "Path property must be sent"
|
|
3206
|
-
},
|
|
3207
3187
|
"401": {
|
|
3208
3188
|
description: "Authentication required"
|
|
3209
3189
|
},
|
|
@@ -3211,54 +3191,117 @@ var paths = {
|
|
|
3211
3191
|
description: "Insufficient permissions"
|
|
3212
3192
|
},
|
|
3213
3193
|
"404": {
|
|
3214
|
-
description: "
|
|
3194
|
+
description: "Folder not found"
|
|
3215
3195
|
}
|
|
3216
3196
|
}
|
|
3217
3197
|
}
|
|
3218
3198
|
},
|
|
3219
|
-
"/api/v1/folder/
|
|
3199
|
+
"/api/v1/folder/search": {
|
|
3220
3200
|
get: {
|
|
3221
3201
|
tags: [
|
|
3222
3202
|
"Folders"
|
|
3223
3203
|
],
|
|
3224
|
-
summary: "
|
|
3225
|
-
description: "
|
|
3226
|
-
operationId: "
|
|
3204
|
+
summary: "Search folders",
|
|
3205
|
+
description: "Returns folders within a site matching an optional name filter and/or path scope. Supports recursive depth control, standard pagination, and sorting. With no 'name' and default path '/' + recursive=true, all site folders are returned.",
|
|
3206
|
+
operationId: "searchFolders",
|
|
3227
3207
|
parameters: [
|
|
3228
3208
|
{
|
|
3229
|
-
name: "
|
|
3230
|
-
"in": "
|
|
3231
|
-
|
|
3209
|
+
name: "name",
|
|
3210
|
+
"in": "query",
|
|
3211
|
+
description: "Optional case-insensitive partial match on folder name (minimum 3 characters when provided)",
|
|
3232
3212
|
schema: {
|
|
3233
3213
|
type: "string"
|
|
3234
3214
|
}
|
|
3235
3215
|
},
|
|
3236
3216
|
{
|
|
3237
|
-
name: "
|
|
3238
|
-
"in": "
|
|
3239
|
-
|
|
3217
|
+
name: "path",
|
|
3218
|
+
"in": "query",
|
|
3219
|
+
description: "Path scope for the search. Defaults to '/' (site root).",
|
|
3220
|
+
schema: {
|
|
3221
|
+
type: "string",
|
|
3222
|
+
"default": "/"
|
|
3223
|
+
}
|
|
3224
|
+
},
|
|
3225
|
+
{
|
|
3226
|
+
name: "recursive",
|
|
3227
|
+
"in": "query",
|
|
3228
|
+
description: "false = direct children of 'path' only (default); true = search all descendants",
|
|
3229
|
+
schema: {
|
|
3230
|
+
type: "boolean",
|
|
3231
|
+
"default": false
|
|
3232
|
+
}
|
|
3233
|
+
},
|
|
3234
|
+
{
|
|
3235
|
+
name: "siteId",
|
|
3236
|
+
"in": "query",
|
|
3237
|
+
description: "Site ID to scope the search (required)",
|
|
3240
3238
|
schema: {
|
|
3241
|
-
pattern: ".+",
|
|
3242
3239
|
type: "string"
|
|
3243
3240
|
}
|
|
3241
|
+
},
|
|
3242
|
+
{
|
|
3243
|
+
name: "orderby",
|
|
3244
|
+
"in": "query",
|
|
3245
|
+
description: "Column to sort by.",
|
|
3246
|
+
schema: {
|
|
3247
|
+
type: "string",
|
|
3248
|
+
"enum": [
|
|
3249
|
+
"name",
|
|
3250
|
+
"mod_date"
|
|
3251
|
+
],
|
|
3252
|
+
"default": "name"
|
|
3253
|
+
}
|
|
3254
|
+
},
|
|
3255
|
+
{
|
|
3256
|
+
name: "direction",
|
|
3257
|
+
"in": "query",
|
|
3258
|
+
description: "Sort direction",
|
|
3259
|
+
schema: {
|
|
3260
|
+
type: "string",
|
|
3261
|
+
"enum": [
|
|
3262
|
+
"ASC",
|
|
3263
|
+
"DESC"
|
|
3264
|
+
],
|
|
3265
|
+
"default": "ASC"
|
|
3266
|
+
}
|
|
3267
|
+
},
|
|
3268
|
+
{
|
|
3269
|
+
name: "page",
|
|
3270
|
+
"in": "query",
|
|
3271
|
+
description: "Page number (1-based, default 1)",
|
|
3272
|
+
schema: {
|
|
3273
|
+
type: "integer",
|
|
3274
|
+
format: "int32",
|
|
3275
|
+
"default": 1
|
|
3276
|
+
}
|
|
3277
|
+
},
|
|
3278
|
+
{
|
|
3279
|
+
name: "per_page",
|
|
3280
|
+
"in": "query",
|
|
3281
|
+
description: "Number of results per page (default 40)",
|
|
3282
|
+
schema: {
|
|
3283
|
+
type: "integer",
|
|
3284
|
+
format: "int32",
|
|
3285
|
+
"default": 40
|
|
3286
|
+
}
|
|
3244
3287
|
}
|
|
3245
3288
|
],
|
|
3246
3289
|
responses: {
|
|
3247
3290
|
"200": {
|
|
3248
|
-
description: "
|
|
3291
|
+
description: "Paginated list of matching folders",
|
|
3249
3292
|
content: {
|
|
3250
3293
|
"application/json": {
|
|
3251
3294
|
}
|
|
3252
3295
|
}
|
|
3253
3296
|
},
|
|
3254
|
-
"
|
|
3255
|
-
description: "
|
|
3297
|
+
"400": {
|
|
3298
|
+
description: "'siteId' is required; 'name' must be at least 3 characters if provided"
|
|
3256
3299
|
},
|
|
3257
|
-
"
|
|
3258
|
-
description: "
|
|
3300
|
+
"401": {
|
|
3301
|
+
description: "User is not authenticated"
|
|
3259
3302
|
},
|
|
3260
|
-
"
|
|
3261
|
-
description: "
|
|
3303
|
+
"500": {
|
|
3304
|
+
description: "Internal server error"
|
|
3262
3305
|
}
|
|
3263
3306
|
}
|
|
3264
3307
|
}
|
|
@@ -5218,8 +5261,9 @@ var paths = {
|
|
|
5218
5261
|
}
|
|
5219
5262
|
],
|
|
5220
5263
|
requestBody: {
|
|
5264
|
+
description: "Updated site properties. 'siteName' (the hostname) is required.",
|
|
5221
5265
|
content: {
|
|
5222
|
-
"
|
|
5266
|
+
"application/json": {
|
|
5223
5267
|
schema: {
|
|
5224
5268
|
type: "object",
|
|
5225
5269
|
properties: {
|
|
@@ -5298,7 +5342,8 @@ var paths = {
|
|
|
5298
5342
|
}
|
|
5299
5343
|
}
|
|
5300
5344
|
}
|
|
5301
|
-
}
|
|
5345
|
+
},
|
|
5346
|
+
required: true
|
|
5302
5347
|
},
|
|
5303
5348
|
responses: {
|
|
5304
5349
|
"200": {
|
|
@@ -5330,8 +5375,9 @@ var paths = {
|
|
|
5330
5375
|
description: "Creates a new site with the provided properties including hostname, aliases, tag storage, SEO settings, and optional site variables.",
|
|
5331
5376
|
operationId: "createSite",
|
|
5332
5377
|
requestBody: {
|
|
5378
|
+
description: "Site properties to create. 'siteName' (the hostname) is required.",
|
|
5333
5379
|
content: {
|
|
5334
|
-
"
|
|
5380
|
+
"application/json": {
|
|
5335
5381
|
schema: {
|
|
5336
5382
|
type: "object",
|
|
5337
5383
|
properties: {
|
|
@@ -5410,7 +5456,8 @@ var paths = {
|
|
|
5410
5456
|
}
|
|
5411
5457
|
}
|
|
5412
5458
|
}
|
|
5413
|
-
}
|
|
5459
|
+
},
|
|
5460
|
+
required: true
|
|
5414
5461
|
},
|
|
5415
5462
|
responses: {
|
|
5416
5463
|
"200": {
|
|
@@ -7639,7 +7686,7 @@ var paths = {
|
|
|
7639
7686
|
requestBody: {
|
|
7640
7687
|
description: "Template data to update. Must include the template identifier.",
|
|
7641
7688
|
content: {
|
|
7642
|
-
"
|
|
7689
|
+
"application/json": {
|
|
7643
7690
|
schema: {
|
|
7644
7691
|
required: [
|
|
7645
7692
|
"title"
|
|
@@ -7877,7 +7924,7 @@ var paths = {
|
|
|
7877
7924
|
requestBody: {
|
|
7878
7925
|
description: "Template data to create",
|
|
7879
7926
|
content: {
|
|
7880
|
-
"
|
|
7927
|
+
"application/json": {
|
|
7881
7928
|
schema: {
|
|
7882
7929
|
required: [
|
|
7883
7930
|
"title"
|
|
@@ -11342,7 +11389,7 @@ var paths = {
|
|
|
11342
11389
|
"Workflow"
|
|
11343
11390
|
],
|
|
11344
11391
|
summary: "Fire action by name (multipart form)",
|
|
11345
|
-
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by name, on a target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
11392
|
+
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by name, on a target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
11346
11393
|
operationId: "putFireActionByNameMultipart",
|
|
11347
11394
|
parameters: [
|
|
11348
11395
|
{
|
|
@@ -11440,7 +11487,7 @@ var paths = {
|
|
|
11440
11487
|
"Workflow"
|
|
11441
11488
|
],
|
|
11442
11489
|
summary: "Fire workflow action by name",
|
|
11443
|
-
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by name, on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
11490
|
+
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by name, on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
11444
11491
|
operationId: "putFireActionByName",
|
|
11445
11492
|
parameters: [
|
|
11446
11493
|
{
|
|
@@ -11590,7 +11637,7 @@ var paths = {
|
|
|
11590
11637
|
"Workflow"
|
|
11591
11638
|
],
|
|
11592
11639
|
summary: "Fire default action (multipart form)",
|
|
11593
|
-
description: "Fires a default [system action](https://www.dotcms.com/docs/latest/managing-workflows#DefaultActions) on target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
11640
|
+
description: "Fires a default [system action](https://www.dotcms.com/docs/latest/managing-workflows#DefaultActions) on target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
11594
11641
|
operationId: "putFireDefaultActionMultipart",
|
|
11595
11642
|
parameters: [
|
|
11596
11643
|
{
|
|
@@ -11707,7 +11754,7 @@ var paths = {
|
|
|
11707
11754
|
"Workflow"
|
|
11708
11755
|
],
|
|
11709
11756
|
summary: "Fire system action by name",
|
|
11710
|
-
description: "Fire a [default system action](https://www.dotcms.com/docs/latest/managing-workflows#DefaultActions) by name on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**Request body** — wrap field values in a `contentlet` key:\n\n```json\n{\n \"contentlet\": {\n \"contentType\": \"<variable-or-inode>\",\n \"title\": \"My New Item\",\n \"...\": \"other field values\"\n }\n}\n```\nField keys inside `contentlet` are the content type's field `variable` names (e.g., `title`, `body`, `image`). Unknown field names are silently dropped (a typo like `titel` will be ignored and may surface as a misleading 'title is required' error). Radio/Select/Checkbox values are not validated against the field's `values` list — out-of-range values are accepted as-is. Always verify spelling against `fields[].variable` from `GET /api/v1/contenttype/id/{idOrVar}`.\n\n**Validation error response shape:**\n\n```json\n{\n \"entity\": \"\",\n \"errors\": [{ \"errorCode\": \"required\", \"fieldName\": \"image\", \"message\": \"The field Image is required.\" }],\n \"i18nMessagesMap\": {}, \"messages\": [], \"pagination\": null, \"permissions\": []\n}\n```\n`errorCode` values: `required`, `unknown`. `fieldName` is the field `variable` for field-specific errors, or `null` for content-level errors. Note: when the content type is not found, `message` returns the raw translation key `Workflow-does-not-exists-content-type` instead of translated text.\n\n**Binary and image fields** — These fields cannot receive raw file data or asset paths in the JSON body. Use one of the patterns below.\n\n**Pattern A — single-use file (works for all binary/image fields):**\n\n1. `POST /api/v1/temp` (multipart `file` part) OR `POST /api/v1/temp/byUrl` (JSON `{\"remoteUrl\":\"https://...\"}`) → use `tempFiles[0].id` (e.g. `\"temp_5311313004\"`) as the field value.\n2. Pass that ID in the contentlet body: `{\"contentlet\": {\"contentType\": \"ResortActivities\", \"image\": \"temp_5311313004\", ...}}`.\n\n**Pattern B — reusable shared asset (`ImmutableImageField` only):**\n\n1. Upload via `/temp`, create a dotAsset contentlet: `PUT .../fire/PUBLISH` with `{\"contentlet\": {\"contentType\": \"dotAsset\", \"asset\": \"temp_<id>\"}}`.\n2. Use the returned dotAsset `identifier` as the field value on any `ImmutableImageField`.\n\n| Field `clazz` | `temp_<id>` | dotAsset `identifier` |\n|---|---|---|\n| `ImmutableBinaryField` | ✅ | ❌ (returns 400 \\\"field is required\\\") |\n| `ImmutableImageField` | ✅ | ✅ |\n\nFind a field's `clazz` by calling `GET /api/v1/contenttype/id/{idOrVar}` and reading `fields[].clazz`.\n\n⚠️ **Known issue:** Firing `PUBLISH` on an archived contentlet (`archived: true`) does not validate the archived state and can produce an inconsistent `live: true, archived: true` tri-state. Always fire `UNARCHIVE` before `PUBLISH` on archived content.\n\n⚠️ **Multi-scheme content types:** When a content type has multiple workflow schemes attached, firing a system action only initializes the contentlet into the scheme whose `systemActionMappings` entry resolved the fire. Other attached schemes will not have a task for that contentlet, and firing their actions later will fail with 'Workflow Action is not available in the Workflow Step the content is currently in.' To exercise actions in those other schemes, fire by action ID via `PUT /api/v1/workflow/actions/{actionId}/fire` using an action mapped to the desired scheme.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
11757
|
+
description: "Fire a [default system action](https://www.dotcms.com/docs/latest/managing-workflows#DefaultActions) by name on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**Request body** — wrap field values in a `contentlet` key:\n\n```json\n{\n \"contentlet\": {\n \"contentType\": \"<variable-or-inode>\",\n \"title\": \"My New Item\",\n \"...\": \"other field values\"\n }\n}\n```\nField keys inside `contentlet` are the content type's field `variable` names (e.g., `title`, `body`, `image`). Unknown field names are silently dropped (a typo like `titel` will be ignored and may surface as a misleading 'title is required' error). Radio/Select/Checkbox values are not validated against the field's `values` list — out-of-range values are accepted as-is. Always verify spelling against `fields[].variable` from `GET /api/v1/contenttype/id/{idOrVar}`.\n\n**Validation error response shape:**\n\n```json\n{\n \"entity\": \"\",\n \"errors\": [{ \"errorCode\": \"required\", \"fieldName\": \"image\", \"message\": \"The field Image is required.\" }],\n \"i18nMessagesMap\": {}, \"messages\": [], \"pagination\": null, \"permissions\": []\n}\n```\n`errorCode` values: `required`, `unknown`. `fieldName` is the field `variable` for field-specific errors, or `null` for content-level errors. Note: when the content type is not found, `message` returns the raw translation key `Workflow-does-not-exists-content-type` instead of translated text.\n\n**Binary and image fields** — These fields cannot receive raw file data or asset paths in the JSON body. Use one of the patterns below.\n\n**Pattern A — single-use file (works for all binary/image fields):**\n\n1. `POST /api/v1/temp` (multipart `file` part) OR `POST /api/v1/temp/byUrl` (JSON `{\"remoteUrl\":\"https://...\"}`) → use `tempFiles[0].id` (e.g. `\"temp_5311313004\"`) as the field value.\n2. Pass that ID in the contentlet body: `{\"contentlet\": {\"contentType\": \"ResortActivities\", \"image\": \"temp_5311313004\", ...}}`.\n\n**Pattern B — reusable shared asset (`ImmutableImageField` only):**\n\n1. Upload via `/temp`, create a dotAsset contentlet: `PUT .../fire/PUBLISH` with `{\"contentlet\": {\"contentType\": \"dotAsset\", \"asset\": \"temp_<id>\"}}`.\n2. Use the returned dotAsset `identifier` as the field value on any `ImmutableImageField`.\n\n| Field `clazz` | `temp_<id>` | dotAsset `identifier` |\n|---|---|---|\n| `ImmutableBinaryField` | ✅ | ❌ (returns 400 \\\"field is required\\\") |\n| `ImmutableImageField` | ✅ | ✅ |\n\nFind a field's `clazz` by calling `GET /api/v1/contenttype/id/{idOrVar}` and reading `fields[].clazz`.\n\n⚠️ **Known issue:** Firing `PUBLISH` on an archived contentlet (`archived: true`) does not validate the archived state and can produce an inconsistent `live: true, archived: true` tri-state. Always fire `UNARCHIVE` before `PUBLISH` on archived content.\n\n⚠️ **Multi-scheme content types:** When a content type has multiple workflow schemes attached, firing a system action only initializes the contentlet into the scheme whose `systemActionMappings` entry resolved the fire. Other attached schemes will not have a task for that contentlet, and firing their actions later will fail with 'Workflow Action is not available in the Workflow Step the content is currently in.' To exercise actions in those other schemes, fire by action ID via `PUT /api/v1/workflow/actions/{actionId}/fire` using an action mapped to the desired scheme.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
11711
11758
|
operationId: "putFireDefaultSystemAction",
|
|
11712
11759
|
parameters: [
|
|
11713
11760
|
{
|
|
@@ -12175,7 +12222,7 @@ var paths = {
|
|
|
12175
12222
|
"Workflow"
|
|
12176
12223
|
],
|
|
12177
12224
|
summary: "Fire action by ID (multipart form)",
|
|
12178
|
-
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by identifier, on a target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
12225
|
+
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by identifier, on a target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
12179
12226
|
operationId: "putFireActionByIdMultipart",
|
|
12180
12227
|
parameters: [
|
|
12181
12228
|
{
|
|
@@ -12282,7 +12329,7 @@ var paths = {
|
|
|
12282
12329
|
"Workflow"
|
|
12283
12330
|
],
|
|
12284
12331
|
summary: "Fire action by ID",
|
|
12285
|
-
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by identifier, on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**Use this endpoint to fire actions that are not represented as `SystemAction` tokens** (`NEW`, `EDIT`, `PUBLISH`, etc.). The two most common are `Move` and `Copy` on the System Workflow scheme.\n\n**Move action** — relocates a contentlet to a new folder/host. Request body shape (note: `pathToMove` is a sibling of `contentlet`, **not** nested inside it):\n\n```json\n{\n \"contentlet\": { \"identifier\": \"<contentlet-identifier>\" },\n \"pathToMove\": \"//<siteHost>/<folderPath>\"\n}\n```\nAlternative shapes (`contentlet.host`+`contentlet.folder`, `contentlet.hostFolder`, `path` instead of `pathToMove`) all return `400 \"The host path is not valid: null\"`.\n\n**Copy action** — clones a contentlet. Fire with `?identifier=<source-id>` and an empty body (or `{\"contentlet\": {\"identifier\": \"<source-id>\"}}`). The Copy action id on the default System Workflow scheme is `963f6a04-5320-42e7-ab74-6d876d199946`; retrieve it for other environments via `GET /api/v1/workflow/schemes/{schemeId}/actions`. ⚠️ The response `entity` returns the **source** contentlet, not the newly-created copy — locate the copy via a follow-up `POST /api/content/_search` ordered by `modDate DESC`. The copy lands in `SYSTEM_HOST` / `SYSTEM_FOLDER`; destination hints (`pathToMove`, `host`, `folder`, `hostFolder`) are silently ignored. Fire the Move action afterwards to relocate.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
12332
|
+
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by identifier, on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**Use this endpoint to fire actions that are not represented as `SystemAction` tokens** (`NEW`, `EDIT`, `PUBLISH`, etc.). The two most common are `Move` and `Copy` on the System Workflow scheme.\n\n**Move action** — relocates a contentlet to a new folder/host. Request body shape (note: `pathToMove` is a sibling of `contentlet`, **not** nested inside it):\n\n```json\n{\n \"contentlet\": { \"identifier\": \"<contentlet-identifier>\" },\n \"pathToMove\": \"//<siteHost>/<folderPath>\"\n}\n```\nAlternative shapes (`contentlet.host`+`contentlet.folder`, `contentlet.hostFolder`, `path` instead of `pathToMove`) all return `400 \"The host path is not valid: null\"`.\n\n**Copy action** — clones a contentlet. Fire with `?identifier=<source-id>` and an empty body (or `{\"contentlet\": {\"identifier\": \"<source-id>\"}}`). The Copy action id on the default System Workflow scheme is `963f6a04-5320-42e7-ab74-6d876d199946`; retrieve it for other environments via `GET /api/v1/workflow/schemes/{schemeId}/actions`. ⚠️ The response `entity` returns the **source** contentlet, not the newly-created copy — locate the copy via a follow-up `POST /api/content/_search` ordered by `modDate DESC`. The copy lands in `SYSTEM_HOST` / `SYSTEM_FOLDER`; destination hints (`pathToMove`, `host`, `folder`, `hostFolder`) are silently ignored. Fire the Move action afterwards to relocate.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
12286
12333
|
operationId: "putFireActionById",
|
|
12287
12334
|
parameters: [
|
|
12288
12335
|
{
|
|
@@ -13597,6 +13644,12 @@ var paths = {
|
|
|
13597
13644
|
hasOnlyBatchActionlet: {
|
|
13598
13645
|
type: "boolean"
|
|
13599
13646
|
},
|
|
13647
|
+
hasDeleteActionlet: {
|
|
13648
|
+
type: "boolean"
|
|
13649
|
+
},
|
|
13650
|
+
hasResetActionlet: {
|
|
13651
|
+
type: "boolean"
|
|
13652
|
+
},
|
|
13600
13653
|
hasPublishActionlet: {
|
|
13601
13654
|
type: "boolean"
|
|
13602
13655
|
},
|
|
@@ -13626,12 +13679,6 @@ var paths = {
|
|
|
13626
13679
|
},
|
|
13627
13680
|
hasSaveActionlet: {
|
|
13628
13681
|
type: "boolean"
|
|
13629
|
-
},
|
|
13630
|
-
hasDeleteActionlet: {
|
|
13631
|
-
type: "boolean"
|
|
13632
|
-
},
|
|
13633
|
-
hasResetActionlet: {
|
|
13634
|
-
type: "boolean"
|
|
13635
13682
|
}
|
|
13636
13683
|
}
|
|
13637
13684
|
}
|
|
@@ -13871,6 +13918,12 @@ var paths = {
|
|
|
13871
13918
|
hasOnlyBatchActionlet: {
|
|
13872
13919
|
type: "boolean"
|
|
13873
13920
|
},
|
|
13921
|
+
hasDeleteActionlet: {
|
|
13922
|
+
type: "boolean"
|
|
13923
|
+
},
|
|
13924
|
+
hasResetActionlet: {
|
|
13925
|
+
type: "boolean"
|
|
13926
|
+
},
|
|
13874
13927
|
hasPublishActionlet: {
|
|
13875
13928
|
type: "boolean"
|
|
13876
13929
|
},
|
|
@@ -13900,12 +13953,6 @@ var paths = {
|
|
|
13900
13953
|
},
|
|
13901
13954
|
hasSaveActionlet: {
|
|
13902
13955
|
type: "boolean"
|
|
13903
|
-
},
|
|
13904
|
-
hasDeleteActionlet: {
|
|
13905
|
-
type: "boolean"
|
|
13906
|
-
},
|
|
13907
|
-
hasResetActionlet: {
|
|
13908
|
-
type: "boolean"
|
|
13909
13956
|
}
|
|
13910
13957
|
}
|
|
13911
13958
|
},
|
|
@@ -13942,10 +13989,10 @@ var paths = {
|
|
|
13942
13989
|
type: {
|
|
13943
13990
|
type: "string"
|
|
13944
13991
|
},
|
|
13945
|
-
|
|
13992
|
+
individualPermission: {
|
|
13946
13993
|
type: "boolean"
|
|
13947
13994
|
},
|
|
13948
|
-
|
|
13995
|
+
bitPermission: {
|
|
13949
13996
|
type: "boolean"
|
|
13950
13997
|
},
|
|
13951
13998
|
roleId: {
|
package/spec.esm.js
CHANGED
|
@@ -987,7 +987,7 @@ var paths = {
|
|
|
987
987
|
requestBody: {
|
|
988
988
|
description: "Updated container configuration data including identifier and modified properties",
|
|
989
989
|
content: {
|
|
990
|
-
"
|
|
990
|
+
"application/json": {
|
|
991
991
|
schema: {
|
|
992
992
|
required: [
|
|
993
993
|
"title"
|
|
@@ -1133,7 +1133,7 @@ var paths = {
|
|
|
1133
1133
|
requestBody: {
|
|
1134
1134
|
description: "Container configuration data including title, code, content type structures, and display settings",
|
|
1135
1135
|
content: {
|
|
1136
|
-
"
|
|
1136
|
+
"application/json": {
|
|
1137
1137
|
schema: {
|
|
1138
1138
|
required: [
|
|
1139
1139
|
"title"
|
|
@@ -3147,61 +3147,41 @@ var paths = {
|
|
|
3147
3147
|
}
|
|
3148
3148
|
}
|
|
3149
3149
|
},
|
|
3150
|
-
"/api/v1/folder/
|
|
3151
|
-
|
|
3150
|
+
"/api/v1/folder/sitename/{siteName}/uri/{uri}": {
|
|
3151
|
+
get: {
|
|
3152
3152
|
tags: [
|
|
3153
3153
|
"Folders"
|
|
3154
3154
|
],
|
|
3155
|
-
summary: "
|
|
3156
|
-
description: "Retrieves
|
|
3157
|
-
operationId: "
|
|
3155
|
+
summary: "Load a folder by site name and URI",
|
|
3156
|
+
description: "Retrieves a folder by its URI path within the specified site.",
|
|
3157
|
+
operationId: "loadFolderByURI",
|
|
3158
3158
|
parameters: [
|
|
3159
3159
|
{
|
|
3160
|
-
name: "
|
|
3161
|
-
"in": "
|
|
3162
|
-
|
|
3160
|
+
name: "siteName",
|
|
3161
|
+
"in": "path",
|
|
3162
|
+
required: true,
|
|
3163
3163
|
schema: {
|
|
3164
|
-
type: "
|
|
3165
|
-
format: "int32",
|
|
3166
|
-
"default": 0
|
|
3164
|
+
type: "string"
|
|
3167
3165
|
}
|
|
3168
3166
|
},
|
|
3169
3167
|
{
|
|
3170
|
-
name: "
|
|
3171
|
-
"in": "
|
|
3172
|
-
|
|
3168
|
+
name: "uri",
|
|
3169
|
+
"in": "path",
|
|
3170
|
+
required: true,
|
|
3173
3171
|
schema: {
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
"default": 40
|
|
3172
|
+
pattern: ".+",
|
|
3173
|
+
type: "string"
|
|
3177
3174
|
}
|
|
3178
3175
|
}
|
|
3179
3176
|
],
|
|
3180
|
-
requestBody: {
|
|
3181
|
-
content: {
|
|
3182
|
-
"*/*": {
|
|
3183
|
-
schema: {
|
|
3184
|
-
type: "object",
|
|
3185
|
-
properties: {
|
|
3186
|
-
path: {
|
|
3187
|
-
type: "string"
|
|
3188
|
-
}
|
|
3189
|
-
}
|
|
3190
|
-
}
|
|
3191
|
-
}
|
|
3192
|
-
}
|
|
3193
|
-
},
|
|
3194
3177
|
responses: {
|
|
3195
3178
|
"200": {
|
|
3196
|
-
description: "
|
|
3179
|
+
description: "Folder retrieved successfully",
|
|
3197
3180
|
content: {
|
|
3198
3181
|
"application/json": {
|
|
3199
3182
|
}
|
|
3200
3183
|
}
|
|
3201
3184
|
},
|
|
3202
|
-
"400": {
|
|
3203
|
-
description: "Path property must be sent"
|
|
3204
|
-
},
|
|
3205
3185
|
"401": {
|
|
3206
3186
|
description: "Authentication required"
|
|
3207
3187
|
},
|
|
@@ -3209,54 +3189,117 @@ var paths = {
|
|
|
3209
3189
|
description: "Insufficient permissions"
|
|
3210
3190
|
},
|
|
3211
3191
|
"404": {
|
|
3212
|
-
description: "
|
|
3192
|
+
description: "Folder not found"
|
|
3213
3193
|
}
|
|
3214
3194
|
}
|
|
3215
3195
|
}
|
|
3216
3196
|
},
|
|
3217
|
-
"/api/v1/folder/
|
|
3197
|
+
"/api/v1/folder/search": {
|
|
3218
3198
|
get: {
|
|
3219
3199
|
tags: [
|
|
3220
3200
|
"Folders"
|
|
3221
3201
|
],
|
|
3222
|
-
summary: "
|
|
3223
|
-
description: "
|
|
3224
|
-
operationId: "
|
|
3202
|
+
summary: "Search folders",
|
|
3203
|
+
description: "Returns folders within a site matching an optional name filter and/or path scope. Supports recursive depth control, standard pagination, and sorting. With no 'name' and default path '/' + recursive=true, all site folders are returned.",
|
|
3204
|
+
operationId: "searchFolders",
|
|
3225
3205
|
parameters: [
|
|
3226
3206
|
{
|
|
3227
|
-
name: "
|
|
3228
|
-
"in": "
|
|
3229
|
-
|
|
3207
|
+
name: "name",
|
|
3208
|
+
"in": "query",
|
|
3209
|
+
description: "Optional case-insensitive partial match on folder name (minimum 3 characters when provided)",
|
|
3230
3210
|
schema: {
|
|
3231
3211
|
type: "string"
|
|
3232
3212
|
}
|
|
3233
3213
|
},
|
|
3234
3214
|
{
|
|
3235
|
-
name: "
|
|
3236
|
-
"in": "
|
|
3237
|
-
|
|
3215
|
+
name: "path",
|
|
3216
|
+
"in": "query",
|
|
3217
|
+
description: "Path scope for the search. Defaults to '/' (site root).",
|
|
3218
|
+
schema: {
|
|
3219
|
+
type: "string",
|
|
3220
|
+
"default": "/"
|
|
3221
|
+
}
|
|
3222
|
+
},
|
|
3223
|
+
{
|
|
3224
|
+
name: "recursive",
|
|
3225
|
+
"in": "query",
|
|
3226
|
+
description: "false = direct children of 'path' only (default); true = search all descendants",
|
|
3227
|
+
schema: {
|
|
3228
|
+
type: "boolean",
|
|
3229
|
+
"default": false
|
|
3230
|
+
}
|
|
3231
|
+
},
|
|
3232
|
+
{
|
|
3233
|
+
name: "siteId",
|
|
3234
|
+
"in": "query",
|
|
3235
|
+
description: "Site ID to scope the search (required)",
|
|
3238
3236
|
schema: {
|
|
3239
|
-
pattern: ".+",
|
|
3240
3237
|
type: "string"
|
|
3241
3238
|
}
|
|
3239
|
+
},
|
|
3240
|
+
{
|
|
3241
|
+
name: "orderby",
|
|
3242
|
+
"in": "query",
|
|
3243
|
+
description: "Column to sort by.",
|
|
3244
|
+
schema: {
|
|
3245
|
+
type: "string",
|
|
3246
|
+
"enum": [
|
|
3247
|
+
"name",
|
|
3248
|
+
"mod_date"
|
|
3249
|
+
],
|
|
3250
|
+
"default": "name"
|
|
3251
|
+
}
|
|
3252
|
+
},
|
|
3253
|
+
{
|
|
3254
|
+
name: "direction",
|
|
3255
|
+
"in": "query",
|
|
3256
|
+
description: "Sort direction",
|
|
3257
|
+
schema: {
|
|
3258
|
+
type: "string",
|
|
3259
|
+
"enum": [
|
|
3260
|
+
"ASC",
|
|
3261
|
+
"DESC"
|
|
3262
|
+
],
|
|
3263
|
+
"default": "ASC"
|
|
3264
|
+
}
|
|
3265
|
+
},
|
|
3266
|
+
{
|
|
3267
|
+
name: "page",
|
|
3268
|
+
"in": "query",
|
|
3269
|
+
description: "Page number (1-based, default 1)",
|
|
3270
|
+
schema: {
|
|
3271
|
+
type: "integer",
|
|
3272
|
+
format: "int32",
|
|
3273
|
+
"default": 1
|
|
3274
|
+
}
|
|
3275
|
+
},
|
|
3276
|
+
{
|
|
3277
|
+
name: "per_page",
|
|
3278
|
+
"in": "query",
|
|
3279
|
+
description: "Number of results per page (default 40)",
|
|
3280
|
+
schema: {
|
|
3281
|
+
type: "integer",
|
|
3282
|
+
format: "int32",
|
|
3283
|
+
"default": 40
|
|
3284
|
+
}
|
|
3242
3285
|
}
|
|
3243
3286
|
],
|
|
3244
3287
|
responses: {
|
|
3245
3288
|
"200": {
|
|
3246
|
-
description: "
|
|
3289
|
+
description: "Paginated list of matching folders",
|
|
3247
3290
|
content: {
|
|
3248
3291
|
"application/json": {
|
|
3249
3292
|
}
|
|
3250
3293
|
}
|
|
3251
3294
|
},
|
|
3252
|
-
"
|
|
3253
|
-
description: "
|
|
3295
|
+
"400": {
|
|
3296
|
+
description: "'siteId' is required; 'name' must be at least 3 characters if provided"
|
|
3254
3297
|
},
|
|
3255
|
-
"
|
|
3256
|
-
description: "
|
|
3298
|
+
"401": {
|
|
3299
|
+
description: "User is not authenticated"
|
|
3257
3300
|
},
|
|
3258
|
-
"
|
|
3259
|
-
description: "
|
|
3301
|
+
"500": {
|
|
3302
|
+
description: "Internal server error"
|
|
3260
3303
|
}
|
|
3261
3304
|
}
|
|
3262
3305
|
}
|
|
@@ -5216,8 +5259,9 @@ var paths = {
|
|
|
5216
5259
|
}
|
|
5217
5260
|
],
|
|
5218
5261
|
requestBody: {
|
|
5262
|
+
description: "Updated site properties. 'siteName' (the hostname) is required.",
|
|
5219
5263
|
content: {
|
|
5220
|
-
"
|
|
5264
|
+
"application/json": {
|
|
5221
5265
|
schema: {
|
|
5222
5266
|
type: "object",
|
|
5223
5267
|
properties: {
|
|
@@ -5296,7 +5340,8 @@ var paths = {
|
|
|
5296
5340
|
}
|
|
5297
5341
|
}
|
|
5298
5342
|
}
|
|
5299
|
-
}
|
|
5343
|
+
},
|
|
5344
|
+
required: true
|
|
5300
5345
|
},
|
|
5301
5346
|
responses: {
|
|
5302
5347
|
"200": {
|
|
@@ -5328,8 +5373,9 @@ var paths = {
|
|
|
5328
5373
|
description: "Creates a new site with the provided properties including hostname, aliases, tag storage, SEO settings, and optional site variables.",
|
|
5329
5374
|
operationId: "createSite",
|
|
5330
5375
|
requestBody: {
|
|
5376
|
+
description: "Site properties to create. 'siteName' (the hostname) is required.",
|
|
5331
5377
|
content: {
|
|
5332
|
-
"
|
|
5378
|
+
"application/json": {
|
|
5333
5379
|
schema: {
|
|
5334
5380
|
type: "object",
|
|
5335
5381
|
properties: {
|
|
@@ -5408,7 +5454,8 @@ var paths = {
|
|
|
5408
5454
|
}
|
|
5409
5455
|
}
|
|
5410
5456
|
}
|
|
5411
|
-
}
|
|
5457
|
+
},
|
|
5458
|
+
required: true
|
|
5412
5459
|
},
|
|
5413
5460
|
responses: {
|
|
5414
5461
|
"200": {
|
|
@@ -7637,7 +7684,7 @@ var paths = {
|
|
|
7637
7684
|
requestBody: {
|
|
7638
7685
|
description: "Template data to update. Must include the template identifier.",
|
|
7639
7686
|
content: {
|
|
7640
|
-
"
|
|
7687
|
+
"application/json": {
|
|
7641
7688
|
schema: {
|
|
7642
7689
|
required: [
|
|
7643
7690
|
"title"
|
|
@@ -7875,7 +7922,7 @@ var paths = {
|
|
|
7875
7922
|
requestBody: {
|
|
7876
7923
|
description: "Template data to create",
|
|
7877
7924
|
content: {
|
|
7878
|
-
"
|
|
7925
|
+
"application/json": {
|
|
7879
7926
|
schema: {
|
|
7880
7927
|
required: [
|
|
7881
7928
|
"title"
|
|
@@ -11340,7 +11387,7 @@ var paths = {
|
|
|
11340
11387
|
"Workflow"
|
|
11341
11388
|
],
|
|
11342
11389
|
summary: "Fire action by name (multipart form)",
|
|
11343
|
-
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by name, on a target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
11390
|
+
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by name, on a target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
11344
11391
|
operationId: "putFireActionByNameMultipart",
|
|
11345
11392
|
parameters: [
|
|
11346
11393
|
{
|
|
@@ -11438,7 +11485,7 @@ var paths = {
|
|
|
11438
11485
|
"Workflow"
|
|
11439
11486
|
],
|
|
11440
11487
|
summary: "Fire workflow action by name",
|
|
11441
|
-
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by name, on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
11488
|
+
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by name, on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
11442
11489
|
operationId: "putFireActionByName",
|
|
11443
11490
|
parameters: [
|
|
11444
11491
|
{
|
|
@@ -11588,7 +11635,7 @@ var paths = {
|
|
|
11588
11635
|
"Workflow"
|
|
11589
11636
|
],
|
|
11590
11637
|
summary: "Fire default action (multipart form)",
|
|
11591
|
-
description: "Fires a default [system action](https://www.dotcms.com/docs/latest/managing-workflows#DefaultActions) on target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
11638
|
+
description: "Fires a default [system action](https://www.dotcms.com/docs/latest/managing-workflows#DefaultActions) on target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
11592
11639
|
operationId: "putFireDefaultActionMultipart",
|
|
11593
11640
|
parameters: [
|
|
11594
11641
|
{
|
|
@@ -11705,7 +11752,7 @@ var paths = {
|
|
|
11705
11752
|
"Workflow"
|
|
11706
11753
|
],
|
|
11707
11754
|
summary: "Fire system action by name",
|
|
11708
|
-
description: "Fire a [default system action](https://www.dotcms.com/docs/latest/managing-workflows#DefaultActions) by name on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**Request body** — wrap field values in a `contentlet` key:\n\n```json\n{\n \"contentlet\": {\n \"contentType\": \"<variable-or-inode>\",\n \"title\": \"My New Item\",\n \"...\": \"other field values\"\n }\n}\n```\nField keys inside `contentlet` are the content type's field `variable` names (e.g., `title`, `body`, `image`). Unknown field names are silently dropped (a typo like `titel` will be ignored and may surface as a misleading 'title is required' error). Radio/Select/Checkbox values are not validated against the field's `values` list — out-of-range values are accepted as-is. Always verify spelling against `fields[].variable` from `GET /api/v1/contenttype/id/{idOrVar}`.\n\n**Validation error response shape:**\n\n```json\n{\n \"entity\": \"\",\n \"errors\": [{ \"errorCode\": \"required\", \"fieldName\": \"image\", \"message\": \"The field Image is required.\" }],\n \"i18nMessagesMap\": {}, \"messages\": [], \"pagination\": null, \"permissions\": []\n}\n```\n`errorCode` values: `required`, `unknown`. `fieldName` is the field `variable` for field-specific errors, or `null` for content-level errors. Note: when the content type is not found, `message` returns the raw translation key `Workflow-does-not-exists-content-type` instead of translated text.\n\n**Binary and image fields** — These fields cannot receive raw file data or asset paths in the JSON body. Use one of the patterns below.\n\n**Pattern A — single-use file (works for all binary/image fields):**\n\n1. `POST /api/v1/temp` (multipart `file` part) OR `POST /api/v1/temp/byUrl` (JSON `{\"remoteUrl\":\"https://...\"}`) → use `tempFiles[0].id` (e.g. `\"temp_5311313004\"`) as the field value.\n2. Pass that ID in the contentlet body: `{\"contentlet\": {\"contentType\": \"ResortActivities\", \"image\": \"temp_5311313004\", ...}}`.\n\n**Pattern B — reusable shared asset (`ImmutableImageField` only):**\n\n1. Upload via `/temp`, create a dotAsset contentlet: `PUT .../fire/PUBLISH` with `{\"contentlet\": {\"contentType\": \"dotAsset\", \"asset\": \"temp_<id>\"}}`.\n2. Use the returned dotAsset `identifier` as the field value on any `ImmutableImageField`.\n\n| Field `clazz` | `temp_<id>` | dotAsset `identifier` |\n|---|---|---|\n| `ImmutableBinaryField` | ✅ | ❌ (returns 400 \\\"field is required\\\") |\n| `ImmutableImageField` | ✅ | ✅ |\n\nFind a field's `clazz` by calling `GET /api/v1/contenttype/id/{idOrVar}` and reading `fields[].clazz`.\n\n⚠️ **Known issue:** Firing `PUBLISH` on an archived contentlet (`archived: true`) does not validate the archived state and can produce an inconsistent `live: true, archived: true` tri-state. Always fire `UNARCHIVE` before `PUBLISH` on archived content.\n\n⚠️ **Multi-scheme content types:** When a content type has multiple workflow schemes attached, firing a system action only initializes the contentlet into the scheme whose `systemActionMappings` entry resolved the fire. Other attached schemes will not have a task for that contentlet, and firing their actions later will fail with 'Workflow Action is not available in the Workflow Step the content is currently in.' To exercise actions in those other schemes, fire by action ID via `PUT /api/v1/workflow/actions/{actionId}/fire` using an action mapped to the desired scheme.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
11755
|
+
description: "Fire a [default system action](https://www.dotcms.com/docs/latest/managing-workflows#DefaultActions) by name on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**Request body** — wrap field values in a `contentlet` key:\n\n```json\n{\n \"contentlet\": {\n \"contentType\": \"<variable-or-inode>\",\n \"title\": \"My New Item\",\n \"...\": \"other field values\"\n }\n}\n```\nField keys inside `contentlet` are the content type's field `variable` names (e.g., `title`, `body`, `image`). Unknown field names are silently dropped (a typo like `titel` will be ignored and may surface as a misleading 'title is required' error). Radio/Select/Checkbox values are not validated against the field's `values` list — out-of-range values are accepted as-is. Always verify spelling against `fields[].variable` from `GET /api/v1/contenttype/id/{idOrVar}`.\n\n**Validation error response shape:**\n\n```json\n{\n \"entity\": \"\",\n \"errors\": [{ \"errorCode\": \"required\", \"fieldName\": \"image\", \"message\": \"The field Image is required.\" }],\n \"i18nMessagesMap\": {}, \"messages\": [], \"pagination\": null, \"permissions\": []\n}\n```\n`errorCode` values: `required`, `unknown`. `fieldName` is the field `variable` for field-specific errors, or `null` for content-level errors. Note: when the content type is not found, `message` returns the raw translation key `Workflow-does-not-exists-content-type` instead of translated text.\n\n**Binary and image fields** — These fields cannot receive raw file data or asset paths in the JSON body. Use one of the patterns below.\n\n**Pattern A — single-use file (works for all binary/image fields):**\n\n1. `POST /api/v1/temp` (multipart `file` part) OR `POST /api/v1/temp/byUrl` (JSON `{\"remoteUrl\":\"https://...\"}`) → use `tempFiles[0].id` (e.g. `\"temp_5311313004\"`) as the field value.\n2. Pass that ID in the contentlet body: `{\"contentlet\": {\"contentType\": \"ResortActivities\", \"image\": \"temp_5311313004\", ...}}`.\n\n**Pattern B — reusable shared asset (`ImmutableImageField` only):**\n\n1. Upload via `/temp`, create a dotAsset contentlet: `PUT .../fire/PUBLISH` with `{\"contentlet\": {\"contentType\": \"dotAsset\", \"asset\": \"temp_<id>\"}}`.\n2. Use the returned dotAsset `identifier` as the field value on any `ImmutableImageField`.\n\n| Field `clazz` | `temp_<id>` | dotAsset `identifier` |\n|---|---|---|\n| `ImmutableBinaryField` | ✅ | ❌ (returns 400 \\\"field is required\\\") |\n| `ImmutableImageField` | ✅ | ✅ |\n\nFind a field's `clazz` by calling `GET /api/v1/contenttype/id/{idOrVar}` and reading `fields[].clazz`.\n\n⚠️ **Known issue:** Firing `PUBLISH` on an archived contentlet (`archived: true`) does not validate the archived state and can produce an inconsistent `live: true, archived: true` tri-state. Always fire `UNARCHIVE` before `PUBLISH` on archived content.\n\n⚠️ **Multi-scheme content types:** When a content type has multiple workflow schemes attached, firing a system action only initializes the contentlet into the scheme whose `systemActionMappings` entry resolved the fire. Other attached schemes will not have a task for that contentlet, and firing their actions later will fail with 'Workflow Action is not available in the Workflow Step the content is currently in.' To exercise actions in those other schemes, fire by action ID via `PUT /api/v1/workflow/actions/{actionId}/fire` using an action mapped to the desired scheme.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
11709
11756
|
operationId: "putFireDefaultSystemAction",
|
|
11710
11757
|
parameters: [
|
|
11711
11758
|
{
|
|
@@ -12173,7 +12220,7 @@ var paths = {
|
|
|
12173
12220
|
"Workflow"
|
|
12174
12221
|
],
|
|
12175
12222
|
summary: "Fire action by ID (multipart form)",
|
|
12176
|
-
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by identifier, on a target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
12223
|
+
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by identifier, on a target contentlet. Uses a multipart form to transmit its data.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
12177
12224
|
operationId: "putFireActionByIdMultipart",
|
|
12178
12225
|
parameters: [
|
|
12179
12226
|
{
|
|
@@ -12280,7 +12327,7 @@ var paths = {
|
|
|
12280
12327
|
"Workflow"
|
|
12281
12328
|
],
|
|
12282
12329
|
summary: "Fire action by ID",
|
|
12283
|
-
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by identifier, on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**Use this endpoint to fire actions that are not represented as `SystemAction` tokens** (`NEW`, `EDIT`, `PUBLISH`, etc.). The two most common are `Move` and `Copy` on the System Workflow scheme.\n\n**Move action** — relocates a contentlet to a new folder/host. Request body shape (note: `pathToMove` is a sibling of `contentlet`, **not** nested inside it):\n\n```json\n{\n \"contentlet\": { \"identifier\": \"<contentlet-identifier>\" },\n \"pathToMove\": \"//<siteHost>/<folderPath>\"\n}\n```\nAlternative shapes (`contentlet.host`+`contentlet.folder`, `contentlet.hostFolder`, `path` instead of `pathToMove`) all return `400 \"The host path is not valid: null\"`.\n\n**Copy action** — clones a contentlet. Fire with `?identifier=<source-id>` and an empty body (or `{\"contentlet\": {\"identifier\": \"<source-id>\"}}`). The Copy action id on the default System Workflow scheme is `963f6a04-5320-42e7-ab74-6d876d199946`; retrieve it for other environments via `GET /api/v1/workflow/schemes/{schemeId}/actions`. ⚠️ The response `entity` returns the **source** contentlet, not the newly-created copy — locate the copy via a follow-up `POST /api/content/_search` ordered by `modDate DESC`. The copy lands in `SYSTEM_HOST` / `SYSTEM_FOLDER`; destination hints (`pathToMove`, `host`, `folder`, `hostFolder`) are silently ignored. Fire the Move action afterwards to relocate.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as
|
|
12330
|
+
description: "Fires a [workflow action](https://www.dotcms.com/docs/latest/managing-workflows#Actions), specified by identifier, on a target contentlet.\n\nReturns a map of the resultant contentlet, with an additional `AUTO_ASSIGN_WORKFLOW` property, which can be referenced by delegate services that handle automatically assigning workflow schemes to content with none.\n\n**Use this endpoint to fire actions that are not represented as `SystemAction` tokens** (`NEW`, `EDIT`, `PUBLISH`, etc.). The two most common are `Move` and `Copy` on the System Workflow scheme.\n\n**Move action** — relocates a contentlet to a new folder/host. Request body shape (note: `pathToMove` is a sibling of `contentlet`, **not** nested inside it):\n\n```json\n{\n \"contentlet\": { \"identifier\": \"<contentlet-identifier>\" },\n \"pathToMove\": \"//<siteHost>/<folderPath>\"\n}\n```\nAlternative shapes (`contentlet.host`+`contentlet.folder`, `contentlet.hostFolder`, `path` instead of `pathToMove`) all return `400 \"The host path is not valid: null\"`.\n\n**Copy action** — clones a contentlet. Fire with `?identifier=<source-id>` and an empty body (or `{\"contentlet\": {\"identifier\": \"<source-id>\"}}`). The Copy action id on the default System Workflow scheme is `963f6a04-5320-42e7-ab74-6d876d199946`; retrieve it for other environments via `GET /api/v1/workflow/schemes/{schemeId}/actions`. ⚠️ The response `entity` returns the **source** contentlet, not the newly-created copy — locate the copy via a follow-up `POST /api/content/_search` ordered by `modDate DESC`. The copy lands in `SYSTEM_HOST` / `SYSTEM_FOLDER`; destination hints (`pathToMove`, `host`, `folder`, `hostFolder`) are silently ignored. Fire the Move action afterwards to relocate.\n\n**When chaining workflow actions or reading state back immediately after firing, pass `indexPolicy=WAIT_FOR` on each call.** The default `DEFER` is asynchronous and can return stale index reads for several seconds, which can mimic server-side state bugs. For isolated one-off fires where nothing reads the result, leave the default.\n\n**Block Editor (Story Block) fields:** send the value as a **Markdown** string — you do not need to hand-author the underlying ProseMirror/JSON document. dotCMS converts it to the Block Editor (ProseMirror JSON) structure automatically on save, so the field reads back as structured content with no editor round-trip required. A value that is already a valid Tiptap/ProseMirror JSON document is detected and stored unchanged. Markdown is intended for plain content: if the field already holds rich blocks that Markdown cannot represent (embedded contentlets, video or layout blocks), the Markdown value is ignored and the existing document is preserved — to modify such a field, send a full Tiptap/ProseMirror JSON document. Example: `\"body\": \"## Intro\\n\\nHello **world**.\"`.",
|
|
12284
12331
|
operationId: "putFireActionById",
|
|
12285
12332
|
parameters: [
|
|
12286
12333
|
{
|
|
@@ -13595,6 +13642,12 @@ var paths = {
|
|
|
13595
13642
|
hasOnlyBatchActionlet: {
|
|
13596
13643
|
type: "boolean"
|
|
13597
13644
|
},
|
|
13645
|
+
hasDeleteActionlet: {
|
|
13646
|
+
type: "boolean"
|
|
13647
|
+
},
|
|
13648
|
+
hasResetActionlet: {
|
|
13649
|
+
type: "boolean"
|
|
13650
|
+
},
|
|
13598
13651
|
hasPublishActionlet: {
|
|
13599
13652
|
type: "boolean"
|
|
13600
13653
|
},
|
|
@@ -13624,12 +13677,6 @@ var paths = {
|
|
|
13624
13677
|
},
|
|
13625
13678
|
hasSaveActionlet: {
|
|
13626
13679
|
type: "boolean"
|
|
13627
|
-
},
|
|
13628
|
-
hasDeleteActionlet: {
|
|
13629
|
-
type: "boolean"
|
|
13630
|
-
},
|
|
13631
|
-
hasResetActionlet: {
|
|
13632
|
-
type: "boolean"
|
|
13633
13680
|
}
|
|
13634
13681
|
}
|
|
13635
13682
|
}
|
|
@@ -13869,6 +13916,12 @@ var paths = {
|
|
|
13869
13916
|
hasOnlyBatchActionlet: {
|
|
13870
13917
|
type: "boolean"
|
|
13871
13918
|
},
|
|
13919
|
+
hasDeleteActionlet: {
|
|
13920
|
+
type: "boolean"
|
|
13921
|
+
},
|
|
13922
|
+
hasResetActionlet: {
|
|
13923
|
+
type: "boolean"
|
|
13924
|
+
},
|
|
13872
13925
|
hasPublishActionlet: {
|
|
13873
13926
|
type: "boolean"
|
|
13874
13927
|
},
|
|
@@ -13898,12 +13951,6 @@ var paths = {
|
|
|
13898
13951
|
},
|
|
13899
13952
|
hasSaveActionlet: {
|
|
13900
13953
|
type: "boolean"
|
|
13901
|
-
},
|
|
13902
|
-
hasDeleteActionlet: {
|
|
13903
|
-
type: "boolean"
|
|
13904
|
-
},
|
|
13905
|
-
hasResetActionlet: {
|
|
13906
|
-
type: "boolean"
|
|
13907
13954
|
}
|
|
13908
13955
|
}
|
|
13909
13956
|
},
|
|
@@ -13940,10 +13987,10 @@ var paths = {
|
|
|
13940
13987
|
type: {
|
|
13941
13988
|
type: "string"
|
|
13942
13989
|
},
|
|
13943
|
-
|
|
13990
|
+
individualPermission: {
|
|
13944
13991
|
type: "boolean"
|
|
13945
13992
|
},
|
|
13946
|
-
|
|
13993
|
+
bitPermission: {
|
|
13947
13994
|
type: "boolean"
|
|
13948
13995
|
},
|
|
13949
13996
|
roleId: {
|