Skip to content

feat: add job monitoring API and wire frontend tab to backend - #420

Merged
plakkara-bc merged 16 commits into
devfrom
feat/job-monitoring
Jul 28, 2026
Merged

feat: add job monitoring API and wire frontend tab to backend#420
plakkara-bc merged 16 commits into
devfrom
feat/job-monitoring

Conversation

@mdiapenabc

@mdiapenabc mdiapenabc commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Description

Implements Job Monitoring: a Monitoring tab with Job List, Job History, and Activities (APL-10/11/12).

Schema (V26)

  • job_activities table for curated operator notices
  • triggered_by_user on job_runs (IDIR for user-triggered jobs)
  • Nullable job_run_id for standalone actions (manual eligibility, batch add/remove issues)

Backend

  • Monitoring API: latest jobs, paginated history, activities
  • Job-scoped activity logging via AppLogger (tagged warn/error/crit → Splunk + Activities)
  • Instrumentation across jobs, eligibility, CRA, WKL, ICM, and batch flows
  • Jobless activities for manual ops when no job run is in scope

Frontend

  • JobMonitoringTab with three tables, history → activities filter, auto-refresh for running jobs

How Has This Been Tested?

  • npm test in backend/ — all tests passing
  • Manual (after V26 applied): run jobs, confirm Monitoring tab; trigger manual eligibility/batch failure and confirm jobless activity

Add job_runs summary/warning columns, job_activities table, monitoring
read endpoints (latest, history, activities), and activity logging on job
lifecycle. Update JobMonitoringTab to call the new API via jobs-service.

Clean implementation on top of origin/dev — no release merge baggage.
…ions

Wire latest-per-type job list to FDD: six monitored types, IDIR on user
triggers, display formatters, and summaries derived from job metadata.
Drop persisted summary/warning columns; consolidate V26 migration.
Include ICM/MIS child runs in history, filter by startedAt window,
default sort startedAt DESC, and support IDIR filter on triggered_by_user.
Add JobActivityService with FDD severity/type enums, remove lifecycle
activity noise, record eligibility and ICM sync notices, and align
Activities UI filters with APL-12.
Wire AsyncLocalStorage job scope through JobRunner so curated Winston logs
also persist to job_activities via AppLogger activity methods and aggregation.
…strumentation

Gate the Monitoring tab to ICM CSA Application RW users, poll job tables
while runs are active, and extend activity logging to auto-batch, send CRA,
retry-failed, and sync-ICM handlers.
Extend activity logging to eligibility skip paths and WKL matching services,
and remove RW-only Monitoring tab gating until a role model is defined.
…ion gaps

Make job_activities.job_run_id nullable so standalone operator actions can
be logged, persist curated activities without job scope, and wire remaining
job-scoped gaps (parse failures, stuck jobs, auto-batch validation, ingest).
…vities

Unify AppLogger on tagged warn/error/crit dual-write, log manual eligibility and batch issues to Activities, and demote mocks/config noise to log while keeping integration data-quality warns in Splunk.
…to V26

Relocate the implementation plan out of docs/functional-design, trim ADR 0012 to the standard template, and create job_activities with nullable job_run_id in V26 only.
Remove docs/README.md and untrack documentation/; add documentation/ to .gitignore and drop broken ADR links to local-only docs.
Decision doc updates will be amended separately later.
Local documentation stays excluded via .git/info/exclude per clone.
@mdiapenabc
mdiapenabc marked this pull request as ready for review July 24, 2026 13:56
@plakkara-bc
plakkara-bc self-requested a review July 27, 2026 02:32
@plakkara-bc
plakkara-bc merged commit 2c8734c into dev Jul 28, 2026
26 checks passed
@plakkara-bc
plakkara-bc deleted the feat/job-monitoring branch July 28, 2026 02:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants