System requirements for the Node.js agent

Important

The Node.js agent now has limited support for running on Macs with the M1/M2 chip. One limitation is the Node.js agent does not yet support running Alpine based docker containers on the Apple M1/M2 (ARM64). Running Slim based Docker images is supported.

This page reflects the system requirements and capabilities of the latest version available on npmjs.com unless otherwise specified in the notes.

Before installing the Node.js agent confirm you can meet the following requirements:

  • There is a deployed application with a package.json file to be analyzed, and the web application technology is supported by Contrast.

  • The agent has network connectivity with the Contrast server.

Using the Node.js agent requires increasing the application's available CPU and memory due to the increased processing and analysis of inbound information. Using the Node.js agent will use more resources than your application on its own. CPU load will also increase but this is heavily influenced by the specific application architecture and existing CPU usage profile.

If you are using Assess, you should double the available memory in each container compared to what you would normally use without the Contrast Node.js agent.

Operating systems

  • CentOS/RHEL 7.9, 8 and later

  • Ubuntu 14.04 LTS, 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS

  • Debian 9, 10, 11

  • Windows

  • macOS

Process managers

  • PM2: 4.5.0 and later and 5.1.0 and later

    • The Contrast Node.js agent supports running in both fork and cluster mode.

    • The start command used when running the Contrast Node.js agent must include the full path to the installed @contrast/agent module. For example:

      node -r /Users/michael/Dev/my-app/node_modules/@contrast/agent app.js

Containers

  • Distroless containers

    • The Contrast Node.js agent requires access to npm and /bin/sh to function correctly. The agent’s functionality will be degraded and may not report findings or libraries when installed in an application that runs on a distroless container image that does not include those programs/packages.

CPU

  • AMD 64, x86_64 and compatible

  • Apple M1/M2 ARM64 (limited support)