@certd/plugin-plus 1.34.1 → 1.34.3

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/d/1panel/plugins/deploy-to-website.d.ts +2 -2
  3. package/dist/d/aliyun/plugins/deploy-to-ack/index.d.ts +2 -2
  4. package/dist/d/baidu/plugins/plugin-deploy-to-cdn.d.ts +2 -2
  5. package/dist/d/baishan/plugins/plugin-update-cert.d.ts +2 -2
  6. package/dist/d/baota/index.d.ts +1 -0
  7. package/dist/d/baota/plugins/plugin-deploy-to-website.d.ts +2 -2
  8. package/dist/d/baota/waf-access.d.ts +12 -0
  9. package/dist/d/cdnfly/plugins/plugin-deploy-to-cdn.d.ts +2 -2
  10. package/dist/d/index.d.ts +1 -0
  11. package/dist/d/kuocai/plugins/plugin-deploy-to-cdn.d.ts +2 -2
  12. package/dist/d/maoyun/access.d.ts +7 -0
  13. package/dist/d/maoyun/client.d.ts +17 -0
  14. package/dist/d/maoyun/index.d.ts +2 -0
  15. package/dist/d/maoyun/plugins/plugin-deploy-to-cdn.d.ts +11 -0
  16. package/dist/d/safeline/plugins/deploy-to-website.d.ts +2 -2
  17. package/dist/index.js +1 -1
  18. package/export-plugin-yaml.js +99 -0
  19. package/metadata/access_1panel.yaml +81 -0
  20. package/metadata/access_alipay.yaml +29 -0
  21. package/metadata/access_baidu.yaml +22 -0
  22. package/metadata/access_baishan.yaml +15 -0
  23. package/metadata/access_baota-waf.yaml +36 -0
  24. package/metadata/access_baota.yaml +50 -0
  25. package/metadata/access_cdnfly.yaml +29 -0
  26. package/metadata/access_k8s.yaml +16 -0
  27. package/metadata/access_kuocaicdn.yaml +20 -0
  28. package/metadata/access_lecdn.yaml +27 -0
  29. package/metadata/access_lucky.yaml +29 -0
  30. package/metadata/access_maoyun.yaml +26 -0
  31. package/metadata/access_plesk.yaml +27 -0
  32. package/metadata/access_safeline.yaml +26 -0
  33. package/metadata/access_synology.yaml +80 -0
  34. package/metadata/access_unicloud.yaml +21 -0
  35. package/metadata/access_wxpay.yaml +40 -0
  36. package/metadata/access_yfysms.yaml +21 -0
  37. package/metadata/access_yidun.yaml +22 -0
  38. package/metadata/access_yidunrcdn.yaml +20 -0
  39. package/metadata/access_yizhifu.yaml +45 -0
  40. package/metadata/deploy_1PanelDeployToWebsitePlugin.yaml +60 -0
  41. package/metadata/deploy_AliyunDeployCertToAll.yaml +174 -0
  42. package/metadata/deploy_BaiduDeployToCDN.yaml +43 -0
  43. package/metadata/deploy_BaishanUpdateCert.yaml +47 -0
  44. package/metadata/deploy_BaotaDeployPanelCert.yaml +34 -0
  45. package/metadata/deploy_BaotaDeployWebSiteCert.yaml +85 -0
  46. package/metadata/deploy_CdnflyDeployToCDN.yaml +123 -0
  47. package/metadata/deploy_CtyunDeployToCDN.yaml +97 -0
  48. package/metadata/deploy_DeployCertToAliyunAck.yaml +122 -0
  49. package/metadata/deploy_HostDeployToIIS.yaml +76 -0
  50. package/metadata/deploy_K8sDeployToIngress.yaml +46 -0
  51. package/metadata/deploy_K8sDeployToSecret.yaml +50 -0
  52. package/metadata/deploy_KuocaiDeployToRCDN.yaml +59 -0
  53. package/metadata/deploy_LeCDNUpdateCert.yaml +57 -0
  54. package/metadata/deploy_LeCDNUpdateCertV2.yaml +58 -0
  55. package/metadata/deploy_LuckyUpdateCert.yaml +73 -0
  56. package/metadata/deploy_MaoyunDeployToCdn.yaml +72 -0
  57. package/metadata/deploy_PleskDeploySiteCert.yaml +72 -0
  58. package/metadata/deploy_QiniuDeployCertToOSS.yaml +39 -0
  59. package/metadata/deploy_SafelineDeployToWebsitePlugin.yaml +75 -0
  60. package/metadata/deploy_SynologyDeployToPanel.yaml +45 -0
  61. package/metadata/deploy_UniCloudDeployToSpace.yaml +64 -0
  62. package/metadata/deploy_UploadCertToFTP.yaml +171 -0
  63. package/metadata/deploy_YidunDeployToCDN.yaml +48 -0
  64. package/metadata/deploy_YidunDeployToRCDN.yaml +59 -0
  65. 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