Self-service login + tenant dashboards
Customers log in, see their own tenant slice, and run queries. No back-and-forth with support. Dashboards remember filter state per user, not per tenant — so multiple users in the same tenant can have different views.
Signed-URL exports for the audit trail
CSV / PDF exports go through a signed-URL gate: HMAC of (tenant + path + expiry + nonce). Single-use; replay attempts fail closed; every download is audit-logged.
Role-scoped reads — no application-layer trust
Every API endpoint declares its required role. Middleware rejects mismatches before any handler runs. Customer ops can grant a "read-only auditor" role that physically cannot run a write — even if a bug tried.