Enhance documentation
canvas.edit
Change selected text, styles, names, duplicates, or positions in one atomic design edit.
canvas.edit
mutation write
Use when the requested change exactly matches canvas.edit; read the current state first when a version or identifier may have changed.
Before calling
- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.
Input
Show complete JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"canvas": {
"type": "string",
"minLength": 1,
"description": "Canvas UUID or full canvas/selection URL; selection limits the entire edit batch."
},
"baseVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Exact version to edit, including the version returned by a previous successful write."
},
"edits": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "set_text"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"text": {
"type": "string",
"maxLength": 100000
}
},
"required": [
"kind",
"nodeId",
"text"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "set_styles"
},
"nodeIds": {
"minItems": 1,
"maxItems": 1000,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"styles": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "null"
}
]
}
}
},
"required": [
"kind",
"nodeIds",
"styles"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "rename"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"kind",
"nodeId",
"name"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "duplicate"
},
"nodeIds": {
"minItems": 1,
"maxItems": 1000,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"parentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"nodeIds"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "move"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"destination": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "before"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"nodeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "after"
},
"nodeId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"nodeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "parent"
},
"parentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"index": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"kind",
"parentId"
],
"additionalProperties": false
}
]
}
},
"required": [
"kind",
"nodeId",
"destination"
],
"additionalProperties": false
}
]
},
"description": "One to 100 sequential text, style, rename, duplicate or move edits, committed atomically. Target existing node IDs."
}
},
"required": [
"canvas",
"baseVersion",
"edits"
],
"additionalProperties": false
}
Example
Show example input
{
"canvas": "00000000-0000-4000-8000-000000000010",
"baseVersion": 1,
"edits": [
{
"kind": "set_text",
"nodeId": "text_title",
"text": "Today"
}
]
}
Result
Returns a typed canvas.edit result from the Enhance API without transport-specific prose.
Recovery
- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: check the supplied resource and selection; do not substitute unrelated content. Ask for corrected access or scope if needed.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.
Continue with
- Reuse the committed version for the next edit. Render the affected screen when the requested visual change is ready to review.
Compatibility: d13c052a1275bc965e9eb438ff03d0951c2caed922c9f587da784ac7bad94998.