Skip to content

fix(alert-handler): adopt Node 24 and await user mail delivery - #5836

Open
fan yang (fanyangCS) wants to merge 2 commits into
masterfrom
security/argus-005-alert-runtime-20260918
Open

fan yang (fanyangCS) wants to merge 2 commits into
masterfrom
security/argus-005-alert-runtime-20260918

Conversation

@fanyangCS

Copy link
Copy Markdown
Collaborator

Scope

Move only alert-handler to declared Node24.20.0 and node:24.20.0-bookworm; retain all 612 locked dependency selectors. Await user-mail delivery so transport rejection reaches the existing HTTP500 handler instead of terminating the service. Add focused runtime integration regression and service documentation. This is a prerequisite for parser/nested-mail fixes, not an alert-closure claim.

Validation and independent review

Exact head c8ca2fc48064b2964b6f6cd4b04bbc7d3e0a2e88, based on current master 97534b224fdb155fadde7f364fccb2d01b22c2c5, accepted by independent Argus round2 review. Candidate and separate frozen production copies each pass compilation, lint and ten test records (nine integration groups plus parent), including failed-mail HTTP500, process survival and subsequent successful delivery. Strict lifecycle/frozen installs succeeded with unchanged lock selectors. Source/final hashes reverified before publication.

Explicit gaps

Docker socket permission denied: image has NOT been built/run; no workaround used. No live SMTP/TLS, deployed Kubernetes, GPU-repair or failed-job-cleanup certification. Node10 baseline install fails on compress-brotli requiring Node>=12, so no working Node10 service baseline. All dependency alerts remain open pending separate fixes.

CI intentionally not queried or verified. Normal protections and eligible independent GitHub review remain mandatory; local review is not GitHub approval.

Ubuntu and others added 2 commits September 18, 2026 02:33
Preserve dependency selections and service interfaces; cover HTTP, Kubernetes and mail behavior with isolated local regressions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Propagate delivery rejection into the existing HTTP error handler and cover process survival and subsequent delivery under strict rejection handling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The Docker image was not built or run, and CI and live deployment validations remain unverified.

Pull request overview

Updates alert-handler to Node.js 24.20.0 and ensures user mail failures reach the existing HTTP 500 handler without terminating the service.

Changes:

  • Migrates the runtime and Docker base image to Node 24.20.0.
  • Awaits user mail delivery.
  • Adds runtime regression coverage and documentation.
File summaries
File Description
tests/alert-handler-runtime.js Adds runtime integration regression tests.
src/alert-manager/src/alert-handler/README.md Documents runtime and validation requirements.
src/alert-manager/src/alert-handler/package.json Declares Node 24 and the test script.
src/alert-manager/src/alert-handler/controllers/mail.js Awaits user mail delivery.
src/alert-manager/build/alert-handler.common.dockerfile Uses the Node 24.20.0 image and frozen installs.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Docker execution and CI verification remain outstanding.

Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@fanyangCS

Copy link
Copy Markdown
Collaborator Author

Following up on review 5243958295 and review 5244024286: the validation limitations are real and remain explicit; this is not a claim that Docker or CI passed.

For the unchanged head c8ca2fc, I reran local validation on Node 24.20.0 in an isolated checkout and a separate frozen-source copy, reusing copies of the previously validated full and production dependency installations (no fresh install claimed):

  • Compilation and lint passed for both copies.
  • The real-entrypoint loopback regression passed in each copy: 10 records, 0 failures, 0 skips (nine groups plus their parent, not 20 distinct tests). This includes rejected user-mail delivery returning HTTP 500, process survival under strict unhandled-rejection handling, and a subsequent successful request in the same process.
  • Production yarn check --no-default-rc --production=true --integrity passed. The lock remains byte-identical to the PR base: 612 selectors unchanged, SHA256 56dd064ec436728ef62ceb7b8e61d0c38555c3e1a30821cf4ec2b7e59faf5a1c.
  • All 1,939 tracked blobs in each isolated source copy match this exact commit; the existing acceptance certificate's source/artifact hashes were rechecked. These are local checks, not a new independent review.

Still unverified: Docker image build/run is blocked here by permission denied on /var/run/docker.sock, reproduced again today without any permission workaround. CI verification is intentionally outside the authorized scope and has not been queried. Real SMTP/TLS, deployed Kubernetes, and live deployment have not been tested; the local suite uses loopback/in-memory mocks. See the runtime validation documentation at this head.

Neither review contains an inline finding or a resolvable review thread. No code amendment is justified by these summaries alone, so no source change or push was made, and I am not marking the outstanding validation gaps as resolved. Docker validation still needs an appropriately authorized Docker-capable environment; this reply does not establish merge readiness.

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