Backend-locked row-level isolation
Per-org isolation is enforced by a service-role backend that is the real tenant boundary, with a static check:tenancy guard on every data path — not client-side checks.
Multi-tenant industrial CMMS with a service-role backend as the real boundary: row-level isolation is backend-locked, configurable RBAC governs every action including reads, every write is audited, and private media is served through short-lived signed URLs. No SSO/SAML or third-party tracking.
Per-org isolation is enforced by a service-role backend that is the real tenant boundary, with a static check:tenancy guard on every data path — not client-side checks.
A role × feature × action permission matrix, enforced backend-side on every action including read; members are scoped to the factories and departments they belong to.
Every request is validated with Zod, and mass-assignment stripping prevents clients from setting fields they should not.
Each write is recorded in an audit log, preserving the chain of who changed what and when.
Photos and documents live in private storage buckets and are served through short-lived signed URLs.
Super-admin tenant management includes read-only impersonation for support, with no third-party tracking anywhere.
The security page is intentionally explicit because IT, plant leadership, and compliance teams need concrete answers before a pilot starts.
In the service-role backend. RLS is backend-locked and a static check:tenancy guard enforces tenant scoping, so isolation does not depend on the UI.
Zod validates every request, mass-assignment stripping blocks unexpected fields, and an audit log records every write.
Private buckets serve media via short-lived signed URLs, and support uses read-only impersonation. The site ships with strict CSP, referrer policy, and no third-party tracking.
Tell us about your plant, assets, standards, and goals. We will reply with a practical next step — or start a self-serve trial now.