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.