- Drop @supabase/supabase-js entirely; add drizzle-orm + postgres (porsager) driver - New packages/db: schema (pgSchema ordinarthur_os), client factory, migrate runner, drizzle-kit config - SQL migrations: 0000_init (pgcrypto + schema), 0001_jobs (jobs + job_search_criteria, no RLS) - Rewrite apps/api db module with DI symbols DB/DB_HANDLE + @InjectDb() decorator - Rewrite jobs.service.ts with Drizzle queries (upsert via onConflictDoUpdate, arrayOverlaps for stack filter) - Replace SUPABASE_* env vars with DATABASE_URL in env config + .env.example - Add docker-compose.yml (Postgres 16-alpine, dev only) - Add deploy/k8s/postgres.yaml (StatefulSet + PVC), migrate.job.yaml, updated secrets.template.yaml - Update all docs (README, PLAN, ARCHITECTURE, CLAUDE.md, AGENTS.md, packages/db/README.md) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
26 lines
662 B
Plaintext
26 lines
662 B
Plaintext
NODE_ENV=development
|
|
PORT=3000
|
|
|
|
# Single-user bearer (génère via `openssl rand -hex 32`)
|
|
API_BEARER_TOKEN=
|
|
|
|
# Postgres standalone (k3s ou local docker). Le schéma `ordinarthur_os`
|
|
# est géré par Drizzle, pas besoin de `search_path` dans l'URL.
|
|
DATABASE_URL=postgres://ordinarthur:changeme@localhost:5432/ordinarthur_os
|
|
|
|
# Phase 5+
|
|
MISTRAL_API_KEY=
|
|
MISTRAL_MODEL=mistral-small-latest
|
|
GROQ_API_KEY=
|
|
GROQ_STT_MODEL=whisper-large-v3-turbo
|
|
|
|
# Phase 4
|
|
GOOGLE_OAUTH_CLIENT_ID=
|
|
GOOGLE_OAUTH_CLIENT_SECRET=
|
|
GOOGLE_OAUTH_REDIRECT_URI=https://api.os.arthurbarre.fr/agenda/google/oauth/callback
|
|
ICAL_FEED_SECRET=
|
|
|
|
# Phase 6
|
|
TELEGRAM_BOT_TOKEN=
|
|
TELEGRAM_WEBHOOK_SECRET=
|