Update a dashboard
Updates dashboard metadata (title, description, visibility, tags) and optionally replaces the full template. All fields are optional — only provided fields are changed.
tags uses full replacement semantics: omit it to preserve the current
set, send [] to clear all tags, or send a non-empty array to replace the
full set. Tags are returned in ascending lexical order. Sending the same
tag set by itself is a no-op and does not advance updatedAt.
When you update title or description without providing a template,
those values are automatically synced into the stored template JSON.
When you replace the full template, its title and description are
authoritative and the dashboard metadata fields are derived from them.
Explicit top-level title or description values in the same request
are applied as metadata patches to the replacement template before the
derived fields are persisted.
Version-control policy:
| Project setting | commitMessage | Result |
|---|---|---|
| Disabled | Omitted | Save without committing |
| Disabled | Provided | Save and commit |
| Enabled | Omitted | Reject before saving with COMMIT_MESSAGE_REQUIRED |
| Enabled | Provided | Save and commit |
| Enabled | GitHub unavailable | Reject before saving with VCS_NOT_CONFIGURED |
Visibility-only and tag-only changes do not modify the versioned dashboard
template and therefore do not require a commit message. A commitMessage
supplied with a tag-only update is ignored.
Authorization
BearerAuth A project-scoped or dashboard-scoped access token. Generate one via the Token API using your project ID and project secret.
In: header
Path Parameters
Dashboard identifier.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X patch "https://semaphor.cloud/api/management/v1/dashboards/string" \ -H "Content-Type: application/json" \ -d '{}'{
"versionControl": {
"status": "committed",
"commitSha": "string",
"commitUrl": "http://example.com"
},
"id": "string",
"kind": "string",
"tags": [
"string"
],
"title": "string",
"description": "string",
"projectId": "string",
"tenantId": "string",
"isPrivate": true,
"isPublic": true,
"version": "string",
"permissions": {
"canEdit": true,
"canShare": true,
"canDelete": true
},
"ownership": {}
}{
"error": "string",
"code": "string",
"errorCode": "string",
"details": {},
"success": true
}{
"error": "string",
"code": "string",
"errorCode": "string",
"details": {},
"success": true
}{
"error": "string",
"code": "string",
"errorCode": "string",
"details": {},
"success": true
}{
"error": "string",
"code": "string",
"errorCode": "string",
"details": {},
"success": true
}{
"error": "string",
"code": "string",
"errorCode": "string",
"details": {},
"success": true
}{
"error": "string",
"errorCode": "COMMIT_FAILED",
"dashboardSaved": true,
"dashboard": {
"id": "string",
"kind": "string",
"tags": [
"string"
],
"title": "string",
"description": "string",
"projectId": "string",
"tenantId": "string",
"isPrivate": true,
"isPublic": true,
"version": "string",
"permissions": {
"canEdit": true,
"canShare": true,
"canDelete": true
},
"ownership": {}
},
"versionControl": {
"status": "committed",
"commitSha": "string",
"commitUrl": "http://example.com"
}
}