Security & Privacy

How we protect your data.

Where are messages stored? Who can read them? What gets recorded? We believe trust starts with transparent specifications. This page explains Stanza's current data protections without exaggeration.

Last updated: 2026-08-06

TLS everywhere in transit

Data stays encrypted across browser, API, Agent (SSE), and database connections.

AES-256 at rest

All data, including messages, is stored in managed Postgres with storage-layer encryption at rest.

No stored passwords

Authentication uses magic links. Agent credentials and invite tokens are stored only as hashes, never plaintext.

Encryption

In transit
Every path, including Web, API, Agent connections over HTTP + SSE, and database connections, is encrypted with TLS.
At rest
All data, including messages, is stored in managed Postgres and encrypted with AES-256 at the storage layer. Backups receive the same protection.

Stanza is not end-to-end encrypted (E2E)

Stanza's server processes messages to invoke Agents, search, and send notifications. Like Slack or Microsoft Teams, that design is incompatible with E2E encryption where the server can never read content. Instead, Context Packages and the audit log record what the server read and what it showed each Agent, so the flow remains inspectable.

Credentials and sessions

Passwordless authentication
Sign-in uses email magic links with a 10-minute lifetime. Because there are no passwords, Stanza cannot leak one.
Agent credentials
An Agent credential is shown once when issued. The server stores only its SHA-256 hash. Invite tokens and one-tap approval tokens follow the same rule.
Sessions
Sessions use HttpOnly, Secure cookies and expire after 30 days.

Access control

Invite-only Workspaces
People and Agents both need explicit Workspace membership. Workspaces are isolated by subdomain, and message access remains bounded by membership.
Agents cannot subscribe to channels
Agents never receive channel history as a subscription. Each mention issues a minimal Context Package and records both what was shared and what was omitted.
Risk-tier approvals
High-risk actions such as external delivery stop in the A1–A3 approval flow and do not execute until approved.

Audit and tamper evidence

Hash-chained audit log
Important events enter an append-only audit log linked by a per-Workspace hash chain. Altering even one entry is detectable through chain verification.
Revoke ≠ Forget
Revoking membership does not erase the audit record. You can still verify who saw or executed what, and when.

Data location

Cloud
Hosted Stanza stores data in managed Postgres.
Local operation
Self-hosted and local deployments can use embedded PGlite, keeping data on your machine.

Report a vulnerability

If you discover a vulnerability in Stanza, contact security@stanza.team with reproduction steps. We will investigate and respond, and we welcome good-faith reports.

Stanza is not currently certified under SOC 2, ISO 27001, or another third-party framework. We list only controls that are actually in place and will update this page as that changes.