Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding a "security" property to dist/index.json #437

Closed
bnb opened this issue Apr 22, 2019 · 14 comments
Closed

Adding a "security" property to dist/index.json #437

bnb opened this issue Apr 22, 2019 · 14 comments
Assignees

Comments

@bnb
Copy link
Contributor

bnb commented Apr 22, 2019

Per a brief discussion in today's Node.js Security Working Group meeting, I wanted to bring up the possibility of adding a security property into the dist/index.json.

To outline a possible structure/implementation for this property:

  • add a security property to each new release object, from the date it's implemented and beyond
  • this property has a key of security and a boolean as the value
    • if the release is a security release, this boolean will be true
    • if the release is not a security release, this boolean will be false

The intent is that this is similarly structured to LTS, providing a signal to consumers of the file that a release is a security release.

Theoretically, developers (us included!) could use this in a few ways:

  • loop over every release in a release line until they encounter true – when they encounter true for the first time, they know that version is the minimum secure version
  • create a log of all security releases, and tie those to blog posts (which can be programmatically linked thanks to our blog post structure)
  • in lists displaying Node.js versions, indicate which versions are security releases (think something like Glitch or RunKit)

Hopefully this wouldn't be a massive burden for y'all when maintaining releases, but if it is that's 100% understandable ❤️

@richardlau
Copy link
Member

Seems reasonable, although it would be reliant on the person doing the release to update the property. Security releases are typically not done by the regular releasers.

@sam-github
Copy link
Contributor

It would have to be part of the release process, and it could also be part of the security release process. The person going through the sec release process often isn't doing the actual cutting of the release, so a step there of "check that the metadata was correct" could be useful as a double-check.

@richardlau
Copy link
Member

The tool to generate dist/index.json is https://github.com/nodejs/nodejs-dist-indexer.

@richardlau
Copy link
Member

I imagine it would be more the security release process, with the property defaulting to false like the NODE_VERSION_IS_RELEASE flag is.

@MylesBorins
Copy link
Contributor

We may want to add a similar NODE_VERSION_IS_SECURITY_RELEASE tag in the build

@mhdawson
Copy link
Member

Both adding it to the meta data and @MylesBorins suggestion makes sense to me. +1

@richardlau richardlau self-assigned this May 8, 2019
@richardlau
Copy link
Member

I'll have a look at what changes would be needed (on the Node.js core build side and nodejs-dist-indexed).

@richardlau
Copy link
Member

@richardlau
Copy link
Member

Added to the Release agenda as this is a change to the release process.

richardlau added a commit to richardlau/nodejs-dist-indexer that referenced this issue May 10, 2019
Parse the release notes for a release to determine if it is a security
release.

Refs: nodejs/Release#437
@richardlau
Copy link
Member

Rod has questioned the proposed approach and suggested some alternatives.

I've implemented the first alternative (parse commit message for This is a security release.) in nodejs/nodejs-dist-indexer#9.

richardlau added a commit to richardlau/node-1 that referenced this issue May 10, 2019
The release commit message for security releases have conventionally
started with the phrase `This is a security release.`. Codify this
as part of the release process so that the distribution indexer can
use this to detect and mark releases as security releases.

Fixes: nodejs/Release#437
Refs: nodejs#27612 (comment)
Refs: nodejs/nodejs-dist-indexer#9
@richardlau
Copy link
Member

The original proposal nodejs/node#27612 has been closed.

Opened alternative approach nodejs/node#27643 as a counterpart to nodejs/nodejs-dist-indexer#9.

@richardlau
Copy link
Member

Reopening because while the Node.js side is taken care of the property won't be added to the distribution index files until nodejs/nodejs-dist-indexer#9 lands.

@bnb
Copy link
Contributor Author

bnb commented May 14, 2019

Thank you for your work on this @richardlau ❤️

targos pushed a commit to nodejs/node that referenced this issue May 14, 2019
The release commit message for security releases have conventionally
started with the phrase `This is a security release.`. Codify this
as part of the release process so that the distribution indexer can
use this to detect and mark releases as security releases.

Fixes: nodejs/Release#437
Refs: #27612 (comment)
Refs: nodejs/nodejs-dist-indexer#9

PR-URL: #27643
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Rich Trott <rtrott@gmail.com>
rvagg pushed a commit to nodejs/nodejs-dist-indexer that referenced this issue May 29, 2019
Parse the release notes for a release to determine if it is a security
release.

Refs: nodejs/Release#437
@richardlau
Copy link
Member

Index files now contain a security property as of nodejs/nodejs-dist-indexer#9.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants