Outcome
Check Insights emptiness, then request the platform-owned workspace archive.
Before you start
- Verify the exact identity, environment and approved organization with topolo whoami before discovering this action.
- Inspect the credential-scoped action and canonical resource discovery. Examples use synthetic resources; replace their handles only with separately verified targets.
- Validate the complete input and review the action plan. Mutation and organization-inventory actions require explicit confirmation; a successful shape check does not prove a runtime grant.
- Select a granted workspace through topolo resources. The CLI/MCP supplies canonical resource headers; workspace identity is not an arbitrary payload field.
Discover the target
topolo whoami --json
topolo apps get topolo-insights --json
topolo actions get app_topolo_insights.workspaces.delete --detail --json
topolo resources topolo-insights --json
Request
DELETE /api/workspaces/{workspaceId} · permission workspace:delete · confirmation required.
Inspect schemas and test this action in the signed action console. The complete field schema is also available through CLI/MCP action discovery.
Effects and scope
- Requires workspace:delete and admin access to the exact workspaceId. Local Insights data returns workspace_not_empty before the Auth archive request.
- Auth owns workspace identity and archive policy. A refused or failed upstream archive returns workspace_archive_refused; local emptiness alone does not prove archival.
- Success returns HTTP 204 with no body. This operation is separate from organization-wide data erasure and does not erase other workspace data.
Interpret the response
- Treat HTTP 204 as success without expecting a workspaceId in JSON.
- Re-discover the exact resource through canonical platform resources to verify archival. Do not infer it solely from an empty local source list.
Worked requests and responses
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested. Successful and refused captures below are separate examples. A refused response is a boundary, not a successful task.
empty · refusal 1 · HTTP 403
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested. Selected synthetic workspace: ws_insights_empty. Fixture handles authorize no live request.
Input · payload.json:
{
"workspaceId": "ws_insights_workflow"
}
CLI:
topolo actions validate app_topolo_insights.workspaces.delete --data @payload.json --json
topolo actions plan app_topolo_insights.workspaces.delete --data @payload.json --confirm --json
Captured raw Worker result
{
"error": "forbidden"
}
HTTP 403. Resolve the specific reported workspace grant/role refusal in the approved context. No endpoint or header bypass is authorized.
CLI/MCP adds its transport envelope; CLI --detail retains the full action result.
empty · refusal 2 · HTTP 409
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested. Selected synthetic workspace: ws_insights_empty. Fixture handles authorize no live request.
Input · payload.json:
{
"workspaceId": "ws_insights_empty"
}
CLI:
topolo actions validate app_topolo_insights.workspaces.delete --data @payload.json --json
topolo actions plan app_topolo_insights.workspaces.delete --data @payload.json --confirm --json
Captured raw Worker result
{
"error": "workspace_archive_refused"
}
HTTP 409. The upstream Auth archive was refused (observed HTTP 409) or unavailable (observed HTTP 502). Retain status and details; local emptiness is not archive proof.
CLI/MCP adds its transport envelope; CLI --detail retains the full action result.
empty · refusal 3 · HTTP 502
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested. Selected synthetic workspace: ws_insights_empty. Fixture handles authorize no live request.
Input · payload.json:
{
"workspaceId": "ws_insights_empty"
}
CLI:
topolo actions validate app_topolo_insights.workspaces.delete --data @payload.json --json
topolo actions plan app_topolo_insights.workspaces.delete --data @payload.json --confirm --json
Captured raw Worker result
{
"error": "workspace_archive_refused"
}
HTTP 502. The upstream Auth archive was refused (observed HTTP 409) or unavailable (observed HTTP 502). Retain status and details; local emptiness is not archive proof.
CLI/MCP adds its transport envelope; CLI --detail retains the full action result.
empty · success 4 · HTTP 204
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested. Selected synthetic workspace: ws_insights_empty. Fixture handles authorize no live request.
Input · payload.json:
{
"workspaceId": "ws_insights_empty"
}
CLI:
topolo actions validate app_topolo_insights.workspaces.delete --data @payload.json --json
topolo actions plan app_topolo_insights.workspaces.delete --data @payload.json --confirm --json
topolo actions call app_topolo_insights.workspaces.delete --data @payload.json --confirm --detail --json
MCP tool and arguments:
{
"tool": "topolo_call_action",
"arguments": {
"actionId": "app_topolo_insights.workspaces.delete",
"input": {
"workspaceId": "ws_insights_empty"
},
"confirm": true
}
}
Captured raw Worker result
(empty response body)
SDK/CLI/MCP action result:
""
HTTP 204. Treat HTTP 204 as success without expecting a workspaceId in JSON. Re-discover the exact resource through canonical platform resources to verify archival. Do not infer it solely from an empty local source list. The raw HTTP response has no body. The Topolo SDK, CLI and MCP represent this result as an empty string, not JSON null.
CLI/MCP adds its transport envelope; CLI --detail retains the full action result.
workflow · refusal 5 · HTTP 409
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested. Selected synthetic workspace: ws_insights_workflow. Fixture handles authorize no live request.
Input · payload.json:
{
"workspaceId": "ws_insights_workflow"
}
CLI:
topolo actions validate app_topolo_insights.workspaces.delete --data @payload.json --json
topolo actions plan app_topolo_insights.workspaces.delete --data @payload.json --confirm --json
Captured raw Worker result
{
"error": "workspace_not_empty"
}
HTTP 409. Inspect remaining Insights records. Do not use organization-wide erasure merely to bypass the empty-workspace archive guard.
CLI/MCP adds its transport envelope; CLI --detail retains the full action result.
permission-refusals · refusal 6 · HTTP 403
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested. Selected synthetic workspace: ws_insights_merge. Fixture handles authorize no live request.
Input · payload.json:
{
"workspaceId": "ws_example"
}
CLI:
topolo actions validate app_topolo_insights.workspaces.delete --data @payload.json --json
topolo actions plan app_topolo_insights.workspaces.delete --data @payload.json --confirm --json
Captured raw Worker result
{
"success": false,
"error": {
"code": "action_permission_required",
"message": "Action \"workspaces.delete\" requires permission \"workspace:delete\".",
"action": "workspaces.delete"
}
}
HTTP 403. The credential lacks the declared action permission. Inspect credential-scoped discovery in the same approved context; workspace role does not replace the permission.
CLI/MCP adds its transport envelope; CLI --detail retains the full action result.
privacy · success 7 · HTTP 204
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested. Selected synthetic workspace: ws_insights_workflow. Fixture handles authorize no live request.
Input · payload.json:
{
"workspaceId": "ws_insights_workflow"
}
CLI:
topolo actions validate app_topolo_insights.workspaces.delete --data @payload.json --json
topolo actions plan app_topolo_insights.workspaces.delete --data @payload.json --confirm --json
topolo actions call app_topolo_insights.workspaces.delete --data @payload.json --confirm --detail --json
MCP tool and arguments:
{
"tool": "topolo_call_action",
"arguments": {
"actionId": "app_topolo_insights.workspaces.delete",
"input": {
"workspaceId": "ws_insights_workflow"
},
"confirm": true
}
}
Captured raw Worker result
(empty response body)
SDK/CLI/MCP action result:
""
HTTP 204. Treat HTTP 204 as success without expecting a workspaceId in JSON. Re-discover the exact resource through canonical platform resources to verify archival. Do not infer it solely from an empty local source list. The raw HTTP response has no body. The Topolo SDK, CLI and MCP represent this result as an empty string, not JSON null.
CLI/MCP adds its transport envelope; CLI --detail retains the full action result.
Verify the outcome
- Treat HTTP 204 as success without expecting a workspaceId in JSON.
- Re-discover the exact resource through canonical platform resources to verify archival. Do not infer it solely from an empty local source list.
Errors and recovery
forbidden(HTTP 403): Resolve the specific reported workspace grant/role refusal in the approved context. No endpoint or header bypass is authorized.workspace_archive_refused(HTTP 409): The upstream Auth archive was refused (observed HTTP 409) or unavailable (observed HTTP 502). Retain status and details; local emptiness is not archive proof.workspace_not_empty(HTTP 409): Inspect remaining Insights records. Do not use organization-wide erasure merely to bypass the empty-workspace archive guard.action_permission_required(HTTP 403): The credential lacks the declared action permission. Inspect credential-scoped discovery in the same approved context; workspace role does not replace the permission.
Only observed refusals are listed. This does not promise that external dependencies or every invalid payload have been exhaustively exercised.
Recovery boundary
No workspace restore action is published by Insights. Resolve remaining application data or the upstream archive refusal through the owning action references; organization erasure is not an automatic workspace-archive workaround.
Related actions
No inverse or next action is declared by Insights for this operation.
Evidence and limits
Actual exported Insights worker, all nine migrated D1 scripts and isolated local R2. Auth identity/grants/archive transport, queue delivery and Analytics Engine sink are synthetic; local queue processing is called explicitly. Notify and Nexus are disabled. No live website, provider, paid usage or deployed data erasure is tested.