Topolo Docs Topolo Platform
Open workspace

Get Spaces widget

Read workspace-scoped inventory, ready-space and active-processing-job counts in the canonical widget envelope.

Outcome

Read workspace-scoped inventory, ready-space and active-processing-job counts in the canonical widget envelope.

Before you start

  • Verify the authenticated identity, exact environment and pinned approved organization context before preparing an action.
  • The published application permission is workspace:read. Discover a granted Spaces workspace and bind that exact resource. Supplied identifiers do not grant access.

Discover the target

topolo whoami --json
topolo actions get app_topolo_spaces.widget.get --detail --json
topolo resources topolo-spaces --json
topolo workspaces list topolo-spaces --json
  • Select the exact granted workspace id as SPACES_WORKSPACE_ID. Fixture ids authorize no live operation.

Request

GET /api/widget

Save action input as payload.json. Inspect the plan for the exact path, query and body. Set SPACES_WORKSPACE_ID from granted resource discovery.

Inspect and test this action in the signed action console, then perform the verification below.

Input fields

Supply an empty input object; credential and resource context are separate.

View the complete input schema in the action console. The same schema is available through CLI and MCP action discovery.

Effects

  • Reads counts for the granted workspace from core and processing stores without creating a space or local workspace mirror.
  • Spaces counts all spaces; ready counts status ready; processing counts queued, processing and waiting_processor jobs. A granted workspace with zero data can have widget state ready.
  • The widget is an observation, not proof of renderer quality, conversion completion, notification delivery or accepted usage.

Interpret the response

The response does not discover a new resource id. Retain exact input/context identifiers; nullable or absence responses are not canonical identifier discovery.

Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

The success schema was checked against captured handler responses. Delegated Auth identity and canonical widget context fields can vary; exact Spaces envelopes and all thirteen SQL export table sets are source-reviewed against the migrated local schema. Error responses can be plain text; the original refusal body is retained. Error examples retain their actual refusal shapes.

View the complete success schema in the action console. The worked examples below retain complete raw captured Worker responses. CLI responses have a transport envelope and can be bounded unless --detail is requested; action discovery supplies the exact schema.

Worked examples

Real isolated local D1/R2 and source handlers with synthetic Auth/workspace discovery, queue transport, notification delivery and metering. Arbitrary fixture SOG bytes demonstrate handler state only, not valid Gaussian data, renderer quality, deployed processing or live effects. Annotation rows are seeded directly into isolated fixture storage because no annotation mutation is published. Refused examples demonstrate boundaries and must not be executed as successful workflows.

Successful request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: minimal.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:15.998Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "0 spaces · 0 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_minimal",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:15.998Z",
        "lastSuccessfulAt": "2026-10-04T07:15:15.998Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "0 spaces · 0 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:15.998Z",
            "end": "2026-10-04T07:15:15.998Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:15.998Z",
            "end": "2026-10-04T07:15:15.998Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:15.998Z",
            "end": "2026-10-04T07:15:15.998Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:15.998Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_minimal",
    "name": "ws_spaces_minimal"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: minimal.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:16.100Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 0 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_minimal",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:16.100Z",
        "lastSuccessfulAt": "2026-10-04T07:15:16.100Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 0 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.100Z",
            "end": "2026-10-04T07:15:16.100Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.100Z",
            "end": "2026-10-04T07:15:16.100Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.100Z",
            "end": "2026-10-04T07:15:16.100Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:16.100Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_minimal",
    "name": "ws_spaces_minimal"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: minimal.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:16.370Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 0 ready · 1 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_minimal",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:16.370Z",
        "lastSuccessfulAt": "2026-10-04T07:15:16.370Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 0 ready · 1 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.370Z",
            "end": "2026-10-04T07:15:16.370Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.370Z",
            "end": "2026-10-04T07:15:16.370Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.370Z",
            "end": "2026-10-04T07:15:16.370Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:16.370Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_minimal",
    "name": "ws_spaces_minimal"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: minimal.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:16.457Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 1 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_minimal",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:16.457Z",
        "lastSuccessfulAt": "2026-10-04T07:15:16.457Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 1 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.457Z",
            "end": "2026-10-04T07:15:16.457Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.457Z",
            "end": "2026-10-04T07:15:16.457Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:16.457Z",
            "end": "2026-10-04T07:15:16.457Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:16.457Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_minimal",
    "name": "ws_spaces_minimal"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: workflow.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:17.578Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "0 spaces · 0 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_workflow",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:17.578Z",
        "lastSuccessfulAt": "2026-10-04T07:15:17.578Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "0 spaces · 0 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.578Z",
            "end": "2026-10-04T07:15:17.578Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.578Z",
            "end": "2026-10-04T07:15:17.578Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.578Z",
            "end": "2026-10-04T07:15:17.578Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:17.578Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_workflow",
    "name": "ws_spaces_workflow"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: workflow.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:17.661Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 0 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_workflow",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:17.661Z",
        "lastSuccessfulAt": "2026-10-04T07:15:17.661Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 0 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.661Z",
            "end": "2026-10-04T07:15:17.661Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.661Z",
            "end": "2026-10-04T07:15:17.661Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.661Z",
            "end": "2026-10-04T07:15:17.661Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:17.661Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_workflow",
    "name": "ws_spaces_workflow"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: workflow.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:17.811Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 0 ready · 1 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_workflow",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:17.811Z",
        "lastSuccessfulAt": "2026-10-04T07:15:17.811Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 0 ready · 1 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.811Z",
            "end": "2026-10-04T07:15:17.811Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.811Z",
            "end": "2026-10-04T07:15:17.811Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.811Z",
            "end": "2026-10-04T07:15:17.811Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:17.811Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_workflow",
    "name": "ws_spaces_workflow"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: workflow.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:17.863Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 1 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_workflow",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:17.863Z",
        "lastSuccessfulAt": "2026-10-04T07:15:17.863Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 1 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.863Z",
            "end": "2026-10-04T07:15:17.863Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.863Z",
            "end": "2026-10-04T07:15:17.863Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:17.863Z",
            "end": "2026-10-04T07:15:17.863Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:17.863Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_workflow",
    "name": "ws_spaces_workflow"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: privacy.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:18.478Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "0 spaces · 0 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_privacy",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:18.478Z",
        "lastSuccessfulAt": "2026-10-04T07:15:18.478Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "0 spaces · 0 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.478Z",
            "end": "2026-10-04T07:15:18.478Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.478Z",
            "end": "2026-10-04T07:15:18.478Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.478Z",
            "end": "2026-10-04T07:15:18.478Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:18.478Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_privacy",
    "name": "ws_spaces_privacy"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: privacy.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:18.547Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 0 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_privacy",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:18.547Z",
        "lastSuccessfulAt": "2026-10-04T07:15:18.547Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 0 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.547Z",
            "end": "2026-10-04T07:15:18.547Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.547Z",
            "end": "2026-10-04T07:15:18.547Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.547Z",
            "end": "2026-10-04T07:15:18.547Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:18.547Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_privacy",
    "name": "ws_spaces_privacy"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: privacy.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:18.737Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 0 ready · 1 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_privacy",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:18.737Z",
        "lastSuccessfulAt": "2026-10-04T07:15:18.737Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 0 ready · 1 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.737Z",
            "end": "2026-10-04T07:15:18.737Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.737Z",
            "end": "2026-10-04T07:15:18.737Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.737Z",
            "end": "2026-10-04T07:15:18.737Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:18.737Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_privacy",
    "name": "ws_spaces_privacy"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Another supported request

Actual local Worker response; all four migrated D1 databases and R2 are real. Auth identity/workspace discovery, queue transport, notification delivery and metering are simulated or disabled. Captured scenario: privacy.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_spaces.widget.get --data @payload.json --json
topolo actions plan app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_spaces.widget.get --resource-type workspace --resource-id "$SPACES_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_spaces.widget.get",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<identifier returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "success": true,
  "contractVersion": "3.0.0",
  "appId": "app_topolo_spaces",
  "serviceName": "Spaces",
  "generatedAt": "2026-10-04T07:15:18.803Z",
  "widgets": [
    {
      "id": "spaces.workspace-summary",
      "version": "2.0.0",
      "type": "stats",
      "presentation": {
        "title": "Spaces workspace",
        "description": "1 spaces · 1 ready · 0 processing",
        "contexts": [
          "workspace"
        ],
        "supportedSizes": [
          "compact",
          "medium",
          "wide"
        ],
        "defaultSize": "medium"
      },
      "resource": {
        "resourceType": "workspace",
        "resourceId": "ws_spaces_privacy",
        "requiredPermissions": [
          "workspace:read"
        ]
      },
      "state": {
        "status": "ready",
        "observedAt": "2026-10-04T07:15:18.803Z",
        "lastSuccessfulAt": "2026-10-04T07:15:18.803Z"
      },
      "refresh": {
        "intervalSeconds": 60,
        "timeoutSeconds": 10,
        "maxAgeSeconds": 60,
        "staleWhileRevalidateSeconds": 120
      },
      "configuration": {
        "allowMultipleInstances": false,
        "fields": [],
        "defaults": {}
      },
      "drilldowns": [
        {
          "id": "spaces",
          "label": "View spaces",
          "href": "/dashboard/spaces"
        }
      ],
      "controls": [],
      "localization": {
        "locale": "en",
        "titleKey": "spaces.widget.title",
        "descriptionKey": "spaces.widget.summary"
      },
      "accessibility": {
        "label": "Spaces workspace metrics",
        "description": "1 spaces · 1 ready · 0 processing"
      },
      "contribution": {
        "summary": "Space inventory, readiness, and processing activity for the selected Spaces workspace.",
        "identity": {
          "iconSource": "catalog"
        },
        "workspaceSelector": {
          "mode": "required",
          "resourceType": "workspace",
          "label": "Spaces workspace",
          "supportsMultiple": false
        },
        "metricDefinitions": [
          {
            "key": "spaces",
            "label": "Spaces",
            "description": "All spaces in the workspace.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "ready",
            "label": "Ready",
            "description": "Spaces ready for use.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          },
          {
            "key": "processing",
            "label": "Processing",
            "description": "Active space processing jobs.",
            "unit": "count",
            "semantic": "gauge",
            "aggregation": "last"
          }
        ],
        "seriesDefinitions": [],
        "dimensions": [],
        "lifecycleStages": [
          {
            "key": "processing",
            "label": "Processing",
            "order": 0,
            "terminal": false
          },
          {
            "key": "ready",
            "label": "Ready",
            "order": 1,
            "terminal": true
          }
        ],
        "events": [
          {
            "key": "space_created",
            "label": "Space created",
            "description": "A space was created."
          },
          {
            "key": "processing_started",
            "label": "Processing started",
            "description": "A space processing job started."
          },
          {
            "key": "space_ready",
            "label": "Space ready",
            "description": "A space became ready for use."
          }
        ],
        "datasets": [
          {
            "id": "space_operations",
            "label": "Space operations",
            "description": "Current space inventory and processing aggregates.",
            "grain": "One aggregate row per Spaces workspace.",
            "metricKeys": [
              "spaces",
              "ready",
              "processing"
            ],
            "seriesKeys": [],
            "dimensionKeys": [],
            "eventKeys": [
              "space_created",
              "processing_started",
              "space_ready"
            ],
            "actionIds": []
          }
        ],
        "compatibleVisualizations": [
          "number",
          "bar",
          "table"
        ],
        "defaultVisualization": "bar"
      },
      "metrics": [
        {
          "key": "spaces",
          "label": "Spaces",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.803Z",
            "end": "2026-10-04T07:15:18.803Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "ready",
          "label": "Ready",
          "value": 1,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.803Z",
            "end": "2026-10-04T07:15:18.803Z",
            "timezone": "UTC"
          },
          "dimensions": []
        },
        {
          "key": "processing",
          "label": "Processing",
          "value": 0,
          "unit": "count",
          "semantic": "gauge",
          "aggregation": "last",
          "period": {
            "start": "2026-10-04T07:15:18.803Z",
            "end": "2026-10-04T07:15:18.803Z",
            "timezone": "UTC"
          },
          "dimensions": []
        }
      ],
      "appId": "app_topolo_spaces",
      "serviceName": "Spaces",
      "lastUpdated": "2026-10-04T07:15:18.803Z"
    }
  ],
  "workspace": {
    "id": "ws_spaces_privacy",
    "name": "ws_spaces_privacy"
  },
  "workspaces": [
    {
      "id": "ws_spaces_minimal",
      "name": "ws_spaces_minimal",
      "isDefault": true
    },
    {
      "id": "ws_spaces_workflow",
      "name": "ws_spaces_workflow",
      "isDefault": false
    },
    {
      "id": "ws_spaces_privacy",
      "name": "ws_spaces_privacy",
      "isDefault": false
    }
  ]
}

HTTP 200. Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace. Use spaces.get for exact asset/job states before assuming a capture is viewable.

Verify the result

  • Check the canonical success envelope, widget resource.resourceId and three metrics against the selected workspace.
  • Use spaces.get for exact asset/job states before assuming a capture is viewable.

Errors and recovery

  • organization_context_required (HTTP 403): Stop and authenticate into the approved owning organization. Preserve the actual denial; a resource id does not grant organization access.

A plain-text server refusal is surfaced by CLI/MCP as http_error with its HTTP status and requestId; its text is not a structured service error.code. Auth, action-input validation and platform resource resolution can refuse a request before its handler. Retain the exact error, request id and context; requesting another context is not a legitimate way to bypass a refusal.

Recovery boundary

This observation requires no compensating action. Resolve any stated widget state/context issue before using its counts.

  • List spaces: Read the latest one hundred space records in the selected workspace.
  • Get space: Read one space with its stored asset, annotation, public-link and processing-job records.

Evidence

Real isolated local D1/R2 and source handlers with synthetic Auth/workspace discovery, queue transport, notification delivery and metering. Arbitrary fixture SOG bytes demonstrate handler state only, not valid Gaussian data, renderer quality, deployed processing or live effects. Annotation rows are seeded directly into isolated fixture storage because no annotation mutation is published. Capture digests and test scenarios are retained in the source fixture records.