Security
isn't a feature.
It's the architecture.
Database-level tenant isolation. Composable role-based access. Row- and column-level policies declared as metadata, not buried in application code. Self-hosted by default, anywhere you want.
One database
per tenant.
No exceptions.
The strongest isolation model available. No shared tables. No query filters to forget. If one tenant's database is compromised, other tenants are completely unaffected.
Each tenant has its own PostgreSQL database. Not a schema, not a row filter — a real database.
Unique DB user per tenant. No shared connection. No master role with cross-tenant reach.
Module schemas (crm, hr, fin, wms) live inside each tenant's own database. Always namespaced.
User identities live in a separate auth service. Tenant data never touches the auth store.
Four layers.
All declarative.
Every access rule is metadata. Versioned, reviewable, auditable. No security logic scattered across controllers and stored procedures.
Composable, additive roles. Sales Rep + Finance Viewer = full CRM + read-only Finance. Roles never revoke each other.
role SalesRep can: read, update.own
role FinanceViewer can: read.fin
user alice
roles: [SalesRep, FinanceViewer] Folders define filter criteria that restrict which records a user can access. Applied at the SQL layer, never the UI.
policy WestRegionOnly on Account
for SalesRep
where region = 'west' Per-role field visibility and editability. Sales sees the contract value but not the margin. Viewers see summary, not internal notes.
field Contract.margin
visible: Finance, Exec
hidden: Sales, Viewer The same role can resolve to different effective permissions in different organizational folders. Department managers vs. exec scope.
scope Folder.engineering
grants: Manager → write
Manager → read.exec Every change.
Every actor.
Every time.
Every data mutation tracked: who, what, when, before, after. Financial modules carry full audit trails.
Refresh tokens, short-lived access tokens, secure rotation. No passwords stored in tenant databases.
Self-host in your region, your jurisdiction, your network. Backups, encryption, and policies under your control.
Your infrastructure.
Your rules.
Hosted at dforge.app. Managed infra, automatic backups, security patches, SSL/TLS in transit, db-level isolation per tenant.
- › managed postgres · per-tenant db
- › automated daily backups
- › patches applied automatically
- › eu & us regions
- › soc 2 · gdpr aligned
Run dForge inside your network. Docker, Kubernetes, or bare metal. Bring your own Postgres. Data never leaves your jurisdiction.
- › docker · k8s · airgapped
- › bring your own postgres
- › your own backup & encryption
- › custom firewall & network policies
- › regulatory data residency
Got compliance
questions?
We're happy to walk through your security and compliance requirements in detail — including DPAs, BAAs, and architecture deep dives.