Google Cloud Platform logo

Google Container Analysis: Node.js Client

release level npm version codecov

Container Analysis API client for Node.js

Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in Client Libraries Explained.

Table of contents:

Quickstart

Before you begin

  1. Select or create a Cloud Platform project.
  2. Enable billing for your project.
  3. Enable the Google Container Analysis API.
  4. Set up authentication with a service account so you can access the API from your local workstation.

Installing the client library

npm install @google-cloud/containeranalysis

Using the client library

  /**
   * TODO(developer): Uncomment these variables before running the sample
   */
  // const projectId = 'your-project-id', // Your GCP Project ID
  // const noteId = 'my-note-id' // Id of the note

  // Import the library and create a client
  const {ContainerAnalysisClient} = require('@google-cloud/containeranalysis');
  const client = new ContainerAnalysisClient();
  // Fetch an instance of a Grafeas client:
  // see: https://googleapis.dev/nodejs/grafeas/latest
  const grafeasClient = client.getGrafeasClient();

  // Construct request
  // Associate the Note with a metadata type
  // https://cloud.google.com/container-registry/docs/container-analysis#supported_metadata_types
  // Here, we use the type "vulnerabiltity"
  const formattedParent = grafeasClient.projectPath(projectId);

  // Creates and returns a new Note
  const [note] = await grafeasClient.createNote({
    parent: formattedParent,
    noteId: noteId,
    note: {
      vulnerability: {
        details: [
          {
            affectedCpeUri: 'foo.uri',
            affectedPackage: 'foo',
            minAffectedVersion: {
              kind: 'MINIMUM',
            },
            fixedVersion: {
              kind: 'MAXIMUM',
            },
          },
        ],
      },
    },
  });

  console.log(`Note ${note.name} created.`);

Samples

Samples are in the samples/ directory. The samples' README.md has instructions for running the samples.

Sample Source Code Try it
Create Note source code Open in Cloud Shell
Create Occurrence source code Open in Cloud Shell
Delete Note source code Open in Cloud Shell
Delete Occurrence source code Open in Cloud Shell
Get Discovery Info source code Open in Cloud Shell
Get Note source code Open in Cloud Shell
Get Occurrence source code Open in Cloud Shell
Get High Vulnerabilities for Image source code Open in Cloud Shell
Occurrence PubSub source code Open in Cloud Shell
Occurrences for Image source code Open in Cloud Shell
Occurrences for Note source code Open in Cloud Shell
Poll Discovery Occurrence Finished source code Open in Cloud Shell
Quickstart source code Open in Cloud Shell
Vulnerability Occurrences for Image source code Open in Cloud Shell

The Google Container Analysis Node.js Client API Reference documentation also contains samples.

Versioning

This library follows Semantic Versioning.

This library is considered to be in beta. This means it is expected to be mostly stable while we work toward a general availability release; however, complete stability is not guaranteed. We will address issues and requests against beta libraries with a high priority.

More Information: Google Cloud Platform Launch Stages

Contributing

Contributions welcome! See the Contributing Guide.

License

Apache Version 2.0

See LICENSE