Zona Notify Privacy Policy
This policy explains what personal data Zona Notify (“Zona”) collects, how it is used and shared, where it is stored, how long it is kept, and the choices and rights you have. Zona is operated by Terabase, based in Hong Kong (“Terabase”, “we”, “us”, “our”).
Who is responsible and what this policy covers
Terabase is the controller of the personal data described in this policy, and its “data user” under Hong Kong’s Personal Data (Privacy) Ordinance (Cap. 486). You can contact us at terabasedevteam@gmail.com. Where alerts your sources send contain personal data about other people that you, or an organisation you use Zona for, control, you are the controller of that data and we process it on your behalf, as “Personal data in your content” in the Terms of Service describes.
This policy covers:
- the Zona apps for iPhone, iPad and Android, including their widgets and Live Status;
- the Zona notification service and its API;
- the Zona command-line tool, agent hooks and MCP server (“PC tools”);
- the website at zonanotify.app and Zona’s other public pages;
- messages you send to our support address.
It does not cover services run by others, such as Apple, Google or a sign-in provider you choose, which handle your data under their own privacy policies.
Before you sign in or continue as a guest on a device, and again after we make a material change to this policy or the Terms of Service, the app asks you to confirm that you have read and agree to the Terms of Service and this policy. For this policy, that confirmation is an acknowledgement that you have read it, not consent to processing: this policy sets out the legal basis for each use of your data, and where we rely on consent we ask for it separately.
Summary
- Zona stores what your sources send so that it can show it in your private inbox and notify your devices.
- Alerts are deleted automatically after your plan’s retention period: one day for guest accounts, seven days on Standard and thirty days on Zona Plus. An alert keeps the longest period of any plan you had while it was in your inbox, so a shorter plan, including the end of Zona Plus, never deletes it early. Alerts you pin are the exception: a pinned alert is kept until you unpin it or its pin expiry passes, as explained in “How long we keep data”.
- We do not sell your personal data, show advertising or track you across other companies’ apps or websites, and the app contains no third-party analytics or crash-reporting software: its own crash reports go only to Zona, to fix errors in the app.
- Your data is stored with Supabase in Sydney, Australia, and processed by our providers in the United States and other countries.
- You can delete your account, and the data linked to it, in the app at any time.
Data we collect
Most of the data below comes from you, your sources and your devices. Some comes from Apple, Google, GitHub or Expo when you use their services with Zona.
Account and sign-in
An account identifier and whether the account is a guest account. If you use email, your email address and password; the password is stored by Supabase Auth only in hashed form, and we never see it. If you sign in with Apple, Google or GitHub, the account identifier, email address and profile details that the provider shares with us, such as your name, username and a link to your profile picture, which Supabase Auth stores with that sign-in method and with your account until you delete your account. The sign-in methods linked to your account and when they were added or removed; if you remove a sign-in method, a record of that method (the provider, its account identifier and email address) so that it is not linked again without your action. Your language and time zone, and a display name if you set one. Your sign-in sessions, and a record of account security events such as sign-ins, added or removed sign-in methods, re-authentication, device removal and account deletion.
Sources and source keys
For each source: its name, an optional hostname you enter, the emoji, colour and sound you choose, and when it was created, last used and revoked. For each source key, a one-way hash of the key, its first eight characters after the zona_live_ prefix, which the app shows so that you can tell keys apart, the label you give it, and when the key was created, last used, expires or was revoked. A source key is shown to you in full only once, and Zona does not store the full key.
Alerts and attachments
The content your sources send: the title, body, category, severity, checklist, structured data and up to five images. The source name at the time the alert arrived, when the alert was received, read and pinned, when it expires, any severity or pin expiry you set, and technical fields that stop the same alert from being stored twice. Images are kept in private storage that only your account can reach.
Devices and push notifications
A random installation identifier created by the app; your device’s platform, app version and build number; the push token that Expo, Apple or Google issue for your device; whether delivery to that device is turned on; whether you allowed critical alerts for Zona on that device (on iPhone and iPad, in its notification settings; on Android, for Zona’s Critical alerts channel); and the results of push attempts, such as Expo ticket identifiers, status and error codes. Zona does not collect the name you gave your device, your phone number, contacts, location or advertising identifier.
Settings and productivity features
Your preferences, such as message previews, sounds, whether you receive Dev note push notifications, and appearance; quiet-hours schedules and the time zone they use; saved inbox filters; and checklists inside alerts.
Check-ins, repeated alerts and agent sessions
If you add a check-in to a source, Zona stores its name and label, its schedule (how often, or after which daily run, the source should report, the time zone, the grace time and how many misses in a row count), the level and language of the alerts it writes, whether it is paused, each check-in your source sends (when it arrived and whether it reported success, a start or a failure), each missed check-in and each resulting incident. Zona’s servers compare these records with the schedule every minute, and write an alert to your inbox when a check-in is missed, fails or recovers. If you turn on Ring until seen for a source, Zona stores that choice and, for each alert that rings, how many times it has rung and when it stopped. If your AI agent tools send agent updates, Zona stores for each session: a one-way hash of the session identifier the tool uses, the agent’s name, the project folder name unless you install the hooks with --no-project, its state (waiting on you, running, finished or failed), when it started and was last updated, and, only if you install the hooks with --share-question, the agent’s own short message about what it is waiting for, cut to 200 characters. Zona’s tools remove text that looks like a key, token or password from that message before sending it, and Zona’s server checks it again. An alert that a check-in or an agent update wrote is marked as coming from it, and is marked resolved, with the time and the reason, when the check-in recovers or the agent moves on.
Zona Plus purchases
If you buy Zona Plus, Apple sends us signed records of your transactions and renewals, which we check and store, linked to your account: the product, the original and current transaction identifiers and the order identifier, the environment, the purchase, renewal and expiry dates, the price and currency, the App Store country or region (storefront), any offer or free trial used, your subscription status, whether it will renew and to which product, why a subscription ended or is in billing retry, and the date and reason of any refund or revocation, and the other details in Apple’s signed records, such as the renewal price and currency, any price-increase consent, a grace period, the quantity and whether the purchase is shared through Family Sharing; and whether the record reached us from a purchase, from Restore Purchases or from one of Apple’s notices. When you buy, the app gives Apple your Zona account identifier as an app account token, so that Apple’s notices about renewals, refunds and expiry can be matched to your account. The app also reports how the purchase went, such as whether the plans loaded and whether a purchase, verification or restore succeeded, with product identifiers, counts and error codes, and never a receipt, a transaction identifier or payment details. Apple processes the payment; we never receive your payment card details.
Zona Plus given to your account
We may give Zona Plus to an account without a purchase, for example to the operator’s own account, to a tester or during a promotion. If we do, we keep a record of it, linked to your account: when it starts; when it ends, if it has an end date; when we withdrew it, if we did; and a short note of why it was given. The app receives only whether Zona Plus is included with your account and its end date, if it has one; the note stays with us and is never shown in the app.
Live Status on iPhone and iPad
If you use Live Status, its buttons use a Live Status action key that can only mark alerts read, pin, unpin or delete them, only for the sign-in session on that device, and for at most 12 hours. The key is kept, with the service address, the app’s public key, the key’s expiry and your account identifier, in a file in Zona’s own app container on the device, which is excluded from device backups and which only Zona and its own widget and Live Status extensions can open. Our servers keep only a one-way hash of it, with its expiry, the sign-in session it belongs to, and when and how often it was last used, so that it can be limited and revoked. The key is deleted and revoked when the card ends, when you sign out on the device, or when another account signs in.
Your acceptance of these documents
When you agree to the Terms of Service and this policy in the app, the agreement is first kept on your device, as described in “Data stored on your device”. Zona then records it on our server for the account signed in on that device, guest accounts included; if you agree before you have an account, it is recorded when you sign in or continue as a guest. Each server record contains: your account identifier; a one-way hash of that identifier; the versions of the Terms of Service and this policy that you accepted; the time the record was made on our server, which is the time we rely on; the time your device reported for the agreement, which is not stored if it differs from the server time by more than a day; the app language; and the app version and build number, and the platform (iOS, Android or web). Only the first record for each pair of versions is kept: if the same versions are recorded again for your account, nothing new is stored. Accepting new versions creates a new record.
Security, abuse-prevention and diagnostic data
Records we need to run and protect the service: rate-limit records for each source and account; records of device sessions and removed devices; short-lived records of sign-in and re-authentication steps; operational logs from our server functions, such as request identifiers, outcome, status code and duration; and diagnostic events that the app sends to our own service, such as the event name, an error message, the app version and build, the platform and the installation identifier. These logs are designed not to contain alert content, tokens, passwords or email addresses. We also calculate daily usage totals for the service and for each account, such as the number of alerts received, and summaries of errors, which can include up to 160 characters of an error message, are sent to the operator’s own Zona inbox so that problems can be fixed. Zona’s own code does not record your IP address or your device’s or browser’s user agent. Supabase Auth, which runs in Zona’s database, stores the IP address and user agent of each sign-in session while the session exists, and may keep an audit log of sign-in and account events with the IP address and email address involved, which a daily cleanup deletes after one year. Our hosting providers may also record them in their standard logs, as described below.
If the Zona app hits a software error, it keeps a crash report and sends it to Zona once someone is signed in. A report holds the error’s name, message and technical trace; the screen it happened on, whether it closed the app, and how often it repeated; the phone’s model name, model identifier, maker, operating system and version, and whether it is a real device; the app version and build, any over-the-air update it is running, and the app language; and the installation identifier. Before a report is saved on the phone or sent, the app removes anything that looks like a key, token, password or email address, and the query part of every web address, such as the code in a sign-in link; Zona’s servers check again for Zona keys, tokens, email addresses and web-address queries. Zona never reads the name you gave your phone. A report can still hold a fragment of other text the app was handling when the error happened, such as part of an alert, which is one reason only the operator can read reports and they are kept for 30 days. A report made while no one is signed in waits on the phone and is sent under the account that signs in next; a report made under one account and still waiting when another account signs in is deleted, never sent under the other account. Crash reports are linked to your Zona account and are used only to find and fix crashes and errors in the app.
Support messages
If you email us, we receive your email address, your message and anything you attach, through Google’s Gmail service.
Website
zonanotify.app is served by Cloudflare. The site does not set its own cookies and does not use analytics or advertising scripts. Cloudflare processes your IP address and the details of each request to deliver and protect the site. The API documentation remembers the code-sample tab you prefer in your browser’s local storage; that choice is not sent to us. Older copies of our public pages are also served by GitHub Pages and by our Supabase project, which process similar request details.
PC tools
The PC tools run on your computer. They keep your source key in a file in your home folder (~/.zona/token), or read it from the ZONA_SOURCE_TOKEN environment variable, and send only alerts, check-ins and agent updates to Zona’s notification service: the alerts and check-ins that you or your agents ask them to send and, if you install the agent hooks, an update each time a connected AI agent starts or keeps working, finishes or needs your input. An update names the agent and carries the agent’s session identifier, its state and, unless you install the hooks with --no-project, the project folder it worked in; it carries the agent’s own message about what it is waiting for only if you install the hooks with --share-question. The hooks keep a short log of failed sends in ~/.zona/hooks.log and a note of each session’s last state in ~/.zona/agent-sessions, which stay on your computer. The PC tools do not collect other data from your computer and do not report usage to us.
Data stored on your device
To work quickly and offline, the app keeps some data on your device: your sign-in session, in the device’s secure storage; while you confirm an email address you add, a short-lived record of that step (the email address and a transaction identifier) and, if you chose a password, the password, both in the device’s secure storage (in a web browser, its local storage) for up to ten minutes, deleted when the confirmation finishes or is cancelled, or at your next sign-in attempt if it expired; caches of recent inbox pages, sources, preferences, service settings and Dev notes; your language, appearance and other in-app choices; which Dev notes you have read; the day you last dismissed the overnight check-in summary; whether Zona has already asked you about critical alerts and, on Android, whether you turned them on in Zona; actions waiting to be sent; crash reports waiting to be sent (at most 20, none older than seven days); the installation identifier; your agreement to the Terms of Service and this policy (the versions, when you agreed and the app language), with a note of the accounts it has been recorded for, or, if you decline them while signed in, a note of that account and whether our server has stopped sending alerts to the device; and, when you use them, the content shown on Home Screen widgets and the Live Status card. This data stays on your device and is removed when you delete the app, except what the app keeps in the device’s secure storage, such as the sign-in session: on iPhone and iPad the system can keep it after the app is deleted, so reinstalling Zona on the same device can sign you back in. Signing out before you delete the app removes it. Except for the Live Status file described above, your device’s system may include this data in your device backups. Signing out or deleting your account removes the agreement from the device, so the next person to use the app there is asked to agree.
How we use data and our legal bases
We use personal data only for the purposes below. If you are in the European Economic Area, the United Kingdom or Switzerland, the legal basis for each purpose is shown in brackets.
- To create and secure your account, sign you in and keep each account’s data separate (contract).
- To receive, store, synchronise, show, pin, filter, export and delete alerts, and to send push notifications (contract).
- To watch your check-ins and write an alert when one is missed, fails or recovers, to repeat a push notification you asked Zona to repeat, and to show your agent sessions (contract).
- To provide Zona Plus: to verify, restore, renew, expire, refund or revoke subscriptions, and to give Zona Plus to an account without a purchase and end it (contract; legal obligation for records we must keep).
- To enforce rate and plan limits, and to prevent abuse, fraud and security incidents that could harm users, our providers or Terabase (legitimate interests in running a secure and reliable service).
- To diagnose problems, find and fix crashes and errors in the app, and improve reliability, using logs, diagnostic events, crash reports and daily usage totals (legitimate interests in operating and improving Zona).
- To record your acceptance of the Terms of Service and this policy, and to keep a limited record after your account is deleted (legitimate interests in being able to show what was agreed and to establish, exercise or defend legal claims).
- To answer your support requests and to tell you about your account, security or changes to Zona, including in Dev notes, our announcements about the service (contract; legitimate interests).
- To comply with the law, respond to lawful requests from public authorities, and establish, exercise or defend legal claims (legal obligation; legitimate interests).
- To show push notifications, which your device sends only if you allow notifications in its settings; you can withdraw that permission at any time (consent, given through your device’s permission prompt).
We do not use your data for any other purpose that is incompatible with these, unless we tell you first and, where the law requires, ask for your consent.
Push notifications and lock-screen previews
When Message previews is on, each push notification that Zona sends through Expo’s push service and Apple Push Notification service (on iPhone and iPad) or Firebase Cloud Messaging (on Android) contains the alert’s title and body, the source name, the alert and source identifiers and the severity. Your device may show them on the lock screen, where anyone who can see the device can read them. When you turn Message previews off in Settings, each push notification carries only a generic message with those identifiers and the severity, and the full alert stays in your inbox. You can also control previews in your device’s notification settings.
If you turn on Ring until seen for a source (Zona Plus), the push notification for an alert at the level you chose is sent again every few minutes, up to the number of times you chose and for at most 30 minutes, until you open, pin or delete the alert on any device or it is resolved; each repeat carries the same content as the first push and replaces it on your device, and repeats follow your quiet hours. A push for an alert that a check-in or an agent update wrote also carries the identifier Zona gave that check-in or agent session, so that the next push about it replaces the last one on your device. If you allow critical alerts for Zona on a device, push notifications for alerts marked critical ask that device to play a sound even when it is on silent or in Do Not Disturb, where the device allows it; you can turn critical alerts off in your device’s settings at any time.
Zona also sends Dev notes: short announcements from Terabase about the service, such as new features, planned maintenance or an outage, to every account. A Dev note appears at the top of your inbox and in Settings, never as an alert in your inbox, and arrives as a push notification that contains the note’s title and text and a note identifier, and no alert, source or account data; with Message previews off, it carries only a generic message. Dev notes are not advertising. A Dev note push is not sent while your account’s quiet hours apply or when you have turned push notifications off, and you can turn Dev note push notifications off in Settings under Dev notes. Which Dev notes you have read is kept only on your device.
Do not send passwords, API keys, source keys, sign-in links, payment details or other sensitive information in alerts. As a safety net, the app hides text that looks like a common credential, such as an access token, an API key or a password in a link, before alert text is copied, shared, exported, or shown on a Home Screen widget, the Live Status card or an in-app banner. It recognises common formats only, it does not change the push notifications your device displays, and the inbox shows alerts as they were sent.
What we do not do
- We do not sell or rent personal data, and we do not share it for cross-context behavioural advertising.
- We do not show advertising or build advertising profiles.
- We do not track you across other companies’ apps or websites, and we do not use your device’s advertising identifier.
- The app contains no third-party analytics, advertising or crash-reporting software; its own crash reports, described above, go only to Zona. If you have agreed in your device’s settings to share analytics or crash data with app developers, Apple, or Google on Android, may give us crash reports and aggregated app statistics under their own terms.
- We do not look at the content of your alerts except where you ask us to, for example in a support request, where it is needed to investigate a security or abuse problem, or where the law requires it.
Service providers and other recipients
We share personal data only with the recipients below, and only as needed for the purposes in this policy. Our service providers process data on our behalf under their own data processing terms.
- Supabase (database, sign-in, file storage, server functions, real-time sync and scheduled jobs, hosted in Sydney, Australia): all the account, source, alert, image, device, Zona Plus, acceptance, crash-report and diagnostic data described above. Supabase Auth also sends sign-in and account emails, through Supabase’s email service or an email delivery provider configured for it.
- Expo (push delivery and app updates, United States): push tokens and the content of push notifications; and, when the app checks for updates as it starts, technical details such as the platform, the app’s runtime version, the update channel and an update identifier created on your device, together with your IP address.
- Apple (App Store, TestFlight, Apple Push Notification service and Sign in with Apple): push notification content for iPhone and iPad; Zona Plus purchase data and the app account token; and, if you sign in with Apple, the account identifier, email address and any name Apple shares with us.
- Google (Firebase Cloud Messaging on Android, Google sign-in, and Gmail for our support mailbox): push notification content for Android devices; the account identifier, email address and profile details, such as your name and a link to your profile picture, that Google shares if you sign in with Google; and the emails you send us.
- GitHub (GitHub sign-in and older copies of our public pages): the account identifier, email address and profile details, such as your name, username and a link to your profile picture, that GitHub shares if you sign in with GitHub, and request details when you visit pages it hosts.
- Cloudflare (serves zonanotify.app): your IP address and request details when you visit the website.
We may also disclose personal data where the law or a valid legal request requires it; to protect the rights, safety or property of our users, Terabase or others; to investigate fraud or security problems; or with your consent. If Zona is transferred to a new operator, for example a company set up to run it, your data may be transferred as part of that; we will tell you in advance, and the new operator must honour this policy for the data it receives.
International transfers
Terabase operates from Hong Kong. Zona’s database, sign-in and file storage are hosted by Supabase in Sydney, Australia (its ap-southeast-2 region). Expo, Apple, Google, GitHub and Cloudflare process data in the United States and in other countries where they or their subprocessors operate. Your personal data is therefore transferred to, and processed in, places outside Hong Kong and outside the country where you live, whose data protection laws may differ from yours.
Where the law requires it, we rely on safeguards for these transfers, such as our providers’ data processing terms and, where they apply, the Standard Contractual Clauses approved by the European Commission and their United Kingdom equivalent. For users in Hong Kong, this is our notice under the Personal Data (Privacy) Ordinance that your personal data will be transferred to, and processed by, the recipients and in the places described in this policy.
How long we keep data
- Alerts and their images: your plan’s retention period, counted from when the alert was received: one day for guest accounts, seven days on Standard and thirty days on Zona Plus. Each alert keeps the period of the plan your account was on when it arrived, or the longer period of any plan you had while it was in your inbox: upgrading extends alerts already in your inbox, while a shorter plan, including the end of Zona Plus for any reason (cancelled, expired, refunded or revoked), applies only to alerts that arrive afterwards, so no alert is deleted earlier than the date it already had. An hourly cleanup deletes alerts whose period has passed. Exception: an alert you pin in the app is kept, with its images, until you unpin it or its pin expiry passes. A pin expiry is at most 365 days ahead, and a pin without an expiry lasts until you unpin it. The number of pinned alerts is limited by plan (currently 20 on Standard and 100 on Zona Plus), and on a guest account a pin ends with the alert’s normal retention. When a pin ends, normal retention applies again, and the next cleanup deletes the alert if its period has passed. Deleting your account removes pinned alerts too. An alert’s images are removed from storage when the alert is deleted, or by the hourly cleanup shortly afterwards.
- Push delivery records: deleted with the alert they belong to. The record of a Dev note push is deleted 30 days after it was made.
- Rate-limit records: one day for each source and two days for each account.
- Check-ins: a check-in’s settings are kept until you delete it, its source or your account. The record of each check-in, missed check-in and incident is kept for your plan’s alert retention period, and at most the 500 most recent for each check-in; the alerts a check-in writes are kept like other alerts. Records used to limit how often a source may check in are kept for one day.
- Repeated alerts and agent sessions: the record of how often an alert rang is deleted with the alert. An agent session is deleted seven days after its last update, or earlier when you remove it from the board, when its source is deleted or when you delete your account. Records used to limit how often a source may send agent updates are kept for one day.
- Sources and source-key hashes: while the source is active. A revoked source is deleted 30 days after it was revoked, once no stored alert refers to it. All sources are deleted with your account.
- Push registrations: while the device is registered. Signing out on a device deletes its registration, and so does declining the Terms of Service in the app there, until you agree and the app registers the device again. A registration that has been turned off, for example when you remove the device from your account, when another account signs in on it or when its push token stops working, is deleted seven days later.
- Devices, sessions and settings: installation and session records, preferences, saved filters, quiet hours, your profile and usage counters are kept while your account exists.
- Moving a guest account into your account: the account and sign-in session identifiers of both accounts, the dates and the number of items moved are kept while your account exists.
- Live Status action keys: a key works for at most 12 hours; its hash is deleted when your account next creates a key or when you delete your account.
- Sign-in sessions and the sign-in audit log: Supabase Auth keeps each sign-in session, with its IP address and user agent, until you sign out on that device or delete your account; sessions do not expire on their own; its audit log entries, where kept, are deleted one year after the event.
- Sign-in and re-authentication steps: these records expire within 10 minutes and are deleted by the hourly cleanup once they expire, or one day after they are used.
- Removed sign-in methods: the record that stops a removed sign-in method from being linked again is kept until you add that method again or delete your account.
- Account security events: deleted when you delete your account, and in any case one year after they happened.
- App and server diagnostic logs: 30 days. Error summaries in the operator’s Zona inbox are kept like the operator’s other alerts: at most 30 days, unless the operator pins one while fixing the error.
- Crash reports: Crash reports are deleted thirty days after Zona receives them, or earlier with your account. A report the app is still keeping on your device is deleted there once it has been sent, or after seven days if it cannot be sent.
- Daily usage totals: 400 days; your account’s totals are deleted with your account. Records of the operator’s daily reports are kept for 90 days.
- Zona Plus records: while your account exists, so that we can verify and restore your subscription, answer billing questions and handle disputes; deleted with your account. An App Store notice that does not match any Zona account is kept without a link to any account, with its type, product, environment, dates, transaction identifiers and the renewal details Apple sent, without the app account token, so that each notice is processed only once and as a business record, and a daily cleanup deletes it seven years after it arrived. A transaction record that is not linked to any Zona account, for example a renewal that Apple reports after you deleted your account without cancelling your subscription, is kept without any account identifier or app account token, so that billing questions can be answered and because Hong Kong tax law requires business records to be kept for seven years, and a daily cleanup deletes it seven years after Apple last sent it. Apple keeps its own records under its own policies.
- Zona Plus given to your account: the record, including one that has ended or that we withdrew, is kept while your account exists, as the record of what we gave, and is deleted with your account.
- Acceptance records: while your account exists. When your account is deleted, each record is pseudonymised: your account identifier is replaced by a one-way hash of it, kept with the versions, the times, the app language, and the app version, build number and platform. We can match the hash to your former account identifier, which the deletion record keeps, only to show what was agreed. A daily cleanup deletes such a record six years after your account was deleted, however long ago the acceptance was, because the terms you accepted applied until then.
- Deletion records: the record that your account was deleted is kept for six years after the deletion and then deleted, as “Deleting your account” describes.
- Support emails: as long as needed to answer you and deal with any follow-up.
- Provider logs and backups: Supabase, Cloudflare and our other providers keep their own logs and backups, including Supabase Auth’s records of sign-in activity, for the limited periods their services set. Deleted data leaves them as they expire.
- Guest accounts left behind: if you sign out of a guest account, or delete the app, without deleting the account, its alerts still expire after one day, but its sources, settings and sign-in session, with the IP address and user agent the session recorded, stay until the account is deleted, because we cannot tell a guest account that has been left behind from one that is simply not in use. We may delete it once it has gone unused for 12 months, as “Unused accounts” below describes. Delete a guest account in Settings → Delete account and data before you leave it.
- Unused accounts: the Terms of Service allow us to delete an account, with its data, that has not been opened in the app and has received no alerts for 12 months: a guest account without notice, because we have no way to reach it, and a recoverable account only after we have emailed the address linked to it at least 30 days before. This is a permission, not a retention period: we do not promise to delete unused accounts, and until an account is deleted its data is kept as this section describes.
Deleting your account
You can delete your account at any time in Settings → Delete account and data. For a recoverable account, Zona first asks you to confirm that it is you. Deletion stops your source keys, then removes your alerts and their images, sources and key hashes, check-ins and their records, Ring until seen settings, agent sessions, devices, push registrations and Dev note push records, sessions, preferences, quiet-hours schedules, saved filters, profile, usage counters and daily totals, diagnostic logs and crash reports, Zona Plus records, including Zona Plus given to your account, Live Status keys, account security events and removed-sign-in-method records, and finally your Supabase Auth account, with its email address, password and sign-in methods.
After your account is deleted, we keep only:
- your acceptance records, with the one-way hash in place of your account identifier, until six years after your account is deleted;
- a minimal record of the deletion, kept so that the deletion can be completed and shown to have happened: your former account identifiers, the status and dates of the account and of the deletion request, how many items were removed, and the records of any guest account moved into your account, which are deleted six years after the deletion, together with the acceptance records they could be matched with; and an event recording that the deletion was completed, which is deleted after one year. None of this contains your email address, alerts or other content, and none of it is linked to any sign-in method;
- records Apple sends about your subscription after the deletion, for example a renewal if you did not cancel it with Apple, which we keep without any Zona account identifier for seven years, as “How long we keep data” describes;
- entries in Supabase Auth’s audit log until they are one year old, data in provider logs and backups until they expire, and anything the law requires us to keep.
Deleting your Zona account does not cancel a Zona Plus subscription; cancel it with Apple. Deleting the app without deleting your account does not delete your data.
Security
We protect personal data with measures suited to the service, including: encryption in transit (TLS) for every connection, and encryption at rest by our hosting provider; row-level security, so that each account can reach only its own data; source keys and Live Status keys never stored in full (only a one-way hash, and for a source key a short prefix); private storage for images; limits on payload size, request rate and retention; independent revocation of each source and key; confirmation of your identity before sensitive account changes; and access to production systems limited to the operator. No method of transmission or storage is completely secure, and we cannot guarantee absolute security. Keep your devices and keys secure, and report any vulnerability to terabasedevteam@gmail.com.
Data breaches
If a security incident affects your personal data, we will investigate it, take steps to contain it, and, without undue delay, notify you and the relevant regulators where the law requires. In Hong Kong we follow the guidance of the Privacy Commissioner for Personal Data on data breach notification.
Your choices
- Use Zona without allowing push notifications; the inbox still works.
- Turn Message previews off in Settings, or change the notification settings on your device.
- Turn Dev note push notifications off in Settings under Dev notes.
- Rename or revoke a source, or revoke a single source key, at any time.
- Pin, unpin or delete individual alerts, and export an alert as text or JSON from its screen.
- Sign out on a device, or remove a device from your account.
- Pause or delete a check-in, turn Ring until seen on or off for each source, and remove an agent session from the board, in the app.
- Install the agent hooks without the project folder name (--no-project), and without the agent’s message (the default; --share-question adds it); allow or turn off critical alerts for Zona in your device’s settings.
- Delete your account in Settings → Delete account and data.
Your rights
Your rights depend on where you live. You can exercise many of them directly in the app; for anything else, email us.
Hong Kong
Under the Personal Data (Privacy) Ordinance (Cap. 486), you may ask whether we hold personal data about you, request a copy of it (a data access request) and ask us to correct it (a data correction request). We will respond within 40 days. We may charge a fee for a data access request, which will not be excessive, as the Ordinance allows.
European Economic Area, United Kingdom and Switzerland
You have the right to access your personal data, to have it corrected or erased, to restrict or object to its processing, including processing based on our legitimate interests, to data portability, and to withdraw your consent at any time without affecting processing that took place before. You also have the right to complain to the data protection authority where you live or work, or where you believe a breach took place. We will respond within one month, which the law allows us to extend in some cases.
California
If the California Consumer Privacy Act, as amended by the California Privacy Rights Act, applies to our handling of your personal information, you have the right to know what personal information we collect, use and disclose, to access it, to have it deleted or corrected, and not to be discriminated against for exercising these rights. We collect identifiers, commercial information (Zona Plus purchase records, including price, currency and storefront, and records of Zona Plus given to your account), internet or other electronic network activity (security and diagnostic records, including crash reports) and the content you send, from the sources and for the purposes described in this policy, and we disclose them to the service providers listed above for business purposes. We do not sell or share personal information, and we do not use or disclose sensitive personal information to infer characteristics about you. You may use an authorised agent to make a request.
Other places
If you live elsewhere, you may have similar rights under your local law, and we will honour them as that law requires.
How to make a request
Email terabasedevteam@gmail.com, preferably from the address linked to your account, and tell us which account your request is about. Before acting, we will check that the request comes from the account holder, for example by asking you to confirm details that only the account holder would know or to take a step in the app. We cannot verify a guest account by email, so use the app’s own tools for a guest account. We may refuse a request that is manifestly unfounded or excessive, or where the law allows us to, and we will tell you why.
Children
Zona does not ask for or record your age. If you are a parent or guardian and believe that your child has given us personal data that you want deleted, contact us. Once we can identify the account and are satisfied that the request comes from your child, or from you as their parent or guardian, we will delete it. Your child can also delete the account at any time in Settings → Delete account and data.
Automated decision-making
Zona does not make decisions about you that are based solely on automated processing and that have legal or similarly significant effects. It applies technical limits automatically and in the same way to every account on the same plan, such as rate limits, size limits, plan limits and retention periods.
Changes to this policy
We may update this policy. Each version has a version date and an effective date. If we make a material change, for example to what we collect, why we use it, who receives it or how long we keep it, we will tell you before it takes effect, in the app, by email to an address linked to your account or on zonanotify.app; the app will ask you to confirm the new policy when you next use a version of it that includes the change; and we will give any other notice, or ask for any consent, that the law requires. Other changes take effect when we publish them.
Contact and complaints
For questions, requests or complaints about privacy, contact Terabase, Hong Kong, at terabasedevteam@gmail.com. Never email passwords, complete source keys, push tokens, payment details or real alert content.
If you are not satisfied with our response, you may complain to the Office of the Privacy Commissioner for Personal Data, Hong Kong, or to the data protection authority where you live.
Zona Notify 私隱政策
本政策說明 Zona Notify(下稱「Zona」)收集哪些個人資料、如何使用及分享這些資料、資料儲存於何處、保留多久,以及你享有的選擇和權利。Zona 由位於香港的 Terabase(下稱「Terabase」或「我們」)營運。
負責人及本政策的適用範圍
Terabase 是本政策所述個人資料的控制者,亦是香港《個人資料(私隱)條例》(第 486 章)下的「資料使用者」。你可電郵至 terabasedevteam@gmail.com 聯絡我們。如你的來源所傳送的通知包含由你(或你代其使用 Zona 的機構)控制的其他人的個人資料,你是該等資料的控制者,而我們會代表你處理該等資料,詳見服務條款中的「你內容中的個人資料」。
本政策適用於:
- iPhone、iPad 及 Android 版 Zona App,包括其小工具及即時動態;
- Zona 通知服務及其 API;
- Zona 命令列工具、代理程式掛鈎及 MCP 伺服器(下稱「電腦工具」);
- zonanotify.app 網站及 Zona 的其他公開網頁;
- 你傳送至我們支援電郵地址的訊息。
本政策不適用於由他人營運的服務,例如 Apple、Google 或你選擇的登入服務供應商;這些服務按其本身的私隱政策處理你的資料。
在你於某裝置上登入或以訪客身分繼續之前,以及我們對本政策或服務條款作出重大修改後,App 會要求你確認你已細閱及同意服務條款和本政策。就本政策而言,該確認只表示你已細閱本政策,並不代表你同意有關處理:本政策列明每項資料用途的法律依據,而如我們依賴同意處理資料,會另行徵求你的同意。
摘要
- Zona 會儲存你的來源所傳送的內容,以便在你的私人收件匣顯示,並通知你的裝置。
- 通知會在你的計劃保留期屆滿後自動刪除:訪客帳戶一天、標準版七天、Zona Plus 三十天。每則通知會按其在收件匣期間你曾使用的計劃中最長的保留期保留,因此轉用較短的計劃(包括 Zona Plus 結束)不會令通知提早刪除。你釘選的通知屬例外:已釘選的通知會保留至你取消釘選或其釘選期限屆滿為止,詳情見「資料保留期」。
- 我們不會出售你的個人資料、不會展示廣告,亦不會跨其他公司的 App 或網站追蹤你;App 並不包含任何第三方分析或當機報告軟件:App 本身的當機報告只會傳送至 Zona,用以修正 App 的錯誤。
- 你的資料由 Supabase 儲存於澳洲悉尼,並由我們在美國及其他國家的供應商處理。
- 你可隨時在 App 內刪除你的帳戶及與其連結的資料。
我們收集的資料
以下大部分資料來自你、你的來源及你的裝置;部分資料在你透過 Zona 使用 Apple、Google、GitHub 或 Expo 的服務時由它們提供。
帳戶及登入
帳戶識別碼,以及該帳戶是否訪客帳戶。如你使用電郵登入,則包括你的電郵地址及密碼;密碼只會以雜湊形式由 Supabase Auth 儲存,我們永遠不會看到你的密碼。如你使用 Apple、Google 或 GitHub 登入,則包括該供應商與我們分享的帳戶識別碼、電郵地址及個人檔案資料,例如你的姓名、用戶名稱及個人頭像的連結;Supabase Auth 會將這些資料連同該登入方式及你的帳戶一併儲存,直至你刪除帳戶為止。與你的帳戶連結的登入方式及其加入或移除的時間;如你移除某登入方式,我們會保留該方式的記錄(供應商、其帳戶識別碼及電郵地址),確保未經你的操作不會再次連結。你的語言及時區,以及你設定的顯示名稱(如有)。你的登入工作階段,以及帳戶保安事件的記錄,例如登入、加入或移除登入方式、重新驗證身分、移除裝置及刪除帳戶。
來源及來源密鑰
每個來源的名稱、你輸入的主機名稱(選填)、你選擇的表情符號、顏色及提示聲,以及其建立、最近使用及撤銷的時間。每個來源密鑰的單向雜湊值、密鑰在 zona_live_ 前綴後的首八個字元(App 會顯示這些字元,方便你分辨不同密鑰)、你為其設定的標籤,以及該密鑰建立、最近使用、到期或撤銷的時間。來源密鑰只會向你完整顯示一次,Zona 不會儲存完整密鑰。
通知及附件
你的來源所傳送的內容:標題、內容、類別、緊急程度、清單、結構化資料及最多五張圖片。通知送達時的來源名稱、通知的接收、閱讀及釘選時間、到期時間、你設定的緊急程度或釘選期限,以及防止同一通知被重複儲存的技術欄位。圖片存放在只有你的帳戶才能存取的私人儲存空間。
裝置及推送通知
App 建立的隨機安裝識別碼;你的裝置平台、App 版本及版本編號;Expo、Apple 或 Google 為你的裝置發出的推送通知權杖;是否已為該裝置開啟傳送;你是否已在該裝置上允許 Zona 使用重要警示(iPhone 及 iPad 上為其通知設定,Android 上為 Zona 的「重要警示」頻道);以及推送嘗試的結果,例如 Expo 回執識別碼、狀態及錯誤代碼。Zona 不會收集你為裝置設定的名稱、你的電話號碼、通訊錄、位置或廣告識別碼。
設定及效率功能
你的偏好設定,例如訊息預覽、提示聲、是否接收開發者筆記推送通知及外觀;勿擾時段排程及其使用的時區;已儲存的收件匣篩選條件;以及通知內的清單。
報到、重複提醒及代理程式工作階段
如你為來源加入報到,Zona 會儲存其名稱及標籤、其排程(來源應多久一次或在哪一次每日執行後報到、所用時區、寬限時間,以及連續錯過多少次才算數)、其寫入的通知的緊急程度及語言、是否已暫停、你的來源傳送的每次報到(送達時間,以及回報成功、開始還是失敗)、每次錯過的報到,以及因此產生的每宗事故。Zona 的伺服器每分鐘會將這些記錄與排程比對,並在報到錯過、失敗或恢復時在你的收件匣寫入通知。如你為來源開啟「響到查看為止」,Zona 會儲存該選擇,並就每則會重複響起的通知儲存已響起的次數及何時停止。如你的 AI 代理程式工具傳送代理程式狀態,Zona 會就每個工作階段儲存:該工具所用工作階段識別碼的單向雜湊值、代理程式名稱、專案資料夾名稱(如你以 --no-project 安裝掛鈎則不包括)、其狀態(等你回應、執行中、已完成或失敗)、開始及最後更新的時間,以及(只限你以 --share-question 安裝掛鈎時)代理程式本身說明其正在等待甚麼的簡短訊息,最多 200 個字元。Zona 的工具會在傳送前移除該訊息中看似密鑰、權杖或密碼的文字,而 Zona 的伺服器會再檢查一次。報到或代理程式狀態寫入的通知會標示為來自該報到或代理程式;報到恢復或代理程式繼續工作時,該通知會標示為已解決,並記錄解決時間及原因。
Zona Plus 購買
如你購買 Zona Plus,Apple 會向我們提供經其簽署的交易及續訂記錄,我們會核實並儲存這些記錄,並將其連結至你的帳戶:產品、原始及目前交易識別碼和訂單識別碼、環境、購買、續訂及到期日期、價格及貨幣、App Store 國家或地區(店面)、所使用的優惠或免費試用、你的訂閱狀態、訂閱會否續訂及續訂的產品、訂閱結束或進入帳單重試的原因,任何退款或撤銷的日期及原因,以及 Apple 簽署記錄中的其他資料,例如續訂價格及貨幣、是否同意加價、寬限期、數量,以及該購買項目是否經「家人共享」分享;以及該記錄是經購買、「還原購買項目」還是 Apple 的通知傳送至我們。你購買時,App 會將你的 Zona 帳戶識別碼作為 App 帳戶權杖提供予 Apple,以便將 Apple 有關續訂、退款及到期的通知與你的帳戶配對。App 亦會報告購買過程的結果,例如計劃是否成功載入,以及購買、核實或還原是否成功,當中包括產品識別碼、數目及錯誤代碼,但從不包括收據、交易識別碼或付款資料。付款由 Apple 處理;我們永遠不會取得你的付款卡資料。
給予你帳戶的 Zona Plus
我們可在沒有購買的情況下向帳戶提供 Zona Plus,例如提供予營運者本身的帳戶或測試人員,或於推廣期間提供。如我們這樣做,會保存一項連結至你帳戶的記錄:其開始時間;其結束時間(如設有結束日期);我們收回該 Zona Plus 的時間(如有);以及提供原因的簡短備註。App 只會得知你的帳戶是否已包含 Zona Plus 及其結束日期(如有);該備註只由我們保存,從不會在 App 內顯示。
iPhone 及 iPad 上的即時動態
如你使用即時動態,其按鈕會使用一個即時動態操作密鑰;該密鑰只可將通知標示為已讀、釘選、取消釘選或刪除通知,只適用於該裝置上的登入工作階段,並最多有效 12 小時。該密鑰連同服務地址、App 的公開金鑰、密鑰的到期時間及你的帳戶識別碼,存放在裝置上 Zona 自己的 App 容器內的一個檔案中;該檔案不會納入裝置備份,並只有 Zona 及其本身的小工具和即時動態延伸功能可以開啟。我們的伺服器只保留其單向雜湊值,連同其到期時間、所屬的登入工作階段,以及最近使用的時間和次數,以便限制及撤銷該密鑰。當卡片結束、你在該裝置登出,或另一帳戶在該裝置登入時,該密鑰會被刪除及撤銷。
你接受本文件的記錄
當你在 App 內同意服務條款及本政策時,有關同意會先保存在你的裝置上(見「儲存在你裝置上的資料」)。其後 Zona 會在我們的伺服器上,為該裝置上已登入的帳戶(包括訪客帳戶)記錄這項同意;如你在建立帳戶前同意,則會在你登入或以訪客身分繼續時記錄。每項伺服器記錄包括:你的帳戶識別碼;該識別碼的單向雜湊值;你接受的服務條款及本政策版本;記錄在我們伺服器上建立的時間(我們以此時間為準);你的裝置就該項同意所報告的時間(如與伺服器時間相差超過一天則不會儲存);App 語言;以及 App 版本及版本編號和平台(iOS、Android 或網頁)。每組版本只會保留首次記錄:如你的帳戶再次記錄相同版本,不會儲存任何新資料。接受新版本時會建立新的記錄。
保安、防止濫用及診斷資料
我們營運及保障服務所需的記錄:每個來源及帳戶的用量限制記錄;裝置工作階段及已移除裝置的記錄;登入及重新驗證身分步驟的短期記錄;我們伺服器功能的運作記錄,例如請求識別碼、結果、狀態代碼及所需時間;以及 App 傳送至我們自己服務的診斷事件,例如事件名稱、錯誤訊息、App 版本及版本編號、平台及安裝識別碼。這些記錄的設計不包含通知內容、權杖、密碼或電郵地址。我們亦會計算整體服務及每個帳戶的每日用量總數,例如收到的通知數目,並會將錯誤摘要(可包括錯誤訊息中最多 160 個字元)傳送至營運者本身的 Zona 收件匣,以便修正問題。Zona 本身的程式不會記錄你的 IP 位址,或你的裝置或瀏覽器的用戶代理(user agent)。在 Zona 資料庫內運行的 Supabase Auth 會在每個登入工作階段存在期間,儲存該工作階段的 IP 位址及用戶代理,並可能保存登入及帳戶事件的審計記錄,當中包括相關的 IP 位址及電郵地址;每日清理程序會在一年後刪除這些審計記錄。我們的託管供應商亦可能會在其標準記錄中記下這些資料,詳見下文。
如 Zona App 發生軟件錯誤,App 會保留一份當機報告,並在有帳戶登入後傳送至 Zona。報告包括錯誤的名稱、訊息及技術追蹤資料;發生錯誤的畫面、錯誤是否令 App 關閉及重複次數;手機的型號名稱、型號識別碼、製造商、作業系統及版本,以及是否實體裝置;App 版本、版本編號、正在執行的無線更新(如有)及 App 語言;以及安裝識別碼。報告儲存在手機或傳送前,App 會移除任何看似密鑰、權杖、密碼或電郵地址的內容,以及所有網址的查詢部分(例如登入連結中的驗證碼);Zona 伺服器亦會再次檢查並移除 Zona 密鑰、權杖、電郵地址及網址查詢部分。Zona 從不讀取你為手機設定的名稱。報告仍可能包含 App 在錯誤發生時正在處理的其他文字片段(例如部分通知內容),這亦是只有營運者可以讀取報告,而且報告只保留 30 天的原因之一。在未有帳戶登入時記錄的報告會留在手機上,並在下一個登入的帳戶下傳送;在某帳戶下記錄的報告,如在另一帳戶登入時仍未傳送,會被刪除,絕不會以另一帳戶的名義傳送。當機報告會連結至你的 Zona 帳戶,並只會用於找出及修正 App 的當機及錯誤。
支援訊息
如你電郵給我們,我們會透過 Google 的 Gmail 服務收到你的電郵地址、訊息及任何附件。
網站
zonanotify.app 由 Cloudflare 提供服務。網站本身不會設定 Cookie,亦不使用分析或廣告程式碼。Cloudflare 會處理你的 IP 位址及每項請求的詳情,以提供及保護網站。API 說明文件會在你瀏覽器的本機儲存空間記住你偏好的程式碼範例分頁;該選擇不會傳送給我們。我們公開網頁的舊版副本亦由 GitHub Pages 及我們的 Supabase 項目提供,兩者會處理類似的請求詳情。
電腦工具
電腦工具在你的電腦上運行。它們把你的來源密鑰存放在你主資料夾內的一個檔案中(~/.zona/token),或從環境變數 ZONA_SOURCE_TOKEN 讀取,並只會向 Zona 的通知服務傳送通知、報到及代理程式狀態:包括你或你的代理程式要求傳送的通知及報到,以及(如你安裝了代理程式掛鈎)每當已連接的 AI 代理程式開始或持續工作、完成工作或需要你回應時傳送的狀態更新。狀態更新會列出代理程式的名稱,並包含代理程式的工作階段識別碼、其狀態,以及其工作所在的專案資料夾名稱(如你以 --no-project 安裝掛鈎則不包括);只有在你以 --share-question 安裝掛鈎時,才會包含代理程式本身說明其正在等待甚麼的訊息。掛鈎會在 ~/.zona/hooks.log 保存傳送失敗的簡短記錄,並在 ~/.zona/agent-sessions 記下每個工作階段最後的狀態,兩者都只會留在你的電腦上。電腦工具不會從你的電腦收集其他資料,亦不會向我們報告使用情況。
儲存在你裝置上的資料
為了快速運作及支援離線使用,App 會在你的裝置上保存部分資料:存放在裝置安全儲存空間的登入工作階段;在你確認新加入的電郵地址期間,該步驟的短期記錄(電郵地址及交易識別碼),以及(如你設定了密碼)該密碼,兩者均存放在裝置的安全儲存空間(在網頁瀏覽器中則為其本機儲存空間)最多十分鐘,並會在確認完成或取消時刪除,如已過期則會在你下次嘗試登入時刪除;近期收件匣頁面、來源、偏好設定、服務設定及開發者筆記的快取;你的語言、外觀及其他 App 內選擇;你已閱讀的開發者筆記;你上次關閉昨晚報到摘要的日期;Zona 是否已詢問你有關重要警示,以及(在 Android 上)你是否已在 Zona 開啟重要警示;等待傳送的操作;等待傳送的當機報告(最多 20 份,不會保留超過七天);安裝識別碼;你對服務條款及本政策的同意(版本、同意時間及 App 語言),以及已記錄該項同意的帳戶;如你在登入狀態下不同意,則為有關帳戶的註記,以及我們的伺服器是否已停止向該裝置傳送通知;以及在你使用時,主畫面小工具及即時動態卡片所顯示的內容。這些資料留在你的裝置上,並會在你刪除 App 時移除,但 App 存放在裝置安全儲存空間的資料(例如登入工作階段)除外:在 iPhone 及 iPad 上,系統可能會在你刪除 App 後保留這些資料,因此在同一裝置重新安裝 Zona 後,你可能會再次登入。在刪除 App 前登出即可將其移除。除上文所述的即時動態檔案外,你裝置的系統可能會將這些資料納入你的裝置備份。當你在該裝置登出或刪除帳戶時,有關同意會從裝置上移除,下一位使用該裝置上 App 的人須自行同意。
我們如何使用資料及法律依據
我們只會為以下目的使用個人資料。如你身處歐洲經濟區、英國或瑞士,每項目的的法律依據列於括號內。
- 建立及保障你的帳戶、讓你登入,並分隔每個帳戶的資料(合約)。
- 接收、儲存、同步、顯示、釘選、篩選、輸出及刪除通知,以及傳送推送通知(合約)。
- 為你監察報到,並在報到錯過、失敗或恢復時寫入通知,重複傳送你要求 Zona 重複的推送通知,以及顯示你的代理程式工作階段(合約)。
- 提供 Zona Plus:核實、還原、續訂、終止、退款或撤銷訂閱,以及在沒有購買的情況下向帳戶提供 Zona Plus 及將其終止(合約;就我們必須保存的記錄而言,為法律責任)。
- 執行用量及計劃限制,並防止可能傷害用戶、我們的供應商或 Terabase 的濫用、詐騙及保安事故(我們在提供安全可靠服務方面的正當利益)。
- 利用記錄、診斷事件、當機報告及每日用量總數診斷問題、找出及修正 App 的當機及錯誤,以及提升可靠性(我們在營運及改善 Zona 方面的正當利益)。
- 記錄你接受服務條款及本政策,並在你的帳戶刪除後保留有限的記錄(我們在能夠證明雙方協定內容,以及確立、行使或抗辯法律申索方面的正當利益)。
- 回應你的支援要求,並就你的帳戶、保安或 Zona 的變更通知你,包括透過我們有關服務的公告「開發者筆記」(合約;正當利益)。
- 遵守法律、回應公共機構的合法要求,以及確立、行使或抗辯法律申索(法律責任;正當利益)。
- 顯示推送通知;只有在你於裝置設定中允許通知時,你的裝置才會顯示推送通知,而你可隨時撤回該許可(同意,透過你裝置的權限提示給予)。
除非我們先通知你,並在法律要求時徵求你的同意,否則我們不會為與上述目的不相符的任何其他目的使用你的資料。
推送通知及鎖定畫面預覽
當 訊息預覽 開啟時,Zona 透過 Expo 的推送服務及 Apple Push Notification service(iPhone 及 iPad)或 Firebase Cloud Messaging(Android)傳送的每項推送通知,均包含通知的標題和內容、來源名稱、通知和來源識別碼,以及緊急程度。你的裝置可能會在鎖定畫面顯示這些資料,任何能看到該裝置的人均可閱讀。當你在 設定 關閉 訊息預覽 時,每項推送通知只會包含一般訊息連同上述識別碼及緊急程度,完整通知則保留在你的收件匣。你亦可在裝置的通知設定中管理預覽。
如你為來源開啟「響到查看為止」(Zona Plus),達到你所選緊急程度的通知的推送通知會每隔數分鐘再次傳送,最多達你所選的次數,並以 30 分鐘為限,直至你在任何裝置上開啟、釘選或刪除該通知,或該通知已解決為止;每次重複的推送通知內容與第一次相同,並會在你的裝置上取代前一則,而重複推送會遵守你的勿擾時段。報到或代理程式狀態寫入的通知的推送通知,亦會包含 Zona 為該報到或代理程式工作階段設定的識別碼,讓下一則相關推送通知在你的裝置上取代前一則。如你在裝置上允許 Zona 使用重要警示,標示為「嚴重」的通知的推送通知會要求該裝置在靜音或「請勿打擾」模式下仍然發出聲音(視乎裝置是否容許);你可隨時在裝置的設定中關閉重要警示。
Zona 亦會傳送開發者筆記:Terabase 就服務向每個帳戶發出的簡短公告,例如新功能、預定維修或服務中斷。開發者筆記會在你的收件匣頂部及 設定 中顯示,絕不會成為收件匣內的通知,並會以推送通知送達,內容包含筆記的標題和內文及筆記識別碼,但不包含任何通知、來源或帳戶資料;當 訊息預覽 關閉時,推送通知只會包含一般訊息。開發者筆記並非廣告。在你帳戶的勿擾時段內,或你已關閉推送通知時,我們不會傳送開發者筆記的推送通知;你亦可在 設定 的 開發者筆記 關閉開發者筆記的推送通知。你已閱讀哪些開發者筆記只會儲存在你的裝置上。
請勿在通知中傳送密碼、API 密鑰、來源密鑰、登入連結、付款資料或其他敏感資料。作為額外保障,當通知文字被複製、分享、輸出,或在主畫面小工具、即時動態卡片或 App 內橫額顯示前,App 會隱藏看似常見憑證的文字,例如存取權杖、API 密鑰或連結中的密碼。此功能只能辨識常見格式,不會更改你的裝置所顯示的推送通知,而收件匣會按原樣顯示通知。
我們不會做的事
- 我們不會出售或出租個人資料,亦不會為跨情境行為廣告而分享個人資料。
- 我們不會展示廣告或建立廣告檔案。
- 我們不會跨其他公司的 App 或網站追蹤你,亦不會使用你裝置的廣告識別碼。
- App 並不包含任何第三方分析、廣告或當機報告軟件;上文所述 App 本身的當機報告只會傳送至 Zona。如你已在裝置設定中同意與 App 開發者分享分析或當機資料,Apple(或 Android 上的 Google)可能會按其本身的條款向我們提供當機報告及彙總的 App 統計資料。
- 除非你要求(例如在支援要求中)、調查保安或濫用問題有此需要,或法律有所規定,否則我們不會查看你的通知內容。
服務供應商及其他接收者
我們只會與以下接收者分享個人資料,並只限於本政策所述目的所需。我們的服務供應商按其本身的資料處理條款代表我們處理資料。
- Supabase(資料庫、登入、檔案儲存、伺服器功能、即時同步及排程工作,託管於澳洲悉尼):上文所述的所有帳戶、來源、通知、圖片、裝置、Zona Plus、接受記錄、當機報告及診斷資料。Supabase Auth 亦會透過 Supabase 的電郵服務或為其設定的電郵傳送供應商,發送登入及帳戶電郵。
- Expo(推送通知傳送及 App 更新,美國):推送通知權杖及推送通知內容;以及在 App 啟動並檢查更新時,平台、App 執行環境版本、更新頻道及在你裝置上建立的更新識別碼等技術資料,連同你的 IP 位址。
- Apple(App Store、TestFlight、Apple Push Notification service 及「使用 Apple 登入」):iPhone 及 iPad 的推送通知內容;Zona Plus 購買資料及 App 帳戶權杖;以及如你使用 Apple 登入,Apple 與我們分享的帳戶識別碼、電郵地址及姓名(如有)。
- Google(Android 上的 Firebase Cloud Messaging、Google 登入,以及我們支援信箱所用的 Gmail):Android 裝置的推送通知內容;如你使用 Google 登入,Google 分享的帳戶識別碼、電郵地址及個人檔案資料(例如你的姓名及個人頭像的連結);以及你傳送給我們的電郵。
- GitHub(GitHub 登入及我們公開網頁的舊版副本):如你使用 GitHub 登入,GitHub 分享的帳戶識別碼、電郵地址及個人檔案資料(例如你的姓名、用戶名稱及個人頭像的連結),以及你瀏覽其託管的網頁時的請求詳情。
- Cloudflare(提供 zonanotify.app 網站服務):你瀏覽網站時的 IP 位址及請求詳情。
在以下情況下,我們亦可能披露個人資料:法律或有效的法律要求有所規定;為保障我們的用戶、Terabase 或其他人的權利、安全或財產;為調查詐騙或保安問題;或在你同意的情況下。如 Zona 轉交新營運者(例如為營運 Zona 而成立的公司),你的資料可能會一併轉移;我們會事先通知你,而新營運者必須就其收到的資料遵守本政策。
跨境轉移
Terabase 在香港營運。Zona 的資料庫、登入及檔案儲存由 Supabase 託管於澳洲悉尼(其 ap-southeast-2 區域)。Expo、Apple、Google、GitHub 及 Cloudflare 會在美國以及它們或其分判處理者營運的其他國家處理資料。因此,你的個人資料會被轉移至香港以外及你所在國家以外的地方並在當地處理,而當地的資料保障法律可能與你所在地的法律不同。
在法律要求時,我們依賴適用於這些轉移的保障措施,例如我們供應商的資料處理條款,以及(在適用的情況下)歐洲委員會批准的標準合約條款及其英國對應條款。對於香港用戶,本段即為我們根據《個人資料(私隱)條例》作出的通知:你的個人資料會被轉移至本政策所述的接收者及地點,並由其處理。
資料保留期
- 通知及其圖片: 按你的計劃保留期保留,由收到通知時起計:訪客帳戶一天、標準版七天、Zona Plus 三十天。每則通知會按其送達時你的帳戶所屬計劃的保留期保留;如通知在收件匣期間你曾使用保留期較長的計劃,則按較長的保留期保留:升級會延長收件匣內現有通知的保留期,而較短的計劃(包括 Zona Plus 因取消、到期、退款或撤銷等任何原因結束)只適用於其後收到的通知,因此任何通知都不會早於其原定的日期刪除。每小時執行的清理工作會刪除保留期已屆滿的通知。例外情況:你在 App 內釘選的通知會連同其圖片一併保留,直至你取消釘選或其釘選期限屆滿為止。釘選期限最長為 365 天後;未設期限的釘選會保留至你取消釘選為止。各計劃設有釘選通知的數量上限(目前標準版為 20 則,Zona Plus 為 100 則),而訪客帳戶的釘選會隨通知原有的保留期結束。釘選結束後,通知會恢復一般保留期,如其保留期已屆滿,下一次清理會將其刪除。刪除帳戶亦會一併移除已釘選的通知。通知的圖片會在通知刪除時從儲存空間移除,或在不久後由每小時執行的清理工作移除。
- 推送傳送記錄: 與所屬的通知一併刪除。開發者筆記推送的記錄會在建立 30 天後刪除。
- 用量限制記錄: 每個來源的記錄保留一天,每個帳戶的記錄保留兩天。
- 報到: 報到的設定會保留至你刪除該報到、其來源或你的帳戶為止。每次報到、錯過的報到及事故的記錄會按你的計劃的通知保留期保留,而每個報到最多保留最近的 500 項;報到寫入的通知與其他通知一樣保留。用作限制來源報到次數的記錄保留一天。
- 重複提醒及代理程式工作階段: 通知已響起多少次的記錄會與該通知一併刪除。代理程式工作階段會在其最後更新七天後刪除;如你將其從面板移除、其來源被刪除或你刪除帳戶,則會更早刪除。用作限制來源傳送代理程式狀態次數的記錄保留一天。
- 來源及來源密鑰雜湊值: 在來源仍然有效期間保留。已撤銷的來源會在撤銷後 30 日、且沒有已儲存的通知仍引用該來源時刪除。刪除帳戶時,所有來源均會刪除。
- 推送通知登記: 在裝置仍然登記期間保留。在裝置上登出會刪除該裝置的登記;在該裝置的 App 內不同意服務條款亦會刪除該登記,直至你同意而 App 再次登記該裝置為止。已停用的登記(例如在你從帳戶移除裝置、另一帳戶在該裝置登入,或其推送通知權杖失效時)會在七天後刪除。
- 裝置、工作階段及設定: 安裝及工作階段記錄、偏好設定、已儲存的篩選條件、勿擾時段、你的個人檔案及用量計數會在你的帳戶存在期間保留。
- 將訪客帳戶移入你的帳戶: 兩個帳戶的帳戶識別碼及登入工作階段識別碼、有關日期及已移動項目的數目,會在你的帳戶存在期間保留。
- 即時動態操作密鑰: 每個密鑰最多有效 12 小時;其雜湊值會在你的帳戶下次建立密鑰時或在你刪除帳戶時刪除。
- 登入工作階段及登入審計記錄: Supabase Auth 會保留每個登入工作階段及其 IP 位址和用戶代理,直至你在該裝置登出或刪除帳戶為止;工作階段不會自行到期;其審計記錄(如有保存)會在事件發生後一年刪除。
- 登入及重新驗證身分步驟: 這些記錄在 10 分鐘內失效,並會在失效後由每小時執行的清理工作刪除,或在使用後一天刪除。
- 已移除的登入方式: 防止已移除的登入方式被再次連結的記錄,會保留至你再次加入該登入方式或刪除帳戶為止。
- 帳戶保安事件: 在你刪除帳戶時刪除,而無論如何會在事件發生後一年刪除。
- App 及伺服器診斷記錄: 30 天。營運者 Zona 收件匣內的錯誤摘要會與營運者的其他通知一樣保留:最多 30 天,除非營運者為修正錯誤而將其釘選。
- 當機報告: 當機報告會在 Zona 收到後三十天刪除,如你較早刪除帳戶則會隨帳戶刪除。仍留在你裝置上的報告會在傳送後從裝置刪除;如無法傳送,則會在七天後刪除。
- 每日用量總數: 400 天;你帳戶的總數會在刪除帳戶時一併刪除。營運者每日報告的記錄保留 90 天。
- Zona Plus 記錄: 在你的帳戶存在期間保留,以便我們核實及還原你的訂閱、回應收費查詢並處理爭議;刪除帳戶時一併刪除。與任何 Zona 帳戶均不相符的 App Store 通知會在不連結至任何帳戶的情況下,連同其類型、產品、環境、日期、交易識別碼及 Apple 傳送的續訂資料(不包括 App 帳戶權杖)保留,以確保每項通知只處理一次,並作為業務記錄;每日清理程序會在收到該通知七年後將其刪除。未連結至任何 Zona 帳戶的交易記錄(例如你刪除帳戶但沒有取消訂閱後,Apple 報告的續訂)會在不包含任何帳戶識別碼或 App 帳戶權杖的情況下保留,以便回應收費查詢,亦因為香港稅務法例規定業務記錄須保留七年;每日清理程序會在 Apple 最後一次傳送該記錄七年後將其刪除。Apple 按其本身的政策保留其記錄。
- 給予你帳戶的 Zona Plus: 有關記錄(包括已結束或已被我們收回的記錄)會在你的帳戶存在期間保留,作為我們所提供內容的記錄,並在刪除帳戶時一併刪除。
- 接受記錄: 在你的帳戶存在期間保留。你的帳戶刪除後,每項記錄會以假名化方式處理:你的帳戶識別碼會被其單向雜湊值取代,並連同版本、時間、App 語言、App 版本、版本編號及平台一併保留。我們只會為證明雙方協定的內容,將該雜湊值與刪除記錄所保留的你以往的帳戶識別碼配對。每日清理程序會在你的帳戶刪除後六年刪除有關記錄(不論接受是多久以前的事),因為你接受的條款一直適用至當時。
- 刪除記錄: 有關你的帳戶已被刪除的記錄會在刪除後保留六年,然後刪除,詳見「刪除你的帳戶」。
- 支援電郵: 按回覆你及處理任何後續事宜所需的時間保留。
- 供應商記錄及備份: Supabase、Cloudflare 及我們的其他供應商會按其服務設定的有限期間,保留其本身的記錄及備份,包括 Supabase Auth 的登入活動記錄。已刪除的資料會隨這些記錄及備份到期而消失。
- 遺下的訪客帳戶: 如你登出訪客帳戶或刪除 App,但沒有刪除該帳戶,其通知仍會在一天後到期,但其來源、設定及登入工作階段(連同該工作階段記錄的 IP 位址和用戶代理)會保留至該帳戶被刪除為止,因為我們無法分辨被遺下的訪客帳戶與只是暫時未有使用的訪客帳戶。如訪客帳戶 12 個月未有使用,我們可按下文「未使用的帳戶」所述將其刪除。離開訪客帳戶前,請在 設定 → 刪除帳戶及資料 刪除該帳戶。
- 未使用的帳戶: 服務條款容許我們刪除在 12 個月內未曾在 App 內開啟且未有收到任何通知的帳戶及其資料:訪客帳戶會在不作通知的情況下刪除,因為我們無法聯絡其使用者;可復原的帳戶則只會在我們最少提前 30 日電郵通知與其連結的電郵地址後刪除。這是一項許可,並非保留期限:我們不承諾會刪除未使用的帳戶;在帳戶被刪除前,其資料會按本節所述保留。
刪除你的帳戶
你可隨時在 設定 → 刪除帳戶及資料 刪除你的帳戶。如屬可復原的帳戶,Zona 會先要求你確認身分。刪除程序會先停用你的來源密鑰,然後移除你的通知及其圖片、來源及密鑰雜湊值、報到及其記錄、「響到查看為止」設定、代理程式工作階段、裝置、推送通知登記及開發者筆記推送記錄、工作階段、偏好設定、勿擾時段排程、已儲存的篩選條件、個人檔案、用量計數及每日總數、診斷記錄及當機報告、Zona Plus 記錄(包括給予你帳戶的 Zona Plus)、即時動態密鑰、帳戶保安事件及已移除登入方式的記錄,最後刪除你的 Supabase Auth 帳戶及其電郵地址、密碼和登入方式。
你的帳戶刪除後,我們只會保留:
- 你的接受記錄,以單向雜湊值取代你的帳戶識別碼,並保留至你的帳戶刪除後六年;
- 有關刪除的最基本記錄,用以完成刪除程序及證明刪除已進行:你以往的帳戶識別碼、帳戶及刪除要求的狀態和日期、已移除項目的數目,以及任何移入你帳戶的訪客帳戶的記錄,這些記錄會在刪除後六年,連同可與其配對的接受記錄一併刪除;以及一項記錄刪除已完成的事件(該事件會在一年後刪除)。這些記錄均不包含你的電郵地址、通知或其他內容,亦不會連結至任何登入方式;
- Apple 在刪除後就你的訂閱傳送的記錄(例如你未有向 Apple 取消訂閱時的續訂),我們會在不包含任何 Zona 帳戶識別碼的情況下保留七年,詳見「資料保留期」;
- Supabase Auth 審計記錄中的項目(直至其滿一年為止)、在供應商記錄及備份中的資料(直至其到期為止),以及法律規定我們須保留的任何資料。
刪除 Zona 帳戶不會取消 Zona Plus 訂閱,請向 Apple 取消。只刪除 App 而不刪除帳戶,並不會刪除你的資料。
保安
我們採取適合本服務的措施保護個人資料,包括:所有連線均以 TLS 加密傳輸,並由我們的託管供應商對靜態資料進行加密;資料列層級保安,令每個帳戶只能存取其本身的資料;來源密鑰及即時動態密鑰從不以完整形式儲存(只儲存單向雜湊值,來源密鑰另加一段簡短前綴);以私人儲存空間存放圖片;限制內容大小、請求頻率及保留期;每個來源及密鑰均可獨立撤銷;進行敏感的帳戶變更前確認你的身分;以及只有營運者可存取正式運作系統。任何傳送或儲存方法均無法做到完全安全,我們亦無法保證絕對安全。請確保你的裝置及密鑰安全,並將任何保安漏洞報告至 terabasedevteam@gmail.com。
資料外洩事故
如保安事故影響你的個人資料,我們會進行調查並採取措施加以控制,並會在法律要求時,在沒有不當延誤的情況下通知你及有關監管機構。在香港,我們會依循個人資料私隱專員有關資料外洩事故通報的指引。
你的選擇
- 不允許推送通知亦可使用 Zona,收件匣仍會正常運作。
- 在 設定 關閉 訊息預覽,或更改裝置上的通知設定。
- 在 設定 的 開發者筆記 關閉開發者筆記的推送通知。
- 隨時重新命名或撤銷來源,或撤銷個別來源密鑰。
- 釘選、取消釘選或刪除個別通知,並可在通知畫面將通知輸出為文字或 JSON。
- 在裝置上登出,或從你的帳戶移除裝置。
- 在 App 內暫停或刪除報到、為每個來源開啟或關閉「響到查看為止」,以及從面板移除代理程式工作階段。
- 安裝代理程式掛鈎時不包括專案資料夾名稱(--no-project)及代理程式的訊息(預設不包括;--share-question 會加入);在裝置的設定中允許或關閉 Zona 的重要警示。
- 在 設定 → 刪除帳戶及資料 刪除你的帳戶。
你的權利
你的權利視乎你所在的地方而定。許多權利可直接在 App 內行使;其他事宜請電郵聯絡我們。
香港
根據《個人資料(私隱)條例》(第 486 章),你可查詢我們是否持有你的個人資料、要求取得有關資料的副本(查閱資料要求),以及要求我們更正有關資料(改正資料要求)。我們會在 40 日內回應。在條例容許的範圍內,我們可就查閱資料要求收取費用,但收費不會過高。
歐洲經濟區、英國及瑞士
你有權查閱你的個人資料、要求更正或刪除資料、限制或反對有關處理(包括基於我們正當利益的處理)、要求資料可攜,以及隨時撤回你的同意,而撤回同意不會影響撤回前已進行的處理。你亦有權向你居住或工作所在地,或你認為發生違規的地方的資料保障機構投訴。我們會在一個月內回應;在某些情況下,法律容許我們延長回應期限。
加州
如經《加州私隱權利法》修訂的《加州消費者私隱法》適用於我們處理你的個人資料,你有權知悉我們收集、使用及披露哪些個人資料、查閱這些資料、要求刪除或更正這些資料,並有權不因行使這些權利而受到歧視。我們按本政策所述的來源及目的,收集識別資料、商業資料(Zona Plus 購買記錄,包括價格、貨幣及店面,以及給予你帳戶的 Zona Plus 的記錄)、互聯網或其他電子網絡活動(保安及診斷記錄,包括當機報告)以及你傳送的內容,並為業務目的向上文所列的服務供應商披露這些資料。我們不會出售或分享個人資料,亦不會使用或披露敏感個人資料以推斷你的特徵。你可透過獲授權的代理人提出要求。
其他地方
如你居於其他地方,你或可根據當地法律享有類似權利,而我們會按該等法律的要求予以尊重。
如何提出要求
請電郵至 terabasedevteam@gmail.com,最好使用與你帳戶連結的電郵地址,並說明你的要求涉及哪個帳戶。在採取行動前,我們會核實要求確實由帳戶持有人提出,例如要求你確認只有帳戶持有人才會知道的資料,或在 App 內完成某個步驟。我們無法以電郵核實訪客帳戶,因此訪客帳戶請使用 App 本身的工具。如要求明顯缺乏根據或過度,或在法律容許的情況下,我們可拒絕有關要求,並會告知你原因。
兒童
Zona 不會詢問或記錄你的年齡。如你是家長或監護人,並相信你的子女向我們提供了你希望刪除的個人資料,請聯絡我們。當我們能夠識別有關帳戶,並信納要求是由你的子女,或由身為其家長或監護人的你提出,我們便會將其刪除。你的子女亦可隨時在 設定 → 刪除帳戶及資料 刪除帳戶。
自動化決策
Zona 不會純粹基於自動化處理而對你作出具有法律或類似重大影響的決定。Zona 會自動並以相同方式,對同一計劃的每個帳戶執行技術限制,例如用量限制、大小限制、計劃限制及保留期。
本政策的修改
我們可更新本政策。每個版本均有版本日期及生效日期。如我們作出重大修改,例如更改我們收集的資料、使用資料的原因、資料的接收者或保留期,我們會在修改生效前,透過 App、以電郵發送至與你帳戶連結的電郵地址,或在 zonanotify.app 通知你;當你下次使用包含該修改的 App 版本時,App 會要求你確認新政策;我們亦會發出法律規定的任何其他通知或徵求法律規定的任何同意。其他修改在我們公布時生效。
聯絡及投訴
如對私隱有任何查詢、要求或投訴,請電郵至 terabasedevteam@gmail.com 聯絡香港的 Terabase。請勿以電郵傳送密碼、完整來源密鑰、推送通知權杖、付款資料或真實通知內容。
如你不滿意我們的回應,可向香港個人資料私隱專員公署,或你所在地的資料保障機構投訴。