Skip to content

v0.1.0 - Read-only by construction

Choose a tag to compare

@gulmezeren2-byte gulmezeren2-byte released this 14 Jul 12:23
· 86 commits to main since this release

First public release.

erp-report-engine produces autonomous weekly HTML reports straight from the SQL database behind an ERP — with the security model as the headline feature:

  • Read-only by construction: one guarded code path to the database; single-statement SELECT/WITH only; comments, EXEC, SELECT INTO and 14 write/DDL keywords rejected before any connection. 8 injection attempts covered by tests.
  • Full SQL audit trail shipped inside every report (statement, parameters, rows, timing).
  • Semantic profiles: YAML contracts mapping ERP schemas to canonical entities — generic (demo) and logo_tiger (Logo Tiger / GO on MSSQL) included.
  • Self-auditing extraction: data-quality gate (duplicates, bad dates, negative totals, ship-before-order) + independent COUNT(*) source reconciliation.
  • Honest KPIs: ISO-week revenue / orders / on-time% / stock-cover vs an 8-week baseline; the current partial week is never plotted.
  • Driver-attributed findings and run-state memory ("3rd consecutive weekly decline").
  • Secrets via environment variables only — the loader refuses config files with embedded passwords.

Quickstart (no ERP needed): python -m erp_report_engine init-demo && python -m erp_report_engine run -c config.demo.yaml