Skip to content

OpenJS CNA API to support project operations #337

Description

@UlisesGascon

The main goal is to enable projects such as Node.js to use our API the same way they use HackerOne (compatibility layer). Also any other foundation project can use the HTTP API to manage their own CVEs. There are quite interesting features included in the API from the CNA perspective like credentials segmentation or guardrails on the payloads. This will help us to make easier for us to delegate the CVE management responsibility to the projects.

As Node.js will require the most complex compatibility layer, I will also contribute to the project the changes needed to use our API with minimal disruption on the current Security Release process (nodejs/security-wg#1570).

We did the kick off officially on #338. So here you can find:

Backlog

Phase 0: Prepare the repo

Goals
In order to make the API work we need to migrate the current CNA repo stack to Node.js from Jekyll. In this opportunity window we can do other changes. The idea is to create small PRs porting changes from https://github.com/UlisesGascon/openjs-cna-api-poc to https://github.com/openjs-foundation/security-advisories

Backlog

Discussions

  • Do we want to list all the CVEs/advisories related to the OpenJS projects listed within the CNA website even if we are not the issuers as technically the projects are under our CNA scope

Decisions made
Waiting for discussions

Phase 1: Build the API

Goals
We need to agree on the final architecture and deliver it

Backlog

  • Port the documentation to the CNA repo to enable the discussion
  • Once the documentation and specs are clear adapt the existing POC
  • Port the API from the POC repo to the CNA Repo
  • Create testing credentials for Node.js projects (unblock phase 2)

Discussions

  • Are we happy with the current proposal ref?

Decisions made
Waiting for discussions

Phase 2: Enable Node.js

Goals
Once the API is clear, the goal is to integrate the OpenJS CNA within the existing tools and process for the Node.js team

Backlog

Discussions

  • Clarify with @RafaelGSS the HackerOne data format
  • How do we want to test this? How the testing environment looks like?
  • Do we need a TSC approval?
  • When is a good moment to change CNA?

Decisions made
Waiting for discussions

Phase 3: Enable for other projects

Goals

The main goal is to onboard existing projects to the API and decide if we want to support an official client or not.

Backlog

Discussions

  • Do we need a staging are for any CVE change? Then the CNA coordinators can approve the changes/publication?
  • Do we want to maintain an official client for the teams? In that case https://github.com/UlisesGascon/openjs-cna-tools is a good option?
  • What are our opinionated rules on top of MITRE?
  • What projects should be using the API? Undici, Fastify and Express are heavy users of the CNA on regular bases.

Decisions made
Waiting for discussions

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions