2026-04-16 00:51:44 -04:00
|
|
|
# ─── Database (Supabase pooled connection) ────────────────────
|
|
|
|
|
DATABASE_URL="postgresql://postgres.<ref>:<password>@aws-0-us-east-1.pooler.supabase.com:6543/postgres"
|
|
|
|
|
|
|
|
|
|
# ─── Object Storage (Supabase Storage, S3-compatible) ─────────
|
|
|
|
|
STORAGE_ENDPOINT="https://<ref>.supabase.co/storage/v1/s3"
|
|
|
|
|
STORAGE_REGION="us-east-1"
|
|
|
|
|
STORAGE_ACCESS_KEY=""
|
|
|
|
|
STORAGE_SECRET_KEY=""
|
|
|
|
|
STORAGE_BUCKET="echos-ocr"
|
|
|
|
|
|
|
|
|
|
# ─── Upstash QStash (job queue) ───────────────────────────────
|
|
|
|
|
QSTASH_TOKEN=""
|
|
|
|
|
QSTASH_CURRENT_SIGNING_KEY=""
|
|
|
|
|
QSTASH_NEXT_SIGNING_KEY=""
|
|
|
|
|
|
|
|
|
|
# ─── Vercel AI Gateway ────────────────────────────────────────
|
2026-03-11 12:05:38 -04:00
|
|
|
AI_GATEWAY_API_KEY=""
|
2026-03-11 10:24:15 -04:00
|
|
|
|
2026-04-16 00:51:44 -04:00
|
|
|
# ─── Auth.js (required — generate with: npx auth secret) ─────
|
Add SaaS foundation: Auth.js, dashboard shell, org model, auto-assignment
Major architectural upgrade preparing Echo OCR for self-hosted SaaS deployment:
- Auth: Built-in Auth.js v5 with credentials + Authentik OIDC SSO, JWT sessions,
middleware route protection, login/signup/setup pages, registration API
- UI: Dashboard layout with collapsible sidebar nav, AppShell wrapper, route
groups for (dashboard) and (auth), new pages for events/people/reports
- Schema: Auth.js tables (Account, Session, VerificationToken), Organization,
OrgMember, Location, CollectionDay, Invitation, SystemConfig, ApiKey models;
proper User relations to ResponseCard/ActivityLog/Notification
- Permissions: Role hierarchy (owner/admin/editor/reviewer/viewer) with
action-based permission map and requirePermission/requireAuth helpers
- Onboarding: Multi-step setup wizard for first-user bootstrap (account, org,
location) with SystemConfig tracking
- Events: CollectionDay model with rrule support for recurring church services
- Auto-assign: Event-aware card assignment engine replacing getPreviousSunday()
- Migration: seed-migration.ts script for upgrading existing deployments
Made-with: Cursor
2026-04-15 00:59:38 -04:00
|
|
|
AUTH_SECRET=""
|
2026-04-16 00:51:44 -04:00
|
|
|
AUTH_URL="https://echoocr.yourdomain.com"
|
Add SaaS foundation: Auth.js, dashboard shell, org model, auto-assignment
Major architectural upgrade preparing Echo OCR for self-hosted SaaS deployment:
- Auth: Built-in Auth.js v5 with credentials + Authentik OIDC SSO, JWT sessions,
middleware route protection, login/signup/setup pages, registration API
- UI: Dashboard layout with collapsible sidebar nav, AppShell wrapper, route
groups for (dashboard) and (auth), new pages for events/people/reports
- Schema: Auth.js tables (Account, Session, VerificationToken), Organization,
OrgMember, Location, CollectionDay, Invitation, SystemConfig, ApiKey models;
proper User relations to ResponseCard/ActivityLog/Notification
- Permissions: Role hierarchy (owner/admin/editor/reviewer/viewer) with
action-based permission map and requirePermission/requireAuth helpers
- Onboarding: Multi-step setup wizard for first-user bootstrap (account, org,
location) with SystemConfig tracking
- Events: CollectionDay model with rrule support for recurring church services
- Auto-assign: Event-aware card assignment engine replacing getPreviousSunday()
- Migration: seed-migration.ts script for upgrading existing deployments
Made-with: Cursor
2026-04-15 00:59:38 -04:00
|
|
|
|
2026-04-16 00:51:44 -04:00
|
|
|
# ─── OIDC SSO (optional) ──────────────────────────────────────
|
Add SaaS foundation: Auth.js, dashboard shell, org model, auto-assignment
Major architectural upgrade preparing Echo OCR for self-hosted SaaS deployment:
- Auth: Built-in Auth.js v5 with credentials + Authentik OIDC SSO, JWT sessions,
middleware route protection, login/signup/setup pages, registration API
- UI: Dashboard layout with collapsible sidebar nav, AppShell wrapper, route
groups for (dashboard) and (auth), new pages for events/people/reports
- Schema: Auth.js tables (Account, Session, VerificationToken), Organization,
OrgMember, Location, CollectionDay, Invitation, SystemConfig, ApiKey models;
proper User relations to ResponseCard/ActivityLog/Notification
- Permissions: Role hierarchy (owner/admin/editor/reviewer/viewer) with
action-based permission map and requirePermission/requireAuth helpers
- Onboarding: Multi-step setup wizard for first-user bootstrap (account, org,
location) with SystemConfig tracking
- Events: CollectionDay model with rrule support for recurring church services
- Auto-assign: Event-aware card assignment engine replacing getPreviousSunday()
- Migration: seed-migration.ts script for upgrading existing deployments
Made-with: Cursor
2026-04-15 00:59:38 -04:00
|
|
|
AUTHENTIK_ISSUER=""
|
|
|
|
|
AUTHENTIK_CLIENT_ID=""
|
|
|
|
|
AUTHENTIK_CLIENT_SECRET=""
|
|
|
|
|
|
2026-04-16 13:51:17 -04:00
|
|
|
# ─── Brevo transactional email ────────────────────────────────
|
|
|
|
|
BREVO_API_KEY=""
|
|
|
|
|
EMAIL_FROM_NAME="Echo OCR"
|
|
|
|
|
EMAIL_FROM_ADDRESS="mars@noreply.stillwell.cloud"
|
Add onboarding wizard, email verification, integration architecture, and settings restructure
- Auto-sign-in after registration instead of redirect to login
- Email verification system with token generation, send/confirm API routes, and persistent banner
- 7-step onboarding wizard (org, location, services, upload source, AI, integrations, complete)
- Middleware redirects owners with incomplete onboarding to /onboarding
- Integration provider plugin architecture with registry and 6 providers (Planning Center, Monday.com, Airtable, Google Sheets, Webhook, CSV Export)
- Full integration CRUD API with test, sync, fields, and OAuth authorize/callback routes
- Refactored fireIntegrationEvent to use Integration model with legacy AppSettings fallback
- Migration script for existing Monday.com/webhook config to Integration rows
- Settings page restructured from monolithic 1290-line file into focused sub-routes with section navigation
- Integration hub UI with provider tiles, connect flow, and individual config pages
- Post-onboarding contextual guidance cards on dashboard with dismissible hints
- Schema: Integration model, onboardingComplete/onboardingStep on Organization, dismissedHints on OrgMember
Made-with: Cursor
2026-04-15 02:29:13 -04:00
|
|
|
|
2026-04-16 00:51:44 -04:00
|
|
|
# ─── Vercel Cron Secret ────────────────────────────────────────
|
|
|
|
|
# Vercel auto-sets this on Pro. Used to authenticate cron job requests.
|
|
|
|
|
CRON_SECRET=""
|
|
|
|
|
|
2026-04-16 21:34:26 -04:00
|
|
|
# ─── Public site URL (used for OG metadata, canonical links) ─
|
|
|
|
|
NEXT_PUBLIC_SITE_URL="https://echoocr.com"
|
|
|
|
|
|
2026-04-16 00:51:44 -04:00
|
|
|
# ─── Environment indicator ────────────────────────────────────
|
Add SaaS foundation: Auth.js, dashboard shell, org model, auto-assignment
Major architectural upgrade preparing Echo OCR for self-hosted SaaS deployment:
- Auth: Built-in Auth.js v5 with credentials + Authentik OIDC SSO, JWT sessions,
middleware route protection, login/signup/setup pages, registration API
- UI: Dashboard layout with collapsible sidebar nav, AppShell wrapper, route
groups for (dashboard) and (auth), new pages for events/people/reports
- Schema: Auth.js tables (Account, Session, VerificationToken), Organization,
OrgMember, Location, CollectionDay, Invitation, SystemConfig, ApiKey models;
proper User relations to ResponseCard/ActivityLog/Notification
- Permissions: Role hierarchy (owner/admin/editor/reviewer/viewer) with
action-based permission map and requirePermission/requireAuth helpers
- Onboarding: Multi-step setup wizard for first-user bootstrap (account, org,
location) with SystemConfig tracking
- Events: CollectionDay model with rrule support for recurring church services
- Auto-assign: Event-aware card assignment engine replacing getPreviousSunday()
- Migration: seed-migration.ts script for upgrading existing deployments
Made-with: Cursor
2026-04-15 00:59:38 -04:00
|
|
|
NEXT_PUBLIC_ENV=""
|