Topolo Docs Topolo Platform
Open workspace

List Flow connections

Read organization-wide provider connection metadata owned by Nexus for Flow.

Outcome

Read organization-wide provider connection metadata owned by Nexus for Flow.

Before you start

  • Verify authenticated identity, environment and the approved organization context before preparing an action.
  • The published application permission is workspace:read. Bind a granted Flow workspace for request access, while the connection data and effects cover the whole authenticated organization. A workspace header does not narrow connection scope.
  • Session callers need read workspace access. Auth-introspected API keys must bind that workspace and satisfy workspace:read. The application permission and workspace boundary are separate checks.

Discover the target

topolo whoami --json
topolo actions get app_topolo_flow.connections.list --detail --json
topolo resources topolo-flow --json
topolo workspaces list topolo-flow --json
  • Set FLOW_WORKSPACE_ID to the exact id returned by granted workspace discovery.

Request

GET /api/connections

Inspect and test this action. Save the exact input object as payload.json; resource context is supplied separately.

Input fields

Use an empty input object. Identity and resource context are separate from action input.

View the full input schema through the action reference or CLI/MCP discovery.

Effects

  • Reads Nexus connections for this organization and Flow app/resource type, including inactive metadata; this is not narrowed to one Flow workspace and returns no credential token.

Interpret the response

Read $.connections[].id for the returned connection identifier. An empty collection does not discover a target.

Compare connection ids, provider and status; use only an authorized exact id for disconnect.

View the complete success schema. Success examples below preserve the actual exported Worker responses; errors have their original refusal shapes. CLI/MCP add their transport envelope, and --detail requests the full CLI response.

Worked examples

Captured from the actual exported Flow Worker with both local SQLite D1 stores and all committed migrations, synthetic Auth identity/grants and simulated Nexus, archive and Workflow-acceptance transports. Fixture credentials and identifiers authorize no live operation. No live provider invocation, credential storage, notification delivery, metering acceptance, durable Workflow execution, deployment, backup erasure or production completion is established by these captures. Refused examples explain boundaries and must not be executed as successful workflows.

Successful request

Actual exported Worker response with both local SQLite D1 databases and all committed migrations; synthetic Auth/grants and simulated Nexus/archive transport. No live credentials, provider calls, delivery, deployment or durable Workflow execution proof. Scenario: connections.list.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_flow.connections.list --data @payload.json --json
topolo actions plan app_topolo_flow.connections.list --resource-type workspace --resource-id "$FLOW_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_flow.connections.list --resource-type workspace --resource-id "$FLOW_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_flow.connections.list",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<id returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "connections": [
    {
      "id": "flw_eba0af50a3e048419aed",
      "provider": "fixture",
      "displayName": "Fixture provider",
      "username": null,
      "status": "active",
      "scope": null,
      "kind": "api_key",
      "tokenExpiresAt": null,
      "createdAt": "2026-10-05T00:00:00Z"
    }
  ]
}

HTTP 200. Compare connection ids, provider and status; use only an authorized exact id for disconnect.

Another supported response

Actual exported Worker response with both local SQLite D1 databases and all committed migrations; synthetic Auth/grants and simulated Nexus/archive transport. No live credentials, provider calls, delivery, deployment or durable Workflow execution proof. Scenario: connections.list.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_flow.connections.list --data @payload.json --json
topolo actions plan app_topolo_flow.connections.list --resource-type workspace --resource-id "$FLOW_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_flow.connections.list --resource-type workspace --resource-id "$FLOW_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_flow.connections.list",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<id returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "connections": []
}

HTTP 200. Compare connection ids, provider and status; use only an authorized exact id for disconnect.

Refused request · HTTP 401

Actual exported Worker response with both local SQLite D1 databases and all committed migrations; synthetic Auth/grants and simulated Nexus/archive transport. No live credentials, provider calls, delivery, deployment or durable Workflow execution proof. Scenario: anonymous action.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_flow.connections.list --data @payload.json --json
topolo actions plan app_topolo_flow.connections.list --resource-type workspace --resource-id "$FLOW_WORKSPACE_ID" --data @payload.json --json

Captured local response · HTTP 401:

{
  "error": "Authentication token required"
}

HTTP 401. The handler refused this request. Resolve the exact cause before retrying; invalid input can be refused by CLI validation before reaching the handler.

Another supported response

Actual exported Worker response with both local SQLite D1 databases and all committed migrations; synthetic Auth/grants and simulated Nexus/archive transport. No live credentials, provider calls, delivery, deployment or durable Workflow execution proof. Scenario: metadata after simulated provider callback.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_flow.connections.list --data @payload.json --json
topolo actions plan app_topolo_flow.connections.list --resource-type workspace --resource-id "$FLOW_WORKSPACE_ID" --data @payload.json --json
topolo actions call app_topolo_flow.connections.list --resource-type workspace --resource-id "$FLOW_WORKSPACE_ID" --data @payload.json --detail --json

MCP tool and arguments:

{
  "tool": "topolo_read_action",
  "arguments": {
    "actionId": "app_topolo_flow.connections.list",
    "input": {},
    "resourceType": "workspace",
    "resourceId": "<id returned by granted resource discovery>"
  }
}

Captured local response · HTTP 200:

{
  "connections": [
    {
      "id": "flw_4f05c69e0f3f44658ef9",
      "provider": "fixture",
      "displayName": "fixture",
      "username": null,
      "status": "active",
      "scope": "fixture:read",
      "kind": "oauth",
      "tokenExpiresAt": null,
      "createdAt": "2026-10-05T00:00:00Z"
    }
  ]
}

HTTP 200. Compare connection ids, provider and status; use only an authorized exact id for disconnect.

Refused request · HTTP 502

Actual exported Worker response with both local SQLite D1 databases and all committed migrations; synthetic Auth/grants and simulated Nexus/archive transport. No live credentials, provider calls, delivery, deployment or durable Workflow execution proof. Scenario: Nexus unavailable.

Input · payload.json:

{}

CLI:

topolo actions validate app_topolo_flow.connections.list --data @payload.json --json
topolo actions plan app_topolo_flow.connections.list --resource-type workspace --resource-id "$FLOW_WORKSPACE_ID" --data @payload.json --json

Captured local response · HTTP 502:

{
  "error": "synthetic_nexus_unavailable"
}

HTTP 502. The handler refused this request. Resolve the exact cause before retrying; invalid input can be refused by CLI validation before reaching the handler.

Verify the result

  • Compare connection ids, provider and status; use only an authorized exact id for disconnect.

Errors and recovery

  • synthetic_nexus_unavailable (HTTP 502): Retry a read after Nexus availability returns; do not create duplicate connections to recover discovery.
  • Authentication token required (HTTP 401): Authenticate normally in the approved environment and organization, verify identity, then rediscover the action and its granted resource before retrying.
  • organization_required (HTTP 403): Authenticate into the specifically approved organization. Do not guess a different organization or bypass the refusal.
  • action_permission_required (HTTP 403): The credential lacks the exact published application permission. Stop and obtain authorized access; changing target ids cannot grant it.
  • workspace_required (HTTP 400): Discover an explicitly granted Flow workspace and bind its exact resource id.

Preserve the exact status, response, request id and resource context. Runtime input validation, authentication and platform resource resolution can refuse a request before the handler. Dynamic dependency messages are not stable provider error codes.

Recovery boundary

Retry a read after Nexus availability returns; do not create duplicate connections to recover discovery.

  • Connect a provider: Store a supplied provider token in Nexus and return Flow connection metadata.
  • Disconnect a provider: Remove the exact organization-scoped Nexus connection available to Flow.
  • Begin provider authorization: Get a configured provider consent URL; complete browser consent separately before discovering connection metadata.

Evidence

Captured from the actual exported Flow Worker with both local SQLite D1 stores and all committed migrations, synthetic Auth identity/grants and simulated Nexus, archive and Workflow-acceptance transports. Fixture credentials and identifiers authorize no live operation. No live provider invocation, credential storage, notification delivery, metering acceptance, durable Workflow execution, deployment, backup erasure or production completion is established by these captures. Original scenario labels and response digests are retained in the source fixtures.