@certd/plugin-plus 1.34.2 → 1.34.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/d/baota/index.d.ts +1 -0
- package/dist/d/baota/waf-access.d.ts +12 -0
- package/dist/d/index.d.ts +1 -0
- package/dist/d/maoyun/access.d.ts +7 -0
- package/dist/d/maoyun/client.d.ts +17 -0
- package/dist/d/maoyun/index.d.ts +2 -0
- package/dist/d/maoyun/plugins/plugin-deploy-to-cdn.d.ts +11 -0
- package/dist/index.js +1 -1
- package/export-plugin-yaml.js +99 -0
- package/metadata/access_1panel.yaml +81 -0
- package/metadata/access_alipay.yaml +29 -0
- package/metadata/access_baidu.yaml +22 -0
- package/metadata/access_baishan.yaml +15 -0
- package/metadata/access_baota-waf.yaml +36 -0
- package/metadata/access_baota.yaml +50 -0
- package/metadata/access_cdnfly.yaml +29 -0
- package/metadata/access_k8s.yaml +16 -0
- package/metadata/access_kuocaicdn.yaml +20 -0
- package/metadata/access_lecdn.yaml +27 -0
- package/metadata/access_lucky.yaml +29 -0
- package/metadata/access_maoyun.yaml +26 -0
- package/metadata/access_plesk.yaml +27 -0
- package/metadata/access_safeline.yaml +26 -0
- package/metadata/access_synology.yaml +80 -0
- package/metadata/access_unicloud.yaml +21 -0
- package/metadata/access_wxpay.yaml +40 -0
- package/metadata/access_yfysms.yaml +21 -0
- package/metadata/access_yidun.yaml +22 -0
- package/metadata/access_yidunrcdn.yaml +20 -0
- package/metadata/access_yizhifu.yaml +45 -0
- package/metadata/deploy_1PanelDeployToWebsitePlugin.yaml +60 -0
- package/metadata/deploy_AliyunDeployCertToAll.yaml +174 -0
- package/metadata/deploy_BaiduDeployToCDN.yaml +43 -0
- package/metadata/deploy_BaishanUpdateCert.yaml +47 -0
- package/metadata/deploy_BaotaDeployPanelCert.yaml +34 -0
- package/metadata/deploy_BaotaDeployWebSiteCert.yaml +85 -0
- package/metadata/deploy_CdnflyDeployToCDN.yaml +123 -0
- package/metadata/deploy_CtyunDeployToCDN.yaml +97 -0
- package/metadata/deploy_DeployCertToAliyunAck.yaml +122 -0
- package/metadata/deploy_HostDeployToIIS.yaml +76 -0
- package/metadata/deploy_K8sDeployToIngress.yaml +46 -0
- package/metadata/deploy_K8sDeployToSecret.yaml +50 -0
- package/metadata/deploy_KuocaiDeployToRCDN.yaml +59 -0
- package/metadata/deploy_LeCDNUpdateCert.yaml +57 -0
- package/metadata/deploy_LeCDNUpdateCertV2.yaml +58 -0
- package/metadata/deploy_LuckyUpdateCert.yaml +73 -0
- package/metadata/deploy_MaoyunDeployToCdn.yaml +72 -0
- package/metadata/deploy_PleskDeploySiteCert.yaml +72 -0
- package/metadata/deploy_QiniuDeployCertToOSS.yaml +39 -0
- package/metadata/deploy_SafelineDeployToWebsitePlugin.yaml +75 -0
- package/metadata/deploy_SynologyDeployToPanel.yaml +45 -0
- package/metadata/deploy_UniCloudDeployToSpace.yaml +64 -0
- package/metadata/deploy_UploadCertToFTP.yaml +171 -0
- package/metadata/deploy_YidunDeployToCDN.yaml +48 -0
- package/metadata/deploy_YidunDeployToRCDN.yaml +59 -0
- package/package.json +12 -9
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// 扫描目录,列出文件,然后加载为模块
|
|
2
|
+
|
|
3
|
+
import path, { join } from "path";
|
|
4
|
+
import fs from "fs";
|
|
5
|
+
import { pathToFileURL } from "node:url";
|
|
6
|
+
import * as yaml from "js-yaml";
|
|
7
|
+
import { AbstractTaskPlugin, BaseAccess, BaseNotification } from "@certd/pipeline";
|
|
8
|
+
|
|
9
|
+
function scanDir(dir) {
|
|
10
|
+
const files = fs.readdirSync(dir);
|
|
11
|
+
const result = [];
|
|
12
|
+
// 扫描目录及子目录
|
|
13
|
+
for (const file of files) {
|
|
14
|
+
const filePath = join(dir, file);
|
|
15
|
+
const stat = fs.statSync(filePath);
|
|
16
|
+
if (stat.isDirectory()) {
|
|
17
|
+
result.push(...scanDir(filePath));
|
|
18
|
+
} else {
|
|
19
|
+
if (!file.endsWith(".js")) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
result.push(filePath);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default async function loadModules(dir) {
|
|
29
|
+
const files = scanDir(dir);
|
|
30
|
+
const modules = {};
|
|
31
|
+
for (const file of files) {
|
|
32
|
+
if (file === "dist/index.js" || file === "dist\\index.js") {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
// 转换为 file:// URL(Windows 必需)
|
|
37
|
+
const moduleUrl = pathToFileURL(file).href;
|
|
38
|
+
const module = await import(moduleUrl);
|
|
39
|
+
|
|
40
|
+
// 如果模块有默认导出,优先使用
|
|
41
|
+
modules[file] = module.default || module;
|
|
42
|
+
} catch (err) {
|
|
43
|
+
console.error(`加载模块 ${file} 失败:`, err);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return modules;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function isPrototypeOf(value, cls) {
|
|
50
|
+
return cls.prototype.isPrototypeOf(value.prototype);
|
|
51
|
+
}
|
|
52
|
+
async function genMetadata() {
|
|
53
|
+
const modules = await loadModules("./dist");
|
|
54
|
+
|
|
55
|
+
fs.rmSync("./metadata", { recursive: true });
|
|
56
|
+
fs.mkdirSync("./metadata", { recursive: true });
|
|
57
|
+
for (const key in modules) {
|
|
58
|
+
console.log(key);
|
|
59
|
+
const module = modules[key];
|
|
60
|
+
const entry = Object.entries(module);
|
|
61
|
+
for (const [name, value] of entry) {
|
|
62
|
+
//如果有define属性
|
|
63
|
+
if (value.define) {
|
|
64
|
+
//那么就是插件
|
|
65
|
+
let location = key.substring(4);
|
|
66
|
+
location = location.substring(0, location.length - 3);
|
|
67
|
+
location = location.replaceAll("\\", "/");
|
|
68
|
+
location += ".js";
|
|
69
|
+
location = `../..${location}`; // 从modules/plugin/plugin-service 加载 ../../plugins目录下的文件
|
|
70
|
+
|
|
71
|
+
const pluginDefine = {
|
|
72
|
+
...value.define,
|
|
73
|
+
};
|
|
74
|
+
pluginDefine.type = "builtIn";
|
|
75
|
+
if (pluginDefine.accessType) {
|
|
76
|
+
pluginDefine.pluginType = "dnsProvider";
|
|
77
|
+
} else if (isPrototypeOf(value, AbstractTaskPlugin)) {
|
|
78
|
+
pluginDefine.pluginType = "deploy";
|
|
79
|
+
} else if (isPrototypeOf(value, BaseNotification)) {
|
|
80
|
+
pluginDefine.pluginType = "notification";
|
|
81
|
+
} else if (isPrototypeOf(value, BaseAccess)) {
|
|
82
|
+
pluginDefine.pluginType = "access";
|
|
83
|
+
} else {
|
|
84
|
+
console.log(`[warning] 未知的插件类型:${pluginDefine.name}`);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const filePath = path.join(`./metadata/${pluginDefine.pluginType}_${pluginDefine.name}.yaml`);
|
|
88
|
+
|
|
89
|
+
pluginDefine.scriptFilePath = location;
|
|
90
|
+
const data = yaml.dump(pluginDefine);
|
|
91
|
+
fs.writeFileSync(filePath, data, "utf8");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
process.exit();
|
|
96
|
+
}
|
|
97
|
+
// import why from 'why-is-node-running'
|
|
98
|
+
// setTimeout(() => why(), 100); // 延迟打印原因
|
|
99
|
+
genMetadata();
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
name: 1panel
|
|
2
|
+
title: 1panel授权
|
|
3
|
+
desc: 账号和密码
|
|
4
|
+
icon: svg:icon-onepanel
|
|
5
|
+
input:
|
|
6
|
+
baseUrl:
|
|
7
|
+
title: 1Panel面板的url
|
|
8
|
+
component:
|
|
9
|
+
placeholder: http://xxxx.com:1231
|
|
10
|
+
helper: 不要带安全入口
|
|
11
|
+
required: true
|
|
12
|
+
safeEnter:
|
|
13
|
+
title: 安全入口
|
|
14
|
+
component:
|
|
15
|
+
placeholder: 登录的安全入口
|
|
16
|
+
encrypt: true
|
|
17
|
+
required: false
|
|
18
|
+
type:
|
|
19
|
+
title: 授权方式
|
|
20
|
+
component:
|
|
21
|
+
name: a-select
|
|
22
|
+
vModel: value
|
|
23
|
+
options:
|
|
24
|
+
- label: 模拟登录【不推荐】
|
|
25
|
+
value: password
|
|
26
|
+
- label: 接口密钥【推荐】
|
|
27
|
+
value: apikey
|
|
28
|
+
required: true
|
|
29
|
+
username:
|
|
30
|
+
title: 用户名
|
|
31
|
+
component:
|
|
32
|
+
placeholder: username
|
|
33
|
+
mergeScript: |2-
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
show: ctx.compute(({form})=>{
|
|
37
|
+
return form.access.type === 'password';
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
required: true
|
|
42
|
+
password:
|
|
43
|
+
title: 密码
|
|
44
|
+
component:
|
|
45
|
+
placeholder: password
|
|
46
|
+
helper: ''
|
|
47
|
+
mergeScript: |2-
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
show: ctx.compute(({form})=>{
|
|
51
|
+
return form.access.type === 'password';
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
required: true
|
|
56
|
+
encrypt: true
|
|
57
|
+
apiKey:
|
|
58
|
+
title: 接口密钥
|
|
59
|
+
component:
|
|
60
|
+
placeholder: 接口密钥
|
|
61
|
+
mergeScript: |2-
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
show: ctx.compute(({form})=>{
|
|
65
|
+
return form.access.type === 'apikey';
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
helper: 面板设置->API接口中获取
|
|
70
|
+
required: true
|
|
71
|
+
encrypt: true
|
|
72
|
+
skipSslVerify:
|
|
73
|
+
title: 忽略证书校验
|
|
74
|
+
value: true
|
|
75
|
+
component:
|
|
76
|
+
name: a-switch
|
|
77
|
+
vModel: checked
|
|
78
|
+
helper: 如果面板的url是https,且使用的是自签名证书,则需要开启此选项,其他情况可以关闭
|
|
79
|
+
type: builtIn
|
|
80
|
+
pluginType: access
|
|
81
|
+
scriptFilePath: ../../1panel/index.js
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: alipay
|
|
2
|
+
title: 支付宝
|
|
3
|
+
icon: ion:logo-alipay
|
|
4
|
+
input:
|
|
5
|
+
appId:
|
|
6
|
+
title: AppId
|
|
7
|
+
component:
|
|
8
|
+
placeholder: 201909176714xxxx
|
|
9
|
+
required: true
|
|
10
|
+
encrypt: false
|
|
11
|
+
privateKey:
|
|
12
|
+
title: 应用私钥
|
|
13
|
+
component:
|
|
14
|
+
placeholder: MIIEvQIBADANB...
|
|
15
|
+
name: a-textarea
|
|
16
|
+
rows: 3
|
|
17
|
+
required: true
|
|
18
|
+
encrypt: true
|
|
19
|
+
alipayPublicKey:
|
|
20
|
+
title: 支付宝公钥
|
|
21
|
+
component:
|
|
22
|
+
name: a-textarea
|
|
23
|
+
rows: 3
|
|
24
|
+
placeholder: MIIBIjANBg...
|
|
25
|
+
required: true
|
|
26
|
+
encrypt: true
|
|
27
|
+
type: builtIn
|
|
28
|
+
pluginType: access
|
|
29
|
+
scriptFilePath: ../../alipay/index.js
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: baidu
|
|
2
|
+
title: 百度云授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: ant-design:baidu-outlined
|
|
5
|
+
input:
|
|
6
|
+
accessKey:
|
|
7
|
+
title: AccessKey
|
|
8
|
+
component:
|
|
9
|
+
placeholder: AccessKey
|
|
10
|
+
helper: '[百度智能云->安全认证获取](https://console.bce.baidu.com/iam/#/iam/accesslist)'
|
|
11
|
+
required: true
|
|
12
|
+
encrypt: false
|
|
13
|
+
secretKey:
|
|
14
|
+
title: SecretKey
|
|
15
|
+
component:
|
|
16
|
+
placeholder: SecretKey
|
|
17
|
+
helper: ''
|
|
18
|
+
required: true
|
|
19
|
+
encrypt: true
|
|
20
|
+
type: builtIn
|
|
21
|
+
pluginType: access
|
|
22
|
+
scriptFilePath: ../../baidu/index.js
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: baishan
|
|
2
|
+
title: 白山云授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: material-symbols:shield-outline
|
|
5
|
+
input:
|
|
6
|
+
token:
|
|
7
|
+
title: token
|
|
8
|
+
component:
|
|
9
|
+
placeholder: token
|
|
10
|
+
helper: 自行联系提供商申请
|
|
11
|
+
required: true
|
|
12
|
+
encrypt: true
|
|
13
|
+
type: builtIn
|
|
14
|
+
pluginType: access
|
|
15
|
+
scriptFilePath: ../../baishan/index.js
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: baota-waf
|
|
2
|
+
title: 宝塔云WAF授权
|
|
3
|
+
desc: 用于连接和管理宝塔云WAF服务的授权配置
|
|
4
|
+
icon: svg:icon-bt
|
|
5
|
+
input:
|
|
6
|
+
panelUrl:
|
|
7
|
+
title: 在宝塔WAF URL
|
|
8
|
+
component:
|
|
9
|
+
placeholder: http://192.168.42.237:41896
|
|
10
|
+
helper: 在宝塔WAF的URL地址,不要带安全入口,例如:http://192.168.42.237:41896
|
|
11
|
+
required: true
|
|
12
|
+
apiSecret:
|
|
13
|
+
title: WAF API 密钥
|
|
14
|
+
component:
|
|
15
|
+
placeholder: 请输入WAF API接口密钥
|
|
16
|
+
helper: |-
|
|
17
|
+
在宝塔WAF设置页面 - API接口中获取的API密钥。
|
|
18
|
+
必须添加IP白名单,请确保已将CertD服务器IP加入白名单
|
|
19
|
+
required: true
|
|
20
|
+
encrypt: true
|
|
21
|
+
skipSslVerify:
|
|
22
|
+
title: 忽略SSL证书校验
|
|
23
|
+
value: false
|
|
24
|
+
component:
|
|
25
|
+
name: a-switch
|
|
26
|
+
vModel: checked
|
|
27
|
+
helper: 如果面板使用的是自签名SSL证书,则需要开启此选项
|
|
28
|
+
testRequest:
|
|
29
|
+
title: 测试
|
|
30
|
+
component:
|
|
31
|
+
name: api-test
|
|
32
|
+
action: onTestRequest
|
|
33
|
+
helper: 点击测试WAF请求
|
|
34
|
+
type: builtIn
|
|
35
|
+
pluginType: access
|
|
36
|
+
scriptFilePath: ../../baota/waf-access.js
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: baota
|
|
2
|
+
title: baota授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: svg:icon-bt
|
|
5
|
+
input:
|
|
6
|
+
panelUrl:
|
|
7
|
+
title: 宝塔URL地址
|
|
8
|
+
component:
|
|
9
|
+
placeholder: http://192.168.42.237:41896
|
|
10
|
+
helper: 宝塔面板的url地址,不要带安全入口,例如:http://192.168.42.237:41896
|
|
11
|
+
required: true
|
|
12
|
+
apiSecret:
|
|
13
|
+
title: 接口密钥
|
|
14
|
+
component:
|
|
15
|
+
placeholder: 接口密钥
|
|
16
|
+
helper: |-
|
|
17
|
+
宝塔面板设置->面板设置->API接口->接口配置->接口密钥。
|
|
18
|
+
必须要加IP白名单,您可以点击下方测试按钮,报错之后会打印IP,将IP加入白名单之后再次测试即可
|
|
19
|
+
required: true
|
|
20
|
+
encrypt: true
|
|
21
|
+
skipSslVerify:
|
|
22
|
+
title: 忽略证书校验
|
|
23
|
+
value: true
|
|
24
|
+
component:
|
|
25
|
+
name: a-switch
|
|
26
|
+
vModel: checked
|
|
27
|
+
helper: 如果面板的url是https,且使用的是自签名证书,则需要开启此选项,其他情况可以关闭
|
|
28
|
+
testRequest:
|
|
29
|
+
title: 测试
|
|
30
|
+
component:
|
|
31
|
+
name: api-test
|
|
32
|
+
type: access
|
|
33
|
+
typeName: baota
|
|
34
|
+
action: TestRequest
|
|
35
|
+
mergeScript: |2-
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
component:{
|
|
39
|
+
form: ctx.compute(({form})=>{
|
|
40
|
+
return form
|
|
41
|
+
})
|
|
42
|
+
},
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
helper: |-
|
|
46
|
+
点击测试接口看是否正常
|
|
47
|
+
如果宝塔版本低于9.0.0,此处会测试失败,可以忽略它
|
|
48
|
+
type: builtIn
|
|
49
|
+
pluginType: access
|
|
50
|
+
scriptFilePath: ../../baota/index.js
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: cdnfly
|
|
2
|
+
title: cdnfly授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: majesticons:cloud-line
|
|
5
|
+
input:
|
|
6
|
+
url:
|
|
7
|
+
title: cdnfly系统网址
|
|
8
|
+
component:
|
|
9
|
+
name: a-input
|
|
10
|
+
vModel: value
|
|
11
|
+
required: true
|
|
12
|
+
helper: 例如:http://demo.cdnfly.cn
|
|
13
|
+
apiKey:
|
|
14
|
+
title: api_key
|
|
15
|
+
component:
|
|
16
|
+
placeholder: api_key
|
|
17
|
+
helper: 登录cdnfly控制台->账户中心->Api密钥,点击开启后获取
|
|
18
|
+
required: true
|
|
19
|
+
encrypt: true
|
|
20
|
+
apiSecret:
|
|
21
|
+
title: api_secret
|
|
22
|
+
component:
|
|
23
|
+
placeholder: api_secret
|
|
24
|
+
helper: 登录cdnfly控制台->账户中心->Api密钥,点击开启后获取
|
|
25
|
+
required: true
|
|
26
|
+
encrypt: true
|
|
27
|
+
type: builtIn
|
|
28
|
+
pluginType: access
|
|
29
|
+
scriptFilePath: ../../cdnfly/index.js
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: k8s
|
|
2
|
+
title: k8s授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: mdi:kubernetes
|
|
5
|
+
input:
|
|
6
|
+
kubeconfig:
|
|
7
|
+
title: kubeconfig
|
|
8
|
+
component:
|
|
9
|
+
name: a-textarea
|
|
10
|
+
vModel: value
|
|
11
|
+
placeholder: kubeconfig
|
|
12
|
+
required: true
|
|
13
|
+
encrypt: true
|
|
14
|
+
type: builtIn
|
|
15
|
+
pluginType: access
|
|
16
|
+
scriptFilePath: ../../k8s/index.js
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: kuocaicdn
|
|
2
|
+
title: 括彩云cdn授权
|
|
3
|
+
icon: material-symbols:shield-outline
|
|
4
|
+
desc: 括彩云CDN,每月免费30G,[注册即领](https://kuocaicdn.com/register?code=8mn536rrzfbf8)
|
|
5
|
+
input:
|
|
6
|
+
username:
|
|
7
|
+
title: 账户
|
|
8
|
+
component:
|
|
9
|
+
placeholder: 手机号
|
|
10
|
+
required: true
|
|
11
|
+
encrypt: true
|
|
12
|
+
password:
|
|
13
|
+
title: 密码
|
|
14
|
+
component:
|
|
15
|
+
placeholder: password
|
|
16
|
+
required: true
|
|
17
|
+
encrypt: true
|
|
18
|
+
type: builtIn
|
|
19
|
+
pluginType: access
|
|
20
|
+
scriptFilePath: ../../kuocai/index.js
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: lecdn
|
|
2
|
+
title: LeCDN授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: material-symbols:shield-outline
|
|
5
|
+
input:
|
|
6
|
+
url:
|
|
7
|
+
title: LeCDN系统网址
|
|
8
|
+
component:
|
|
9
|
+
name: a-input
|
|
10
|
+
vModel: value
|
|
11
|
+
required: true
|
|
12
|
+
helper: 例如:http://demo.xxxx.cn
|
|
13
|
+
username:
|
|
14
|
+
title: 用户名
|
|
15
|
+
component:
|
|
16
|
+
placeholder: username
|
|
17
|
+
required: true
|
|
18
|
+
encrypt: false
|
|
19
|
+
password:
|
|
20
|
+
title: 登录密码
|
|
21
|
+
component:
|
|
22
|
+
placeholder: password
|
|
23
|
+
required: true
|
|
24
|
+
encrypt: true
|
|
25
|
+
type: builtIn
|
|
26
|
+
pluginType: access
|
|
27
|
+
scriptFilePath: ../../lecdn/index.js
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: lucky
|
|
2
|
+
title: lucky
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: svg:icon-lucky
|
|
5
|
+
input:
|
|
6
|
+
url:
|
|
7
|
+
title: 访问url
|
|
8
|
+
component:
|
|
9
|
+
placeholder: http://xxx.xx.xx:16301
|
|
10
|
+
helper: 不要带安全入口
|
|
11
|
+
required: true
|
|
12
|
+
encrypt: false
|
|
13
|
+
safePath:
|
|
14
|
+
title: 安全入口
|
|
15
|
+
component:
|
|
16
|
+
placeholder: /your_safe_path
|
|
17
|
+
helper: 请参考lucky设置中关于安全入口的配置,
|
|
18
|
+
required: false
|
|
19
|
+
encrypt: true
|
|
20
|
+
openToken:
|
|
21
|
+
title: OpenToken
|
|
22
|
+
component:
|
|
23
|
+
placeholder: OpenToken
|
|
24
|
+
helper: 设置->最下面开发者设置->启用OpenToken
|
|
25
|
+
required: true
|
|
26
|
+
encrypt: true
|
|
27
|
+
type: builtIn
|
|
28
|
+
pluginType: access
|
|
29
|
+
scriptFilePath: ../../lucky/index.js
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: maoyun
|
|
2
|
+
title: 猫云授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: svg:icon-lucky
|
|
5
|
+
input:
|
|
6
|
+
username:
|
|
7
|
+
title: 用户名
|
|
8
|
+
component:
|
|
9
|
+
placeholder: username/手机号/email
|
|
10
|
+
name: a-input
|
|
11
|
+
vModel: value
|
|
12
|
+
helper: 用户名
|
|
13
|
+
required: true
|
|
14
|
+
password:
|
|
15
|
+
title: password
|
|
16
|
+
component:
|
|
17
|
+
placeholder: 密码
|
|
18
|
+
component:
|
|
19
|
+
name: a-input-password
|
|
20
|
+
vModel: value
|
|
21
|
+
encrypt: true
|
|
22
|
+
helper: 密码
|
|
23
|
+
required: true
|
|
24
|
+
type: builtIn
|
|
25
|
+
pluginType: access
|
|
26
|
+
scriptFilePath: ../../maoyun/index.js
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: plesk
|
|
2
|
+
title: plesk授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: svg:icon-plesk
|
|
5
|
+
input:
|
|
6
|
+
url:
|
|
7
|
+
title: Plesk网址
|
|
8
|
+
component:
|
|
9
|
+
name: a-input
|
|
10
|
+
vModel: value
|
|
11
|
+
required: true
|
|
12
|
+
helper: 例如:https://xxxx.xxxxx:8443/
|
|
13
|
+
username:
|
|
14
|
+
title: 用户名
|
|
15
|
+
component:
|
|
16
|
+
placeholder: username
|
|
17
|
+
required: true
|
|
18
|
+
encrypt: false
|
|
19
|
+
password:
|
|
20
|
+
title: 登录密码
|
|
21
|
+
component:
|
|
22
|
+
placeholder: password
|
|
23
|
+
required: true
|
|
24
|
+
encrypt: true
|
|
25
|
+
type: builtIn
|
|
26
|
+
pluginType: access
|
|
27
|
+
scriptFilePath: ../../plesk/index.js
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: safeline
|
|
2
|
+
title: 长亭雷池授权
|
|
3
|
+
icon: svg:icon-safeline
|
|
4
|
+
input:
|
|
5
|
+
baseUrl:
|
|
6
|
+
title: 雷池的访问url
|
|
7
|
+
component:
|
|
8
|
+
placeholder: https://xxxx.com:9443
|
|
9
|
+
required: true
|
|
10
|
+
apiToken:
|
|
11
|
+
title: ApiToken
|
|
12
|
+
component:
|
|
13
|
+
placeholder: apiToken
|
|
14
|
+
helper: ''
|
|
15
|
+
required: true
|
|
16
|
+
encrypt: true
|
|
17
|
+
skipSslVerify:
|
|
18
|
+
title: 忽略证书校验
|
|
19
|
+
value: true
|
|
20
|
+
component:
|
|
21
|
+
name: a-switch
|
|
22
|
+
vModel: checked
|
|
23
|
+
helper: 如果面板的url是https,且使用的是自签名证书,则需要开启此选项,其他情况可以关闭
|
|
24
|
+
type: builtIn
|
|
25
|
+
pluginType: access
|
|
26
|
+
scriptFilePath: ../../safeline/index.js
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: synology
|
|
2
|
+
title: 群晖登录授权
|
|
3
|
+
desc: ''
|
|
4
|
+
icon: simple-icons:synology
|
|
5
|
+
input:
|
|
6
|
+
version:
|
|
7
|
+
title: 群晖版本
|
|
8
|
+
component:
|
|
9
|
+
name: a-select
|
|
10
|
+
vModel: value
|
|
11
|
+
options:
|
|
12
|
+
- label: 7.x
|
|
13
|
+
value: '7'
|
|
14
|
+
- label: 6.x
|
|
15
|
+
value: '6'
|
|
16
|
+
required: true
|
|
17
|
+
baseUrl:
|
|
18
|
+
title: 群晖面板的url
|
|
19
|
+
component:
|
|
20
|
+
placeholder: https://yourdomain:5006
|
|
21
|
+
helper: 群晖面板的访问地址,例如:https://yourdomain:5006
|
|
22
|
+
required: true
|
|
23
|
+
username:
|
|
24
|
+
title: 账号
|
|
25
|
+
component:
|
|
26
|
+
placeholder: 账号
|
|
27
|
+
helper: 群晖面板登录账号,必须是处于管理员用户组
|
|
28
|
+
required: true
|
|
29
|
+
password:
|
|
30
|
+
title: 密码
|
|
31
|
+
component:
|
|
32
|
+
placeholder: 密码
|
|
33
|
+
helper: 群晖面板登录密码
|
|
34
|
+
required: true
|
|
35
|
+
encrypt: true
|
|
36
|
+
otp:
|
|
37
|
+
title: 双重认证
|
|
38
|
+
value: false
|
|
39
|
+
component:
|
|
40
|
+
name: a-switch
|
|
41
|
+
vModel: checked
|
|
42
|
+
helper: 是否启用了双重认证
|
|
43
|
+
required: true
|
|
44
|
+
deviceId:
|
|
45
|
+
title: 设备ID
|
|
46
|
+
component:
|
|
47
|
+
placeholder: 设备ID
|
|
48
|
+
name: synology-device-id-getter
|
|
49
|
+
type: access
|
|
50
|
+
typeName: synology
|
|
51
|
+
mergeScript: |2-
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
component:{
|
|
55
|
+
form: ctx.compute(({form})=>{
|
|
56
|
+
return form
|
|
57
|
+
})
|
|
58
|
+
},
|
|
59
|
+
show: ctx.compute(({form})=>{
|
|
60
|
+
return form.access.otp
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
helper: |-
|
|
65
|
+
1.如果开启了双重认证,需要获取设备ID
|
|
66
|
+
2.填好上面的必填项,然后点击获取设备ID,输入双重认证APP上的码,确认即可获得设备ID,此操作只需要做一次
|
|
67
|
+
3.注意:必须勾选‘安全性->允许网页浏览器的用户通过信任设备来跳过双重验证
|
|
68
|
+
4.注意:在群晖信任设备页面里面会生成一条记录,不要删除
|
|
69
|
+
required: false
|
|
70
|
+
encrypt: true
|
|
71
|
+
skipSslVerify:
|
|
72
|
+
title: 忽略证书校验
|
|
73
|
+
value: true
|
|
74
|
+
component:
|
|
75
|
+
name: a-switch
|
|
76
|
+
vModel: checked
|
|
77
|
+
helper: 如果面板的url是https,且使用的是自签名证书,则需要开启此选项,其他情况可以关闭
|
|
78
|
+
type: builtIn
|
|
79
|
+
pluginType: access
|
|
80
|
+
scriptFilePath: ../../synology/index.js
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: unicloud
|
|
2
|
+
title: uniCloud
|
|
3
|
+
icon: material-symbols:shield-outline
|
|
4
|
+
desc: unicloud授权
|
|
5
|
+
input:
|
|
6
|
+
email:
|
|
7
|
+
title: 账号
|
|
8
|
+
component:
|
|
9
|
+
placeholder: email
|
|
10
|
+
helper: 登录邮箱
|
|
11
|
+
required: true
|
|
12
|
+
encrypt: false
|
|
13
|
+
password:
|
|
14
|
+
title: 密码
|
|
15
|
+
component:
|
|
16
|
+
placeholder: 密码
|
|
17
|
+
required: true
|
|
18
|
+
encrypt: true
|
|
19
|
+
type: builtIn
|
|
20
|
+
pluginType: access
|
|
21
|
+
scriptFilePath: ../../unicloud/index.js
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: wxpay
|
|
2
|
+
title: 微信支付
|
|
3
|
+
icon: tdesign:logo-wechatpay-filled
|
|
4
|
+
input:
|
|
5
|
+
appId:
|
|
6
|
+
title: AppId
|
|
7
|
+
component:
|
|
8
|
+
placeholder: 201909176714xxxx
|
|
9
|
+
required: true
|
|
10
|
+
encrypt: false
|
|
11
|
+
mchid:
|
|
12
|
+
title: 商户ID
|
|
13
|
+
component:
|
|
14
|
+
placeholder: 201909176714xxxx
|
|
15
|
+
required: true
|
|
16
|
+
encrypt: false
|
|
17
|
+
publicKey:
|
|
18
|
+
title: 公钥
|
|
19
|
+
component:
|
|
20
|
+
name: a-textarea
|
|
21
|
+
rows: 3
|
|
22
|
+
placeholder: MIIBIjANBg...
|
|
23
|
+
required: true
|
|
24
|
+
encrypt: true
|
|
25
|
+
privateKey:
|
|
26
|
+
title: 私钥
|
|
27
|
+
component:
|
|
28
|
+
placeholder: MIIEvQIBADANB...
|
|
29
|
+
name: a-textarea
|
|
30
|
+
rows: 3
|
|
31
|
+
required: true
|
|
32
|
+
encrypt: true
|
|
33
|
+
key:
|
|
34
|
+
title: APIv3密钥
|
|
35
|
+
helper: 微信商户平台—>账户设置—>API安全—>设置APIv3密钥
|
|
36
|
+
required: true
|
|
37
|
+
encrypt: true
|
|
38
|
+
type: builtIn
|
|
39
|
+
pluginType: access
|
|
40
|
+
scriptFilePath: ../../wxpay/index.js
|