Topolo Docs Topolo Platform
Open workspace

Get composed dashboard

Composes the organization’s entitled services, launcher preferences, users and store icons.

Outcome

Composes the organization’s entitled services, launcher preferences, users and store icons.

Before you start

  • Verify the intended environment, authenticated identity and explicitly authorized ownership context.
  • This route checks credential-scoped ownership and source access at runtime; validate the exact plan and resource binding.

Discover the target

topolo whoami --json
topolo actions get app_topolo_one.dashboard.get --detail --json

Request

GET /api/dashboard

Inspect and test this action.

Input fields

FieldRequiredMeaningConstraints
org_idOptionalOrganization requested for composition, subject to the active credential’s ownership checks.{"type":"string","minLength":1}

Inspect nested fields.

Interpret the response

Inspect data.services, availableServices and appSwitcherPreferences separately. A service returned by this read is not evidence that a downstream launch or API call succeeded.

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.dashboard.get --data @payload.json --json
topolo actions plan app_topolo_one.dashboard.get --data @payload.json --json
topolo actions call app_topolo_one.dashboard.get --data @payload.json --detail --json

MCP planning and execution use the same reviewed input:

{
  "tool": "topolo_prepare_action",
  "arguments": {
    "actionId": "app_topolo_one.dashboard.get",
    "input": {}
  }
}
{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_one.dashboard.get",
    "input": {},
    "detail": true
  }
}

Successful response · HTTP 200

Input · payload.json:

{}

Captured response:

{
  "data": {
    "services": [
      {
        "id": "fixture_mail",
        "app_id": "app_topolo_mail",
        "service_name": "Mail",
        "base_url": "https://mail.test",
        "service_status": "active",
        "enabled": 1
      }
    ],
    "availableServices": [],
    "appSwitcherPreferences": {
      "pinnedServiceIds": [
        "fixture_mail"
      ]
    },
    "orgId": "org_int_1"
  }
}

Inspect data.services, availableServices and appSwitcherPreferences separately. A service returned by this read is not evidence that a downstream launch or API call succeeded.

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.

Verify the result

  • Inspect data.services, availableServices and appSwitcherPreferences separately. A service returned by this read is not evidence that a downstream launch or API call succeeded.

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.

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

Re-read in the intended identity and organization context; inspect upstream availability for missing data.

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.