Tenant isolation
Every organization-owned record carries an organization identifier, and access is enforced by row-level security policies in the database rather than by the interface. A user who is not a member of an organization cannot read its records through any path.
Role-based access
Organization Owner, Administrator, Command Staff, Supervisor, Member and Read-Only Auditor each have a defined capability set. Permission checks run server-side; hiding a control in the interface is never the enforcement mechanism.
Authentication
Email and password sign-in with email verification, password recovery and session expiration handling. Sessions are held in secure browser storage and validated on every privileged request.
Append-only audit history
Sign-in security events, role changes, briefing publication and acknowledgment, shift opening and closing, handoff publication, review, acceptance, reassignment and resolution, asset status changes, administrative corrections and exports are all recorded. Normal users cannot modify audit records.
Input validation and safe output
Mutations are validated against shared schemas before they reach the database. Rich text is sanitized, and error messages returned to the browser avoid leaking internal detail.
Protected attachments
Storage paths are organization-scoped, buckets are never publicly readable, and authorization is checked before upload and download. File type and size are validated, and sensitive downloads can be recorded in the audit trail.
AI permission boundaries
Generated drafts use only records the requesting user is already permitted to read, cite their sources, and never publish, assign, acknowledge, close or delete anything. Uploaded documents are treated as untrusted content and instructions inside them are never executed.
Secrets stay on the server
Privileged credentials and AI provider keys are read only in server-side code. No service credential is included in the browser bundle.