Checklist

4 of 4 complete
  • Implemented standalone PRK.Reporting.Workflow host and Docker/ReportingWorkflow.Dockerfile. Portal retains submissions/scanning/visibility guards but no workflow API handlers, orchestration DI or timers. Portal supports an intake-selected EvidenceReadToken and GET-only scoped evidence client without write/worker credentials. Coordinator verifies schema hashes/columns and required reporting-table permissions without DDL, exposes bearer-only v4 APIs/readiness, and serializes complete ticks using SQL session application lock plus process gate. Independent publish and image build pass; image runs as non-root app1654 and excludes portal/game DLLs. SQL host, no-DDL, insufficient-role, auth/route and cross-session lease tests pass.
  • Implemented PRK.Reporting shared library with existing reporting entities/contracts and deterministic Forgejo workflow services, plus reporting-only BugDataContext; SiteDataContext derives from it. No portal/game project references; legacy CLR namespaces retained deliberately for source compatibility. Moved reporting migrations003–009 with exact byte equality to parent HEAD; portal embeds linked resources under original names, and real SQL/hash-identity regressions pass. Domain validation/product/hash helpers shared, not duplicated.
  • Completed independent release integration. Engines staged system now has protected workflow_vX.Y.Z scope, digest-pinned engines-workflow image, own prk-reporting-workflow project/state/lock, provenance validation, extracted-portal404 gate, exact service/release/v4 readiness, previous-image restoration on failed update, protected overlay-only binding10.144.92.85:5060, security hardening and automatic first-new-service bootstrap only with no conflict. CI trigger/build/manifest/upload and rollback docs updated; root-owned0700 evidence remains unchanged via explicit root container. Worker PR5 removes competing manual production Compose, uses tagged engines path, sample workflowUrl private overlay and deploy readiness allows HTTP only for literal private IP + allowHttp. Validation:25 offline Python rollout tests and14 .NET deployment tests pass;34 Node+13 worker deployment tests pass; workflow manifest assembly/Compose rendering and actual staged workflow image build pass; script syntax/diffs clean. No live deploy/config/tag created.
  • Completed end-to-end production cutover verification. Extracted portal_v0.1.2 healthy and inline worker route absent; workflow_v0.1.0 healthy/recorded with exact service/v4 identity. First release failure (empty SITE_DB) diagnosed/fixed; workflow env now uses existing AOEMU_DB_URL. Node Fetch blocked SIP ports5060/5061; repaired live binding with unchanged image/release to overlay10.144.92.85:5062→container5060 and updated worker config atomically. Controller/analyzer network probes, authenticated all-zero v4 preview, Terra dry-run and targeted real report47b9 succeeded; intake#56 reached triage:complete with audit/developer link. User's whole-intake batch finished; no lock holder/controller remains and unscoped v4 preview returns204 (no pending report). Daily timer enabled. Portal/coordinator health200. Port fixes merged in engines2778 and worker6; failed-first cleanup merged2777. Validation history:216 portal/reporting SQL tests (3 unrelated skips), staged images, release/Compose, plus latest26 Python rollout and34 Node+14 deployment tests. Remaining dedicated portal evidence-read token is optional least-privilege hardening, not a cutover blocker.
Project
engines
Kind
Feature
Priority
Medium
Task ID
tsk_sxznc9v6yt
Updated