Commit Graph

5 Commits

Author SHA1 Message Date
ang3l12
ba6a61a5bf Fix alembic env crashing on URL-encoded password characters
Passing the DB URL through config.set_main_option() runs it through
ConfigParser, which treats '%' as interpolation syntax — so any password
character that URL-encodes to %xx ('!', '@', '#', ...) crashed migrations
('invalid interpolation syntax'). Build the engine directly from the URL
instead of routing it through the ini config.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 13:58:06 -06:00
ang3l12
45f1c56a52 Default MySQL image to mysql:8.0-debian
The Oracle Linux based mysql:8.4 image requires x86-64-v2 and fails on the
PESCO Docker host even with the Proxmox CPU type set to host. The Debian
build runs on baseline x86-64; MYSQL_IMAGE still allows overriding.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 13:54:39 -06:00
ang3l12
36ee982ca3 Make MySQL image configurable for CPUs without x86-64-v2
mysql:8.4 (Oracle Linux 9 build) aborts with 'Fatal glibc error: CPU does
not support x86-64-v2' on generic VM CPU types (kvm64/qemu64) and pre-2009
hardware. MYSQL_IMAGE env var (default mysql:8.4) lets such hosts run the
baseline-x86-64 mysql:8.0-debian build instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 13:49:50 -06:00
ang3l12
2c25fabd42 Fix MySQL init script: executable bit + scope shell options in subshell
Without the exec bit the MySQL entrypoint sources the script instead of
executing it, leaking set -euo pipefail into MySQL's own startup shell and
aborting first-time initialization (container exits -> unhealthy -> compose
dependency failure).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 13:45:27 -06:00
ang3l12
dea316b113 Initial commit: PESCO NCR system
Complete Non-Conformance Report system replacing the PowerApps/SharePoint
prototype: FastAPI + SQLAlchemy 2 (async) + Alembic + MySQL 8 backend,
React 18 + Vite + TypeScript + MUI frontend, Entra ID auth (MSAL / JWKS,
group-gated), Microsoft Graph delegated Mail.Send notifications (OBO),
six-stage workflow state machine with server-side enforcement, atomic
NCR-YYYY-NNNN numbering, attachments with camera capture, immutable
field-level audit trail, admin reopen, reports + CSV export, WeasyPrint
PDF traveler, Power BI reporting views + read-only DB user, documented
VISUAL ERP job-lookup stub, pytest suite (26 tests), docker-compose
deployment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 11:41:22 -06:00