BEXO ERP Docs

BEXO ERP — Completion Status & Go-Live Handoff (2026-05-29)

This is the authoritative handoff. The build host is 192.168.0.46 (SERVER-11), API runs as scheduled task BEXO_API_Prod on http://127.0.0.1:5002 against SQL Server (DB BEXO_ERP).

✅ COMPLETE (code / test / automation — everything an engineer can finish)

  • All P0 bugs fixed & verified (payment method string/int, UAE-timezone payment date, trial-balance crash-under-load).
  • UI: all 68 views clean (live walkthrough 72/72); interactive UI agents P0=0.
  • API: all 5 E2E workflows P0=0; security scans green; RBAC + security headers + HTTPS endpoint.
  • Error handling: global middleware, clean responses, no stack-trace leaks (verified live).
  • Load test: 0 errors under sustained 25-worker load, API stays up. (products list ~16s = 8848-row unpaginated payload + small VM; not a code defect — see below.)
  • Performance: OutputCache on hot company-scoped GETs; production JSON no longer pretty-printed.
  • Automated backups: task BEXO_DB_Backup (SYSTEM, daily 02:00) — BACKUP + RESTORE VERIFYONLY + 7-day retention to C:\Backups\BEXO_SQL; off-box copies in NAS BEXO_Deploy/db_backups/.
  • Health watchdog: task BEXO_Health_Watchdog (every 5 min) — checks /health, auto-restarts on failure, writes C:\Tools\logs\bexo_alerts.log.
  • Deployability proven: deployed & functionally tested on a clean Windows Server 2022 (192.168.0.66) — login/create/read all worked; needs only the .NET 8 runtime. (Test instance was fully removed afterward.)
  • Source mirrored to NAS (this is the source of truth): full tree, secrets redacted, verified MD5-identical to the build host. Ops scripts in BEXO_Deploy/ops_scripts/.

❌ REMAINING for full production go-live (human / infrastructure — NOT code)

Do these in order on the chosen production server: 1. Provision the server — dedicated box (off the shared dev VM). Install .NET 8 ASP.NET Core Runtime + SQL Server. Ensure ample disk (the dev VM ran <10% free). 2. SQL Server login — create a login for the API's service account (or a SQL login) with db_owner on BEXO_ERP. (On the .66 trial, marketing2 was not a SQL login — this must be set up.) 3. Migrate data — restore the latest verified backup from BEXO_Deploy/db_backups/BEXO_ERP_*.bak onto the prod SQL Server (RESTORE DATABASE BEXO_ERP FROM DISK=...). Confirm row counts (Customers/Products/Invoices). 4. Deploy the API — copy the published API (framework-dependent) to the server; set appsettings.json: DatabaseProvider=SqlServer, real ConnectionStrings:DefaultConnection, and a real Jwt:SigningKey (256-bit; or env var BEXO_JWT_SIGNING_KEY). Register it as a Windows service / scheduled task. (NAS mirror appsettings has these REDACTED — set real values on the server only, never commit them.) 5. Real SSL certificate + domain — replace the self-signed cert; set BEXO_API_CERT_PATH/BEXO_API_CERT_PWD. Bind the public hostname; open the firewall to LAN/clients only. 6. Human UAT — real users run a full month-end / payroll / invoicing cycle in parallel with the old system for ~2 weeks. 7. Certified penetration test — independent 3rd party. 8. Carry over the backup + health-watchdog tasks to the prod server.

Known minor items (non-blocking, optional)

  • products list returns all 8848 rows unpaginated — point the WPF at /api/Products/paged for snappier loads.
  • production_receipt P1 (receipt DTO field), q2c convert-flow P1s, memory-soak P1 (run an 8h soak to confirm vs GC noise).

Honest readiness verdict

  • Code / application: complete and verified.
  • Backed-up pilot: safe to release now.
  • Full cold production: ready after items 1–7 above. Those cannot be done by automation — they need server provisioning + a real cert + human sign-off.