2kw.ai
Sign inBook a 15-min demo
Legal · Security

Security overview

How customer data is handled on 2kw.ai, stated as the system is built. Each statement on this page describes something that exists in the running platform or in a provider's published terms; nothing here is planned.

Last updated 2026-09-02 · Version 2026-09-02

Hosting and data residency

The application, the sign-in service and the document conversion services run on Hetzner Online GmbH infrastructure in Falkenstein and Nuremberg, Germany. Documents uploaded for extraction, conversion or transcription are held in memory while they are processed and are not stored. Documents uploaded through the Files API or into a knowledge base are stored in Hetzner Object Storage in Germany: agent input files expire 24 hours after their last use and are removed from storage after a 7-day grace period; knowledge-base documents stay until they are deleted. Hetzner operates an information security management system certified to ISO/IEC 27001:2022 whose certified scope covers all its hosting services and data centres. The deployment is defined as code in a version-controlled repository and applied to the cluster with GitOps tooling.

The platform database is a managed PostgreSQL service on Tiger Cloud (Timescale, Inc.), running in the Amazon Web Services region eu-central-1 in Frankfurt, Germany, which we selected. Timescale takes one full backup a week and incremental backups every day, plus continuous WAL archiving, in the same region, and supports point-in-time recovery to any point in the last 14 days. No cross-region copy of the backups is kept. Data stays in that region; Timescale as a US company is bound by its data processing addendum with the EU standard contractual clauses.

The platform's built-in models run on one Azure OpenAI deployment of type Data Zone Standard with the resource in the Sweden Central region. For Data Zone deployments in an EU resource, Microsoft processes prompts and completions in EU member states only and keeps data at rest in the resource's geography. Requests a customer routes to a provider key of their own go to that provider under the customer's own contract.

Cloudflare sits in front of https://2kw.ai, https://app.2kw.ai and https://docs.2kw.ai for TLS termination, content delivery and DDoS protection and handles requests in transit.

Encryption

  • In transit: every public endpoint is served over TLS.
  • Provider credentials at rest: API keys and service-account credentials a customer stores for bring-your-own-key routing are encrypted with PostgreSQL pgcrypto symmetric encryption before they are written to the database and decrypted only for the request that uses them.
  • Platform API keys are verified by the sign-in service against a stored hash. A key can be disabled, given an expiry date and rate-limited.

Tenant isolation

Every record belongs to exactly one organisation. The request filter derives the organisation from the verified token or API key, application code scopes every tenant query by that organisation, and entity lifecycle checks reject a write whose organisation does not match the request context. As a second, database-level barrier, PostgreSQL row-level security policies are defined on the tenant tables and keyed to an organisation setting the transaction manager sets for each transaction. The model providers have no access to customer records (general terms, section 7).

Access control

  • People sign in through our own sign-in service at https://auth.2kw.ai; the platform verifies the issued token on every request.
  • Organisation roles Viewer, Member, Admin and Owner are checked on every API endpoint with declarative authorisation rules.
  • API keys are organisation-scoped and verified by the sign-in service; they can be disabled, expire and are rate-limited.

Customer content and model providers

  • Uploaded documents are converted to text and images by services we run inside the cluster. The vision step of the conversion pipeline calls Azure OpenAI.
  • Inputs and results are not used to train, retrain or improve AI foundation models. Microsoft documents the same for Azure OpenAI: prompts and completions are not used to train, retrain or improve the base models, and are not available to OpenAI.
  • Data stored beyond a request is stored to deliver and improve the service for the customer that owns it, as set out in section 7 of the general terms.

Traces, metrics and logs

Every model call produces a trace with model name, token counts, cost and latency, stored in the platform database on the same infrastructure as the rest of the customer's data. Prompt and completion text is dropped from the trace before it reaches the database unless an organisation administrator has switched on prompt or completion capture for that organisation; both switches are off by default.

Infrastructure metrics, Kubernetes events and container logs from the production cluster are shipped to Grafana Cloud, hosted by Grafana Labs in its Germany region, so monitoring data stays in the EU as section 7 of the general terms states. Container logs can contain personal data such as e-mail addresses, IP addresses or account identifiers; they do not contain prompts, completions or uploaded documents. Details and safeguards are on the sub-processor list.

Reporting a vulnerability

Report security issues to the contacts published in /.well-known/security.txt (RFC 9116): by e-mail to [email protected] or through the contact form. Please give us reasonable time to fix an issue before publishing it, and do not access, modify or delete data that is not yours while testing.

What we do not claim

Certifications
Manfred Kunze Development GmbH holds no ISO 27001 or SOC 2 certification of its own. The ISO/IEC 27001:2022 certification cited above is Hetzner's and covers the data centres and hosting services, not our application.
Availability
No specific availability figure is guaranteed unless agreed in writing (general terms, section 4).
Penetration tests
No third-party penetration test report is published at this time.
Backups beyond the database
Backups of the platform database are Timescale's managed backups described above. Documents retained by the Files API and by knowledge bases are held in Hetzner Object Storage as described under hosting. Application and infrastructure configuration is recoverable from version control.
Related
Privacy noticeWhat the platform processes, where, on which legal basis, and for how long.Sub-processorsEvery third party that processes customer data on our behalf, with location and safeguards.Data processing agreementArticle 28 GDPR agreement based on the Commission's standard contractual clauses, with annexes.ProcurementCompany facts and every document a purchasing or compliance review asks for, on one page.