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

Why do we need a database in the NodeSecure project ? #1

Open
fraxken opened this issue Aug 12, 2022 · 0 comments
Open

Why do we need a database in the NodeSecure project ? #1

fraxken opened this issue Aug 12, 2022 · 0 comments

Comments

@fraxken
Copy link
Member

fraxken commented Aug 12, 2022

Hello 👋,

I'm writing this issue to explain why we need a database in the project (Following our recent discussions in the regular meeting concerning this rfcs: NodeSecure/rfcs#3).

Key points

Expanding our field of research

Having our own database would allow us to drastically expand our field of research. The idea is not new and for JS-X-Ray I had started the star-analytica project which aimed to reduce false positives and provide new ideas for SAST analysis (by storing JS-X-Ray results for each tarball/package).

Having our own replica of the registry would allow us to quickly launch new analyses without having to depend on third party APIs (which as we will see are often limited).

Another example is the need to compare different vulnerability strategies for the Vulnera project. See NodeSecure/vulnera#29.

We can apply this logic to many of our projects;

  • JS-X-Ray
  • Scanner
  • Authors
  • Vulnera

Beyond the technical aspects, this will also allow us to learn more and complete our expertise.

Do not suffer from ratelimits anymore

Almost all API are limited in usage and this handicaps us enormously in providing complete and relevant analyses through the scanner (For example for IANA socket API is limited to 30req/s). Even the NPM API is limited without the implementation of a token (which makes our tools less accessible).

Some project like preview require a database to properly work as online tool. It is not conceivable to run scanner in loop on a hosted back-end (this would lead to untenable infrastructure costs).

Also the user experience is poor because the analysis times will be several seconds minimum.

New features

Having a database will allow us to implement new functionalities within our graphical tools such as the CLI or Preview.

An example of this are Snyk advisor charts:
image

We could also implement checks related to OpenSSF standards (like Open source insights).
image

An income opportunity

This could become in the very long term an opportunity to have financial support from users or companies in exchange for tokens to exploit the API without limit.

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

No branches or pull requests

1 participant