verdaccio/docs/plugins.md

6.5 KiB

id title
plugins Plugins

Verdaccio is an plugabble aplication. It can be extended in many ways, either new authentication methods, adding endpoints or using a custom storage.

If you are interested to develop your own plugin, read the development section.

Usage

Installation

$> npm install --global verdaccio-activedirectory

verdaccio as a sinopia fork it has backward compability with plugins that are compatible with sinopia@1.4.0. In such case the installation is the same.

$> npm install --global sinopia-memory

Configuration

Open the config.yaml file and update the auth section as follows:

The default configuration looks like this, due we use a build-in htpasswd plugin by default that you can disable just commenting out the following lines.

Auth Plugin Configuration

 htpasswd:
    file: ./htpasswd
    #max_users: 1000

and replacing them with (in case you decide to use a ldap plugin.

auth:
  activedirectory:
    url: "ldap://10.0.100.1"
    baseDN: 'dc=sample,dc=local'
    domainSuffix: 'sample.local'

Multiple Auth plugins

This is tecnically possible, making the plugin order important, as the credentials will be resolved in order.

auth:
  htpasswd:
    file: ./htpasswd
    #max_users: 1000
  activedirectory:
    url: "ldap://10.0.100.1"
    baseDN: 'dc=sample,dc=local'
    domainSuffix: 'sample.local'

Middleware Plugin Configuration

This is an example how to set up a middleware plugin. All middleware plugins must be defined in the middlewares namespace.

middlewares:
  audit:
    enabled: true

You might follow the audit middle plugin as base example.

Store Plugin Configuration

This is an example how to set up a storage plugin. All storage plugins must be defined in the store namespace.

store:
  memory:
    limit: 1000

If you define a custom store, the property storage in the configuration file will be ignored.

Legacy plugins

Sinopia Plugins

(compatible all versions)

All sinopia plugins should be compatible with all future verdaccio versions. Anyhow, we encourage contributors to migrate them to the modern verdaccio API and using the prefix as verdaccio-xx-name.

Verdaccio Plugins

(compatible since 2.1.x)

Authorization Plugins

Middleware Plugins

  • verdaccio-audit: verdaccio plugin for npm audit cli support (built-in) (compatible since 3.x)

  • verdaccio-profile-api: verdacci plugin for npm profile cli support and npm profile set password for verdaccio-htpasswd based authentificaton

Storage Plugins

(compatible since 3.x)

Caveats

Not all these plugins are been tested continuously, some of them might not work at all. Please if you found any issue feel free to notify the owner of each plugin.