Skip to main content

Плагины

Verdaccio поддерживает плагины. Плагины позволяют расширить функциональность Verdaccio разными способами - добавить методы аутентификации, добавить эндпоинты или создать своё хранилище.

Есть 4 типа плагинов:

Если вам нужно разработать свой плагин, почитайте секцию разработка.

Использование

Установка

$> npm install --global verdaccio-activedirectory

verdaccio as a sinopia fork it has backward compatibility with plugins that are compatible with sinopia@1.4.0. Установка таких плагинов - аналогична.

$> npm install --global sinopia-memory

Configuration

Откройте файл config.yaml и измените секцию auth так, как указано ниже:

Дефолтная конфигурация выглядит так, потому что мы, по умолчанию, используем встроенный плагин htpasswd, который вы можете отключить, просто закомментировав строчку.

Конфигурирование аутентификации

  htpasswd:
file: ./htpasswd
#max_users: 1000

заменяем на (в случае, когда вы решили использовать плагин ldap.

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

Несколько плагинов аутентификации

Это технически возможно, но плагины надо расположить а правильном порядке, так как проверка кредов будет производиться по очереди.

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

Конфигурирование middleware

Это пример того, как надо настраивать middleware-плагин. Все middleware-плагины должны быть определены в секции middlewares.

middlewares:
audit:
enabled: true

В качестве примера, можно посмотреть на middleware-плагин для audit.

Конфигрирование хранилища

Это пример того, как нужно настраивать плагин хранилища. Все плагины хранилища должны быть определены в секции store.

store:
memory:
limit: 1000

Конфигурирование UI темы

Verdaccio позволяет заменить веб-интерфейс, и мы называем это UI темой. По умолчанию, используется @verdaccio/ui-theme, который включен в поставку, но вы можете использовать что-нибудь другое, установив свой плагин.


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

Имя плагина должно начинаться с verdaccio-theme, иначе плагин не будет загружен.

Вы можете загрузить только одну тему. Так же, можно передать параметры в тему.

theme:
dark:
option1: foo
option2: bar

Устаревшие плагины

Плагины Sinopia

Если вы используете плагин sinopia, помните, что все они - deprecated и могут перестать работать в будущем.

  • sinopia-npm: плагин аутентификации для sinopia, поддерживающий репозиторий npm.
  • sinopia-memory: плагин аутентификации для sinopia, который хранит пользователей в памяти.
  • sinopia-github-oauth-cli.
  • sinopia-crowd: плагин аутентификации для sinopia, для поддержки atlassian crowd.
  • sinopia-activedirectory: плагин аутентификации для sinopia, для поддержки Active Directory.
  • sinopia-github-oauth: плагин аутентификации для sinopia2, для поддержки github oauth web flow.
  • sinopia-delegated-auth: плагин аутентификации для sinopia, который делегирует аутентификацию по другому HTTP URL
  • sinopia-altldap: альтернативный плагин аутентификации для sinopia, для поддержки LDAP
  • sinopia-request: плагин аутентификации для аутентификации через внешнее API.
  • sinopia-htaccess-gpg-email: Генерирует пароль в формате htaccess, шифрует с помощью GPG и посылает его пользователям через MailGun API.
  • sinopia-mongodb: плагин аутентификации, использует mongodb.
  • sinopia-htpasswd: плагин аутентификации для sinopia, поддерживает формат htpasswd.
  • sinopia-leveldb: плагин аутентификации для sinopia, использует leveldb.
  • sinopia-gitlabheres: плагин аутентификации для sinopia, использует Gitlab.
  • sinopia-gitlab: плагин аутентификации для sinopia, использует Gitlab
  • sinopia-ldap: плагин аутентификации для sinopia, использует LDAP.
  • sinopia-github-oauth-env плагин аутентификации для sinopia, использует github oauth web flow.

Все плагины sinopia совместимы со всеми будущими версиями verdaccio. Тем не менее, мы очень хотели бы, чтобы контрибьюторы мигрировали на современный verdaccio API и использовали префикс verdaccio-xx-name.