插件
Verdaccio是一个可插入式应用程序。 它可以通过多种方式扩展,可以是新的认证方法,添加端点或者使用定制存储。
There are 4 types of plugins:
使用
安装
$> npm install --global verdaccio-activedirectory
verdaccio
作为 sinopia 分支,它向后兼容与 sinopia@1.4.0
兼容的插件。 在这种情况下,安装方法是相同的。
$> npm install --global sinopia-memory
配置
打开config.yaml
文件并按如下说明更新auth
部分:
默认配置如下所示,由于在默认情况下我们使用一个内置的htpasswd
插件,我们可以通过注释下面几行代码来禁用它:
命名规范
自版本 2.0.0
起,插件必须以下列约定开始:
sinopia-xxx
(已弃用,并将在 6.x.x 上删除)verdaccio-xxx
版本 5.12.0
之后支持 Scope 插件,例如
auth:
'@my-org/auth-awesome-plugin':
foo: some value
bar: another value
store:
'@my-org/store-awesome-plugin':
foo: some value
bar: another value
middleware:
'@my-org/middleware-awesome-plugin':
foo: some value
bar: another value
身份验证配置
auth:
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'
中间件配置
示例:如何设置中间件插件。 所有中间件插件都必须在 middlewares 命名空间中定义。
middlewares:
audit:
enabled: true
您可以将 audit 中间件插件作为基本示例。
存储配置
:::警告
如果 store
属性在 config.yaml
文件中定义,则 storage
属性将被忽略。
:::警告
示例:如何设置存储插件。 所有存储插件都必须在 store 命名空间中定义。
store:
memory:
limit: 1000
主题配置
npm install --global verdaccio-theme-dark
您一次只能加载一个主题,并在需要时通过选项进行配置。
theme:
dark:
option1: foo
option2: bar
过滤器配置(实验性)
npm i -g verdaccio-plugin-secfilter 过滤插件的一个真实示例。
filters:
plugin-secfilter:
block:
- scope: @evil # 阻止 Scope 内的所有包
- package: semvver # 阻止恶意包
- package: @coolauthor/stolen
versions: '>2.0.1' # 阻止原本正常软件包的一些恶意版本
# uses https://www.npmjs.com/package/semver syntax
旧式插件
Sinopia 插件
:::警告
在第 6 版之后,由于命名规则的原因,不再支持 sinopia 插件。
:::警告
如果您依赖任何 sinopia 插件,请记住这些插件已经过时,将来可能无法使用。
- sinopia-npm:支持 npm registry 的 sinopia 认证插件。
- sinopia-memory:sinopia 的 auth 插件,可将用户保存在内存中。
- sinopia-github-oauth-cli.
- sinopia-crowd:sinopia 支持 atlassian crowd 的 auth 插件。
- 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:支持 htpasswd 格式的 sinopia auth 插件。
- sinopia-leveldb:用于 sinopia 私有 npm 的 leveldb 支持的身份验证插件。
- sinopia-gitlabheres:sinopia 的 Gitlab 身份验证插件。
- sinopia-gitlab:sinopia 的 Gitlab身份验证插件
- sinopia-ldap:sinopia 的 LDAP 身份验证插件。
- sinopia-github-oauth-env Sinopia 身份验证插件,带有 github oauth Web 流程。
所有 sinopia 插件应与所有未来的 verdaccio 版本兼容。 无论如何,我们鼓励贡献者将它们迁移到现代 verdaccio API,并使用 verdaccio-xx-name 作为前缀。