Internal API (/api/v1), dashboard JWT (Authorization: Bearer ...). Provider users need the sp_admin staff role (or the provider’s own admin account); other staff roles, customers, technicians and building owners get 403. Row-level security then enforces isolation: provider users only ever see their own provider’s entries (any provider_id filter they pass is ignored); operators (admin) see everything and may filter by provider_id.

Endpoint

Query parameters

Typical use: the per-record History view — pass resource_type + resource_id (or resource_ids for a rollup) plus an optional time range.

Response — 200 OK

Returns an array of audit entries (newest first):

Errors

Query-layer failures degrade to an empty array with 200 rather than a 5xx — an empty result is not proof of an empty log.