dashboards

List dashboards.

Returns a page of dashboards the caller may read, most-recently-updated first. The data array is always present (never null). Supports an optional free-text q filter (case-insensitive substring over title, description, and the recorded meta.brief / meta.audience / meta.keyQuestions / meta.tags, evaluated server-side in Postgres) and keyset pagination via limit + cursor. When more rows exist beyond this page, meta.nextCursor carries the token for the next page (absent on the last page); pass it back as cursor to continue.

Supports conditional GET (DVT-3724): a weak, content-derived ETag and Cache-Control: private, no-cache (forces revalidation, never a shared cache) on every 200 — the tag folds in meta.roleResolveDegraded and meta.nextCursor when present, so a page with more rows beyond it never shares a tag with an identical final page. A matching If-None-Match gets a 304 instead, with no body — the two headers are repeated on the 304 so a caller polling only that response still learns the current tag and policy.

get/v1/dashboards

Request

  • Base URL: http://localhost:8080
  • URL: http://localhost:8080/v1/dashboards
  • Auth: one of:
    • API key in cookie dvt_session
    • HTTP bearer

Query parameters

qstring

Optional case-insensitive substring filter over title, description, and the recorded meta.brief / meta.audience / meta.keyQuestions / meta.tags. Empty or omitted matches every readable dashboard.

limitinteger

Page size. Default 50. An integer outside [1, 100] (or a non-integer) is rejected with 400.

cursorstring

Opaque keyset cursor from a prior response's meta.nextCursor. Omit to start from the first page. A malformed cursor is rejected with 400.

viewed'true' | '1'

DVT-5306. true (or 1) returns only dashboards the CALLER has viewed (human views), ordered by the caller's most recent view, newest first, with lastViewedAt set on every row. All read-visibility rules still apply. Keyset pagination is not supported in this mode: meta.nextCursor is never returned and combining viewed with cursor is rejected with 400. Any other non-empty value is rejected with 400.

Headers

If-None-Matchstring

Conditional-GET revalidation tag (DVT-3724). Compared WEAKLY against the current representation's ETag — a W/ prefix on either side is ignored (RFC 9110 §13.1.2). A comma-separated list of tags is accepted; any member matching the current tag yields 304. The wildcard * matches any current representation and always yields 304. A non-matching value gets a normal 200 with a fresh ETag.

Response

A collection of dashboards.

Changes

No recorded changes to this operation across all 1 revision of this API.