Trust

Trust and subprocessors

Who touches the data, when, and what changes the moment you run Corsac Sign yourself.

Where the data lives

Postgres and the uploaded, stamped and sealed files are self-hosted in a volume beside the application. Neither is a managed third-party service, and no document content leaves the instance in the ordinary course of signing.

The sealing key is generated on the instance and never leaves it.

Subprocessors

PartyPurposeDataWhen
ResendTransactional email — invitations, reminders, completion and decline noticesRecipient name, email address, document titleOnly when the email backend is set to Resend. Your own SMTP server, or no email at all, are the alternatives.
RFC 3161 timestamp authoritiesTrusted time over the seal and over audit-chain headsA SHA-256 digest only — never document content, never identitiesOn every seal and anchor, unless timestamping is turned off. DigiCert and Sectigo are the defaults; the list is per-instance configuration.
HetznerHosting for the instance Codefox operatesEverything at rest, as the infrastructure providerNot applicable when you host Corsac yourself
GoogleOptional operator sign-in via OAuthName and email address of operators — never of signersOff unless an OAuth client is configured
Codefox AdminOptional central access grants for operatorsOperator identity onlyOff unless an admin origin is configured

Self-hosting inverts this table

The list above describes the instance Codefox operates. Run Corsac Sign on your own infrastructure and the relationship turns over completely: you are the controller, the subprocessors are the ones you choose, and Codefox is not among them.

With no access to your database, your files or your sealing key, Codefox may not be a processor of your data at all. A data processing agreement naming us in that role would be describing a relationship that does not exist — which is worth saying out loud before anyone signs one.