The cloud service is an authenticated append-only mailbox for encrypted memory revisions. Clients own canonical serialization, encryption, signatures, durable application, merge semantics, and local indexing.
Encryption construction
- RFC 8785 JCS canonicalizes payloads.
- XChaCha20-Poly1305 IETF encrypts revisions.
- Ed25519 signs each envelope with a device key.
- X25519 sealed boxes wrap the workspace key for approved devices.
- HKDF-SHA256 derives the workspace-scoped HMAC key used for opaque references.
Python and TypeScript implementations share checked fixtures for JCS bytes, revision identifiers, associated data, signature input, ciphertext, and signatures.
Observable metadata
The service can observe account, workspace, membership, device, IP, user agent, subscription, timing, ciphertext sizes, transfer volume, revision-graph shape, and the social graph of membership. It cannot decrypt memory without key material held by approved devices or the recovery flow.
Device unlock
Each installed Docmancer device generates keys locally and registers only public keys. After an existing device approves it, the new device fetches its wrapped workspace key and encrypted stream. Unwrapping, verification, envelope decryption, merging, and indexing run inside the installed client. Plaintext is not sent back to the API.
The design has not yet received an independent external cryptographic review, so Docmancer does not make a zero-knowledge assurance claim.
Personal and Team memory do not yet use separate encryption domains, which is one of the reasons Team Sync is not available. Everything described on this page concerns one person's own approved devices.
Local web boundary
docmancer web opens a full interface served by a loopback-only Python process. That local interface can read the same files and indexes as the CLI, installed agent integrations, and MCP because they share one local runtime. It is not the hosted website.
The server binds only to 127.0.0.1, chooses a random port by default, and gives the launched browser a one-time bootstrap token. Mutations require the resulting HttpOnly session cookie, an exact loopback Origin, and a CSRF token. Host validation, request-size limits, and restrictive browser headers reduce exposure to hostile pages and DNS rebinding.
The hosted website cannot call this loopback API and the Cloud API cannot return executable local actions. When paid sync is connected, the local process makes ordinary outbound HTTPS requests to api.docmancer.dev. It sends signed ciphertext and operational metadata, not plaintext memory or filesystem paths.