/ .env.secrets.example
.env.secrets.example
  1  # ─────────────────────────────────────────────────────────────────────────────
  2  # .env.secrets — API keys, tokens, and passwords
  3  # ─────────────────────────────────────────────────────────────────────────────
  4  # Production values are managed via SOPS (333Method-infra/secrets/production.yaml)
  5  # This file documents what keys are needed and provides placeholder values.
  6  # Loaded by src/utils/load-env.js (alongside .env and .env.agents)
  7  
  8  # ─── ZenRows (SERP Scraping) ────────────────────────────────────────────────
  9  ZENROWS_API_KEY=your_zenrows_api_key_here
 10  
 11  # ─── OpenRouter (Multi-model LLM Gateway) ───────────────────────────────────
 12  # Used by: All pipeline LLM calls (scoring, proposals, enrichment, autoresponder)
 13  # Claude Max orchestrator handles zero-cost calls separately via claude CLI.
 14  OPENROUTER_API_KEY=your_openrouter_api_key_here
 15  
 16  # ─── ZeroBounce (Email Validation) ─────────────────────────────────────────
 17  # Get key at https://app.zerobounce.net/api-credentials
 18  ZEROBOUNCE_API_KEY=your_zerobounce_api_key_here
 19  
 20  # ─── Email Service (Resend) ─────────────────────────────────────────────────
 21  RESEND_API_KEY=your_resend_api_key_here
 22  # Optional: Separate test API key for integration tests
 23  RESEND_TEST_API_KEY=your_resend_test_api_key_here
 24  RESEND_WEBHOOK_SECRET=whsec_...
 25  # BCC address for Trustpilot review invitations (added to report delivery emails)
 26  TRUSTPILOT_BCC_EMAIL=auditandfix.com+a2d3a72486@invite.trustpilot.com
 27  
 28  # ─── SMS Service (Twilio) ───────────────────────────────────────────────────
 29  TWILIO_ACCOUNT_SID=your_twilio_account_sid
 30  TWILIO_AUTH_TOKEN=your_twilio_auth_token
 31  TWILIO_PHONE_NUMBER=+1234567890
 32  
 33  # Twilio Test Credentials (for integration testing)
 34  # Optional: Separate test credentials that don't send real SMS
 35  # Get from: https://www.twilio.com/console/project/settings
 36  TWILIO_TEST_ACCOUNT_SID=your_test_account_sid
 37  TWILIO_TEST_AUTH_TOKEN=your_test_auth_token
 38  
 39  # ─── Keyword Validation (DataForSEO) ────────────────────────────────────────
 40  # Sign up at https://dataforseo.com/
 41  DATAFORSEO_LOGIN=your_email@example.com
 42  DATAFORSEO_PASSWORD=your_api_password
 43  
 44  # ─── PayPal Payment Integration ─────────────────────────────────────────────
 45  # Sign up at https://developer.paypal.com/
 46  # Mode: 'sandbox' for testing, 'live' for production
 47  PAYPAL_MODE=sandbox
 48  PAYPAL_CLIENT_ID=your_paypal_client_id_here
 49  PAYPAL_CLIENT_SECRET=your_paypal_client_secret_here
 50  
 51  # PayPal Sandbox Test Accounts
 52  # Create at: https://developer.paypal.com/dashboard/accounts
 53  PAYPAL_SANDBOX_BUYER_EMAIL=sb-abc123@personal.example.com
 54  PAYPAL_SANDBOX_BUYER_PASSWORD=your_sandbox_buyer_password
 55  
 56  # ─── Exchange Rate API (Fixer.io) ───────────────────────────────────────────
 57  # Free tier: 1,000 requests/month. Used for weekly repricing.
 58  FIXER_API_KEY=your_fixer_api_key_here
 59  
 60  # ─── Google Sheets API (Outreach Review Workflow) ────────────────────────────
 61  # Setup instructions:
 62  # 1. Create project at https://console.cloud.google.com/
 63  # 2. Enable Google Sheets API
 64  # 3. Create Service Account with Editor role
 65  # 4. Generate JSON key and extract client_email + private_key
 66  # 5. Create a blank Google Sheet and share with service account as Editor
 67  # 6. Copy the spreadsheet ID from the URL (between /d/ and /edit)
 68  # IMPORTANT: Keep \n characters in GOOGLE_SHEETS_PRIVATE_KEY
 69  GOOGLE_SHEETS_CLIENT_EMAIL=your-service-account@project-id.iam.gserviceaccount.com
 70  GOOGLE_SHEETS_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY_HERE\n-----END PRIVATE KEY-----\n"
 71  GOOGLE_SHEETS_FOLDER_ID=optional-folder-id-for-organizing-sheets
 72  
 73  # ─── Cloudflare Worker URLs ─────────────────────────────────────────────────
 74  # Set after deploying Workers (see workers/*/wrangler.toml for deploy instructions)
 75  #
 76  # Outreach pipeline workers (333Method):
 77  UNSUBSCRIBE_WORKER_URL=https://unsubscribe-worker.auditandfix.workers.dev
 78  EMAIL_EVENTS_WORKER_URL=https://resend-webhook-worker.auditandfix.workers.dev
 79  #
 80  # PayPal webhook worker — receives async payment events from PayPal (PAYMENT.CAPTURE.COMPLETED etc.)
 81  # and stores them in R2 for polling by src/payment/poll-paypal-events.js.
 82  # Two separate deployments to isolate sandbox events from live events:
 83  #   prod:  workers/paypal-webhook/ (wrangler deploy)          → paypal-events R2 bucket
 84  #   test:  workers/paypal-webhook/ (wrangler deploy --env test) → paypal-events-test R2 bucket
 85  # Configure in PayPal Developer Dashboard → your app → Webhooks:
 86  #   Live app  → https://paypal-webhook-worker.auditandfix.workers.dev/webhook/paypal
 87  #   Sandbox app → https://paypal-webhook-worker-test.auditandfix.workers.dev/webhook/paypal
 88  PAYPAL_EVENTS_WORKER_URL=https://paypal-webhook-worker.auditandfix.workers.dev
 89  
 90  # ─── Security Secrets ───────────────────────────────────────────────────────
 91  # Unsubscribe link HMAC signing key (32+ chars recommended)
 92  # Generate: openssl rand -hex 32
 93  UNSUBSCRIBE_SECRET=change-this-to-a-random-32-char-string
 94  
 95  # ─── Audit&Fix.com Sales Page API ───────────────────────────────────────────
 96  # auditandfix-api worker handles purchase initiation and report delivery.
 97  # Two separate deployments:
 98  #   prod:  workers/auditandfix-api/ (wrangler deploy)          → live PayPal + prod KV
 99  #   test:  workers/auditandfix-api/ (wrangler deploy --env test) → sandbox PayPal + test KV
100  # The PHP sales page routes to the correct worker based on ?sandbox=1 query param.
101  AUDITANDFIX_WORKER_URL=https://auditandfix-api.auditandfix.workers.dev
102  AUDITANDFIX_WORKER_SANDBOX_URL=https://auditandfix-api-test.auditandfix.workers.dev
103  # Shared secret between PHP sales page and CF worker (both environments can use same value)
104  # Generate: openssl rand -hex 32
105  AUDITANDFIX_WORKER_SECRET=your-shared-secret
106  AUDITANDFIX_SENDER_EMAIL=reports@auditandfix.com
107  
108  # ─── NopeCHA CAPTCHA Solver ─────────────────────────────────────────────────
109  # https://nopecha.com — 100 solves/day free
110  # NOPECHA_API_KEY=your_nopecha_api_key_here
111  
112  # ─── End-to-End Test Credentials ────────────────────────────────────────────
113  TEST_E2E_URL=https://yoursite.com/e2e-test-page-????????.php
114  TEST_E2E_KEYWORD=site:yoursite.com/terms
115  TEST_E2E_PASSWORD=change-this-to-a-random-password
116