Outcome
Reads One’s local application-category definitions after administrative authorization.
Before you start
- Verify the intended environment, authenticated identity and explicitly authorized ownership context.
- Discover the published apps:read permission and any required resource grant.
Discover the target
topolo whoami --json
topolo actions get app_topolo_one.admin.categories.list --detail --json
Request
GET /api/admin/categories
Input fields
Use an empty input object. Credential and resource context are separate.
Interpret the response
Inspect category ids, labels and sort order. Category existence does not establish any application’s entitlement or registration.
Inspect the declared output schema and captured variants.
Worked examples
Actual exported One Worker with local Miniflare D1/KV. Authentication, application discovery, checkout, billing and remote widget providers are controlled synthetic responses; outbound access is sealed. No live provider outcome is established.
Save the reviewed input below as payload.json; substitute discovered identifiers and bind credential/resource context separately. CLI:
topolo actions validate app_topolo_one.admin.categories.list --data @payload.json --json
topolo actions plan app_topolo_one.admin.categories.list --data @payload.json --json
topolo actions call app_topolo_one.admin.categories.list --data @payload.json --detail --json
MCP planning and execution use the same reviewed input:
{
"tool": "topolo_prepare_action",
"arguments": {
"actionId": "app_topolo_one.admin.categories.list",
"input": {}
}
}
{
"tool": "topolo_read_action",
"arguments": {
"actionId": "app_topolo_one.admin.categories.list",
"input": {},
"detail": true
}
}
Refused request · HTTP 401 · auth_error
Input · payload.json:
{}
Captured response:
{
"error": "Token validation failed"
}
Authenticate using the required credential type for this action; service-only actions require the registered Auth service identity.
Successful response · HTTP 200
Input · payload.json:
{}
Captured response:
{
"categories": [
{
"id": "system",
"name": "System Administration",
"description": "Core Topolo platform tools",
"icon": "⚙️",
"sort_order": 0
},
{
"id": "mdm",
"name": "Device Management",
"description": "Mobile device management and security",
"icon": "📱",
"sort_order": 1
},
{
"id": "storage",
"name": "Storage & Files",
"description": "File storage, backup, and data management",
"icon": "💾",
"sort_order": 2
},
{
"id": "payment",
"name": "Payments & Finance",
"description": "Payment processing and financial tools",
"icon": "💳",
"sort_order": 3
},
{
"id": "analytics",
"name": "Analytics & Reporting",
"description": "Data analytics and business intelligence",
"icon": "📊",
"sort_order": 4
},
{
"id": "communication",
"name": "Communication",
"description": "Chat, email, and collaboration tools",
"icon": "💬",
"sort_order": 5
},
{
"id": "security",
"name": "Security & Compliance",
"description": "Security monitoring and compliance tools",
"icon": "🔒",
"sort_order": 6
},
{
"id": "productivity",
"name": "Productivity",
"description": "Task management and productivity tools",
"icon": "⚡",
"sort_order": 7
},
{
"id": "development",
"name": "Development Tools",
"description": "Code repositories, CI/CD, and dev tools",
"icon": "🛠️",
"sort_order": 8
}
],
"total": 9
}
Inspect category ids, labels and sort order. Category existence does not establish any application’s entitlement or registration.
Refused request · HTTP 403 · permission_denied
Input · payload.json:
{}
Captured response:
{
"error": "INSUFFICIENT_PERMISSIONS",
"message": "Required permissions: apps:read"
}
Discover the required permission and resource grants; re-authentication alone does not grant access.
Verify the result
- Inspect category ids, labels and sort order. Category existence does not establish any application’s entitlement or registration.
Errors and recovery
auth_error(HTTP 401): Authenticate using the required credential type for this action; service-only actions require the registered Auth service identity.permission_denied(HTTP 403): Discover the required permission and resource grants; re-authentication alone does not grant access.
These are observed local refusals; inspect the raw error body because one SDK code can represent several handler messages. Preserve the request id when available.
Recovery boundary
This action has no state-changing effect.
Evidence
Actual exported One Worker with local Miniflare D1/KV. Authentication, application discovery, checkout, billing and remote widget providers are controlled synthetic responses; outbound access is sealed. No live provider outcome is established.