Use this checklist before treating a deployment as ready for daily use.
- D1 database created and
database_idcopied intoapps/api/wrangler.toml. - R2 bucket created.
- Queue created.
- Email Sending configured and
AUTH_EMAILbinding present. - Worker deployed successfully.
- Pages project connected to GitHub.
- Pages hostname protected by Cloudflare Access One-time PIN.
- Access Allow policy contains only the owner email.
APP_ORIGINpoints to the dashboard origin.API_ORIGINpoints to the Worker origin.AUTH_EMAIL_FROMis set outside the repository.- Custom domains and DNS records are configured if needed.
- Gmail API is enabled.
- OAuth consent screen is configured.
- OAuth client has the production callback URL.
- Scopes include
openid,email,profile, andhttps://www.googleapis.com/auth/gmail.send. - Owner can link Gmail and grant Gmail send permission after email sign-in.
- Dashboard email sign-in works with one-time link or code.
- Attempts with a non-owner email do not receive an access email.
- Gmail linking works after dashboard sign-in.
- Extension token can be created and revoked.
- Extension popup has API origin, extension token, sender email, and tracker warning preference.
- A Gmail compose window shows
Send tracked copies. - One tracked copy is sent per recipient.
- Dashboard shows message, recipient, open/click, and event rows.
- CSV export downloads successfully.
- Settings save successfully.
SESSION_SECRETis long and random.- Owner email, sender email, account IDs, and local absolute paths are not committed.
npm run privacy:scanpasses.- Extension tokens are revoked when no longer used.
- Retention period is set to the smallest practical value.
- Users understand that open events are approximate and can be triggered by proxies or scanners.