18e346d67b
Stand up the DB-first CRM backbone (architecture pivot: Postgres is the source of truth, Google Sheets becomes a one-way downstream mirror). - backoffice/ stack: smb-db (Postgres 16) + smb-crm (Flask/waitress service). - Schema mirrors the six Sheet tabs (clients, leads, projects, activity_log, bookings, invoices) with typed columns + updated_at triggers. - Service-account Sheets client (PyJWT) for the one-time import + future mirror. - import_from_sheets.py: idempotent seed of Postgres from the live Sheets. - Read dashboard (Leads & Clients tables) at onboard.mivanchenko.de/crm, behind the existing Caddy basic-auth; JSON API reads straight from Postgres. Deployed + verified: import seeded DB, dashboard/API live, no-auth blocked, onboarding form unaffected. Add/edit/delete + DB->Sheets sync + n8n ingest swap are the next steps. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
24 lines
267 B
Plaintext
24 lines
267 B
Plaintext
# dependencies / build
|
|
node_modules/
|
|
dist/
|
|
.astro/
|
|
*.log
|
|
|
|
# secrets — never commit credentials
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
*.secret
|
|
credentials/
|
|
.secrets/
|
|
stacks/**/.env
|
|
backoffice/secrets/
|
|
|
|
# n8n local data
|
|
n8n/.n8n/
|
|
n8n/*-credentials.json
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|