Skip to content
enclessa

Security and data protection

What protects your data, and what does not exist yet

Enclessa protects data in four layers: MLS end-to-end encryption per RFC 9420 for direct messages, so the server holds no key that opens them; tenant isolation asserted at a single choke point and proven by a generated test suite that drives every API operation across organisation boundaries; European hosting under a German seller; and operational controls including audit logging, per-organisation rate limits, retention rules and full data export. Enclessa holds no compliance certifications and has not undergone an external security audit — the software is open source under AGPL-3.0 so that the architecture can be reviewed instead.

At a glance

Encryption protocol
MLS, RFC 9420, via OpenMLS
Key scope
One key per device; the server holds none
Hosting
European Union, single region
Tenant isolation
203 API operations probed across the boundary, all refused
Certifications
None held
External audit
Not yet performed

Encryption

Direct messages and group direct messages are end-to-end encrypted with MLS, the IETF standard published as RFC 9420, implemented with OpenMLS and compiled once in Rust so every client runs identical cryptographic code. Each device is a separate member of the group, so adding one is visible and removing one re-keys the conversation.

  • One key per device, never one per account
  • Forward secrecy and post-compromise security from the protocol, not from policy
  • The server implements the delivery service and performs no MLS cryptography
  • Device cross-signing and safety numbers for out-of-band verification
  • Encrypted key backup so a lost device is not lost history
  • Everything in transit over TLS; managed content encrypted at rest

Tenant isolation

Several organisations share one installation and no row crosses between them. The organisation is asserted at one choke point rather than remembered at each call site, and a request for another organisation’s object is answered with a not-found rather than a forbidden, because a forbidden confirms that the object exists.

  • A probe suite generated from the OpenAPI document drives every operation across the boundary
  • 203 operations driven, 203 refused — and the suite fails the build if that regresses
  • Files and audit records carry the organisation they belong to
  • Every metric and log line is labelled with the organisation id, never its name

Access control

Permissions are a bitmask evaluated in the data layer, so a capability that is not granted is not merely hidden in the interface. An organisation names its own roles over that bitmask, and a role can never carry a permission its author does not hold, which closes the usual privilege-escalation path.

  • Exactly one owner per organisation, transferable, enforced by a database constraint
  • Administrators cannot grant themselves billing authority; only the owner holds it
  • Permission overwrites per category, channel and board
  • Field-level permission resolution in the People module across seven roles
  • Bot accounts and personal access tokens scoped to named operations

Operating the service

The controls that matter after launch rather than at signature. Rate limits are applied per organisation and scaled by seat count, with each member capped at a share of the whole, so one runaway integration cannot exhaust the budget for everybody else.

  • Per-organisation rate limits, with per-member caps
  • Storage accounting and per-organisation usage records
  • Retention configurable per organisation; the default keeps data
  • Full organisation data export
  • Audit log of administrative action, scoped to the organisation
  • Uploads scanned for malware before they can be opened
  • Link previews fetched behind SSRF protection, never from your browser

Who at Enclessa can see your data

The platform control plane — the part our operators use — is a separate identity with its own sessions, its own audit log and a deliberately blind interface: it can list organisations, suspend one, schedule a deletion and run a purge, and it cannot read content. That is enforced by a build check, not by a policy document: the control-plane package is not permitted to import anything that can read your content, and continuous integration fails if that ever changes.

  • Operator accounts are separate identities with mandatory multi-factor authentication
  • The control plane sees metadata: organisations, lifecycle, counts
  • A build check forbids the control plane from importing content-reading code
  • There is no impersonation feature and no silent support access
  • Operator action is written to a separate platform audit log

Supply chain

Every runtime dependency is open source under an OSI-approved licence, and that is enforced by a licence gate in continuous integration that fails the build when a dependency relicenses. Several otherwise obvious components are absent from the stack for exactly this reason.

  • Zero non-OSI runtime dependencies, checked on every build
  • Dependencies updated weekly rather than quarterly
  • PostgreSQL, NATS and LiveKit underneath — components you can audit yourself

What Enclessa does not have

Every item below is something a buyer will eventually find out. Finding it here is cheaper for both of us than finding it in week six of a procurement.

No certifications

Enclessa holds no ISO 27001, SOC 2, HIPAA or comparable certification. Anyone requiring one as a procurement gate should treat that as decisive today.

No external security audit yet

The cryptography uses an audited library, OpenMLS, but Enclessa’s own implementation has not been through a third-party audit. That is planned work and is not finished work.

No regional data residency

The hosted service runs in one European Union region. There is no choice of country within it. Where that is not sufficient, a self-hosted licence on the Enterprise plan is the answer.

No single sign-on yet

Sign-in is by email and password. Integration with an external identity provider, and SCIM provisioning, are planned enterprise work and are not available.

Managed channels are readable by the server

That is deliberate — it is what makes search, retention and compliance export possible — but it means channel content is not protected the way a direct message is. Choose the room to match the sensitivity.

Reporting a vulnerability

  • Report privately to the security contact rather than in a public issue. You will get an acknowledgement and a timeline.
  • Do not test against another organisation’s workspace. Create your own and test that.
  • Enterprise customers receive security advisories ahead of public disclosure.
Questions

Security questions we are asked

Encrypted collaboration, hosted in Europe.

Create a workspace in a couple of minutes. It is yours at your-team.enclessa.app, hosted in the European Union, with encrypted direct messages from the first one you send.

No card required to create a workspace.

PostgreSQLLiveKitNATS.ioPrometheusGitHubDocker