Home / Security & data protection

Security & data protection

Three sentences, no adjectives: your invoice, client and deal data is encrypted in your browser before it leaves the device; production data is stored in the EU (Frankfurt); with the vault enabled we cannot read your financial data, and we say plainly below what we can read and what we cannot.

18 October 2026v1.0GDE Systems OÜ

Executive summary

Data flow: what leaves your browser, and to whom

Every arrow below is a real network destination. If a third party is not in this diagram, it does not receive your data.

Your browser What reaches it: Plaintext while you work; encrypted payload before sync
What never reaches it: —
Purpose: Key derivation (PBKDF2) and AES-256-GCM encryption happen here
Cloudflare (edge, WAF, Turnstile) What reaches it: IP address, request headers, bot-challenge signals for the contact form
What never reaches it: Decrypted invoice contents — the vault payload is opaque at the edge
Purpose: Delivery, DDoS protection, abuse prevention
Supabase (PostgreSQL, Frankfurt) What reaches it: Encrypted workspace blob, account e-mail, service metadata (timestamps, ids)
What never reaches it: Your encryption key, your recovery phrase
Purpose: Storage, authentication, row-level access rules
Resend What reaches it: E-mail address and the text of account e-mails (sign-up, password reset, invitations)
What never reaches it: Invoice, client or deal data
Purpose: Transactional e-mail delivery
Google (Gemini API) What reaches it: Only the company name or registry code you type into the optional company lookup
What never reaches it: Invoice, client, deal or contact data
Purpose: Optional AI company lookup; can be avoided entirely by searching the register directly
Your own OneDrive / Google Drive (optional) What reaches it: Documents you choose to store there
What never reaches it: Anything you did not explicitly upload
Purpose: Keeping documents in storage you already control

Encryption: what is encrypted, what is not

DataStateDetail
Invoices, clients, deals, time entries, tagsEncrypted in the browserAES-256-GCM with a key derived from your password (PBKDF2, 600,000 iterations). We store ciphertext.
Documents in the vaultEncrypted in the browserSame envelope; the key is never sent to the server.
TransportEncrypted in transitTLS 1.2+ for every request. HSTS: max-age 1 year, includeSubDomains. CSP is enforced with an allowlist; hash-based script-src is the next step.
Account e-mail, workspace name, billing dataNot client-side encryptedRequired for authentication and support. Accessible to GDE Systems OÜ staff with least-privilege roles.
Service metadata (ids, timestamps, sizes)Not client-side encryptedNeeded for sync, conflict resolution and audit log. Never contains invoice amounts or counterparty names.
Your password and recovery phraseNever transmitted as plaintext to usOnly a derived value is used; we cannot recover the key if both are lost.

Access control

Infrastructure and regions

ComponentProviderRegionNotes
Database, authentication, edge functionsSupabaseEU — Frankfurt (eu-central-1)Primary production store
CDN, WAF, bot protection, static deliveryCloudflareGlobal edge with EU data localisation optionsProcesses request metadata, not decrypted vault payloads
Transactional e-mailResendEU/US processing under SCCsAccount and contact-form e-mails only
Optional AI company lookupGoogle (Gemini API)US processing under the EU-US Data Privacy FrameworkCompany name or registry code only; never invoice or contact data

Backups and recovery

What we promise
  • Weekly export reminder with a one-click full export (invoices, clients, deals, time entries) — your copy, not a support ticket.
  • Documented restore procedure: importing your own export rebuilds the workspace without contacting us.
  • Zero-knowledge vault is designed so that a database copy alone is useless without your key.
What we do not promise
  • We do not run a managed backup-and-restore service during the beta, and we do not promise a recovery time objective (RTO). Exporting your data stays your responsibility — we automate the reminder, not the obligation.
  • If you lose both your password and your 12-word recovery phrase, the encrypted data cannot be recovered by anyone, including us. That is the design, not an incident.

Recovery Kit

  1. Your 12-word recovery phrase, written down and stored offline (not in the same password manager as the password).
  2. A printed recovery card template with the fields to record: workspace name, e-mail, phrase, date, storage location.
  3. A documented handover procedure for accountants: the phrase goes into the client's own safe or sealed envelope — never into a shared chat or e-mail.
  4. Rotation rule: if a recovery card was ever photographed, shared or stored in cloud notes, treat it as compromised and re-encrypt the workspace.

Metrics: how our numbers are produced

Every figure published on the website is produced by the method below, on a monthly refresh, and is not published at all when the sample is smaller than 30 operations.

Published metricMethodPrivacy safeguard
Median time to create an invoiceClient-side timestamps of the invoice form lifecycle over the last 30 days; median, not averageOnly operation duration and document type are recorded. Amounts, counterparties and line items are never sent to telemetry.
Registry fields autofilledCount of mapped fields in the registry lookup, verified per release against Äriregister and EMTA responsesNo user data involved
Ad and analytics trackersStatic inventory of third-party scripts in the shipped bundle (checked on every build by the secret/Domain guard)Build-time check, not a promise
Support first-response targetMedian first response time on business days, measured in the support mailboxReported as a target, never as a contractual SLA during the beta

Coordinated disclosure

Security log

Every security-relevant release and every confirmed incident, newest first. No incident has affected customer data to date.

2026-10-13releaseContact form protected by Cloudflare Turnstile plus server-side rate limits; honeypot field added.
2026-10-12releaseZero-knowledge vault documented line by line in Terms and Privacy, including the exact key-derivation parameters.
2026-10-09releaseStricter tenant separation between company workspaces, protected public payment pages, no secret keys in the browser, own protected delivery for account e-mails.
2026-10-14releaseSecurity, subprocessor and DPA pages published with versioning and change history.

Related documents

Start free during the beta security@gde.ee

This page is a product and compliance document, not legal advice. Contracts, transfer mechanisms and retention periods are reviewed by Estonian counsel before they become binding.

gde.ee · Security & data protection — gde.ee · https://gde.ee/en/security/