This Privacy Policy explains what personal data Cronheart collects, why we collect it, how long we keep it, and what rights you have. We aim for plain English over legal jargon wherever the law lets us. If something is unclear, write to support@cronheart.com and we will explain.
1. Who is the data controller
The data controller for personal data processed through Cronheart is Aliaksandr Palazok, an individual operating from the Republic of Poland. For data-protection enquiries, contact support@cronheart.com. The controller's full residential address is held on file with the Polish supervisory authority and is provided on request when needed to exercise data-subject rights.
If you are in the European Economic Area, the United Kingdom, or another jurisdiction with a designated supervisory authority, you have the right to lodge a complaint with that authority. In Poland this is the Urząd Ochrony Danych Osobowych (UODO); in other countries see your local equivalent.
2. What data we collect
We collect three categories of data:
2.1 Account data
- Email address — your login identifier and the channel through which we send security and billing notices, a one-time reminder to verify the address when it is still unconfirmed a day after signup, and a one-time reminder when a monitor you created has not received its first ping.
- Password (hashed) — stored only as an Argon2id hash (or bcrypt as a fallback on PHP installs without libsodium); we never see or log the plaintext.
- Terms accepted — the version of the Terms of Service you accepted and when: on the sign-up form, the moment you created the account; for a signup from a terminal, the moment the code was typed on the confirmation page.
- Last login timestamp and IP address — kept for security and abuse-detection purposes; rotated out of hot storage after 90 days.
- Web server access log — for every request to the site and the API, the IP address, the time, the request line, the referring page and the user agent, kept for security and debugging and deleted after about two weeks by the server's log rotation. Monitor identifiers and link tokens in the request line and the referring page are masked before the line is written.
- Theme preference (light / dark) — stored in a non-tracking cookie.
2.1.1 Signup from a terminal
An account can be requested from a terminal or by a coding
agent with POST /api/v1/signup. We then keep a
signup record and send the address at most one email:
- The signup record holds whether the address already had an account, the email address (only when it had none), hashes of the three one-time codes, the name and version the client that asked gives itself in its user agent, the times of the request, its expiry, the last poll, the confirmation and the claim, the number of wrong codes typed, the Terms version accepted, and a link to the account the request created. It holds no IP address; the request itself is in the access log above.
- The email goes to the address given. When no account uses it, the email carries one link to a page where the code shown in the terminal must be typed; when an account exists, it says that nothing changed and carries no link that acts; a closed or banned account gets no email. It is sent through Resend (see section 4), also to people who have not signed up.
- An account created this way has its address verified by that confirmation and no password until one is set with "Forgot password".
2.2 Monitor & ping data
- Monitor configuration — name, schedule expression, grace period, alert channels you wired up.
- Ping events — time of receipt, ping kind (start / success / fail), source IP, user-agent, and the optional message body of failure pings (kept so you can correlate alerts with failure context).
- Alert delivery records — when an alert was sent, which channel, and whether it succeeded.
2.3 Billing data
- Stripe customer and subscription identifiers — used to reconcile our billing state with Stripe's.
- Invoice metadata — date, amount, currency, last four digits of the card. We do not store full card numbers, CVV, or bank details. Payment data is processed by Stripe under their privacy notice (stripe.com/privacy).
- Tax-relevant location data — country and (for EU customers) VAT number, used so Stripe can calculate the correct tax rate at checkout.
3. Why we collect it (legal bases)
Under GDPR Art. 6, we process personal data on the following bases:
- Performance of a contract (Art. 6(1)(b)) — to deliver the service you signed up for: account management, monitor execution, alert delivery, service messages about your monitors, billing.
- Legitimate interest (Art. 6(1)(f)) — for security telemetry (IP-based abuse detection, login throttling), service-availability monitoring, and debugging production incidents. We balance these against your privacy interests and minimise retention accordingly. The same basis covers a signup from a terminal before the account exists: the signup record and the one email to the address, which let a person open an account from the command line while only the owner of the inbox can complete it.
- Legal obligation (Art. 6(1)(c)) — for billing records and tax-relevant data we are required to retain by accounting and tax law.
- Consent (Art. 6(1)(a)) — only where we ask explicitly (e.g. for optional product-update emails; we do not currently send these).
4. Subprocessors
We use the following third-party services to operate Cronheart. Except Porkbun, which forwards our support mail under its own terms (see section 8), each acts as a data processor under our instructions and is covered by a data-processing agreement (DPA) where required:
When you wire up a Slack, Telegram, Discord, Microsoft Teams (Power Platform), Google Chat, PagerDuty, or generic-webhook alert channel, alert payloads are also sent to that destination at your direction. Those services are not our subprocessors — they are separate controllers, governed by their own privacy notices.
5. How long we keep data
- Account data — for as long as your account exists. Deleted within 30 days after account closure, except where law requires longer retention.
- Ping events — last 90 days of detailed events; older history aggregated into summary statistics.
- Alert delivery records — 12 months, then deleted.
- Audit logs (login, admin actions) — 24 months, then deleted.
- Signup records — a request expires 30 minutes after it is made; the email address and the code hashes are erased from the record within a day after that, a confirmed one included, and the rest of the record is deleted after 12 weeks. Copies kept elsewhere follow their own retention: an email waiting in our send queue leaves it when it is sent, an email whose sending failed stays in our failed-send queue until we clear it, Resend keeps its delivery log under its own policy, and the database backups follow the rule below.
- Unsubscribed alert addresses — if a recipient unsubscribes from an account's alerts, we keep a one-way hash of that address with the account so the account cannot email it again; it is deleted with the account.
- Billing records — retained for the period required by tax law in the jurisdiction of the Provider (typically 5–10 years for invoices in the EU).
Copies of this data in our encrypted database backups are removed within 7 days after the data itself is deleted.
6. Your rights
If you are in the EU, EEA, UK, or another jurisdiction with equivalent rights, you have the right to:
- Access the personal data we hold about you (GDPR Art. 15).
- Rectify inaccurate data — monitor configuration and notification channels are editable directly in your account. You can change your password yourself via the Forgot your password? flow on the sign-in page. Your account email is your login identifier and is not editable: if you need a different email, close the account and register a fresh one with the new address (Art. 16).
- Erase your data ("right to be forgotten") — by closing your account or by request (Art. 17), subject to legal-retention exceptions.
- Restrict processing in specific circumstances (Art. 18).
- Port your data to another service in a machine-readable format (Art. 20). Monitor configurations and event history can be exported as JSON on request.
- Object to processing based on legitimate interest (Art. 21).
- Withdraw consent at any time, where processing is based on consent (Art. 7(3)).
Send requests to support@cronheart.com. We will respond within 30 days. We may ask you to verify your identity (typically by replying from the email address on file) before disclosing data.
7. Cookies & similar technologies
Cronheart uses cookies sparingly and only as first-party cookies. We use no third-party advertising, analytics, or tracking cookies. The cookies set by cronheart.com are:
- Session cookie (
PHPSESSID) — keeps you signed in and carries the anti-forgery (CSRF) token that protects form submissions; expires when you log out or your browser session ends. There is no separate CSRF cookie — the token lives inside this session cookie. - UI theme cookie (
ui_theme) — stores your light / dark / auto preference; one year. - Remember-me cookie (
REMEMBERME, optional) — set only if you tick "Keep me signed in" at login; 30 days. Logging out or changing your password invalidates it.
None of these cookies are used for advertising, profiling, or cross-site tracking. We do not show a cookie banner: the session cookie is strictly necessary for the service you requested, and the theme and remember-me cookies are functional — the remember-me cookie is set only if you tick "Keep me signed in", and you can clear either cookie from your browser at any time. Full details are in our Cookie Policy.
8. International transfers
Most processing happens within the EU. Where a subprocessor other than Porkbun processes data outside the EEA (notably Resend, in the United States), the transfer is governed by the European Commission's Standard Contractual Clauses (SCCs) under the DPA we sign with that subprocessor. Mail you send to support@cronheart.com, including replies to our emails, passes through Porkbun's email forwarding in the United States; we have no DPA or SCCs with Porkbun for this forwarding.
9. Children
Cronheart is intended for developers and operations engineers. It is not directed at children. We do not knowingly collect data from anyone under 16. If you believe a minor has created an account, write to us and we will delete it.
10. Security
We protect personal data with industry-standard measures: transport-layer encryption (TLS 1.2+), at-rest encryption of database backups, password hashing with Argon2id (bcrypt as a fallback on legacy systems), isolated production credentials, and rate-limiting against brute force. Despite these measures, no online service can guarantee absolute security; if a breach occurs we will notify affected users and the relevant supervisory authority in line with GDPR Art. 33–34.
11. Changes to this Policy
We may update this Privacy Policy when we add features, change subprocessors, or respond to regulatory changes. Material changes will be announced by email to the address on your account at least 30 days before they take effect. The "Last updated" date at the top of this page reflects the most recent revision.
12. Contact
For privacy questions, data-subject requests, or formal notices, contact support@cronheart.com.
See also: Terms of Service.