hm_ai_qc_report_tool/core
nickviljoen 84326352b2 Phase 1: replace local username/password auth with Azure AD SSO
Lifted JWT-cookie auth pattern from the AI QC sibling project:
  core/auth/middleware.py validates Azure AD JWTs and stores them in
  an httpOnly cookie (hm_aiqc_auth_token). Tenant membership is
  enforced by JWTValidator's tid check, which is sufficient for the
  tenant-wide access policy chosen for this project.

  templates/login.html now drives an MSAL.js popup that POSTs the
  ID token to /auth/login. base.html exposes Azure config to all
  pages so the logout button can also clear the MSAL session.

  app.py's @before_request now checks the JWT cookie and exposes
  g.user; modules read user identity via core.auth.current_user_email
  so usage logs and created_by columns now record the signed-in
  user's email rather than a session value.

  Legacy username/password code removed: top-level auth_middleware.py,
  jwt_validator.py, deploy/generate_password.py.
2026-05-09 13:59:29 +02:00
..
auth Phase 1: replace local username/password auth with Azure AD SSO 2026-05-09 13:59:29 +02:00
health Phase 0: bootstrap Alembic, add /health, prep for Dev/Prod cutover 2026-05-09 13:47:54 +02:00
models Phase 0: bootstrap Alembic, add /health, prep for Dev/Prod cutover 2026-05-09 13:47:54 +02:00
services Split input/output token tracking; refresh provider pricing table 2026-04-22 14:40:13 +02:00
utils Fix batch QC: add Flask app context to ThreadPoolExecutor child threads 2026-04-16 15:20:56 +02:00
__init__.py Add modular architecture, core framework, and web UI 2026-02-25 11:39:04 +02:00