Skip to main content

Extensiones

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

There are 4 types of plugins:

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

Uso#

Instalación#

$> npm install --global verdaccio-activedirectory

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

$> npm install --global sinopia-memory

Configuration#

Abra el archivo config.yaml y actualice la sección auth como a continuación:

La configuración por defecto luce así, debido a que usamos un plugin htpasswd incorporado por defecto que puede desactivar con solo comentar las siguientes líneas.

Authentication Configuration#

  htpasswd:    file: ./htpasswd    #max_users: 1000

y reemplazándolos con (en caso de que decida usar un plugin ldap).

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

Multiple Authentication 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 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.

Storage 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

Theme Configuration#

Verdaccio allows to replace the User Interface with a custom one, we call it theme. By default, uses @verdaccio/ui-theme that comes built-in, but, you can use something different installing your own plugin.


<br />$> npm install --global verdaccio-theme-dark

The plugin name prefix must start with verdaccio-theme, otherwise the plugin won't load.

You can load only one theme at the time and pass through options if is need it.

theme:  dark:    option1: foo    option2: bar

Plugins heredados#

Plugins de Sinopia#

If you are relying on any sinopia plugin, remember are deprecated and might no work in the future.

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.