Permissions enforced in the database
An ERP holds your incidents, your medical records, your salaries and your contracts. Hiding a menu item is not access control — so in Caspian ERP every read and write is checked server-side against the permissions you granted.
Tenant isolation
Every record lives under its organization and carries its organization's ID. A query that reaches outside your organization is rejected by the rules, not filtered by the client.
Permission-based RBAC
Each tool has its own read, create, update and delete permissions. A role is a set of permissions; a member holds one role per organization. Nothing is implied by job title.
Audit log
Membership, role and permission changes are written to an append-only log attributed to the member who made them — entries cannot be forged in another member's name.
Verified invitations
An invitation can only be discovered and accepted by a verified email address, so nobody joins your organization by registering someone else's address.
Least privilege by default
Ownership, billing plan and member quota are platform-owned fields — an administrator cannot promote themselves to owner or change your plan from inside the app.
Hardened transport
HTTPS everywhere, security headers, a content security policy, and per-user rate limits on every server route.
How access is decided
Four questions are answered on the server for every single operation. If any answer is no, the operation fails — whatever the browser thinks.
Are you signed in?
Authentication via Google or email and password, with email verification required for password accounts.
Are you an active member of this organization?
Suspended and offboarded members lose access immediately; suspended organizations become read-only.
Does your role hold this permission?
Checked per tool and per action — read, create, update or delete — against the permission registry.
Does the record belong to your organization?
Enforced on the document path and its organization ID, on reads and on writes alike.
| Tool | Read | Create | Update | Delete |
|---|---|---|---|---|
| Permits to Work | ✓ | ✓ | ✓ | — |
| Observations | ✓ | ✓ | ✓ | — |
| Incidents | ✓ | ✓ | — | — |
| Personnel | ✓ | — | — | — |
| Medical | — | — | — | — |
| Invoices | — | — | — | — |
Roles are built tool by tool. A supervisor who should never see payroll or medical data simply never holds that permission.
Infrastructure and data
Caspian ERP runs on Google Cloud. We build on managed infrastructure rather than operating our own servers.
Encryption
Traffic is served over HTTPS. Data at rest is encrypted by the underlying Google Cloud services.
Backups & availability
Records are stored in a managed, replicated database. The application scales automatically and has no maintenance window you need to plan around.
Your data is yours
Export any list to CSV whenever you like, and request a full export of your organization's records before closing an account.
Access on our side
Support access to a customer organization is limited, purposeful, and only with your agreement — not a standing privilege.
Responsible disclosure
Found something? Email security@caspianerp.com. We will acknowledge, investigate and keep you updated.
Certifications
Our cloud provider holds the major industry certifications. Caspian ERP itself does not yet carry an independent audit — we would rather say so than imply otherwise.