Semaphor

Validate all dashboards in a project

Runs the same validation checks as single-dashboard validation across every dashboard in the project and returns a per-dashboard result set with an aggregate summary. Use this for project-wide audits — for example, after renaming database columns or migrating a connection.

You can scope the validation to specific dashboards using the filter option (e.g., only organization-owned dashboards or a specific tenant's dashboards).

POST
/api/v1/dashboard/validate-all

Authorization

BearerAuth
AuthorizationBearer <token>

A project-scoped or dashboard-scoped access token. Generate one via the Token API using your project ID and project secret.

In: header

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

curl -X post "https://semaphor.cloud/api/v1/dashboard/validate-all" \  -H "Content-Type: application/json" \  -d '{}'
{
  "projectId": "string",
  "validatedAt": "2019-08-24T14:15:22Z",
  "summary": {
    "totalDashboards": 0,
    "validDashboards": 0,
    "invalidDashboards": 0
  },
  "dashboardResults": [
    {
      "dashboardId": "string",
      "dashboardTitle": "string",
      "isValid": true,
      "validatedAt": "2019-08-24T14:15:22Z",
      "summary": {
        "totalCards": 0,
        "validCards": 0,
        "invalidCards": 0,
        "totalFields": 0,
        "validFields": 0,
        "invalidFields": 0,
        "totalFilters": 0,
        "validFilters": 0,
        "invalidFilters": 0,
        "totalJoins": 0,
        "validJoins": 0,
        "invalidJoins": 0,
        "totalConnections": 0,
        "validConnections": 0,
        "invalidConnections": 0,
        "totalDatasets": 0,
        "validDatasets": 0,
        "invalidDatasets": 0,
        "totalDatamodels": 0,
        "validDatamodels": 0,
        "invalidDatamodels": 0,
        "aiContextValid": true,
        "assistantProfileValid": true
      },
      "cardResults": [
        {
          "cardId": "string",
          "cardTitle": "string",
          "sheetId": "string",
          "sheetTitle": "string",
          "frameId": "string",
          "isValid": true,
          "connectionId": "string",
          "connectionName": "string",
          "dataSourceType": "table",
          "dataSourceName": "string",
          "fieldResults": [
            {
              "fieldId": "string",
              "fieldName": "string",
              "fieldRole": "groupby",
              "entityId": "string",
              "entityName": "string",
              "qualifiedFieldName": "string",
              "isValid": true,
              "errorType": "string",
              "errorMessage": "string",
              "availableColumns": [
                "string"
              ],
              "suggestion": "string"
            }
          ],
          "joinResults": {
            "isValid": true,
            "baseEntityValid": true,
            "baseEntityName": "string",
            "baseEntityError": "string",
            "joins": [
              {
                "joinId": "string",
                "sourceEntity": "string",
                "targetEntity": "string",
                "sourceEntityValid": true,
                "targetEntityValid": true,
                "keyResults": [
                  {
                    "sourceField": "string",
                    "targetField": "string",
                    "sourceFieldValid": true,
                    "targetFieldValid": true,
                    "sourceErrorMessage": "string",
                    "targetErrorMessage": "string",
                    "sourceSuggestion": "string",
                    "targetSuggestion": "string"
                  }
                ]
              }
            ]
          },
          "errors": [
            "string"
          ]
        }
      ],
      "filterResults": [
        {
          "filterId": "string",
          "filterTitle": "string",
          "connectionId": "string",
          "isValid": true,
          "fieldResults": [
            {
              "fieldId": "string",
              "fieldName": "string",
              "fieldRole": "groupby",
              "entityId": "string",
              "entityName": "string",
              "qualifiedFieldName": "string",
              "isValid": true,
              "errorType": "string",
              "errorMessage": "string",
              "availableColumns": [
                "string"
              ],
              "suggestion": "string"
            }
          ],
          "errors": [
            "string"
          ]
        }
      ],
      "resourceResults": {
        "connections": [
          {
            "connectionId": "string",
            "connectionName": "string",
            "isValid": true,
            "errorMessage": "string",
            "usedByCards": [
              "string"
            ]
          }
        ],
        "datasets": [
          {
            "domainId": "string",
            "datasetName": "string",
            "isValid": true,
            "errorMessage": "string",
            "usedByCards": [
              "string"
            ]
          }
        ],
        "datamodels": [
          {
            "datamodelId": "string",
            "datamodelName": "string",
            "isValid": true,
            "errorMessage": "string",
            "usedByCards": [
              "string"
            ]
          }
        ]
      },
      "aiContextResult": {},
      "aiScopeTableResults": [
        {}
      ],
      "assistantProfileResult": {},
      "errors": [
        "string"
      ],
      "warnings": [
        "string"
      ]
    }
  ]
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}