From 97cce8c755b26f50b602877fc347add726f29ac3 Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Wed, 27 May 2026 15:32:15 -0400 Subject: [PATCH] docs(billing): record NexaCloud surgical deploy (inert; .env + Cursor WIP preserved) --- ...2026-05-27-fusion-billing-session-handoff.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/superpowers/2026-05-27-fusion-billing-session-handoff.md b/docs/superpowers/2026-05-27-fusion-billing-session-handoff.md index e48f4228..d5d068d0 100644 --- a/docs/superpowers/2026-05-27-fusion-billing-session-handoff.md +++ b/docs/superpowers/2026-05-27-fusion-billing-session-handoff.md @@ -120,11 +120,18 @@ All four chunks of #2 are now built. The brainstorm "which slice" question resol `nexacloud_dsn`, all charges `plan_id` NULL (rating cron no-op), no webhooks queued (dispatch cron no-op), inbound API 401s with no key configured. Synced to `/opt/odoo/custom-addons` + `-i` via the restart-safe recipe. -- **NexaCloud: NOT deployed (deliberately).** `deploy.sh` does `rsync --delete` of the - **local working tree** then `--no-cache` rebuild — it would ship the concurrent - **uncommitted Cursor WIP** (7 files) to prod. My 2b/2c is also feature-flagged OFF and - the app wasn't boot-tested. Deploy only AFTER: Cursor's WIP is committed/finished, the - app boots clean, and `ODOO_BILLING_*` config is set (otherwise it's inert anyway). +- **NexaCloud (prod, `vps.nexasystems.ca` / 192.168.1.250): DEPLOYED — INERT.** Did NOT + use `./deploy.sh` (it `rsync --delete`s the working tree → would have shipped the + concurrent **uncommitted Cursor WIP** (7 files) AND wiped the gitignored prod `.env` + files). Instead deployed **surgically**: rsync of ONLY my 6 committed billing files (no + `--delete`; `.env` + Cursor's files untouched), `docker compose build backend`, + **boot-tested in a throwaway container** (`run --rm --no-deps backend python -c "import + app.main"` → BOOT_OK) before swapping, then `up -d backend`. `nexacloud-api` healthy, + `/health` OK. Feature OFF: `ODOO_BILLING_ENABLED` unset → `/billing/webhooks/central` + returns 404 and no usage is pushed. Activate later by setting `ODOO_BILLING_*` in + `/opt/nexacloud/.env` (+ compose env passthrough) once the Odoo side is wired. + **NOTE:** Cursor's 7-file WIP remains uncommitted locally and was never deployed — when + Cursor finishes, a normal `./deploy.sh` will ship it (and re-sync `.env`). **Remaining before go-live (gated on infra / ops you do):** 1. Grant the read-only DSN (`fusion_billing.nexacloud_dsn`) — see the module README — then