`GET /api/resources/board` — one server-paginated page of the resources board (kind + connection-state filtered) plus the total + kind/error facets.
const url = 'https://example.com/api/resources/board';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/resources/boardParameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Connection-state tab: connected / error / untested (else all).
Free-text search over the resource name.
Whitelisted sort column: name | kind | created_at | updated_at.
Default name.
asc | desc (default asc — the board is name-sorted A-Z).
Recompute the kind/error facets (default true). The board sends false
for a tab/page change (the facets depend only on the workspace).
Responses
Section titled “Responses”GET /api/resources/board body — one page of resources + total + facets.
object
Workspace-wide facets the board needs that a single page can’t derive: the “all” chip total, the overview error count, and the per-kind counts. They depend only on the workspace (not the active tab/kind/page).
object
Resources whose last probe failed (last_test_ok IS FALSE).
One kind + its workspace-wide count (the kind-filter chips + dropdown).
object
What every HTTP handler returns — a resource row without secret material.
The DB row already redacts secret_vault_path via #[serde(skip)]; this
DTO mirrors the wire shape so external callers see the same fields they
can supply on create.
object
true iff a secret is stored for this resource — useful to the UI
for an “update secret” toggle, without ever leaking the secret itself.
#358: the result of that last probe (Some(true)/Some(false)/None).
#358: when the last test-connection probe ran (None = never tested).
Issue #110: per-resource concurrency cap; None = unlimited.
Examplegenerated
{ "facets": { "error_count": 1, "kinds": [ { "count": 1, "kind": "example" } ], "total": 1 }, "items": [ { "config": "example", "created_at": "2026-04-15T12:00:00Z", "has_secret": true, "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "kind": "example", "last_test_ok": true, "last_tested_at": "2026-04-15T12:00:00Z", "max_concurrent_uses": 1, "name": "example", "updated_at": "2026-04-15T12:00:00Z", "workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" } ], "total": 1}