legal / security
Security.
What protects the data, how the service is run, and what is not in place. The last of those is section seven, and it is the reason to read the rest. Last updated 2026-09-14. Questions go to security@kehai.io.
01
How to read this page
Two kinds of statement appear below and they are kept apart on purpose. Some describe how the software is built, which anybody can hold the operator to by looking at what the product does. Others describe how it is run, which is an assertion by one person.
There is also a section for what is not in place. A security page without one is a sales document. Kehai is run by a single operator and says so, because a buyer needs to weigh that rather than discover it.
02
The design decisions that matter most
The strongest security property of this product is how little it holds. That is not a control layered on afterwards; it is what the measurement was built to do.
A breach of the analytics store exposes pseudonymous event rows, including their visitor and visit codes. For new measurements, those codes are scoped to one site and one UTC day. Older rows can retain visit links across midnight UTC. Page paths, query values, times, and customer-supplied properties can also provide links between events: a customer who puts an identifier in a URL has put it in the data. Salt rotation does not erase those records.
03
Access to an account
A shared report link works for anyone who has the address. That is what lets you send a report to somebody without an account, and it is said plainly rather than hidden behind a word. Links can be revoked. The panel shows recorded openings, but a failed counter update can miss an opening.
04
Where it runs
Cloudflare processes public requests. Email providers also receive account messages and enabled aggregate reports. The sub-processor list describes those separate paths.
05
Backups and recovery
Product backups coordinate a recovery point for both databases, with a daily schedule and a seven-day pruning window. Separate machine backups also run. The OVHcloud bucket is in Warsaw and its lifecycle makes backup objects eligible for expiration after eight days. Provider deletion is asynchronous, so eligibility is not proof that every copy has already gone.
The recorded exercises verify those archives and database recovery paths. Complete-machine recovery and validation of every historical archive remain separate operational checks. Older archives were not rewritten by the repair.
06
Deleting things
The erasure check exists because a store number means different things in different databases, and an erasure aimed with one database's answer at another's data is the mistake that cannot be taken back.
07
What is not in place
Stated because a buyer's risk assessment needs it, and because a page that omits this is not worth reading.
A single operator
Kehai is built and run by one person. There is no team to separate duties between, no on-call rotation, and no second pair of eyes on a production change. Support hours and response targets are what the Terms say and no more.
No enforced second factor for administrators
Two-factor authentication is available to every account. It is not a requirement for accounts with administrative access.
No external audit or certification
There is no SOC 2 report, no ISO 27001 certificate, and no third-party penetration test. Nothing here has been verified by anyone but the operator.
No automated dependency scanning
Dependencies are reviewed and updated deliberately. No scanner watches them and opens a ticket when an advisory lands.
08
Reporting something
Write to security@kehai.io with enough detail to reproduce it. We aim to reply within one business day. This is a target for the first human reply, not a guaranteed response or resolution deadline. Business hours are Monday to Friday, 9:00 to 17:00 Europe/Warsaw (CET/CEST), excluding Polish public holidays.
No bounty is offered and none is implied. Nobody will be pursued for a report made in good faith that stops at demonstrating the problem and does not reach other people's data.