End of Node.js 12 support, cannot guarantee due dependencies updates.
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
update core dependencies (7.x) no breaking changes, just internal bump up to prepare a major release (6.x)
🐛 fix fix: local search keyword undefined errors #3992🐛 fix Missing "onClick" prop in @verdaccio/ui-components Link component preventing handleDownload call in Package.tsx #3988#3989
The [`node:alpine` Docker image][1] adds some symlinks to `yarn` in
`/usr/local/bin/`. These should be removed as part of removing `yarn`
from the Verdaccio Docker image, otherwise there will be errors when
a someone tries to re-install `yarn` in their Docker image that builds
on top of the Verdaccio one.
[1]: 02a64a08a9/18/alpine3.16/Dockerfile (L91-L92)
Replaces default auth plugin verdaccio-htpasswd@10.x by verdaccio-htpasswd@11.x which is being used in verdaccio 6.x (almost identical)
Apply backward compabiity
Reduces maintenance (monorepo plugin can be removed)
One more step to switch v6.x
Add Node.js 12 GH Action for check backward compatibility
* fix: avoid setting body for GET requests
When making a GET request to certain uplinks, such as https://registry.npmmirror.com, setting the body field can result in a 413 error. Previously, the code was setting the body field for all requests, including GET requests.
This commit fixes the issue by checking the request method and avoiding setting the body field for GET requests. This ensures that GET requests are not affected by the issue and can be made without error.
Fixes#3601
* add missing deps for run test locally
* test(up-storage): add unit test about uplink is npmmirror
Cause thers is a bug in `isObject` function from `@verdaccio/core`, when `options.json` is `true`
GET request body will be string 'true', some uplinks might return 413 status code such as
https://registry.npmmirror.comfix#3601
* chore(deps): update @verdaccio/core
---------
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
Co-authored-by: botao <botao@tal.com>
chore: clean up comments
remove commitlint
update deps
add new tests
test
separate ci
test
test
test
test
test
test
chore: add preprelase
test
test
test
test
test
chore: update deps
Update release-snapshot.yml
Update .npmignore
test
chore: remove @verdaccio/commons-api dep
chore: cleanup
remove normalizeContributors
remove validateMetadata
fix test
clean up getLocalRegistryTarballUri
Update store.spec.ts
clean up convertDistRemoteToLocalTarballUrls
chore: update libraries
reuse getPublic url
clean up
Update jest.config.js
Update jest.config.js
update nvmrc
add tests
* fix: get header by quality priority value
* chore: disable some workflows
* chore: add more tests
* chore: remove some duplicated testss
* chore: return right content type haders
* fix: add missing fields to abbreviated metadata
The abbreviated metadata should include the cpu, os, and peerDependenciesMeta fields
* chore: update types
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* Add a config item to web,let the developer can select whether enable the html cache
* Add a config item to web,let the developer can select whether enable the html cache
* chore: move check close to other configuration
* chore: update configuration files to suggest new option on web
* chore: format fix
Co-authored-by: fengdi <fengdi@bbktel.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* pass `logs.colors` as `prettyOptions.colorize`
* `prettyPrintOptions` defaults is no concern of `createLogger`
* call it `colors` not to confuse with `pinoPretty.colorize`
* fix hardcoded `true` for `options.colors`
* Support `VERDACCIO_LOGGER_COLORS` overriding env-var
* Update docs for `VERDACCIO_LOGGER_COLORS`
* docs for `VERDACCIO_LOGGER_COLORS`
* docs for `VERDACCIO_LOGGER_COLORS`
* `.isTTY` from `stdout` not `stdin`
both work, but I want to ask if I emit to TTY, not if I consume from TTY.
* .md format
* format
* more format guesses
* declare `PrettyOptionsExtended.colors`
* lint
* docs: `EXPERIMENTAL__` prefix
* logger.ts - prefix `EXPERIMENTAL__`
* Update env.variables.md
* env.variables.md - remove double `_`
* Update logger.ts
* logger.ts - remove double `_`, fix boolean parsing
* env.variables.md - explain boolean parsing
* chore: format
* chore: add format, improve logic
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* WIP: port PR#2199 to master into 5.x
* port PR#2199 to master to 5.x - env.variables.md
* port PR#2199 to master to 5.x - config.spec
* Update config.spec.ts
* Update config.spec.ts
* fix format
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
* fix: publish with deprecated field by @Jiasm
When publish with deprecated field in `package.json`, that will make all old versions miss.
Examples:
I have package@1.0.0 and package@1.0.1.
When `npm deprecate package@1.0.0 "xxx"`, Verdaccio will recived:
```json
{
"name": "module_name",
"version": {
"1.0.0": {
"deprecated": "xxx"
},
"1.0.1": {}
}
}
```
⬆️ This make sense
But then publish new version with @1.0.2.
Verdaccio will recived:
```json
{
"name": "module_name",
"version": {
"1.0.2": {
"deprecated": "xxx" // if we set this field in package.json
},
}
}
```
and that metadata will override package.json, make old version miss.
migrate from #2766
* remove spaces
* fix: ignore empty package case
* fix: cover normal unpublish case
* refactor: Optimize check logic for lazy execution
* test: upgrade Jest Snapshot
* fix: set storage.getPackage `uplinksLook: false`.
* feat: use `_attachments` to distinguish deprecate
* test: rollback test snapshots
* test: rollback jest snapshots
* test: publish new version with deprecate field
* test: remove space
* chore: enable pnp yarn
* chore: ignore pnp
* fix type issues on run eslint
* add missing dependency and fix some errors
* fix most of the errors
some were just disabled, already fixed in master
* add missing jest-config
* update jest@26 align with other deps
* add missing @babel/register
* clean up
* use yarn node
* use yarn node on release
* chore: add husky 6
* chore: add husky 6
* chore: lint-stage
* chore: test
* chore: add hook git
* chore: test
* chore: test
* update deps
* chore: fix commit lint
* fix docker run
* update git ignore
* feat: tarball url redirect
* fix: handle uplinks
* feat: allow function for config.tarball_url_redirect
* fix: hasLocalTarball was calling localStream,abort when already aborted
* chore: simplify localStream null check in hasLocalTarball
As requested in PR feedback.
* chore: fix sonarcloud code smell on test
the variable `credentials` was already declared before the tarball url tests.
* fix: move tarball_url_redirect to experiments
Co-authored-by: Gord Lea <johlea@cisco.com>
Co-authored-by: Gord Lea <jgordonlea@gmail.com>
Reading https://ebaytech.berlin/optimizing-multi-package-apps-with-typescript-project-references-d5c57a3b4440 I realized I can use project references to solve the issue to pre-compile modules on develop mode.
It allows to navigate (IDE) trough the packages without need compile the packages.
Add two `tsconfig`, one using the previous existing configuration that is able to produce declaration files (`tsconfig.build`) and a new one `tsconfig` which is enables [_projects references_](https://www.typescriptlang.org/docs/handbook/project-references.html).
feat: allow other password hashing algorithms (#1917)
**breaking change**
The current implementation of the `htpasswd` module supports multiple hash formats on verify, but only `crypt` on sign in.
`crypt` is an insecure old format, so to improve the security of the new `verdaccio` release we introduce the support of multiple hash algorithms on sign in step.
### New hashing algorithms
The new possible hash algorithms to use are `bcrypt`, `md5`, `sha1`. `bcrypt` is chosen as a default, because of its customizable complexity and overall reliability. You can read more about them [here](https://httpd.apache.org/docs/2.4/misc/password_encryptions.html).
Two new properties are added to `auth` section in the configuration file:
-`algorithm` to choose the way you want to hash passwords.
-`rounds` is used to determine `bcrypt` complexity. So one can improve security according to increasing computational power.
Example of the new `auth` config file section:
```yaml
auth:
htpasswd:
file:./htpasswd
max_users:1000
# Hash algorithm, possible options are: "bcrypt", "md5", "sha1", "crypt".
algorithm:bcrypt
# Rounds number for "bcrypt", will be ignored for other algorithms.
- Verdaccio prettify `@verdaccio/logger-prettify` the logging which looks beautiful. But there are scenarios which does not make sense in production. This feature enables disable by default the prettifies if production `NODE_ENV` is enabled.
- Updates pino.js to `^6.7.0`.
- Suppress the warning when prettifier is enabled `suppressFlushSyncWarning`
# Number of days of inactivity before an issue becomes stale
daysUntilStale:15
# Number of days of inactivity before a stale issue is closed
daysUntilClose:10
# Issues with these labels will never be considered stale
exemptLabels:
- dev:high priority
- topic:feature request
- issue:need verification
- issue:bug
- dev:discuss
# Label to use when marking an issue as stale
staleLabel: 'issue:wontfix'
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment:>
Hi pal 👋🏼!
This issue has gone quiet 😶.
We get a lot of issues, so we currently close issues after 25 days of inactivity. It’s been at least 15 days since the last update here.
If we missed this issue or if you want to keep it open, please reply here. You can also add/suggest the label "discuss" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out [https://github.com/verdaccio/contributing](https://github.com/verdaccio/contributing) for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the Verdaccio community! 💘
# Comment to post when closing a stale issue. Set to `false` to disable
- [Submitting a Pull Request](#submitting-a-pull-request)
- [Make Changes and Commit](#make-changes-and-commit)
- [Caveats](#caveats)
- [Before Commit](#before-commit)
- [Commit Guidelines](#commit-guidelines)
- [Adding a changeset](#adding-a-changeset)
- [Update Tests](#update-tests)
- [Develop Plugins](#develop-plugins)
## How Do I Contribute?
There are different ways to contribute, each comes with a different levels
of tasks, such as:
- Report a bug.
- Request a feature you think would be great for verdaccio.
- Fix bugs.
- Test and triage reported bugs by others.
- Work on requested/approved features.
- Improve the codebase (lint, naming, comments, test descriptions, etc...)
Verdaccio has several areas of involvement, which might fit you better, eg:
- **Core**: The [core](https://github.com/verdaccio/verdaccio) is the main repository, built with **Node.js**.
- **Website**: we uses **Gatsby.js** for the **website** and if you are familiar with this technology, you might become the official webmaster.
- **User Interface**: The [user Interface](https://github.com/verdaccio/ui) is based in **react** and **material-ui** and looking for front-end contributors.
- **Kubernetes and Helm**: Ts the official repository for the [**Helm chart**](https://github.com/verdaccio/charts).
> There are other areas to contribute, like documentation, translation which are not hosted on this repo but check the last section of this notes for further information.
## Development Setup
Verdaccio uses [_pnpm_](https://pnpm.js.org/) as package manager for development in this repository. Please install the latest one:
```
npm i -g pnpm
```
First step is installing all dependencies:
```
pnpm install
```
### Building the project
To build the project run
```
pnpm build
```
### Running test
```
pnpm test
```
Verdaccio is a mono repository, for running an specific test or package go the specific package eg:
```
cd packages/store
pnpm test
```
or an specific test in that package
```
pnpm test test/merge.dist.tags.spec.ts
```
or a single test unit
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple'
```
The coverage is enabled by default, to speed up test running
```
pnpm test test/merge.dist.tags.spec.ts -- -t 'simple' --coverage=false
```
To increase debug output, we use `debug`, to enable it in your test just add
```
DEBUG=verdaccio* pnpm test
```
More details in the debug section
### Running and debugging
We uses [`debug`](https://www.npmjs.com/package/debug) for debug outcome. Each package has it owns namespace.
### Debugging compiled code
Currently you can only run in debug mode pre-compiled packages, to enable debug while running add the `verdaccio` namespace using the `DEBUG` environment variable, like this:
The debug code is intended to analyze what is happening under the hood and none of the output is gathered with the logger module.
## Reporting Bugs
**Bugs are considered features that are not working as described in documentation.**
If you've found a bug in Verdaccio **that isn't a security risk**, please file
a report in our [issue tracker](https://github.com/verdaccio/verdaccio/issues).
> **NOTE: Verdaccio still does not support all npm commands. Some were not
> considered important and others have not been requested yet.**
### Read the documentation
Check whether you are using the software in the way is documented [documentation](http://www.verdaccio.org/docs/en/installation.html).
### What's is not considered a bug?
- _Third party integrations_: proxies integrations, external plugins.
- _Package managers_: If a package manager does not support a specific command or cannot be reproduced with another package manager.
- _Features clearly flagged as not supported_.
- _Node.js issues installation in any platform_: If you cannot install the global package ( this is considered external issue)
- Any ticket which has the flagged as [external issue](https://github.com/verdaccio/verdaccio/labels/external-issue).
If you intent to report a **security** issue, please follow our [Security policy guidelines](https://github.com/verdaccio/verdaccio/security/policy).
### Issue Search
Before consider report a bug, please follow this steps before:
- Search if has already been reported via the issue search.
- Look for the **question** label: we have labelled questions for easy follow-up as [questions](https://github.com/verdaccio/verdaccio/labels/question).
In case any of those match with your search, up-vote it (using GitHub reactions) or add additional helpful details to the existing issue to show that it's affecting multiple people.
### Chat
Questions can be asked via [Discord](http://chat.verdaccio.org/)
**Please use the `#help` channel.**
## Request Features
New feature requests are welcome. Analyse whether the idea fits within scope of
the project. Then, detail your request, ensuring context and use case is provided.
**Please provide:**
- A detailed description the advantages of your request
- Whether or not it's compatible with `npm`, `pnpm` and [_yarn classic_](https://github.com/yarnpkg/yarn) or [_yarn berry_](https://github.com/yarnpkg/berry).
- A potential implementation or design
- Whatever else you have in your mind 🤓
## Contributing Guidelines
This is the most exciting part, when you became a Verdaccio contributor 🙌🏼, to ensure a fast code review and merge, please follow the next guidelines:
> Any contribution gives you the right to be part of this organization as _collaborator_.
### Submitting a Pull Request
The following are the steps you should follow when creating a pull request.
Subsequent pull requests only need to follow step 3 and beyond.
1. Fork the repository on GitHub
2. Clone the forked repository to your machine
3. Make your changes and commit them to your local repository
4. Rebase and push your commits to your GitHub remote fork/repository
5. Issue a Pull Request to the official repository
6. Your Pull Request is reviewed by a committer and merged into the repository
**NOTE**: While there are other ways to accomplish the steps using other tools,
the examples here will assume most actions will be performed via `git` on
command line.
For more information on maintaining a fork, please see the GitHub Help article
titled [Fork a Repo](https://help.github.com/articles/fork-a-repo/), and
information on [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing).
### Make Changes and Commit
#### Caveats
Feel free to commit as much times you want in your branch, but keep on mind on this repository we `git squash` on merge by default, any other way is forbidden since we intent to have a clean git history.
#### Before Commit
Before committing, **you must ensure there are no linting errors and
all tests pass.**
To do this, run these commands before create the PR:
> note: eslint and formatting are running separately, keep code formatting before push.
All good? perfect, then you should create the pull request.
#### Commit Guidelines
For example:
-`feat: A new feature`
-`fix: A bug fix`
A commit of the type feat introduces a new feature to the codebase
(this correlates with MINOR in semantic versioning).
e.g.:
```
feat: xxxxxxxxxx
```
A commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
e.g.:
```
fix: xxxxxxxxxxx
```
Commits types such as as `docs:`,`style:`,`refactor:`,`perf:`,`test:`
and `chore:` are valid but have no effect on versioning. **It would be great if you use them.**
All commits message are going to be validated when they are created using husky hooks.
> Please, try to provide one single commit to help a clean and easy merge process.
### Adding a changeset
We use [changesets](https://github.com/atlassian/changesets) in order to generate a detailed Changelog as possible.
Add a changeset with your Pull Request is essential if you want your contribution get merged. To create a changeset please run:
```
pnpm changeset
```
Then select the packages you want to include in your changeset navigating through them and press the spacebar to check it, on finish press enter to move to the next step.
```
🦋 Which packages would you like to include? …
✔ changed packages
changed packages
✔ @verdaccio/api
✔ @verdaccio/auth
✔ @verdaccio/cli
✔ @verdaccio/config
✔ @verdaccio/commons-api
```
The next question would be if you want a _major bump_, this is not the usual scenario, most likely would be a patch, in that case press enter 2 times (to skip minor)
```
🦋 Which packages should have a major bump? …
✔ all packages
✔ @verdaccio/config@5.0.0-alpha.0
```
Once the desired bump you need, the CLI will ask for a summary, here you have fully freedom what to include.
```
🦋 Which packages would you like to include? · @verdaccio/config
🦋 Which packages should have a major bump? · No items were selected
🦋 Which packages should have a minor bump? · No items were selected
🦋 The following packages will be patch bumped:
🦋 @verdaccio/config@5.0.0-alpha.0
🦋 Please enter a summary for this change (this will be in the changelogs). Submit empty line to open external editor
🦋 Summary ›
```
The last step is confirm your changeset or abort the operation.
```
🦋 Is this your desired changeset? (Y/n) · true
🦋 Changeset added! - you can now commit it
🦋
🦋 If you want to modify or expand on the changeset summary, you can find it here
🦋 info /Users/user/verdaccio.clone/.changeset/light-scissors-smell.md
```
Once the changeset is added (all will have an unique name) you can freely edit using markdown, adding additional information, code snippets or what you consider is relevant.
All that information will be part of the **changelog**, be concise but informative. It is considered a good option to add your nickname and GitHub link to your profile.
**PRs that do not follow the commit message guidelines will not be merged.**
### Update Tests
**Any change in source code must include test updates**.
If you need help with how testing works, please [refer to the following guide](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests).
**If you are introducing new features, you MUST include new tests. PRs for
features without tests will not be merged.**
## Develop Plugins
Plugins are add-ons that extend the functionality of the application.
If you want to develop your own plugin:
1. Check whether there is a legacy Sinopia plugin for the feature that you need
via [npmjs](https://www.npmjs.com/search?q=sinopia)
2. Keep in mind the [life-cycle to load a plugin](https://verdaccio.org/docs/en/dev-plugins)
3. You are free to host your plugin in your repository
4. Provide a detailed description of your plugin to help users understand how to use it.
# yarn version included in [`node:alpine` Docker image](https://github.com/nodejs/docker-node/blob/b3d8cc15338c545a4328286b2df806b511e2b31b/22/alpine3.21/Dockerfile#L81)
ENVYARN_VERSION=1.22.22
WORKDIR$VERDACCIO_APPDIR
# https://github.com/Yelp/dumb-init
RUN apk --no-cache add openssl dumb-init
RUN mkdir -p /verdaccio/storage /verdaccio/plugins /verdaccio/conf
# Also remove the symlinks added in the [`node:alpine` Docker image](https://github.com/nodejs/docker-node/blob/b3d8cc15338c545a4328286b2df806b511e2b31b/22/alpine3.21/Dockerfile#L99-L100).
Verdaccio can be used as a module for launch a server programmatically, [you can find more info at the website](https://verdaccio.org/docs/verdaccio-programmatically#using-the-module-api).
You can develop your own [plugins](https://verdaccio.org/docs/plugins) with the [verdaccio generator](https://github.com/verdaccio/generator-verdaccio-plugin). Installing [Yeoman](https://yeoman.io/) is required.
Learn more [here](https://verdaccio.org/docs/dev-plugins) how to develop plugins. Share your plugins with the community.
## Donations
Verdaccio is run by **volunteers**; nobody is working full-time on it. If you find this project to be useful and would like to support its development, consider making a donation - **your logo might end up in this readme.** 😉
Verdaccio is run by **volunteers**; nobody is working full-time on it. If you find this project to be useful and would like to support its development and maintenance.
**[Donate](https://opencollective.com/verdaccio)** 💵👍🏻 starting from _\$1/month_ or just one single contribution.
You can donate at **[Open Collective](https://opencollective.com/verdaccio)** 💵👍🏻 starting from _$1/month_ or just one single contribution.
## What does Verdaccio do for me?
### Use private packages
If you want to use all benefits of npm package system in your company without sending all code to the public, and use your private packages just as easy as public ones.
### Cache npmjs.org registry
If you have more than one server you want to install packages on, you might want to use this to decrease latency
(presumably "slow" npmjs.org will be connected to only once per package/version) and provide limited failover (if npmjs.org is down, we might still find something useful in the cache) or avoid issues like _[How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)_, _[Many packages suddenly disappeared](https://github.com/npm/registry-issue-archive/issues/255)_ or _[Registry returns 404 for a package I have installed before](https://github.com/npm/registry-issue-archive/issues/329)_.
### Link multiple registries
If you use multiples registries in your organization and need to fetch packages from multiple sources in one single project you might take advance of the uplinks feature with Verdaccio, chaining multiple registries and fetching from one single endpoint.
### Override public packages
If you want to use a modified version of some 3rd-party package (for example, you found a bug, but maintainer didn't accept pull request yet), you can publish your version locally under the same name. See in detail [here](https://verdaccio.org/docs/en/best#override-public-packages).
### E2E Testing
Verdaccio has proved to be a lightweight registry that can be
booted in a couple of seconds, fast enough for any CI. Many open source projects use verdaccio for end to end testing, to mention some examples, **create-react-app**, **mozilla neutrino**, **pnpm**, **storybook**, **babel.js**, **angular-cli** or **docusaurus**. You can read more in [here](https://verdaccio.org/docs/e2e).
- [**NodeTLV 20222** - Deep dive into Verdaccio, a lightweight Node.js registry - **Juan Picado**](https://portal.gitnation.org/contents/five-ways-of-taking-advantage-of-verdaccio-your-private-and-proxy-nodejs-registry)
- [Five Ways of Taking Advantage of Verdaccio, Your Private and Proxy Node.js Registry **Node Congress 2022** - **Juan Picado**](https://portal.gitnation.org/contents/five-ways-of-taking-advantage-of-verdaccio-your-private-and-proxy-nodejs-registry)
- [Using Docker and Verdaccio to make Integration Testing Easy - **Docker All Hands #4 December - 2021** - **Juan Picado**](https://www.youtube.com/watch?v=zRI0skF1f8I)
[View more in the YouTube channel](https://www.youtube.com/channel/UC5i20v6o7lSjXzAHOvatt0w).
## Get Started
Run in your terminal
```bash
verdaccio
```
You would need set some npm configuration, this is optional.
```bash
$ npm set registry http://localhost:4873/
```
For one-off commands or to avoid setting the registry globally:
```bash
NPM_CONFIG_REGISTRY=http://localhost:4873 npm i
```
Now you can navigate to [http://localhost:4873/](http://localhost:4873/) where your local packages will be listed and can be searched.
> Warning: Verdaccio [does not currently support PM2's cluster mode](https://github.com/verdaccio/verdaccio/issues/1301#issuecomment-489302298), running it with cluster mode may cause unknown behavior.
## Publishing
#### 1. create a user and log in
```bash
npm adduser --registry http://localhost:4873
```
> if you use HTTPS, add an appropriate CA information ("null" means get CA list from OS)
```bash
$ npm set ca null
```
#### 2. publish your package
```bash
npm publish --registry http://localhost:4873
```
This will prompt you for user credentials which will be saved on the `verdaccio` server.
## Docker
Below are the most commonly needed information,
every aspect of Docker and verdaccio is [documented separately](https://www.verdaccio.org/docs/en/docker.html)
```
docker pull verdaccio/verdaccio
```
Available as [tags](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
```
docker pull verdaccio/verdaccio:6.x-next
```
### Running verdaccio using Docker
To run the docker container:
```bash
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
```
Docker examples are available [in this repository](https://github.com/verdaccio/docker-examples).
## Compatibility
Verdaccio aims to support all features of a standard npm client that make sense to support in private repository. Unfortunately, it isn't always possible.
If you want to report a security vulnerability, please follow the steps which we have defined for you in our [security policy](https://github.com/verdaccio/verdaccio/security/policy).
## Open Collective Sponsors
## Contributors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/verdaccio#sponsor)]
[See the full list of contributors is at the website.](https://verdaccio.org/contributors)
## Open Collective Backers
@@ -70,11 +248,16 @@ Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com
## Special Thanks
Thanks to the following companies to help us to achieve our goals providing free open source licenses.
Thanks to the following companies to help us to achieve our goals providing free open source licenses. Every company provides enough resources to move this project forward.
| BrowserStack | [](https://www.browserstack.com/) | BrowserStack provides plan to run End to End testing for the UI |
| Netlify | [](https://www.netlify.com/) | Netlify provides pro plan for website deployment |
| Algolia | [](https://algolia.com/) | Algolia provides search services for the website |
| Docker | [](https://www.docker.com/community/open-source/application) | Docker offers unlimited pulls and unlimited egress to any and all users |
## Contributors
@@ -88,16 +271,16 @@ If you have any issue you can try the following options, do no desist to ask or
For the latest version of the security policy, please refer to the official page:
The following table describes the versions of this project that are currently supported with security updates:
| Version | Supported |
| ------- | ------------------ |
| 2.x | :x: |
| 3.x | :x: |
| 4.x | :white_check_mark: |
## Responsible disclosure security policy
A responsible disclosure policy helps protect users of the project from publicly disclosed security vulnerabilities without a fix by employing a process where vulnerabilities are first triaged in a private manner, and only publicly disclosed after a reasonable time period that allows patching the vulnerability and provides an upgrade path for users.
When contacting us directly via email, we will do our best efforts to respond in a reasonable time to resolve the issue. When contacting a security program their disclosure policy will provide details on timeframe, processes and paid bounties.
We kindly ask you to refrain from malicious acts that put our users, the project, or any of the project’s team members at risk.
## Reporting a security issue
> Please do not use the provided email address to report issues which are not related to security vulnerabilities
At Verdaccio, we consider the security of our systems a top priority. But no matter how much effort we put into system security, there can still be vulnerabilities present.
If you discover a security vulnerability, please use one of the following means of communications to report it to us:
- Report the security issue to the Node.js Security WG through the [HackerOne program](https://hackerone.com/nodejs-ecosystem) for ecosystem modules on npm, or to [Snyk Security Team](https://snyk.io/vulnerability-disclosure). They will help triage the security issue and work with all involved parties to remediate and release a fix.
Note that time-frame and processes are subject to each program’s own policy.
- Report the security issue to the project maintainers directly at verdaccio@pm.me. If the report contains highly sensitive information, please be advised to encrypt your findings using our [PGP key](https://verdaccio.nyc3.digitaloceanspaces.com/gpg/publickey.verdaccio@pm.me.asc) which is also available in this document.
Your efforts to responsibly disclose your findings are sincerely appreciated and will be taken into account to acknowledge your contributions.
## PGP key
The following is this project’s PGP key which should be used to encrypt any sensitive information shared on unsecured medium such as e-mails:
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.