edit_dashboard_source
Apply atomic exact-text replacements to one canonical dashboard YAML revision. Each oldText must match exactly once; invalid, ambiguous, overlapping, or stale edits leave the draft unchanged.
Machine-readable: focused JSON · complete manifest
Contract
| Property | Value |
|---|---|
| Authorization | RESOURCE_EDIT |
| Effect | write |
| Operation | manual |
| Tags | dashboard, authoring, source |
| Defaults | {} |
| MCP annotations | read/write, not idempotent, non-destructive, closed-world |
Input schema
{
"additionalProperties": false,
"properties": {
"dashboardId": {
"minLength": 1,
"type": "string"
},
"draftId": {
"minLength": 1,
"type": "string"
},
"edits": {
"items": {
"additionalProperties": false,
"properties": {
"newText": {
"type": "string"
},
"oldText": {
"minLength": 1,
"type": "string"
}
},
"required": [
"newText",
"oldText"
],
"type": "object"
},
"type": "array"
},
"expectedRevision": {
"additionalProperties": false,
"properties": {
"contentHash": {
"type": "string"
},
"number": {
"type": "integer"
},
"revisionId": {
"type": "string"
}
},
"required": [
"contentHash",
"number",
"revisionId"
],
"type": "object"
}
},
"required": [
"dashboardId",
"draftId",
"edits",
"expectedRevision"
],
"type": "object"
}
Output schema
{
"additionalProperties": false,
"properties": {
"changedBlocks": {
"type": "integer"
},
"diff": {
"type": "string"
},
"lifecycle": {
"additionalProperties": {},
"type": "object"
},
"revision": {
"additionalProperties": {},
"type": "object"
},
"yaml": {
"type": "string"
}
},
"required": [
"changedBlocks",
"diff",
"lifecycle",
"revision",
"yaml"
],
"type": "object"
}