plugin.yaml
插件配置文件,描述了插件所使用到的能力、模块以及其他相关信息,开放平台将会插件安装与启用时消费该文件内容。
文件位置与结构:
service:
app_id: '********'
version: 1.0.0
name: MyPluginName
description: MyPluginDescription
language: nodejs
language_version: 16.13.0
host_version: 1.0.0
host_sub_version: 1.0.0
min_system_version: 3.5.0
contact: MyContactInformation
config:
- key: MyCustomConfigKey
type: Input
policy:
policy: simple
target: ''
abilities:
- id: Simple-login-SXgh
name: SimpleLoginVerification
abilityType: SimpleAuth
function:
validateFunc: SimpleAuthValidate
apis:
- type: addition
methods:
- GET
url: /hello
function: HelloWorld
modules:
- id: ones-global-banner-GXvd
title: example banner title
moduleType: ones:global:banner
entry: modules/ones-global-banner-GXvd/index.html
service
插件的基本信息配置,参数如下:
app_id
- 类型:
string
插件的唯一身份标识,由脚手架自动生成,一般不建议修改。
两个插件,即便名称一样,若 app_id
不一样,它们会被识别为不同的插件;反之,若 app_id
一致,无论名称是否一样,它们也会被识别为同一个插件。
若一个插件需要升级,则必须保证新旧版本的 app_id
一致,否则开放平台将视为新插件进行安装。
version
- 类型:
string
插件的版本号,建议遵循 Semantic Versioning 2.0.0 语义化版本规范。
name
- 类型:
string
插件名称,将会在插件管理与详情页展示。
description
- 类型:
string
插件的描述信息,将会在插件管理与详情页展示。
scope
- 类型:
1 | 2
声明插件的作用域。
类型 | 说明 |
---|---|
1 | 团队级别插件,只能在「配置中心」=>「插件管理」下进行安装,只能对当前团队生效 |
2 | 组织级别插件,只能在「组织管理」=>「插件管理」下进行安装,对组织下所有团队生效 |
language
- 类型:
'nodejs'
插件的开发语言,目前仅支持 nodejs
,一般无需修改。
host_version
- 类型:
string
开放平台 HOST 最低版本号,一般无需修改。
插件启用时,将会运行在最高位 patch 版本的 HOST 上,这与 npm 的 ~version
效果类似。
举例:
如果你当前的 host_version
版本是 1.0.4
。
服务器存在如下 HOST 版本:
1.0.3
1.0.4
1.0.5
1.1.0
2.0.0
那么你的插件将运行在 1.0.5
版本的 HOST 上。
contact
- 类型:
string
- 最大长度:
255
插件日志页显示 的联系方式展示(支持多行文本)。
示例:
service:
contact: |-
email: support@ones.com
Call: 400-188-1518
config
- 类型:
Config[]
插件自定义配置的配置项数组,你可以通过声明此配置快速提供一些插件自定义配置项,具体使用文档请查阅 插件自定义配置项。
配置只能在插件停用状态进行修改。
Config
参数:
属性 | 说明 | 类型 | 必填 | 默认值 |
---|---|---|---|---|
key | 唯一标识 | string | 是 | |
type | 类型 | 'Input'|'TextArea'|'Password' | 是 | |
required | 是否必填 | boolean | 否 | false |
label | 别名 | string | 否 | key |
value | 默认值 | string | 否 |
示例:
service:
config:
- key: exampleConfigKey
label: my example key
type: Input
效果:
permission
- 类型:
Permission[]
插件自定义的标准权限点配置项数组,你可以通过此配置快速搭建自己的插件权限体系,具体使用文档请查阅 插件自定义权限点。
Permission
参数:
属性 | 说明 | 类型 | 必填 | 默认值 |
---|---|---|---|---|
name | 权限名称 | string | 是 | |
field | 权限唯一标识 | string | 是 | |
desc | 权限描述 | string | 否 |
示例:
service:
permission:
- name: My custom read permission
field: my-custom-read-permission-key
desc: This is an example of custom read permission
- name: My custom write permission
field: my-custom-write-permission-key
配置入口(插件启用后):
language_version
- 类型:
string
- 保留字段
插件开发后端语言的版本号。
host_sub_version
- 类型:
string
- 保留字段
开放平台 HOST 子版本号。
min_system_version
- 类型:
string
- 保留字段
最低兼容的 ONES 系统版本。
mode
- 类型:
string
- 已废弃
插件的模式。
logo
- 类型:
string
- 已废弃
声明插件的 Logo,已废弃。
如需要修改插件 Logo,请修改 插件目录 下的 web/public/logo.svg
文件。
auth
- 类型:
string
- 已废弃
插件授权声明。
policy
- 类型:
Policy
插件的售卖策略
** Policy
参数:**
属性 | 说明 | 类型 | 必填 | 默认值 |
---|---|---|---|---|
policy | 售卖策略 | 'simple' | 'standard' | 是 | |
target | 保留字段,保持空值即可 | string | 是 |
示例:
service:
policy:
policy: standard
target: ''
abilities
插件能力配置项 数组,单个能力的配置参数如下:
id
- 类型:
string
插件的能力的唯一标识。
name
- 类型:
string
插件的能力名称。
label
- 类型:
string
- 保留字段
插件能力别名。
relateModule
- 类型:
string
与当前能力绑定使用的 插件模块 ID,根据特定能力需求配置,一般无需修改。
version
- 类型:
string
添加能力时所选择插件能力版本,由脚手架自动生成,一般无需修改。
abilityType
- 类型:
string
插件的能力类型,由脚手架自动生成,一般无需修改。
function
- 类型:
Record<string, string>
插件的能力的调用入口方法名,由脚手架自动生成,如果同一个能力添加多次,你需要手动修改指定新的方法名。
config
- 类型:
AbilityConfig[]
插件能力配置项,由脚手架自动生成。
AbilityConfig
参数:
属性 | 说明 | 类型 | 必填 | 默认值 |
---|---|---|---|---|
key | 唯一标识 | string | 是 | |
fieldType | 类型 | FieldType | 是 | |
required | 是否必填 | boolean | 否 | false |
label | 别名 | string | 否 | key |
value | 默认值 | string | 否 | |
show | 插件详情页是否展示此配置 | boolean | 否 | true |
props | 配置项 UI 输入控件的 props | object | 否 |
FieldType
类型:
'Input'
:单行文本'TextArea'
:多行文本'Password'
:密码输入框'Number'
:数字输入框'Select'
:单选'MultiSelect'
:多选'DatePicker'
:日期选择器'DateTimePicker'
:时间日期选择器'TimePicker'
:时间选择器'Switch'
:开关
** props 参数:**
配置项 UI 输入控件的 props。具体参数可结合 FieldType
查阅 ONES 组件库文档。
举例:
当你的 FieldType
为文本输入框时,你可以通过 props 控制输入框的占位符(placeholder
)等。
当你的 FieldType
为选择框时,你可以通过 props 控制选择框的可选项(options
)等。
仅支持部分参数(且受限于 yaml,只允许传入 string
、number
或 null
类型的参数),建议你不要传入一些影响功能性的参数,我们不保证传入后配置表单的功能能正常运行。
apis
插件的接口配置项 数组,单个接口的配置参数如下:
type
- 类型:
'external' | 'addition'
接口的类型,具体使用详见 接口注册。
'external'
:团队级别新增接口(会对登录进行校验,并且 URL 需要带上team/{teamUUID}
前缀)'addition'
:插件级别新增接口