The short version
Your shopping lists and marketplace data are never sent to the developer. If you connect Google Drive, OAuth authorization and refresh credentials pass through a developer-operated token-exchange service hosted by Netlify. The service adds the confidential Google client credential and forwards the request to Google. It does not log or store your OAuth credentials or receive your lists, marketplace login token, or Drive files.
What the extension stores, and where
Saved lists and settings — your shopping lists, notes, quantities, budgets, and panel settings — are stored in the browser’s extension storage (chrome.storage.local) on your own computer. They are not synced or uploaded anywhere by default.
Optional Google Drive backup. If you choose to connect Google Drive, the extension keeps one backup file (and, if you use that feature, per-list spreadsheets) up to date in your own Google Drive. It uses Google’s drive.file permission, which means it can only see and touch files it created itself — never anything else in your Drive. The developer cannot open your Drive or read your backup file through that permission. Backup contents travel directly between the extension and Google Drive. When Google Drive backup is connected, the extension also stores a Google refresh token on this device — in the extension’s own browser storage, never sent anywhere except Google’s token service via the token exchange described below — so backups can continue without re-prompting you. Disconnecting deletes it from this device and asks Google to revoke it.
Google Drive authentication
Google’s rules for this kind of app mean the extension cannot keep Google’s OAuth client secret inside the install package. When you connect Google Drive (or when a saved connection refreshes), the extension uses a developer-operated token-exchange service on this site:
https://tefa-odyssey-helper.netlify.app/.netlify/functions/oauth-token
- Data sent: authorization code, PKCE verifier, redirect URI, or refresh token (plus the public client id needed for the grant).
- Purpose: exchange those credentials for short-lived Google access tokens.
- Recipients: the Netlify-hosted service and Google.
- Retention: the function code does not persist or log them; it adds the confidential client credential, forwards the request to Google, and returns the token response to the extension.
- Everything else — including backup contents — travels directly between the extension and Google Drive. Lists, notes, budgets, and your Odyssey marketplace login token are never sent to this service.
The marketplace login token
To search on your behalf, and to mark list items that are already in your cart or already ordered, the extension reads the login token your existing marketplace session already holds in the page, and sends it only to the marketplace’s own API — the same place the marketplace website sends it. The token is never stored by the extension, never logged, and never sent to the token-exchange service or any other destination. The extension only ever reads marketplace data your logged-in account can already see (search results, category tree, cart contents, and order history). Cart and order status are kept in memory for the current browser session only — they are not written into the extension’s saved lists. The extension never adds to your cart, never checks out, and never changes account settings.
What the extension does not do
- No analytics and no tracking of any kind.
- No ads.
- No selling or sharing of your data with advertisers or data brokers.
- No list contents or marketplace data are sent to the developer.
- Servers contacted: the Odyssey marketplace (and its API); Google (accounts, Drive, token revoke); and, only for optional Drive connect/refresh, the Netlify-hosted token-exchange service on this site.
Deleting your data
- Local data: removing the extension (
chrome://extensions→ Remove) deletes everything it stored in the browser. - Drive backup: delete the
odyssey-helper-backup.jsonfile (and the “Odyssey Helper backups” folder) from your Google Drive. You can also revoke the extension’s Drive access at any time at myaccount.google.com under Security → Third-party apps with account access.
Contact
Questions about this policy or your data: email thin.branch7129@fastmail.com.
This extension is unofficial and is not affiliated with Odyssey, the Texas Comptroller, or TEA. It only works on the Texas TEFA marketplace.