Supported technologies for Node.js

This page shows supported technologies for the Contrast Node.js agent. Contrast agent releases are supported for one year after release.

Note

The Contrast Node.js agent does not support any versions of modules tagged as deprecated on npmjs.com. Deprecated modules present a high security risk and may negatively impact the function of the agent.

It also does not support using a bundler like webpack, parcel, or esbuild to package or compress the server-side JavaScript code.

Contrast Node.js agent version 3.X will EOL in June 2022.

Language version

  • JavaScript ECMAScript 5 

  • JavaScript ECMAScript 6

  • ECMAScript modules (ESM)

  • TypeScript

Notes

Contrast supports even numbered Node.js versions in "active LTS" or "maintenance" status.

The Node.js LTS versions support these features for JavaScript ECMAScript5 and 6.

The Contrast Node.js agent provides limited support for working with user apps that use ESM.

TypeScript is only supported if the agent is configured to point to the compiled entry point for your application.

Node.js Long-Term Support (LTS)

All versions in Active and Maintenance LTS status, currently:

  • 12 and 14

  • 16 (only for agent version 4.5.0 and later)

Notes

You should always use Node.js LTS versions that are active or in maintenance status. Although we support version 12 LTS, it reached EOL at end of April 2022.

The Node.js agent doesn't guarantee support for Node.js features classified as Experimental (Stability: 1). It also doesn't instrument the native net module. It only provides functionality for HTTP(S) application servers built using the supported application frameworks in this table.

HTTP/2 is supported for agent versions 4.9.1 and later when using the Node.js core HTTP/2 or spdy library.

For customer applications using HTTP/2 with Contrast Node.js agent versions 4.X, you must configure the agent to use agent.traverse_and_track: true.

Node.js version status is shown in Node.js Long-Term Support Release Schedule.

Application frameworks

Note

If you are using Fastify 3 with Node.js agent version 3.X.X, you must enable the optional babel rewriter.

# env var
CONTRAST__AGENT__NODE__ENABLE_BABEL=true

# yaml
agent:
  node:
    enable_babel: true
    
# cli
--agent.node.enable_babel true

Database drivers and object-relational mapping (ORM)

  • DynamoDB (Assess only) AWS SDK for JavaScript: 2.X and 3.X

  • MongoDB 3.5.0 and later, 4.X; (compatible with database versions 3.6, 4.X)

  • MySQL2 2.0.0 and later (compatible with MySQL database versions 5.6.51, 5.7.X and 8.0.X)

  • Mongoose

    • 4.X and 5.X (only for agent versions 3.X.X)

    • 6.X (only for agent versions 4.9.1 and later)

  • Postgres driver 7.5.0 and later, 8.X (compatible with database versions 9.6 and later)

  • RethinkDB driver version 2.4.0 and later

  • Sequelize 5.X and 6.X

  • SQLite3 driver 4.X (compatible with database versions 3.26.0 and later)

Validation modules

Templating engines

Other technologies

Test suite

Node Test Benches

When changes are made to the Node.js agent, Contrast runs this battery of automated tests to ensure that it detects findings in supported technologies across all supported versions of Node. The Node Test Benches include tests that exercise the agent with all of our supported frameworks. Each framework within the monorepo is updated as Contrast adds more third-party library support to the agent.