Phase 9: Admin completion, reconcile, notifications, integrity, backups #49

Merged
spencerm merged 3 commits from phase-9 into main 2026-10-27 20:54:47 +00:00
3 Commits
Author SHA1 Message Date
spencermandClaude Opus 5.5 8528e38448 ci: re-run after two e2e jobs collided on the CI stack name
ci / frontend (pull_request) Successful in 51s
ci / server (pull_request) Successful in 11m12s
ci / image (pull_request) Skipped
ci / e2e (pull_request) Successful in 4m7s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 14:18:52 -06:00
spencermandClaude Opus 5.5 7a43236630 deps: pypdf 6.21.1 to 6.21.2
ci / frontend (pull_request) Successful in 52s
ci / server (pull_request) Successful in 11m16s
ci / image (pull_request) Skipped
ci / e2e (pull_request) Failing after 34s
The CI dependency scan flags GHSA-6c7f-9265-g8fw, GHSA-jr96-gvgh-j3r4
and GHSA-gmh7-3g9r-mjh5 against 6.21.1, all fixed in 6.21.2.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 14:05:18 -06:00
spencermandClaude Opus 5.5 a82e056b6a Phase 9: Admin completion, reconcile, notifications, integrity, backups
ci / frontend (pull_request) Successful in 1m11s
ci / server (pull_request) Successful in 12m2s
ci / image (pull_request) Skipped
ci / e2e (pull_request) Successful in 6m1s
Admin: Departments (name and stations; add shows the three groups IT must
create), Profiles (welder stamp, station limits, active) with a CSV import
that previews and applies only when clean, Checklists (weld and plain),
Security (session, lockout and rate-limit settings with bounds, alerts for
the last 24 hours, the integrity result), Access log with filters and a
guarded CSV, Who is in, Stamp check, Notifications, and the employeeID
flags. Every Admin change is audited.

Worker: ad-reconcile (nightly and on "refresh from AD now"), session-refresh
(15 minutes), integrity (seals, asset hashes, missing and orphan files, the
audit chain), backup-check, notify-send and notify-digest. Notifications
route per event type to AD groups, users, mailboxes or the department
Supervisor group, immediately or in a daily digest, over STARTTLS verified
against the PESCO CA, with dry run on the test stack.

Backups: scripts/backup/ps-backup.sh and ps-restore.sh with a systemd timer
at 02:00 America/Denver. Restore rehearsed on the test stack 2026-10-21.
CI: pip-audit and npm audit. pypdf 6.21.1 and certifi 2026.10.19.

Migration 0010. Closes the app part of I6, M3, O1, O2 and S3.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 18:27:09 -06:00