Security
Draft, not legal advice. The owner of datty reviews this text, with a lawyer where needed, before datty opens to anyone outside the team.
Last updated: . Describes the datty software as it is built today and the website at https://datty.ai. datty is a working name.
In short
- datty is a local MCP server: a small program that runs on your own computer, started by your AI app. There is no datty server and no datty database.
- datty is read-only by design. It has no code that creates, changes, pauses or deletes anything in your ad accounts or store.
- datty has no security certification today. This page says what is done and what is not done yet.
Read-only by design
datty cannot change campaigns, budgets, bids or orders, and it cannot spend money. This is enforced in code and checked by automated tests in every build task:
- Google Ads: Google offers no read-only permission for the Google Ads API, so datty limits itself: the only API method in its code is GoogleAdsService.search (read-only report queries). A test scans all of datty's code and fails if any other Google Ads method, or any write call, appears.
- Meta Ads: datty sends only GET requests, and only to three allow-listed read paths of the Marketing API (your ad account, its campaigns and its insights). The setup guide asks for a token with only the ads_read permission.
- Shopify: datty sends only two named read queries (shop currency and time zone, and orders), plus the request for its short-lived access token. It needs read_orders and refuses to work with a token that has any write permission.
Certifications and compliance
datty has no SOC 2 report and no ISO 27001 certification today. No outside auditor has checked datty.
We do not claim that datty meets any privacy law on its own. What we can say is what datty does: it sends no personal data and no account data to the datty team, because there is no datty server to send it to (see What is kept). A legal review by the owner and a lawyer is still to come.
What is kept, where and for how long
Not kept
- Ad and order data: datty does not write it to disk and keeps no backups of it. It is fetched for each question and held in the computer's memory only while datty answers that question.
- Account details in memory: while datty is running, it remembers each account's id, currency and time zone (for Shopify, the shop's currency and time zone) so it does not ask again for every question. This is dropped when the login file changes, after an access error, and when your AI app stops datty.
- Short-lived access tokens: kept in memory only, never written to disk. For Shopify this is a token that lasts up to 24 hours.
Kept on your computer only
- Login files you create during setup: a Google token file and OAuth client file, a Meta token file and a Shopify credentials file (only the ones you set up), in a folder you choose. We suggest ~/.config/datty with permissions that only you can read (mode 600). On macOS and Linux, datty refuses a Google token file, Meta token file or Shopify credentials file that other users of the computer can read.
- Status file ~/.config/datty/status.json: the newest 20 error kinds, each with only a time, data mode, platform and error kind. No account ids, names, amounts, messages or tokens. You can switch it off with DATTY_STATUS_FILE=off.
How to delete everything
Delete datty's login files and status file (or the whole datty folder), remove datty from your AI app, and remove datty's access at Google, Meta and Shopify. The steps for each platform are in Remove datty and your data. Removing access and deleting files are separate steps: do both.
Encryption
- In transit: every request to Google, Meta and Shopify uses HTTPS (TLS). For Meta and Shopify, datty checks the server certificate on every connection, using the certificate list from the hash-locked certifi package, and has no setting that turns the check off; a failed check stops the request. Google Ads requests go through Google's official library, whose certificate checks datty does not change. A test fails if any code in datty turns certificate checks off.
- Files on your computer: datty does not encrypt its login files. They are protected by your computer's file permissions. Please turn on your computer's disk encryption (for example FileVault on a Mac or BitLocker on Windows).
- Separation between users: datty runs no shared service. Each install runs on its own computer with its own login files, so there is no shared datty system through which one user could reach another user's data.
Who can see your data
- Nobody at datty. Your account data and tokens never reach the datty team, because datty does not send them to any datty-operated server and has no telemetry, analytics or crash reports.
- Support never asks for your token or login files. The support report (python -m datty.doctor) hides tokens, secrets, home folder paths and full account ids, and opens no network connection.
How datty is built
- Locked dependencies: every package is pinned with a hash, and installs accept only packages whose hash matches.
- Known vulnerabilities: pip-audit checks every pinned package in every build task.
- Secret scanning: a scanner checks the code and the full git history for tokens, keys and real account ids.
- Read-only guard tests (see Read-only by design) and network tests that run the real server and record every host it tries to contact.
- Independent review: every build task is reviewed by a separate AI reviewer that did not write the code, against written acceptance criteria, before it is accepted.
- Automated tests: more than 1,900 automated tests (count on 30 October 2026), including tests for input checking, error messages that hide internals, logs that hide tokens and account ids, and text from ad accounts treated as data.
- Not done yet: no penetration test and no human security review by an outside firm. An independent review is on the owner's list before the first paying user; it is not booked yet.
Infrastructure
datty operates no servers for the product. The program runs on your computer and talks directly to Google, Meta and Shopify. The MCP connection to your AI app runs over standard input and output on your computer; the MCP server opens no network port. The one-time Google login helper, which you run yourself, briefly listens on your own computer (127.0.0.1) to receive Google's sign-in reply.
This website is a set of static pages hosted by Netlify at https://datty.ai. It loads no third-party code: its content security policy allows scripts, styles, fonts and images only from datty.ai and lets forms post only to datty.ai. The beta list form is a plain form handled by Netlify Forms on the same site; it uses a hidden honeypot field and Netlify's spam check, and no CAPTCHA script. No cookies are set by the pages.
AI apps and MCP
- datty runs on your computer and does not send your account data or tokens to datty-operated servers. Results you ask for are shared with the AI assistant you choose (for example Claude or ChatGPT) and are subject to its policies.
- datty does not train AI models and sends nothing to any AI provider itself. Your AI app sends your chat, including datty's results, to its provider. You can turn off model training in many AI apps: see Claude's help page and OpenAI's policy page.
- Prompt injection: text from your accounts, such as campaign names, is passed to your AI app only as data: control and direction-changing characters are removed, it is cut at 256 characters and it is labelled as not being instructions. An AI app may still read it, so check important actions yourself.
Platform statements
Google API Services User Data Policy
datty's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. datty uses Google user data only to answer the questions you ask, and moves results only to the AI app you run datty in.
Meta: data deletion instructions
datty stores no Meta data on any datty server, so there is nothing for us to delete. To remove datty and its access to your Meta ad account:
- Remove the datty entry for Meta from your AI app's settings and restart the app.
- Delete the Meta token file you created for datty. A running datty stops using it at the next question.
- Make the token unusable at Meta. Meta documents an API call that ends a system user token at once (Meta's system user page).
- Delete chats that contain datty results in your AI app, if you want them gone.
Questions: hello@datty.ai.
Shopify
datty needs only the read_orders permission and refuses any write permission. Its order query asks for order id, created time, cancelled time, test flag, currency, order total and refunded total. It requests no customer names, emails, phone numbers or addresses.
Report a security problem
If you think you found a security problem in datty, please email security@datty.ai. Please include:
- what you found and where (file, version or page),
- the steps to see it again,
- what someone could do with it,
- how we can reach you.
Please do not include real tokens, passwords or other people's data. Only test with your own accounts.
We read every report and reply as soon as we can. datty is a small team; we will publish a response time here once we have set one we can keep.
If you act in good faith, follow this page, do not access or change data that is not yours, do not disrupt anyone's service and give us reasonable time to fix the problem before you tell others, we will not take action against you for your research. This is a plain-language promise, not legal advice. Our machine-readable contact file is at .well-known/security.txt.
Sub-processors
datty has no servers that hold your data, so no company processes your ad or store data on datty's behalf. Companies that receive data on datty's behalf today (as stated by the owner; this list is still being completed):
- Namecheap: domain registration for datty.ai and forwarding of email sent to datty.ai addresses.
- Email mailbox provider: the mailbox that receives forwarded email (for example security reports) is not listed yet; it will be named here.
- Netlify: hosts this website and stores beta list entries (your email and the connector you ask for) through Netlify Forms. Netlify checks entries for spam with Akismet. See Privacy: beta list.
datty uses no analytics service and no payment processor today. A data processing agreement (DPA) will be available on request once datty offers paid plans.
Who runs datty
datty is run by ESS & LABS LLC, a Florida limited liability company. Address: 2164 Platinum Rd, Ste C, Apopka, FL 32703, United States. ESS & LABS LLC uses the name datty for this product; datty is not registered as a fictitious name yet.
Contact
Security problems: security@datty.ai. Everything else: hello@datty.ai. Please never send us your token, login or credentials files.
See also the privacy policy and the terms.