Node.js agent release notes
Release date: January 17, 2025
Language versions currently supported: 16, 18, 20, and 22 LTS
New and improved:
CLI rewriter should skip
rewrite-deadzoned
package files. (NODE-3434)Improve logging to
stderr
when installation fails with TS error. (NODE-3677)Augment Perf feature to watch event processing. (NODE-3684)
Bug fixes:
dep-hooks
return value not used when target lib is imported. (NODE-3561)Clear traces endpoint's
hashSet
periodically so vulns can properly update last seen. (NODE-3709)
Release date: January 9, 2025
Language versions currently supported: 16, 18, 20, and 22 LTS
New and improved:
NEW: Build ID / Artifact Hash generation and reporting to Contrast. (NODE-3314)
NEW: Support for Express 5 Framework has been added. (NODE-3623)
NEW: Preview Release of the Contrast Node agent's GraphQL support.
Investigate automating and reporting sessions and build ID generation. (NODE-3315)
Research and implement the new
node --run
command incompatible withcmd_ignore_list
. (NODE-3540)Refactor route coverage to support Express 5. (NODE-3650)
Add remainder of architecture component integration tests. (NODE-3666)
Instrument GraphQL for route coverage. (NODE-3671)
Replace pino transport with multi-stream. (NODE-3678)
Bug fixes:
Fixed memory issue in reporter. (NODE-3705)
Release date: December 12, 2024
Language versions currently supported: 16, 18, 20, and 22 LTS
New and improved:
Handle TeamServer 4xx error codes according to spec. (NODE-3638)
Protect should use
async-hook-domain
exclusively. (NODE-3674)Research deadzoning mssql query serialization (NODE-3579)
Bug fixes:
Fix
release-operator
integration. (NODE-3681)
Release date: November 22, 2024
Language versions currently supported: 16, 18, 20, and 22 LTS
New and improved:
ADR Licensing - Reporting. (NODE-3605)
Implement remaining architecture components for FlowMap. (NODE-2793)
Publish hostname and container detection - server inventory. (NODE-3639)
Patching: audit package version ranges to not break on new versions. (NODE-3642)
Update Protect sources to instrument
router
. (NODE-3648)Update Protect error handler to instrument
router
. (NODE-3649)Remove argument from
protect.getSourceContext()
calls. (NODE-3660)Raise the log level to WARN for API tokens overridden by legacy keys. (NODE-3661)
Fix the log-file overwriting problem. (NODE-3667)
Bug fixes:
Report headers for Protect events as object not array. (NODE-3662)
Syslog metadata string is malformed. (NODE-3668)
Release date: November 6, 2024
Language versions currently supported: 16, 18, 20, and 22 LTS
New and improved:
Preview functionality for Express 5 for Assess mode. (NODE-3644,NODE-3645,NODE-3646)
Bug fixes:
Do not report unsampled requests as missing source context for Assess in production. (NODE-3659)
Release date: October 30, 2024
Language versions currently supported: 16, 18, 20, and 22 LTS
New and improved:
Research Assess sampling as function of routes observed. (NODE-3597)
Improved support for mongodb 6 driver aggregate functions. (NODE-3614)
Release date: October 22, 2024
Language versions currently supported: 16, 18, 20, and 22 LTS
New and improved:
Programmatic deadzones for the bunyan logging module. (NODE-3427)
Research/Implement - Replace use of
npm ls
in library reporting. (NODE-3599)Replace npm for library reporting - Distroless support. (NODE-3619)
Programmatic deadzones for log4js logging module. (NODE-3636)
Add max version for Express instrumentation. (NODE-3641)
Release date: October 17, 2024
Language versions currently supported: 16, 18, 20, and 22 LTS
Note
Node.js 5.18.0 is deprecated. Node.js 5.18.1 contains all the features released in Node.js 5.18.0.
New and improved:
Add perf to all entrypoints. (NODE-3602)
Release date: October 16, 2024
Language versions currently supported: 16, 18, 20, and 22 LTS
Note
Node.js 5.18.0 is deprecated. Node.js 5.18.1 contains all the features released in Node.js 5.18.0.
New and improved:
The agent now uses the new v1.0 Agent Startup endpoint. (NODE-3390)
Added trace-level logging to route coverage. (NODE-3566)
Updated safe hash libraries to include
cookie-signature
. (NODE-3558)
Bug fixes:
Fixed an issue where the rewriter throws an error when a
.swcrc
file specifiesjsc.target
. (NODE-3640)
Release date: September 27, 2024
Language versions currently supported: 16, 18, 20, and 22 LTS
New and improved:
Added support for Node.js LTS 22.
Added Mongoose query parameter sanitization and validation. (NODE-3565)
Increased event count on
core.messages
. (NODE-3627)
Release date: September 26, 2024
Language versions currently supported: 16, 18, and 20 LTS
New and improved:
Updated the Audit agent
readme
file on npm to make sure it's accurate. (NODE-3548)
Bug fixes:
Fixed audit and extraneous dependencies. (NODE-3601)
Release date: September 16, 2024
Language versions currently supported: 16, 18, and 20 LTS
New and improved:
The Node.js agent now supports the use of
CONTRAST__API__TOKEN
instead ofCONTRAST__API__URL
,CONTRAST__API__API_KEY
,CONTRAST__API__SERVICE_KEY
, andCONTRAST__API__USER_NAME
for communication with Contrast. (NODE-3522)Note
Contrast TeamServer is not yet adding the token to the downloadable agent configuration file.
Added a new Assess stacktraces configuration option for SINK. (NODE-3591)
Release date: August 27, 2024
Language versions currently supported: 16, 18, and 20 LTS
New and improved:
This release includes a preview of Node 22 LTS support.
This feature is not yet officially supported
Added support for
crypto.createCipher
. (NODE-3533)Added
fs.glob
andfs.globSync
to FS_METHODS. (NODE-3541)
Bug fixes:
Refactored Fastify route coverage to avoid dep-hooks ESM bug. (NODE-3563)
Fixed
rewrite-is-deadzoned.js
. (NODE-3572)Updated the CSP rule. (NODE-3582)
Fixed an issue with semver v7.6 that broke range deadzoning. (NODE-3585)
Release date: August 20, 2024
Language versions currently supported: 12, 14, 16, 18, and 20 LTS
Bug fixes:
Remediated CVE-2024-39338 by bumping the Axios package.
Release date: August 15, 2024
Language versions currently supported: 16, 18, and 20 LTS
Bug fixes:
Fixed a path-traversal false positive that
@fastify/static@7
reported. (NODE-3549)Remediated CVE-2024-39338 by bumping the Axios package. (NODE-3567)
Release date: August 1, 2024
Language versions currently supported: 16, 18, and 20 LTS
New and improved:
Implemented Phase 1 of support for Node.js v5 deadzones. (NODE-3360)
A deadzone is a mechanism that lets the agent skip instrumentation of a specific mode module or function.
Added logging for the inappropriate use of the
node -r
preload flag. (NODE-3481)
Bug fixes:
Fixed a duplication issue in preflight messages. (NODE-3476)
Fixed an issue where the agent did not report routes that were not exercised. (NODE-3548)
Fixed an issue with telemetry reporting. (NODE-3554)
Release date: July 30, 2024
Language versions currently supported: 16, 18, and 20 LTS
New and improved:
Updated the agent to use programmatic deadzones for bcrypt modules. (NODE-3424)
Release date: July 18, 2024
Language versions currently supported: 16, 18, and 20 LTS
New and improved:
This release introduces a new process for releasing the Contrast agent to npm. The new process releases the artifact to npm with the
<next>
tag. Using the<next>
tag prevents you from automatically installing the next agent version unless you explicitly use this command:npm install @contrast/agent@next
Shortly after Contrast publishes the agent release notes for the next agent version, the tag for the version changes to
<latest>
. This new process lets you preview and test new features as well let you review the release notes for what will soon be tagged as<latest>
.Improved the release process to push the agent with the
<next>
tag to npm (NODE-3507)
The agent now extracts and reports cloud resource identifiers to Contrast for AWS, Azure, and GCP (NODE-2932).
This functionality collects resource identifiers when running on cloud providers and reports the IDs to the log and the Contrast web interface.
The agent now sends cloud resource identifiers to Contrast. (NODE-3493)
The agent now retrieves GCP resource identifiers. (NODE-3503)
Bug fixes:
Fixed an
Express.response.push
error shown in the log. (NODE-3532)
Release date: July 15, 2024
Language versions currently supported: 16, 18, and 20 LTS
New and improved:
Improved the npm README documentation for
@contrast/distringuish
. (NODE-3517)The reported text for routes was changed to be more consistent and idiomatic. Affected frameworks include Koa, Hapi, Fastify and Restify.
This change may cause orphaned routes that you can delete manually or by using the route expiration feature. If you are using session metadata or session ID, this change has no impact. Customers using the Express framework are not affected by this release.
Refactored route coverage for Fastify. (NODE-3483)
Added route coverage support for Koa nested routers. (NODE-3484)
Refactored route coverage integration tests. (NODE-3443)
Audited and refactored route signatures. (NODE - 3444)
When an application is running on AWS or Azure Cloud, resource identifiers are now reported to the log.
The agent now retrieves the AWS Resource Identifier when you configure it to do so. (NODE-3491, NODE-3492)
Added the
X-Contrast-Reporting-Instance
to Contrast communication. (NODE-3502)Added a feature flag to disable resource identification. (NODE-3513)
The agent now auto-detects the cloud provider for resource identifier detection. (NODE-3518)
Bug fixes:
Library usage requests sent to Contrast are now batched to reduce HTTP pressure. The default batch size is 100. (NODE-3509)
Release date: July 8, 2024
Language versions currently supported: 16, 18, and 20 LTS
Bug fixes:
Fixed an issue where an error was thrown when the import binding name matched the rewrite injection name. (NODE-3486)
Release date: April 16, 2024
Language versions currently supported: 14, 16, 18, and 20 LTS
Important
Contrast Protect is deprecated as of release 5.20.6.
New and improved:
Updated v4 and v5 pipelines for K8s agent-operator.
Deprecated
@contrast/protect-agent
.Added v4 section to README.
Bug fixes:
UI reporter v1 routes do not respect proxy configuration. (NODE-3338)
Update test bench Dockerfiles. (NODE-3350)