Remove Google Sheets mirror entirely (#13)
Test backoffice (smb-crm) / test (push) Has been cancelled

Postgres is now the sole source of truth: delete sheets.py and
import_from_sheets.py, strip mirror_entity/mirror_async/_mirror_worker and
POST /api/sync from app.py, drop the tab/mirror keys from db.py's TABLES.
Re-point n8n/renewal-reminder.json at the CRM's own HTTP API (GET
/api/clients, POST /api/activity_log) instead of the Sheets nodes, and drop
SHEET_ID/GOOGLE_SA_JSON from deploy env/compose and requests from
requirements.txt (PyJWT stays — still used by booking_api.py). Updates
docs/README/playbooks accordingly and closes the old #5 (atomic mirror) as
moot.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 11:29:57 +02:00
parent 16500c4392
commit 319218ce21
18 changed files with 76 additions and 451 deletions
+6 -3
View File
@@ -12,7 +12,6 @@
**CRM / back office**
- **#2** Decouple tier from business type → hosting/plan model; realign onboarding form + workflow. `enhancement` `crm`
- **#3** Extend back-office CRUD beyond Leads & Clients (projects, bookings, invoices, activity). `enhancement` `crm`
- **#5** Make the DB→Sheets mirror atomic (no brief empty-sheet window). `tech-debt` `crm`
**Booking**
- **#7** Proper Orders flow + Orders table/tab (pizzeria demo posts into Leads as a stop-gap). `enhancement` `booking`
@@ -41,8 +40,12 @@
exposed more broadly than Caddy basic-auth + host security.
## Done
- [x] 2026-07-15**Credentials in the CRM**: `credentials` entity (never mirrored to Sheets,
`X-CRM-Token`-gated even to read), dashboard Credentials tab with masked value + reveal/copy;
- [x] 2026-08-04**Cut Google Sheets entirely** (#13): Postgres is now the sole source of
truth — deleted the DB→Sheets mirror, the Sheets client, and the one-time importer;
`renewal-reminder.json` reads from the DB API instead of the Sheets mirror. Moots #5
(atomic-mirror tech-debt, closed as no longer applicable).
- [x] 2026-07-15 — **Credentials in the CRM**: `credentials` entity (`X-CRM-Token`-gated even to
read), dashboard Credentials tab with masked value + reveal/copy;
`n8n/onboarding.json` now persists the auto-generated EA provider password. Shipped live.
- [x] 2026-07-15 — **Gitea Actions deploy pipeline** (backoffice): self-hosted `homelab-runner`
(`act-runner` systemd service), `workflow_dispatch` `deploy-backoffice.yml` that syncs