Merge branch 'v2-dev' into v2

pull/409/head
xiaojunnuo 2025-04-28 17:31:04 +08:00
commit ae51676471
141 changed files with 5634 additions and 200 deletions

View File

@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
### Bug Fixes
* 修复二次认证登录进入错误账号的bug ([e3930e0](https://github.com/certd/certd/commit/e3930e07172dd7903cb0f6ff26e0e3e828ba3e77))
### Features
* 从yaml文件注册插件 ([deb3893](https://github.com/certd/certd/commit/deb38938204b29543f36d3266249958faaaa6b66))
### Performance Improvements
* 优化cdnfly插件支持自动匹配域名部署 ([afd59e9](https://github.com/certd/certd/commit/afd59e9933b2650f41c5d47684c171b93b962065))
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes ### Bug Fixes

View File

@ -1 +1 @@
01:58 17:28

View File

@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
### Bug Fixes
* 修复二次认证登录进入错误账号的bug ([e3930e0](https://github.com/certd/certd/commit/e3930e07172dd7903cb0f6ff26e0e3e828ba3e77))
### Features
* 从yaml文件注册插件 ([deb3893](https://github.com/certd/certd/commit/deb38938204b29543f36d3266249958faaaa6b66))
### Performance Improvements
* 优化cdnfly插件支持自动匹配域名部署 ([afd59e9](https://github.com/certd/certd/commit/afd59e9933b2650f41c5d47684c171b93b962065))
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes ### Bug Fixes

View File

@ -9,5 +9,5 @@
} }
}, },
"npmClient": "pnpm", "npmClient": "pnpm",
"version": "1.33.8" "version": "1.34.0"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/publishlab/node-acme-client/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/acme-client
## [1.33.8](https://github.com/publishlab/node-acme-client/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/publishlab/node-acme-client/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes ### Bug Fixes

View File

@ -3,7 +3,7 @@
"description": "Simple and unopinionated ACME client", "description": "Simple and unopinionated ACME client",
"private": false, "private": false,
"author": "nmorsman", "author": "nmorsman",
"version": "1.33.8", "version": "1.34.0",
"type": "module", "type": "module",
"module": "scr/index.js", "module": "scr/index.js",
"main": "src/index.js", "main": "src/index.js",
@ -18,7 +18,7 @@
"types" "types"
], ],
"dependencies": { "dependencies": {
"@certd/basic": "^1.33.8", "@certd/basic": "^1.34.0",
"@peculiar/x509": "^1.11.0", "@peculiar/x509": "^1.11.0",
"asn1js": "^3.0.5", "asn1js": "^3.0.5",
"axios": "^1.7.2", "axios": "^1.7.2",
@ -68,5 +68,5 @@
"bugs": { "bugs": {
"url": "https://github.com/publishlab/node-acme-client/issues" "url": "https://github.com/publishlab/node-acme-client/issues"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/basic
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
**Note:** Version bump only for package @certd/basic **Note:** Version bump only for package @certd/basic

View File

@ -1 +1 @@
01:54 17:24

View File

@ -1,7 +1,7 @@
{ {
"name": "@certd/basic", "name": "@certd/basic",
"private": false, "private": false,
"version": "1.33.8", "version": "1.34.0",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
"module": "./dist/index.js", "module": "./dist/index.js",
@ -44,5 +44,5 @@
"tslib": "^2.8.1", "tslib": "^2.8.1",
"typescript": "^5.4.2" "typescript": "^5.4.2"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/pipeline
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
**Note:** Version bump only for package @certd/pipeline **Note:** Version bump only for package @certd/pipeline

View File

@ -1,7 +1,7 @@
{ {
"name": "@certd/pipeline", "name": "@certd/pipeline",
"private": false, "private": false,
"version": "1.33.8", "version": "1.34.0",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
"module": "./dist/index.js", "module": "./dist/index.js",
@ -16,8 +16,8 @@
"test": "mocha --loader=ts-node/esm" "test": "mocha --loader=ts-node/esm"
}, },
"dependencies": { "dependencies": {
"@certd/basic": "^1.33.8", "@certd/basic": "^1.34.0",
"@certd/plus-core": "^1.33.8", "@certd/plus-core": "^1.34.0",
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"reflect-metadata": "^0.1.13" "reflect-metadata": "^0.1.13"
@ -43,5 +43,5 @@
"tslib": "^2.8.1", "tslib": "^2.8.1",
"typescript": "^5.4.2" "typescript": "^5.4.2"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/lib-huawei
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
**Note:** Version bump only for package @certd/lib-huawei **Note:** Version bump only for package @certd/lib-huawei

View File

@ -1,7 +1,7 @@
{ {
"name": "@certd/lib-huawei", "name": "@certd/lib-huawei",
"private": false, "private": false,
"version": "1.33.8", "version": "1.34.0",
"main": "./dist/bundle.js", "main": "./dist/bundle.js",
"module": "./dist/bundle.js", "module": "./dist/bundle.js",
"types": "./dist/d/index.d.ts", "types": "./dist/d/index.d.ts",
@ -23,5 +23,5 @@
"prettier": "^2.8.8", "prettier": "^2.8.8",
"tslib": "^2.8.1" "tslib": "^2.8.1"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/lib-iframe
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
**Note:** Version bump only for package @certd/lib-iframe **Note:** Version bump only for package @certd/lib-iframe

View File

@ -1,7 +1,7 @@
{ {
"name": "@certd/lib-iframe", "name": "@certd/lib-iframe",
"private": false, "private": false,
"version": "1.33.8", "version": "1.34.0",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
"module": "./dist/index.js", "module": "./dist/index.js",
@ -30,5 +30,5 @@
"tslib": "^2.8.1", "tslib": "^2.8.1",
"typescript": "^5.4.2" "typescript": "^5.4.2"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/jdcloud
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
**Note:** Version bump only for package @certd/jdcloud **Note:** Version bump only for package @certd/jdcloud

View File

@ -1,6 +1,6 @@
{ {
"name": "@certd/jdcloud", "name": "@certd/jdcloud",
"version": "1.33.8", "version": "1.34.0",
"description": "jdcloud openApi sdk", "description": "jdcloud openApi sdk",
"main": "./dist/bundle.js", "main": "./dist/bundle.js",
"module": "./dist/bundle.js", "module": "./dist/bundle.js",
@ -60,5 +60,5 @@
"fetch" "fetch"
] ]
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/lib-k8s
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
**Note:** Version bump only for package @certd/lib-k8s **Note:** Version bump only for package @certd/lib-k8s

View File

@ -1,7 +1,7 @@
{ {
"name": "@certd/lib-k8s", "name": "@certd/lib-k8s",
"private": false, "private": false,
"version": "1.33.8", "version": "1.34.0",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
"module": "./dist/index.js", "module": "./dist/index.js",
@ -16,7 +16,7 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
"@certd/basic": "^1.33.8", "@certd/basic": "^1.34.0",
"@kubernetes/client-node": "0.21.0" "@kubernetes/client-node": "0.21.0"
}, },
"devDependencies": { "devDependencies": {
@ -31,5 +31,5 @@
"tslib": "^2.8.1", "tslib": "^2.8.1",
"typescript": "^5.4.2" "typescript": "^5.4.2"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/lib-server
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
**Note:** Version bump only for package @certd/lib-server **Note:** Version bump only for package @certd/lib-server

View File

@ -1,6 +1,6 @@
{ {
"name": "@certd/lib-server", "name": "@certd/lib-server",
"version": "1.33.8", "version": "1.34.0",
"description": "midway with flyway, sql upgrade way ", "description": "midway with flyway, sql upgrade way ",
"private": false, "private": false,
"type": "module", "type": "module",
@ -27,10 +27,10 @@
], ],
"license": "AGPL", "license": "AGPL",
"dependencies": { "dependencies": {
"@certd/acme-client": "^1.33.8", "@certd/acme-client": "^1.34.0",
"@certd/basic": "^1.33.8", "@certd/basic": "^1.34.0",
"@certd/pipeline": "^1.33.8", "@certd/pipeline": "^1.34.0",
"@certd/plus-core": "^1.33.8", "@certd/plus-core": "^1.34.0",
"@midwayjs/cache": "~3.14.0", "@midwayjs/cache": "~3.14.0",
"@midwayjs/core": "~3.20.3", "@midwayjs/core": "~3.20.3",
"@midwayjs/i18n": "~3.20.3", "@midwayjs/i18n": "~3.20.3",
@ -61,5 +61,5 @@
"typeorm": "^0.3.11", "typeorm": "^0.3.11",
"typescript": "^5.4.2" "typescript": "^5.4.2"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/midway-flyway-js
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
**Note:** Version bump only for package @certd/midway-flyway-js **Note:** Version bump only for package @certd/midway-flyway-js

View File

@ -1,6 +1,6 @@
{ {
"name": "@certd/midway-flyway-js", "name": "@certd/midway-flyway-js",
"version": "1.33.8", "version": "1.34.0",
"description": "midway with flyway, sql upgrade way ", "description": "midway with flyway, sql upgrade way ",
"private": false, "private": false,
"type": "module", "type": "module",
@ -46,5 +46,5 @@
"typeorm": "^0.3.11", "typeorm": "^0.3.11",
"typescript": "^5.4.2" "typescript": "^5.4.2"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/plugin-cert
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes ### Bug Fixes

View File

@ -1,7 +1,7 @@
{ {
"name": "@certd/plugin-cert", "name": "@certd/plugin-cert",
"private": false, "private": false,
"version": "1.33.8", "version": "1.34.0",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
"types": "./dist/index.d.ts", "types": "./dist/index.d.ts",
@ -15,10 +15,10 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
"@certd/acme-client": "^1.33.8", "@certd/acme-client": "^1.34.0",
"@certd/basic": "^1.33.8", "@certd/basic": "^1.34.0",
"@certd/pipeline": "^1.33.8", "@certd/pipeline": "^1.34.0",
"@certd/plugin-lib": "^1.33.8", "@certd/plugin-lib": "^1.34.0",
"@google-cloud/publicca": "^1.3.0", "@google-cloud/publicca": "^1.3.0",
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"jszip": "^3.10.1", "jszip": "^3.10.1",
@ -42,5 +42,5 @@
"tslib": "^2.8.1", "tslib": "^2.8.1",
"typescript": "^5.4.2" "typescript": "^5.4.2"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -32,7 +32,7 @@ export abstract class AbstractDnsProvider<T = any> implements IDnsProvider<T> {
export async function createDnsProvider(opts: { dnsProviderType: string; context: DnsProviderContext }): Promise<IDnsProvider> { export async function createDnsProvider(opts: { dnsProviderType: string; context: DnsProviderContext }): Promise<IDnsProvider> {
const { dnsProviderType, context } = opts; const { dnsProviderType, context } = opts;
const dnsProviderPlugin = dnsProviderRegistry.get(dnsProviderType); const dnsProviderPlugin = dnsProviderRegistry.get(dnsProviderType);
const DnsProviderClass = dnsProviderPlugin.target; const DnsProviderClass = await dnsProviderPlugin.target();
const dnsProviderDefine = dnsProviderPlugin.define as DnsProviderDefine; const dnsProviderDefine = dnsProviderPlugin.define as DnsProviderDefine;
if (dnsProviderDefine.deprecated) { if (dnsProviderDefine.deprecated) {
context.logger.warn(dnsProviderDefine.deprecated); context.logger.warn(dnsProviderDefine.deprecated);

View File

@ -24,7 +24,9 @@ export function IsDnsProvider(define: DnsProviderDefine): ClassDecorator {
target.define = define; target.define = define;
dnsProviderRegistry.register(define.name, { dnsProviderRegistry.register(define.name, {
define, define,
target, target: async () => {
return target;
},
}); });
}; };
} }

View File

@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
### Performance Improvements
* 优化cdnfly插件支持自动匹配域名部署 ([afd59e9](https://github.com/certd/certd/commit/afd59e9933b2650f41c5d47684c171b93b962065))
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes ### Bug Fixes

View File

@ -1,7 +1,7 @@
{ {
"name": "@certd/plugin-lib", "name": "@certd/plugin-lib",
"private": false, "private": false,
"version": "1.33.8", "version": "1.34.0",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",
"types": "./dist/index.d.ts", "types": "./dist/index.d.ts",
@ -17,8 +17,8 @@
"dependencies": { "dependencies": {
"@alicloud/pop-core": "^1.7.10", "@alicloud/pop-core": "^1.7.10",
"@aws-sdk/client-s3": "^3.787.0", "@aws-sdk/client-s3": "^3.787.0",
"@certd/basic": "^1.33.8", "@certd/basic": "^1.34.0",
"@certd/pipeline": "^1.33.8", "@certd/pipeline": "^1.34.0",
"@kubernetes/client-node": "0.21.0", "@kubernetes/client-node": "0.21.0",
"ali-oss": "^6.22.0", "ali-oss": "^6.22.0",
"basic-ftp": "^5.0.5", "basic-ftp": "^5.0.5",
@ -49,5 +49,5 @@
"tslib": "^2.8.1", "tslib": "^2.8.1",
"typescript": "^5.4.2" "typescript": "^5.4.2"
}, },
"gitHead": "9b420ad33ff4c36fc99d643c18be9ec7e29f220d" "gitHead": "9749fc817d3cfd435e8cb3f2f86edc81d69e2310"
} }

View File

@ -5,6 +5,7 @@ import { IsAccess, AccessInput, BaseAccess } from "@certd/pipeline";
title: "阿里云授权", title: "阿里云授权",
desc: "", desc: "",
icon: "ant-design:aliyun-outlined", icon: "ant-design:aliyun-outlined",
order: 0,
}) })
export class AliyunAccess extends BaseAccess { export class AliyunAccess extends BaseAccess {
@AccessInput({ @AccessInput({

View File

@ -65,7 +65,7 @@ export function createRemoteSelectInputDefine(opts?: {
watches: [certDomainsInputKey, accessIdInputKey, ...watches], watches: [certDomainsInputKey, accessIdInputKey, ...watches],
}, },
rules: opts?.rules, rules: opts?.rules,
required: true, required: opts.required ?? true,
mergeScript: ` mergeScript: `
return { return {
component:{ component:{

View File

@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
### Bug Fixes
* 修复二次认证登录进入错误账号的bug ([e3930e0](https://github.com/certd/certd/commit/e3930e07172dd7903cb0f6ff26e0e3e828ba3e77))
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes ### Bug Fixes

View File

@ -1,6 +1,6 @@
{ {
"name": "@certd/ui-client", "name": "@certd/ui-client",
"version": "1.33.8", "version": "1.34.0",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vite --open", "dev": "vite --open",
@ -101,8 +101,8 @@
"zod-defaults": "^0.1.3" "zod-defaults": "^0.1.3"
}, },
"devDependencies": { "devDependencies": {
"@certd/lib-iframe": "^1.33.8", "@certd/lib-iframe": "^1.34.0",
"@certd/pipeline": "^1.33.8", "@certd/pipeline": "^1.34.0",
"@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-node-resolve": "^15.2.3",
"@types/chai": "^4.3.12", "@types/chai": "^4.3.12",

View File

@ -27,7 +27,7 @@ const props = withDefaults(
mode?: "comm" | "button" | "nav" | "icon"; mode?: "comm" | "button" | "nav" | "icon";
}>(), }>(),
{ {
mode: "button" mode: "button",
} }
); );
type Text = { type Text = {
@ -40,57 +40,57 @@ const text = computed<Text>(() => {
isComm: { isComm: {
comm: { comm: {
name: `${vipLabel}已开通`, name: `${vipLabel}已开通`,
title: "到期时间:" + expireTime.value title: "到期时间:" + expireTime.value,
}, },
button: { button: {
name: `${vipLabel}已开通`, name: `${vipLabel}已开通`,
title: "到期时间:" + expireTime.value title: "到期时间:" + expireTime.value,
}, },
icon: { icon: {
name: "", name: "",
title: `${vipLabel}已开通` title: `${vipLabel}已开通`,
}, },
nav: { nav: {
name: `${vipLabel}`, name: `${vipLabel}`,
title: "到期时间:" + expireTime.value title: "到期时间:" + expireTime.value,
} },
}, },
isPlus: { isPlus: {
comm: { comm: {
name: "商业版功能", name: "商业版功能",
title: "升级商业版,获取商业授权" title: "升级商业版,获取商业授权",
}, },
button: { button: {
name: `${vipLabel}已开通`, name: `${vipLabel}已开通`,
title: "到期时间:" + expireTime.value title: "到期时间:" + expireTime.value,
}, },
icon: { icon: {
name: "", name: "",
title: `${vipLabel}已开通` title: `${vipLabel}已开通`,
}, },
nav: { nav: {
name: `${vipLabel}`, name: `${vipLabel}`,
title: "到期时间:" + expireTime.value title: "到期时间:" + expireTime.value,
} },
}, },
free: { free: {
comm: { comm: {
name: "商业版功能", name: "商业版功能",
title: "升级商业版,获取商业授权" title: "升级商业版,获取商业授权",
}, },
button: { button: {
name: "专业版功能", name: "专业版功能",
title: "升级专业版享受更多VIP特权" title: "升级专业版享受更多VIP特权",
}, },
icon: { icon: {
name: "", name: "",
title: "专业版功能" title: "专业版功能",
}, },
nav: { nav: {
name: "基础版", name: "基础版",
title: "升级专业版享受更多VIP特权" title: "升级专业版享受更多VIP特权",
} },
} },
}; };
if (settingStore.isComm) { if (settingStore.isComm) {
return map.isComm[props.mode]; return map.isComm[props.mode];
@ -119,7 +119,7 @@ const expiredDays = computed(() => {
const formState = reactive({ const formState = reactive({
code: "", code: "",
inviteCode: "" inviteCode: "",
}); });
const router = useRouter(); const router = useRouter();
@ -143,10 +143,10 @@ async function doActive() {
content: "绑定账号后可以避免License丢失强烈建议绑定", content: "绑定账号后可以避免License丢失强烈建议绑定",
onOk() { onOk() {
router.push("/sys/account"); router.push("/sys/account");
} },
}); });
} }
} },
}); });
} }
} }
@ -183,7 +183,7 @@ function openTrialModal() {
<div>点击确认即可获取7天专业版试用</div> <div>点击确认即可获取7天专业版试用</div>
</div> </div>
); );
} },
}); });
} }
@ -208,7 +208,7 @@ function openStarModal() {
<img class="ml-5" src="https://img.shields.io/github/stars/certd/certd?logo=github" /> <img class="ml-5" src="https://img.shields.io/github/stars/certd/certd?logo=github" />
</div> </div>
); );
} },
}); });
} }
@ -226,13 +226,14 @@ function openUpgrade() {
title = "续期专业版/升级商业版"; title = "续期专业版/升级商业版";
} }
const productInfo = settingStore.productInfo;
const vipTypeDefine = { const vipTypeDefine = {
free: { free: {
title: "基础版", title: "基础版",
desc: "社区免费版", desc: "社区免费版",
type: "free", type: "free",
icon: "lucide:package-open", icon: "lucide:package-open",
privilege: ["证书申请无限制", "域名数量无限制", "证书流水线数量无限制", "常用的主机、云平台、cdn等部署插件", "邮件、webhook通知方式"] privilege: ["证书申请无限制", "域名数量无限制", "证书流水线数量无限制", "常用的主机、云平台、cdn等部署插件", "邮件、webhook通知方式"],
}, },
plus: { plus: {
title: "专业版", title: "专业版",
@ -243,10 +244,12 @@ function openUpgrade() {
title: "点击获取7天试用", title: "点击获取7天试用",
click: () => { click: () => {
openStarModal(); openStarModal();
} },
}, },
icon: "stash:thumb-up", icon: "stash:thumb-up",
price: 29.9, price: productInfo.plus.price,
price3: `¥${productInfo.plus.price3}/3年`,
tooltip: productInfo.plus.tooltip,
get() { get() {
return ( return (
<a-tooltip title="爱发电赞助“VIP会员”后获取一年期专业版激活码开源需要您的支持"> <a-tooltip title="爱发电赞助“VIP会员”后获取一年期专业版激活码开源需要您的支持">
@ -255,7 +258,7 @@ function openUpgrade() {
</a-button> </a-button>
</a-tooltip> </a-tooltip>
); );
} },
}, },
comm: { comm: {
title: "商业版", title: "商业版",
@ -263,11 +266,13 @@ function openUpgrade() {
type: "comm", type: "comm",
icon: "vaadin:handshake", icon: "vaadin:handshake",
privilege: ["拥有专业版所有特权", "允许商用可修改logo、标题", "数据统计", "插件管理", "多用户无限制", "支持用户支付"], privilege: ["拥有专业版所有特权", "允许商用可修改logo、标题", "数据统计", "插件管理", "多用户无限制", "支持用户支付"],
price: 399, price: productInfo.comm.price,
price3: `¥${productInfo.comm.price3}/3年`,
tooltip: productInfo.comm.tooltip,
get() { get() {
return <a-button size="small">请联系作者获取</a-button>; return <a-button size="small">请联系作者获取试用</a-button>;
} },
} },
}; };
const modalRef = modal.confirm({ const modalRef = modal.confirm({
@ -321,9 +326,12 @@ function openUpgrade() {
<div class="footer flex-between flex-vc"> <div class="footer flex-between flex-vc">
<div class="price-show"> <div class="price-show">
{item.price && ( {item.price && (
<span> <span class="flex">
<span class="price-text">¥{item.price}</span> <span class="-text">¥{item.price}</span>
/ <span>/</span>
<a-tooltip class="ml-5" title={item.price3}>
<fs-icon class="pointer color-red" icon="ic:outline-discount"></fs-icon>
</a-tooltip>
</span> </span>
)} )}
{!item.price && ( {!item.price && (
@ -340,6 +348,11 @@ function openUpgrade() {
} }
return ( return (
<div class="mt-10 mb-10 vip-active-modal"> <div class="mt-10 mb-10 vip-active-modal">
{productInfo.notice && (
<div class="mb-10">
<a-alert type="error" message={productInfo.notice}></a-alert>
</div>
)}
<div class="vip-type-vs"> <div class="vip-type-vs">
<a-row gutter={20}>{slots}</a-row> <a-row gutter={20}>{slots}</a-row>
</div> </div>
@ -365,7 +378,7 @@ function openUpgrade() {
</div> </div>
</div> </div>
); );
} },
}); });
} }
onMounted(() => { onMounted(() => {

View File

@ -109,3 +109,11 @@ export async function sendEmailCode(data: any): Promise<any> {
data, data,
}); });
} }
export async function getProductInfo(): Promise<any> {
return await request({
url: "/basic/settings/productInfo",
method: "get",
silent: true,
});
}

View File

@ -9,7 +9,7 @@ import { env } from "/@/utils/util.env";
import { updatePreferences } from "/@/vben/preferences"; import { updatePreferences } from "/@/vben/preferences";
import { useTitle } from "@vueuse/core"; import { useTitle } from "@vueuse/core";
import { utils } from "/@/utils"; import { utils } from "/@/utils";
import { cloneDeep } from "lodash-es"; import { cloneDeep, merge } from "lodash-es";
export interface SettingState { export interface SettingState {
sysPublic?: SysPublicSetting; sysPublic?: SysPublicSetting;
@ -32,6 +32,21 @@ export interface SettingState {
time?: number; time?: number;
deltaTime?: number; deltaTime?: number;
}; };
productInfo: {
notice?: string;
plus: {
name: string;
price: number;
price3: number;
tooltip?: string;
};
comm: {
name: string;
price: number;
price3: number;
tooltip?: string;
};
};
} }
const defaultSiteInfo: SiteInfo = { const defaultSiteInfo: SiteInfo = {
@ -80,6 +95,19 @@ export const useSettingStore = defineStore({
time: 0, time: 0,
deltaTime: 0, deltaTime: 0,
}, },
productInfo: {
notice: "",
plus: {
name: "专业版",
price: 29.9,
price3: 89.9,
},
comm: {
name: "商业版",
price: 399,
price3: 899,
},
},
}), }),
getters: { getters: {
getSysPublic(): SysPublicSetting { getSysPublic(): SysPublicSetting {
@ -227,6 +255,14 @@ export const useSettingStore = defineStore({
} }
} }
}, },
async loadProductInfo() {
try {
const productInfo = await basicApi.getProductInfo();
merge(this.productInfo, productInfo);
} catch (e) {
console.error(e);
}
},
async init() { async init() {
await this.loadSysSettings(); await this.loadSysSettings();
}, },
@ -235,6 +271,7 @@ export const useSettingStore = defineStore({
return; return;
} }
await this.init(); await this.init();
this.loadProductInfo();
this.inited = true; this.inited = true;
}, },
}, },

View File

@ -127,6 +127,7 @@ const doAuthenticatorSave = async (form: any) => {
message: "保存成功", message: "保存成功",
}); });
authenticatorForm.open = false; authenticatorForm.open = false;
formState.authenticator.verified = true;
}; };
function onAuthenticatorEnabledChanged(value: any) { function onAuthenticatorEnabledChanged(value: any) {

View File

@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
### Bug Fixes
* 修复二次认证登录进入错误账号的bug ([e3930e0](https://github.com/certd/certd/commit/e3930e07172dd7903cb0f6ff26e0e3e828ba3e77))
### Features
* 从yaml文件注册插件 ([deb3893](https://github.com/certd/certd/commit/deb38938204b29543f36d3266249958faaaa6b66))
### Performance Improvements
* 优化cdnfly插件支持自动匹配域名部署 ([afd59e9](https://github.com/certd/certd/commit/afd59e9933b2650f41c5d47684c171b93b962065))
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26) ## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
### Performance Improvements ### Performance Improvements

View File

@ -4,14 +4,13 @@ import { join } from 'path';
import fs from 'fs' import fs from 'fs'
import { pathToFileURL } from "node:url"; import { pathToFileURL } from "node:url";
import path from 'path' import path from 'path'
import * as yaml from "js-yaml";
import {AbstractTaskPlugin, BaseAccess, BaseNotification} from "@certd/pipeline";
function scanDir(dir) { function scanDir(dir) {
const files = fs.readdirSync(dir); const files = fs.readdirSync(dir);
const result = []; const result = [];
// 扫描目录及子目录 // 扫描目录及子目录
for (const file of files) { for (const file of files) {
if (file.includes("index.js")) {
continue;
}
const filePath = join(dir, file); const filePath = join(dir, file);
const stat = fs.statSync(filePath); const stat = fs.statSync(filePath);
@ -31,7 +30,9 @@ export default async function loadModules(dir) {
const files = scanDir(dir); const files = scanDir(dir);
const modules = {} const modules = {}
for (const file of files) { for (const file of files) {
if(file === "dist/plugins/index.js" || file === "dist\\plugins\\index.js"){
continue
}
try { try {
// 转换为 file:// URLWindows 必需) // 转换为 file:// URLWindows 必需)
const moduleUrl = pathToFileURL(file).href const moduleUrl = pathToFileURL(file).href
@ -46,8 +47,50 @@ export default async function loadModules(dir) {
return modules; return modules;
} }
function isPrototypeOf(value,cls){
return cls.prototype.isPrototypeOf(value.prototype)
}
const modules = await loadModules('./dist/plugins'); const modules = await loadModules('./dist/plugins');
fs.rmSync("./metadata", { recursive: true });
fs.mkdirSync("./metadata", { recursive: true });
for (const key in modules) { for (const key in modules) {
console.log(key) console.log(key)
const module = modules[key]
const entry = Object.entries(module)
for (const [name, value] of entry) {
//如果有define属性
if(value.define){
//那么就是插件
let location = key.substring(4)
location = location.substring(0, location.length - 3)
location = location.replaceAll("\\","/")
location += ".js"
location = `../../..${location}` // 从modules/plugin/plugin-service 加载 ../../plugins目录下的文件
const pluginDefine = {
...value.define
}
pluginDefine.type = "builtIn"
if(pluginDefine.accessType){
pluginDefine.pluginType = "dnsProvider"
}else if(isPrototypeOf(value,AbstractTaskPlugin)){
pluginDefine.pluginType = "deploy"
}else if(isPrototypeOf(value,BaseNotification)){
pluginDefine.pluginType = "notification"
}else if(isPrototypeOf(value,BaseAccess)){
pluginDefine.pluginType = "access"
}else{
console.log(`[warning] 未知的插件类型:${pluginDefine.name}`)
}
delete pluginDefine.autowire
const filePath = path.join(`./metadata/${pluginDefine.pluginType}_${pluginDefine.name}.yaml`)
pluginDefine.scriptFilePath = location
const data = yaml.dump(pluginDefine)
fs.writeFileSync(filePath,data ,'utf8')
}
}
} }
process.exit();

View File

@ -0,0 +1,22 @@
name: 51dns
title: 51dns授权
icon: arcticons:dns-changer-3
desc: ''
input:
username:
title: 用户名
component:
placeholder: 用户名或手机号
required: true
encrypt: false
password:
title: 登录密码
component:
name: a-input-password
vModel: value
placeholder: 密码
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-51dns/index.js

View File

@ -0,0 +1,24 @@
name: CacheFly
title: CacheFly
desc: CacheFly
icon: clarity:plugin-line
input:
username:
title: username
component:
placeholder: username
required: true
password:
title: password
component:
placeholder: password
required: true
encrypt: true
otpkey:
title: totp key
component:
placeholder: totp key
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-cachefly/index.js

View File

@ -0,0 +1,24 @@
name: Gcore
title: Gcore
desc: Gcore
icon: clarity:plugin-line
input:
username:
title: username
component:
placeholder: username
required: true
password:
title: password
component:
placeholder: password
required: true
encrypt: true
otpkey:
title: totp key
component:
placeholder: totp key
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-gcore/index.js

View File

@ -0,0 +1,22 @@
name: aws
title: 亚马逊云aws授权
desc: ''
icon: svg:icon-aws
input:
accessKeyId:
title: accessKeyId
component:
placeholder: accessKeyId
helper: >-
右上角->安全凭证->访问密钥,[点击前往](https://us-east-1.console.aws.amazon.com/iam/home?region=ap-east-1#/security_credentials/access-key-wizard)
required: true
secretAccessKey:
title: secretAccessKey
component:
placeholder: secretAccessKey
required: true
encrypt: true
helper: 请妥善保管您的安全访问密钥。您可以在AWS管理控制台的IAM中创建新的访问密钥。
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-aws/index.js

View File

@ -0,0 +1,24 @@
name: cloudflare
title: cloudflare授权
icon: simple-icons:cloudflare
desc: ''
input:
apiToken:
title: API Token
component:
placeholder: api token用户 API 令牌
helper: |-
前往 [获取API令牌](https://dash.cloudflare.com/profile/api-tokens),注意是令牌,不是密钥。
token权限必须包含[Zone区域-Zone区域-Edit编辑], [Zone区域-DNS-Edit编辑]
required: true
encrypt: true
proxy:
title: HTTP代理
component:
placeholder: http://xxxx.xxx.xx:10811
helper: 是否使用http代理
required: false
encrypt: false
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-cloudflare/index.js

View File

@ -0,0 +1,19 @@
name: demo
title: 授权插件示例
icon: clarity:plugin-line
desc: ''
input:
demoKeyId:
title: 密钥Id
component:
placeholder: demoKeyId
required: true
demoKeySecret:
title: 密钥串
component:
placeholder: demoKeySecret
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-demo/index.js

View File

@ -0,0 +1,22 @@
name: dnsla
title: dns.la授权
icon: arcticons:dns-changer-3
desc: ''
input:
apiId:
title: APIID
component:
placeholder: APIID
helper: 从我的账户->API密钥中获取 APIID APISecret
required: true
encrypt: false
apiSecret:
title: APISecret
component:
placeholder: ''
helper: ''
required: false
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-dnsla/index.js

View File

@ -0,0 +1,38 @@
name: dnspod
title: dnspod(已废弃)
desc: 腾讯云的域名解析接口已迁移到dnspod
deprecated: dnspod已废弃请换成腾讯云
icon: svg:icon-tencentcloud
input:
endpoint:
title: 端点
component:
placeholder: endpoint
name: a-auto-complete
vModel: value
options:
- value: https://dnsapi.cn
label: 中国站
- value: https://api.dnspod.com
label: 国际站
rules:
- required: true
message: 该项必填
id:
title: ID
component:
placeholder: dnspod token 的 id
rules:
- required: true
message: 该项必填
token:
title: token
component:
placeholder: 开放接口token
encrypt: true
rules:
- required: true
message: 该项必填
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-tencent/index.js

View File

@ -0,0 +1,22 @@
name: dogecloud
title: 多吉云
desc: ''
icon: svg:icon-dogecloud
input:
accessKey:
title: AccessKey
component:
placeholder: AccessKey
helper: 请前往[多吉云-密钥管理](https://console.dogecloud.com/user/keys)获取
required: true
encrypt: false
secretKey:
title: SecretKey
component:
placeholder: SecretKey
helper: 请前往[多吉云-密钥管理](https://console.dogecloud.com/user/keys)获取
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-doge/index.js

View File

@ -0,0 +1,21 @@
name: huawei
title: 华为云授权
desc: ''
icon: svg:icon-huawei
input:
accessKeyId:
title: accessKeyId
component:
placeholder: accessKeyId
helper: >-
证书申请需要有dns解析权限前往[我的凭证-访问密钥](https://console.huaweicloud.com/iam/?region=cn-east-3#/mine/accessKey)获取
required: true
accessKeySecret:
title: accessKeySecret
component:
placeholder: accessKeySecret
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-huawei/index.js

View File

@ -0,0 +1,20 @@
name: jdcloud
title: 京东云
desc: ''
icon: svg:icon-jdcloud
input:
accessKeyId:
title: AccessKeyID
component:
placeholder: AccessKeyID
helper: '[获取密钥](https://uc.jdcloud.com/account/accesskey)'
required: true
secretAccessKey:
title: SecretAccessKey
component:
placeholder: SecretAccessKey
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-jdcloud/index.js

View File

@ -0,0 +1,19 @@
name: namesilo
title: namesilo授权
desc: ''
icon: simple-icons:namesilo
input:
apiKey:
title: API Key
component:
placeholder: api key
helper: |-
前往 [获取API Key](https://www.namesilo.com/account/api-manager)
不要勾选第一项Generate key for read-only access
勾选第二项Submitting this form...
然后点击Generate按钮
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-namesilo/index.js

View File

@ -0,0 +1,34 @@
name: proxmox
title: proxmox
desc: ''
icon: svg:icon-proxmox
input:
host:
title: host
component:
placeholder: IP或域名
required: true
encrypt: false
port:
title: 端口
component:
placeholder: 端口
component:
name: a-input-number
required: true
encrypt: false
username:
title: 用户名
component:
placeholder: username
required: true
encrypt: false
password:
title: 密码
component:
placeholder: password
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-proxmox/index.js

View File

@ -0,0 +1,19 @@
name: upyun
title: 又拍云
desc: ''
icon: svg:icon-upyun
input:
username:
title: 账号
component:
placeholder: 又拍云账号
required: true
password:
title: 密码
component:
placeholder: 又拍云密码
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-upyun/index.js

View File

@ -0,0 +1,20 @@
name: volcengine
title: 火山引擎
desc: ''
icon: svg:icon-volcengine
input:
accessKeyId:
title: AccessKeyID
component:
placeholder: AccessKeyID
helper: '[获取密钥](https://console.volcengine.com/iam/keymanage/)'
required: true
secretAccessKey:
title: SecretAccessKey
component:
placeholder: SecretAccessKey
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-volcengine/index.js

View File

@ -0,0 +1,67 @@
name: west
title: 西部数码授权
desc: ''
icon: tabler:map-west
input:
scope:
title: 权限范围
component:
name: a-select
vModel: value
options:
- value: account
label: 账户级别,对所有域名都有权限管理
- value: domain
label: 域名级别,仅能管理单个域名
helper: 选择权限范围
required: true
username:
title: 账号
helper: 你的登录账号
encrypt: false
required: false
mergeScript: |2-
return {
show:ctx.compute(({form})=>{
return form.access.scope === 'account'
})
}
apikey:
title: ApiKey
component:
placeholder: 账户级别的key对整个账户都有管理权限
helper: |-
账户级别的key对整个账户都有管理权限
前往https://www.west.cn/manager/API/APIconfig.asp手动设置“api连接密码”
encrypt: true
required: false
mergeScript: |2-
return {
show:ctx.compute(({form})=>{
return form.access.scope === 'account'
})
}
apidomainkey:
title: apidomainkey
component:
placeholder: 域名级别的key仅对单个域名有权限
helper: |-
域名级别的key仅对单个域名有权限。
前往[西部数据域名管理](https://www.west.cn/manager/domain/)点击域名右上方点击ApiKey获取密钥
encrypt: true
required: false
mergeScript: |2-
return {
show:ctx.compute(({form})=>{
return form.access.scope === 'domain'
})
}
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-west/index.js

View File

@ -0,0 +1,19 @@
name: woai
title: 我爱云授权
desc: 我爱云CDN
icon: clarity:plugin-line
input:
username:
title: 账号
component:
placeholder: 我爱云的账号
required: true
password:
title: 密码
component:
placeholder: 我爱云的密码
required: true
encrypt: true
type: builtIn
pluginType: access
scriptFilePath: ../../../plugins/plugin-woai/index.js

View File

@ -0,0 +1,145 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: AliyunDeployCertToALB
title: 阿里云-部署至ALB应用负载均衡
icon: svg:icon-aliyun
group: aliyun
desc: ALB,更新监听器的默认证书
needPlus: false
input:
cert:
title: 域名证书
helper: |-
请选择证书申请任务输出的域名证书
或者选择前置任务“上传证书到阿里云”任务的证书ID可以减少上传到阿里云的证书数量
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- uploadCertToAliyun
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 阿里云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: aliyun
required: true
order: 0
regionId:
title: ALB所在地区
component:
name: remote-select
vModel: value
type: plugin
typeName: AliyunDeployCertToALB
action: onGetRegionList
watches:
- certDomains
- accessId
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择
order: 0
loadBalancers:
title: 负载均衡列表
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: AliyunDeployCertToALB
action: onGetLoadBalanceList
watches:
- certDomains
- accessId
- regionId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 要部署证书的负载均衡ID
order: 0
listeners:
title: 监听器列表
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: AliyunDeployCertToALB
action: onGetListenerList
watches:
- certDomains
- accessId
- loadBalancers
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 要部署证书的监听器列表
order: 0
casEndpoint:
title: 证书接入点
helper: 不会选就保持默认即可
value: cas.aliyuncs.com
component:
name: a-select
options:
- value: cas.aliyuncs.com
label: 中国大陆
- value: cas.ap-southeast-1.aliyuncs.com
label: 新加坡
- value: cas.eu-central-1.aliyuncs.com
label: 德国(法兰克福)
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aliyun/plugin/index.js

View File

@ -0,0 +1,149 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: AliyunDeployCertToFC
title: 阿里云-部署至阿里云FC(3.0)
icon: svg:icon-aliyun
group: aliyun
desc: 部署证书到阿里云函数计算FC3.0,【注意】证书的加密算法必须选择【pkcs1旧版】
needPlus: true
input:
cert:
title: 域名证书
helper: 请选择证书申请任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
regionId:
title: FC大区
value: cn-hangzhou
component:
name: a-auto-complete
vModel: value
options:
- value: cn-qingdao
label: 华北1青岛
- value: cn-beijing
label: 华北2北京
- value: cn-zhangjiakou
label: 华北 3张家口
- value: cn-huhehaote
label: 华北5呼和浩特
- value: cn-hangzhou
label: 华东1杭州
- value: cn-shanghai
label: 华东2上海
- value: cn-shenzhen
label: 华南1深圳
- value: ap-southeast-2
label: 澳大利亚(悉尼)
- value: eu-central-1
label: 德国(法兰克福)
- value: ap-southeast-3
label: 马来西亚(吉隆坡)
- value: us-east-1
label: 美国(弗吉尼亚)
- value: us-west-1
label: 美国(硅谷)
- value: ap-northeast-1
label: 日本(东京)
- value: ap-southeast-7
label: 泰国(曼谷)
- value: cn-chengdu
label: 西南1成都
- value: ap-southeast-1
label: 新加坡
- value: ap-south-1
label: 印度(孟买)
- value: ap-southeast-5
label: 印度尼西亚(雅加达)
- value: eu-west-1
label: 英国(伦敦)
- value: cn-hongkong
label: 中国香港
required: true
order: 0
accountId:
title: 阿里云账号id
helper: 阿里云主账号ID右上角头像下方获取
component:
name: a-input
vModel: value
required: true
order: 0
accessId:
title: Access授权
helper: 阿里云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: aliyun
required: true
order: 0
fcDomains:
title: FC域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: AliyunDeployCertToFC
action: onGetDomainList
watches:
- certDomains
- accessId
- accessId
- regionId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: |-
请选择要部署证书的域名
【注意】证书的加密算法必须选择【pkcs1旧版】否则会报'private key' has to be in PEM format错误
order: 0
protocol:
title: 域名支持的协议类型
component:
name: a-select
value: ''
options:
- value: ''
label: 保持原样适用于原来已经开启了HTTPS
- value: HTTPS
label: 仅HTTPS
- value: HTTP,HTTPS
label: HTTP与HTTPS同时支持
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aliyun/plugin/index.js

View File

@ -0,0 +1,145 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: AliyunDeployCertToNLB
title: 阿里云-部署至NLB网络负载均衡
icon: svg:icon-aliyun
group: aliyun
desc: NLB,网络负载均衡,更新监听器的默认证书
needPlus: false
input:
cert:
title: 域名证书
helper: |-
请选择证书申请任务输出的域名证书
或者选择前置任务“上传证书到阿里云”任务的证书ID可以减少上传到阿里云的证书数量
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- uploadCertToAliyun
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 阿里云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: aliyun
required: true
order: 0
regionId:
title: NLB所在地区
component:
name: remote-select
vModel: value
type: plugin
typeName: AliyunDeployCertToNLB
action: onGetRegionList
watches:
- certDomains
- accessId
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择
order: 0
loadBalancers:
title: 负载均衡列表
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: AliyunDeployCertToNLB
action: onGetLoadBalanceList
watches:
- certDomains
- accessId
- regionId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 要部署证书的负载均衡ID
order: 0
listeners:
title: 监听器列表
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: AliyunDeployCertToNLB
action: onGetListenerList
watches:
- certDomains
- accessId
- loadBalancers
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 要部署证书的监听器列表
order: 0
casEndpoint:
title: 证书接入点
helper: 不会选就保持默认即可
value: cas.aliyuncs.com
component:
name: a-select
options:
- value: cas.aliyuncs.com
label: 中国大陆
- value: cas.ap-southeast-1.aliyuncs.com
label: 新加坡
- value: cas.eu-central-1.aliyuncs.com
label: 德国(法兰克福)
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aliyun/plugin/index.js

View File

@ -0,0 +1,145 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: AliyunDeployCertToSLB
title: 阿里云-部署至SLB(传统负载均衡)
icon: svg:icon-aliyun
group: aliyun
desc: 部署证书到阿里云SLB(传统负载均衡)
needPlus: false
input:
cert:
title: 域名证书
helper: |-
请选择证书申请任务输出的域名证书
或者选择前置任务“上传证书到阿里云”任务的证书ID可以减少上传到阿里云的证书数量
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- uploadCertToAliyun
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 阿里云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: aliyun
required: true
order: 0
regionId:
title: LB所在地区
component:
name: remote-select
vModel: value
type: plugin
typeName: AliyunDeployCertToSLB
action: onGetRegionList
watches:
- certDomains
- accessId
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择
order: 0
loadBalancers:
title: 负载均衡列表
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: AliyunDeployCertToSLB
action: onGetLoadBalanceList
watches:
- certDomains
- accessId
- regionId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 要部署证书的负载均衡ID
order: 0
listeners:
title: 监听器列表
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: AliyunDeployCertToSLB
action: onGetListenerList
watches:
- certDomains
- accessId
- loadBalancers
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 要部署证书的监听器列表
order: 0
casEndpoint:
title: 证书接入点
helper: 不会选就保持默认即可
value: cas.aliyuncs.com
component:
name: a-select
options:
- value: cas.aliyuncs.com
label: 中国大陆
- value: cas.ap-southeast-1.aliyuncs.com
label: 新加坡
- value: cas.eu-central-1.aliyuncs.com
label: 德国(法兰克福)
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aliyun/plugin/index.js

View File

@ -0,0 +1,108 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: AliyunDeployCertToWaf
title: 阿里云-部署至阿里云WAF
icon: svg:icon-aliyun
group: aliyun
desc: 部署证书到阿里云WAF
needPlus: true
input:
cert:
title: 域名证书
helper: |-
请选择证书申请任务输出的域名证书
或者选择前置任务“上传证书到阿里云”任务的证书ID可以减少上传到阿里云的证书数量
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- uploadCertToAliyun
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
regionId:
title: WAF接入点
helper: 不会选就按默认
value: cn-hangzhou
component:
name: a-select
options:
- value: cn-hangzhou
label: 中国大陆-华东1(杭州)
- value: ap-southeast-1
label: 新加坡
required: true
order: 0
casEndpoint:
title: 证书接入点
helper: 跟上面保持一致即可
value: cas.aliyuncs.com
component:
name: a-select
options:
- value: cas.aliyuncs.com
label: 中国大陆
- value: cas.ap-southeast-1.aliyuncs.com
label: 新加坡
- value: cas.eu-central-1.aliyuncs.com
label: 德国(法兰克福)
required: true
order: 0
accessId:
title: Access授权
helper: 阿里云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: aliyun
required: true
order: 0
cnameDomains:
title: CNAME站点
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: AliyunDeployCertToWaf
action: onGetCnameList
watches:
- certDomains
- accessId
- accessId
- regionId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择要部署证书的CNAME站点
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aliyun/plugin/index.js

View File

@ -0,0 +1,144 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: AwsDeployToCloudFront
title: AWS-部署证书到CloudFront
desc: 部署证书到 AWS CloudFront
icon: svg:icon-aws
group: aws
needPlus: true
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- AwsUploadToACM
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
region:
title: 区域
helper: 证书上传区域
component:
name: a-auto-complete
vModel: value
options:
- label: us-east-1
value: us-east-1
- label: us-east-2
value: us-east-2
- label: us-west-1
value: us-west-1
- label: us-west-2
value: us-west-2
- label: af-south-1
value: af-south-1
- label: ap-east-1
value: ap-east-1
- label: ap-northeast-1
value: ap-northeast-1
- label: ap-northeast-2
value: ap-northeast-2
- label: ap-northeast-3
value: ap-northeast-3
- label: ap-south-1
value: ap-south-1
- label: ap-south-2
value: ap-south-2
- label: ap-southeast-1
value: ap-southeast-1
- label: ap-southeast-2
value: ap-southeast-2
- label: ap-southeast-3
value: ap-southeast-3
- label: ap-southeast-4
value: ap-southeast-4
- label: ap-southeast-5
value: ap-southeast-5
- label: ca-central-1
value: ca-central-1
- label: ca-west-1
value: ca-west-1
- label: eu-central-1
value: eu-central-1
- label: eu-central-2
value: eu-central-2
- label: eu-north-1
value: eu-north-1
- label: eu-south-1
value: eu-south-1
- label: eu-south-2
value: eu-south-2
- label: eu-west-1
value: eu-west-1
- label: eu-west-2
value: eu-west-2
- label: eu-west-3
value: eu-west-3
- label: il-central-1
value: il-central-1
- label: me-central-1
value: me-central-1
- label: me-south-1
value: me-south-1
- label: sa-east-1
value: sa-east-1
required: true
order: 0
accessId:
title: Access授权
helper: aws的授权
component:
name: access-selector
type: aws
required: true
order: 0
distributionIds:
title: 分配ID
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetDistributions
watches:
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择distributions id
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aws/plugins/plugin-deploy-to-cloudfront.js

View File

@ -0,0 +1,104 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: AwsUploadToACM
title: AWS-上传证书到ACM
desc: 上传证书 AWS ACM
icon: svg:icon-aws
group: aws
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: Access授权
helper: aws的授权
component:
name: access-selector
type: aws
required: true
order: 0
region:
title: 区域
helper: 证书上传区域
component:
name: a-auto-complete
vModel: value
options:
- label: us-east-1
value: us-east-1
- label: us-east-2
value: us-east-2
- label: us-west-1
value: us-west-1
- label: us-west-2
value: us-west-2
- label: af-south-1
value: af-south-1
- label: ap-east-1
value: ap-east-1
- label: ap-northeast-1
value: ap-northeast-1
- label: ap-northeast-2
value: ap-northeast-2
- label: ap-northeast-3
value: ap-northeast-3
- label: ap-south-1
value: ap-south-1
- label: ap-south-2
value: ap-south-2
- label: ap-southeast-1
value: ap-southeast-1
- label: ap-southeast-2
value: ap-southeast-2
- label: ap-southeast-3
value: ap-southeast-3
- label: ap-southeast-4
value: ap-southeast-4
- label: ap-southeast-5
value: ap-southeast-5
- label: ca-central-1
value: ca-central-1
- label: ca-west-1
value: ca-west-1
- label: eu-central-1
value: eu-central-1
- label: eu-central-2
value: eu-central-2
- label: eu-north-1
value: eu-north-1
- label: eu-south-1
value: eu-south-1
- label: eu-south-2
value: eu-south-2
- label: eu-west-1
value: eu-west-1
- label: eu-west-2
value: eu-west-2
- label: eu-west-3
value: eu-west-3
- label: il-central-1
value: il-central-1
- label: me-central-1
value: me-central-1
- label: me-south-1
value: me-south-1
- label: sa-east-1
value: sa-east-1
required: true
order: 0
output:
awsCertARN:
title: 证书ARN
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aws/plugins/plugin-upload-to-acm.js

View File

@ -0,0 +1,33 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: CacheFly
title: CacheFly-部署证书到CacheFly
desc: 部署证书到 CacheFly
icon: clarity:plugin-line
group: cdn
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: Access授权
helper: CacheFly 的授权
component:
name: access-selector
type: CacheFly
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-cachefly/plugins/plugin-deploy-to-cdn.js

View File

@ -0,0 +1,169 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: CopyToLocal
title: 主机-复制到本机
icon: solar:copy-bold-duotone
desc: 【仅管理员使用】实际上是复制证书到docker容器内的某个路径需要做目录映射到宿主机
group: host
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
certType:
title: 证书类型
helper: 要部署的证书格式支持pem、pfx、der、jks格式
component:
name: a-select
options:
- value: pem
label: pem(crt)用于Nginx等大部分应用
- value: pfx
label: pfx一般用于IIS
- value: der
label: der一般用于Apache
- value: jks
label: jks一般用于JAVA应用
required: true
order: 0
crtPath:
title: 证书保存路径
helper: |-
全链证书,路径要包含文件名
推荐使用相对路径将写入与数据库同级目录无需映射例如tmp/cert.pem
component:
placeholder: tmp/full_chain.pem
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'pem';
})
}
required: true
rules:
- type: filepath
order: 0
keyPath:
title: 私钥保存路径
helper: |-
路径要包含文件名
推荐使用相对路径将写入与数据库同级目录无需映射例如tmp/cert.key
component:
placeholder: tmp/cert.key
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'pem';
})
}
required: true
rules:
- type: filepath
order: 0
icPath:
title: 中间证书保存路径
helper: 路径要包含文件名,一般情况传上面两个文件就行了,极少数情况需要这个中间证书
component:
placeholder: /root/deploy/nginx/intermediate.pem
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'pem';
})
}
rules:
- type: filepath
order: 0
pfxPath:
title: PFX证书保存路径
helper: |-
用于IIS证书部署路径要包含文件名
推荐使用相对路径将写入与数据库同级目录无需映射例如tmp/cert.pfx
component:
placeholder: tmp/cert.pfx
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'pfx';
})
}
required: true
rules:
- type: filepath
order: 0
derPath:
title: DER证书保存路径
helper: |-
用于Apache证书部署路径要包含文件名
推荐使用相对路径将写入与数据库同级目录无需映射例如tmp/cert.der
.der和.cer是相同的东西改个后缀名即可
component:
placeholder: tmp/cert.der 或 tmp/cert.cer
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'der';
})
}
required: true
rules:
- type: filepath
order: 0
jksPath:
title: jks证书保存路径
helper: 用于java路径要包含文件名例如tmp/cert.jks
component:
placeholder: tmp/cert.jks
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'jks';
})
}
required: true
rules:
- type: filepath
order: 0
output:
hostCrtPath:
title: 证书保存路径
type: HostCrtPath
hostKeyPath:
title: 私钥保存路径
type: HostKeyPath
hostIcPath:
title: 中间证书保存路径
type: HostKeyPath
hostPfxPath:
title: PFX保存路径
type: HostPfxPath
hostDerPath:
title: DER保存路径
type: HostDerPath
hostJksPath:
title: jks保存路径
type: HostJksPath
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-host/plugin/copy-to-local/index.js

View File

@ -0,0 +1,35 @@
showRunStrategy: true
default:
strategy:
runStrategy: 1
name: CustomScript
title: 自定义js脚本
icon: ri:javascript-line
desc: 【仅管理员】运行自定义js脚本执行
group: other
input:
script:
title: 脚本
helper: 自定义js脚本[脚本编写帮助文档](https://certd.docmirror.cn/guide/use/custom-script/)
component:
name: a-textarea
vModel: value
rows: 10
style: 'background-color: #000c17;color: #fafafa;'
required: true
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: false
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-other/plugins/plugin-script.js

View File

@ -0,0 +1,127 @@
showRunStrategy: true
default:
strategy:
runStrategy: 0
name: DBBackupPlugin
title: 数据库备份
icon: lucide:database-backup
desc: 仅支持备份SQLite数据库
group: other
needPlus: true
input:
backupMode:
title: 备份方式
value: local
component:
name: a-select
options:
- label: 本地复制
value: local
- label: ssh上传
value: ssh
- label: oss上传
value: oss
placeholder: ''
helper: 支持本地复制、ssh上传
required: true
order: 0
sshAccessId:
title: 主机登录授权
component:
name: access-selector
type: ssh
mergeScript: |2-
return {
show:ctx.compute(({form})=>{
return form.backupMode === 'ssh';
})
}
required: true
order: 0
ossType:
title: OSS类型
component:
name: a-select
options:
- value: alioss
label: 阿里云OSS
- value: s3
label: MinIO/S3
- value: qiniuoss
label: 七牛云
- value: tencentcos
label: 腾讯云COS
- value: ftp
label: Ftp
- value: sftp
label: Sftp
mergeScript: |2-
return {
show:ctx.compute(({form})=>{
return form.backupMode === 'oss';
})
}
required: true
order: 0
ossAccessId:
title: OSS授权
component:
name: access-selector
mergeScript: |2-
return {
show:ctx.compute(({form})=>{
return form.backupMode === 'oss';
}),
component:{
type: ctx.compute(({form})=>{
return form.ossType;
}),
}
}
required: true
order: 0
backupDir:
title: 备份保存目录
component:
name: a-input
type: value
placeholder: 默认certd_backup
helper: ssh方式默认保存在当前用户的certd_backup目录下本地方式默认保存在data/certd_backup目录下也可以填写绝对路径
required: false
order: 0
filePrefix:
title: 备份文件前缀
component:
name: a-input
vModel: value
placeholder: 默认db_backup
required: false
order: 0
withUpload:
title: 附加上传文件
value: true
component:
name: a-switch
vModel: checked
placeholder: 是否备份上传的头像等文件
required: false
order: 0
retainDays:
title: 删除过期备份
component:
name: a-input-number
vModel: value
placeholder: '20'
helper: 删除多少天前的备份,不填则不删除windows暂不支持
required: false
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-other/plugins/plugin-db-backup.js

View File

@ -0,0 +1,124 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DemoTest
title: Demo-测试插件
icon: clarity:plugin-line
group: other
input:
text:
title: 属性示例
value: 默认值
component:
name: a-input
vModel: value
helper: 帮助说明,[链接](https://certd.docmirror.cn)
required: false
order: 0
select:
title: 选择框
component:
name: a-auto-complete
vModel: value
options:
- value: show
label: 动态显
- value: hide
label: 动态隐
order: 0
showText:
title: 动态显隐
helper: 我会根据选择框的值进行显隐
show: true
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.select === 'show';
})
}
order: 0
multiSelect:
title: 多选框
component:
name: a-select
vModel: value
mode: tags
multiple: true
options:
- value: '1'
label: 选项1
- value: '2'
label: 选项2
order: 0
switch:
title: switch
component:
name: a-switch
vModel: checked
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: demo授权
helper: demoAccess授权
component:
name: access-selector
type: demo
order: 0
siteName:
title: 从后端获取选项
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetSiteList
watches:
- certDomains
- accessId
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 选择时可以从后端获取选项
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-demo/plugins/plugin-test.js

View File

@ -0,0 +1,109 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToAliyunCDN
title: 阿里云-部署证书至CDN
icon: svg:icon-aliyun
group: aliyun
desc: 自动部署域名证书至阿里云CDN
input:
endpoint:
title: 证书服务接入点
helper: 不会选就按默认
value: cas.aliyuncs.com
component:
name: a-select
options:
- value: cas.aliyuncs.com
label: 中国大陆
- value: cas.ap-southeast-1.aliyuncs.com
label: 新加坡
- value: cas.eu-central-1.aliyuncs.com
label: 德国(法兰克福)
required: true
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- uploadCertToAliyun
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 阿里云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: aliyun
required: true
order: 0
domainName:
title: CDN加速域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: DeployCertToAliyunCDN
action: onGetDomainList
watches:
- certDomains
- accessId
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 你在阿里云上配置的CDN加速域名比如:certd.docmirror.cn
order: 0
certRegion:
title: 证书所在地域
helper: cn-hangzhou和ap-southeast-1默认cn-hangzhou。国际站用户建议使用ap-southeast-1。
value: cn-hangzhou
component:
name: a-select
options:
- value: cn-hangzhou
label: 中国大陆
- value: ap-southeast-1
label: 新加坡
required: true
order: 0
certName:
title: 证书名称
helper: 上传后将以此名称作为前缀备注
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aliyun/plugin/index.js

View File

@ -0,0 +1,59 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToAliyunDCDN
title: 阿里云-部署证书至DCDN
icon: svg:icon-aliyun
group: aliyun
desc: 依赖证书申请前置任务自动部署域名证书至阿里云DCDN
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- uploadCertToAliyun
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 阿里云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: aliyun
required: true
order: 0
domainName:
title: DCDN加速域名
helper: 你在阿里云上配置的CDN加速域名比如:certd.docmirror.cn
required: true
order: 0
certName:
title: 证书名称
helper: 上传后将以此名称作为前缀备注
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aliyun/plugin/index.js

View File

@ -0,0 +1,113 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToAliyunOSS
title: 阿里云-部署证书至OSS
icon: svg:icon-aliyun
group: aliyun
desc: 自动部署域名证书至阿里云OSS
input:
region:
title: 大区
component:
name: a-auto-complete
vModel: value
options:
- value: oss-cn-hangzhou
label: 华东1杭州
- value: oss-cn-shanghai
label: 华东2上海
- value: oss-cn-nanjing
label: 华东5南京-本地地域)
- value: oss-cn-fuzhou
label: 华东6福州-本地地域)
- value: oss-cn-wuhan-lr
label: 华中1武汉-本地地域)
- value: oss-cn-qingdao
label: 华北1青岛
- value: oss-cn-beijing
label: 华北2北京
- value: oss-cn-zhangjiakou
label: 华北 3张家口
- value: oss-cn-huhehaote
label: 华北5呼和浩特
- value: oss-cn-wulanchabu
label: 华北6乌兰察布
- value: oss-cn-shenzhen
label: 华南1深圳
- value: oss-cn-heyuan
label: 华南2河源
- value: oss-cn-guangzhou
label: 华南3广州
- value: oss-cn-chengdu
label: 西南1成都
- value: oss-cn-hongkong
label: 中国香港
- value: oss-us-west-1
label: 美国(硅谷)①
- value: oss-us-east-1
label: 美国(弗吉尼亚)①
- value: oss-ap-northeast-1
label: 日本(东京)①
- value: oss-ap-northeast-2
label: 韩国(首尔)
- value: oss-ap-southeast-1
label: 新加坡①
- value: oss-ap-southeast-2
label: 澳大利亚(悉尼)①
- value: oss-ap-southeast-3
label: 马来西亚(吉隆坡)①
- value: oss-ap-southeast-5
label: 印度尼西亚(雅加达)①
- value: oss-ap-southeast-6
label: 菲律宾(马尼拉)
- value: oss-ap-southeast-7
label: 泰国(曼谷)
- value: oss-eu-central-1
label: 德国(法兰克福)①
- value: oss-eu-west-1
label: 英国(伦敦)
- value: oss-me-east-1
label: 阿联酋(迪拜)①
- value: oss-rg-china-mainland
label: 无地域属性(中国内地)
required: true
order: 0
bucket:
title: Bucket
helper: 存储桶名称
required: true
order: 0
domainName:
title: 绑定的域名
helper: 你在阿里云OSS上绑定的域名比如:certd.docmirror.cn
required: true
order: 0
certName:
title: 证书名称
helper: 上传后将以此名称作为前缀备注
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: Access授权
helper: 阿里云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: aliyun
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-aliyun/plugin/index.js

View File

@ -0,0 +1,90 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToTencentAll
title: 腾讯云-部署证书到任意云资源
needPlus: false
icon: svg:icon-tencentcloud
group: tencent
desc: 支持负载均衡、CDN、DDoS、直播、点播、Web应用防火墙、API网关、TEO、容器服务、对象存储、轻应用服务器、云原生微服务、云开发
input:
accessId:
title: Access授权
helper: access授权
component:
name: access-selector
type: tencent
required: true
order: 0
tencentCertId:
title: 证书
helper: 请选择"证书申请任务"或“上传证书到腾讯云”前置任务的输出
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- UploadCertToTencent
required: true
order: 0
resourceType:
title: 资源类型
component:
name: a-select
vModel: value
allowClear: true
options:
- value: clb
label: 负载均衡
- value: cdn
label: CDN
- value: ddos
label: DDoS
- value: live
label: 直播
- value: vod
label: 点播
- value: waf
label: Web应用防火墙
- value: apigateway
label: API网关
- value: teo
label: TEO
- value: tke
label: 容器服务
- value: cos
label: 对象存储
- value: lighthouse
label: 轻应用服务器
- value: tse
label: 云原生微服务
- value: tcb
label: 云开发
helper: ''
required: true
order: 0
region:
title: Region
component:
name: a-input
vModel: value
allowClear: true
helper: >-
当云资源类型传入clb、waf、apigateway、cos、lighthouse、tke、tse、tcb
公共参数Region必传。[参考文档](https://cloud.tencent.com/document/product/400/91667)
order: 0
instanceIdList:
title: 云资源实例Id列表
component:
name: a-select
vModel: value
open: false
mode: tags
helper: '[参考文档](https://cloud.tencent.com/document/product/400/91667)'
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/index.js

View File

@ -0,0 +1,43 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToTencentCDN
title: 腾讯云-部署到CDN废弃
icon: svg:icon-tencentcloud
group: tencent
desc: 已废弃请使用v2版
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: Access提供者
helper: access 授权
component:
name: access-selector
type: tencent
required: true
order: 0
certName:
title: 证书名称
helper: 证书上传后将以此参数作为名称前缀
order: 0
domainName:
title: cdn加速域名
rules:
- required: true
message: 该项必填
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/index.js

View File

@ -0,0 +1,82 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToTencentCLB
title: 腾讯云-部署到CLB
icon: svg:icon-tencentcloud
group: tencent
desc: 暂时只支持单向认证证书,暂时只支持通用负载均衡
input:
region:
title: 大区
component:
name: a-auto-complete
vModel: value
options:
- value: ap-guangzhou
- value: ap-beijing
- value: ap-chengdu
- value: ap-chongqing
- value: ap-hongkong
- value: ap-jakarta
- value: ap-mumbai
- value: ap-nanjing
- value: ap-seoul
- value: ap-shanghai
- value: ap-shanghai-fsi
- value: ap-shenzhen-fsi
- value: ap-singapore
- value: ap-tokyo
- value: eu-frankfurt
- value: na-ashburn
- value: na-siliconvalley
- value: na-toronto
- value: sa-saopaulo
required: true
order: 0
certName:
title: 证书名称前缀
order: 0
loadBalancerId:
title: 负载均衡ID
helper: 如果没有配置则根据域名匹配负载均衡下的监听器根据域名匹配时暂时只支持前100个
required: true
order: 0
listenerId:
title: 监听器ID
required: true
order: 0
domain:
title: 域名
required: false
component:
name: a-select
vModel: value
open: false
mode: tags
helper: 如果开启了sni则此项必须填写未开启则不要填写
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: Access提供者
helper: access授权
component:
name: access-selector
type: tencent
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/index.js

View File

@ -0,0 +1,122 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToTencentCosPlugin
title: 腾讯云-部署证书到COS
needPlus: false
icon: svg:icon-tencentcloud
group: tencent
desc: 部署到腾讯云COS源站域名证书【注意很不稳定需要重试很多次偶尔才能成功一次】
input:
accessId:
title: Access授权
helper: access授权
component:
name: access-selector
type: tencent
required: true
order: 0
bucket:
title: 存储桶名称
helper: 请输入存储桶名称
order: 0
region:
title: 所在地域
helper: 存储桶所在地域
component:
name: a-auto-complete
vModel: value
options:
- value: ''
label: '--------中国大陆地区-------'
disabled: true
- value: ap-beijing-1
label: 北京1区
- value: ap-beijing
label: 北京
- value: ap-nanjing
label: 南京
- value: ap-shanghai
label: 上海
- value: ap-guangzhou
label: 广州
- value: ap-chengdu
label: 成都
- value: ap-chongqing
label: 重庆
- value: ap-shenzhen-fsi
label: 深圳金融
- value: ap-shanghai-fsi
label: 上海金融
- value: ap-beijing-fsi
label: 北京金融
- value: ''
label: '--------中国香港及境外-------'
disabled: true
- value: ap-hongkong
label: 中国香港
- value: ap-singapore
label: 新加坡
- value: ap-mumbai
label: 孟买
- value: ap-jakarta
label: 雅加达
- value: ap-seoul
label: 首尔
- value: ap-bangkok
label: 曼谷
- value: ap-tokyo
label: 东京
- value: na-siliconvalley
label: 硅谷
- value: na-ashburn
label: 弗吉尼亚
- value: sa-saopaulo
label: 圣保罗
- value: eu-frankfurt
label: 法兰克福
order: 0
domains:
title: COS域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: DeployCertToTencentCosPlugin
action: onGetDomainList
watches:
- certDomains
- accessId
- bucket
- region
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择域名
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书或者选择前置任务“上传证书到腾讯云”任务的证书ID
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- UploadCertToTencent
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/index.js

View File

@ -0,0 +1,51 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToTencentEO
title: 腾讯云-部署到腾讯云EO
icon: svg:icon-tencentcloud
desc: 腾讯云边缘安全加速平台EO必须配置上传证书到腾讯云任务
group: tencent
input:
certId:
title: 已上传证书ID
helper: 请选择前置任务上传到腾讯云的证书
component:
name: output-selector
from: UploadCertToTencent
required: true
order: 0
accessId:
title: Access提供者
helper: access 授权
component:
name: access-selector
type: tencent
required: true
order: 0
zoneId:
title: 站点ID
helper: 类似于zone-xxxx的字符串在站点概览页面左上角或者站点列表页面站点名称下方
required: true
order: 0
certName:
title: 证书名称
helper: 证书上传后将以此参数作为名称前缀
order: 0
domainNames:
title: cdn加速域名
component:
name: a-select
vModel: value
mode: tags
open: false
helper: 支持多个域名
rules:
- required: true
message: 该项必填
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/index.js

View File

@ -0,0 +1,96 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DeployCertToTencentTKEIngress
title: 腾讯云-部署到TKE-ingress
needPlus: true
icon: svg:icon-tencentcloud
group: tencent
desc: serverless集群请使用K8S部署插件Qcloud类型需要【上传到腾讯云】作为前置任务ApiServer未开启外网访问则需要做域名的内网IP映射
input:
region:
title: 大区
value: ap-guangzhou
required: true
order: 0
clusterId:
title: 集群ID
required: true
desc: 例如cls-6lbj1vee
request: true
order: 0
namespace:
title: 集群namespace
value: default
required: true
order: 0
secretName:
title: 证书的secret名称
required: true
order: 0
ingressName:
title: ingress名称
required: true
order: 0
ingressClass:
title: ingress类型
component:
name: a-auto-complete
vModel: value
options:
- value: qcloud
- value: nginx
helper: 可选 qcloud / nginx
order: 0
clusterDomain:
title: 集群域名
helper: 可不填,默认为:[clusterId].ccs.tencent-cloud.com
order: 0
accessId:
title: Access授权
helper: access授权
component:
name: access-selector
type: tencent
required: true
order: 0
tencentCertId:
title: 腾讯云证书id
helper: 请选择“上传证书到腾讯云”前置任务的输出
component:
name: output-selector
from: UploadCertToTencent
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.ingressClass === "qcloud"
})
}
required: true
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.ingressClass === "nginx"
})
}
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/index.js

View File

@ -0,0 +1,47 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: DogeCloudDeployToCDN
title: 多吉云-部署到多吉云CDN
icon: svg:icon-dogecloud
group: cdn
input:
domain:
title: 域名
helper: CDN域名
required: true
order: 0
cert:
title: 证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: 多吉云授权
helper: 多吉云AccessKey
component:
name: access-selector
type: dogecloud
rules:
- required: true
message: 此项必填
order: 0
ignoreDeployNullCode:
title: 忽略部署接口报错
helper: 当该域名部署后报错,但是实际上已经部署成功时,可以勾选
value: false
component:
name: a-switch
type: checked
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-doge/plugins/index.js

View File

@ -0,0 +1,40 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: Gcoreflush
title: Gcore-刷新Gcore证书
desc: 刷新现有的证书
icon: clarity:plugin-line
group: cdn
input:
certName:
title: 证书名称
helper: 可以修改也可以和现在的保留一致
order: 0
ssl_id:
title: 证书ID
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: Access授权
helper: Gcore
component:
name: access-selector
type: Gcore
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-gcore/plugins/plugin-flush.js

View File

@ -0,0 +1,37 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: Gcoreupload
title: Gcore-部署证书到Gcore
desc: 仅上传 并不会部署到cdn
icon: clarity:plugin-line
group: cdn
input:
certName:
title: 证书名称
helper: 作为备注
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: Access授权
helper: Gcore
component:
name: access-selector
type: Gcore
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-gcore/plugins/plugin-upload.js

View File

@ -0,0 +1,78 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: HauweiDeployCertToCDN
title: 华为云-部署证书至CDN
icon: svg:icon-huawei
group: huawei
desc: ''
input:
cert:
title: 域名证书
helper: >-
请选择前置任务输出的域名证书
如果你选择使用ccm证书ID则需要在[域名管理页面右上角开启SCM授权](https://console.huaweicloud.com/cdn/#/cdn/domain)
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- HauweiUploadToCCM
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 华为云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: huawei
required: true
order: 0
domains:
title: CDN域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: HauweiDeployCertToCDN
action: onGetDomainList
watches:
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择域名或输入域名
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-huawei/plugins/deploy-to-cdn/index.js

View File

@ -0,0 +1,51 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: HauweiUploadToCCM
title: 华为云-上传证书至CCM
icon: svg:icon-huawei
group: huawei
desc: 上传证书到华为云CCM
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 华为云授权AccessKeyId、AccessKeySecret
component:
name: access-selector
type: huawei
required: true
order: 0
output:
huaweiCertId:
title: 华为云CertId
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-huawei/plugins/upload-to-ccm/index.js

View File

@ -0,0 +1,76 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: JDCloudDeployToCDN
title: 京东云-部署证书至CDN
icon: svg:icon-jdcloud
group: jdcloud
desc: 京东云内容分发网络
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- JDCloudUploadCert
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 京东云AccessKeyId、AccessKeySecret
component:
name: access-selector
type: jdcloud
required: true
order: 0
domainName:
title: CDN加速域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetDomainList
watches:
- certDomains
- accessId
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 你在京东云上配置的CDN加速域名比如:certd.docmirror.cn
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-jdcloud/plugins/plugin-deploy-to-cdn.js

View File

@ -0,0 +1,76 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: JDCloudUpdateCert
title: 京东云-更新已有证书
icon: svg:icon-jdcloud
group: jdcloud
desc: 更新SSL数字证书中的证书
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- JDCloudUploadCert
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 京东云AccessKeyId、AccessKeySecret
component:
name: access-selector
type: jdcloud
required: true
order: 0
certIds:
title: 要更新的证书id
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetCertList
watches:
- certDomains
- accessId
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 您在京东云上已有的证书Id
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-jdcloud/plugins/plugin-update-cert.js

View File

@ -0,0 +1,41 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: JDCloudUploadCert
title: 京东云-上传新证书
icon: svg:icon-jdcloud
group: jdcloud
desc: 上传证书到SSL数字证书中心
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- JDCloudUploadCert
required: true
order: 0
accessId:
title: Access授权
helper: 京东云AccessKeyId、AccessKeySecret
component:
name: access-selector
type: jdcloud
required: true
order: 0
certName:
title: 证书名称前缀
helper: 证书形成默认为certd
required: false
order: 0
output:
jdcloudCertId:
title: 上传成功后的京东云CertId
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-jdcloud/plugins/plugin-upload-cert.js

View File

@ -0,0 +1,57 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: ProxmoxUploadCert
title: Proxmox-上传证书到Proxmox
icon: svg:icon-proxmox
group: panel
needPlus: true
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
order: 0
accessId:
title: Proxmox授权
component:
name: access-selector
type: proxmox
required: true
order: 0
nodes:
title: 节点
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: ProxmoxUploadCert
action: onGetNodeList
watches:
- certDomains
- accessId
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 要部署证书的节点
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-proxmox/plugins/plugin-upload.js

View File

@ -0,0 +1,39 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: QiniuCertUpload
title: 七牛云-上传证书到七牛云
icon: svg:icon-qiniuyun
group: qiniu
desc: 上传到七牛云
input:
certName:
title: 证书名称
helper: 上传后将以此名称作为前缀备注
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: Access授权
helper: 七牛云授权
component:
name: access-selector
type: qiniu
required: true
order: 0
output:
qiniuCertId:
title: 上传成功后的七牛云CertId
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-qiniu/plugin/upload-cert/index.js

View File

@ -0,0 +1,77 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: QiniuDeployCertToCDN
title: 七牛云-部署证书至CDN
icon: svg:icon-qiniuyun
group: qiniu
desc: 自动部署域名证书至七牛云CDN
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书或者上传到七牛云的证书id
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- QiniuCertUpload
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 七牛云授权
component:
name: access-selector
type: qiniu
required: true
order: 0
domainName:
title: CDN加速域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetDomainList
watches:
- certDomains
- accessId
rules:
- type: domains
allowDotStart: true
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 你在七牛云上配置的CDN加速域名比如:certd.handsfree.work
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-qiniu/plugin/index.js

View File

@ -0,0 +1,34 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: QnapDeploy
title: 威联通-部署证书到威联通
icon: svg:icon-qnap
group: panel
desc: 部署证书到qnap
needPlus: true
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
accessId:
title: ssh登录授权
helper: ssh登录授权
component:
name: access-selector
type: ssh
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-qnap/plugins/plugin-qnap.js

View File

@ -0,0 +1,14 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: RestartCertd
title: 重启 Certd
icon: mdi:restart
desc: 【仅管理员可用】 重启 certd的https服务用于更新 Certd 的 ssl 证书
group: other
input: {}
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-other/plugins/plugin-restart.js

View File

@ -0,0 +1,135 @@
showRunStrategy: false
default:
strategy:
runStrategy: 0
name: TencentActionInstancesPlugin
title: 腾讯云-实例开关机
icon: svg:icon-tencentcloud
group: tencent
desc: 腾讯云实例开关机
needPlus: false
input:
accessId:
title: Access提供者
helper: access 授权
component:
name: access-selector
type: tencent
required: true
order: 0
region:
title: 所在地域
helper: 实例所在地域
component:
name: a-auto-complete
vModel: value
options:
- value: ''
label: '--------中国大陆地区-------'
disabled: true
- value: ap-beijing-1
label: 北京1区
- value: ap-beijing
label: 北京
- value: ap-nanjing
label: 南京
- value: ap-shanghai
label: 上海
- value: ap-guangzhou
label: 广州
- value: ap-chengdu
label: 成都
- value: ap-chongqing
label: 重庆
- value: ap-shenzhen-fsi
label: 深圳金融
- value: ap-shanghai-fsi
label: 上海金融
- value: ap-beijing-fsi
label: 北京金融
- value: ''
label: '--------中国香港及境外-------'
disabled: true
- value: ap-hongkong
label: 中国香港
- value: ap-singapore
label: 新加坡
- value: ap-mumbai
label: 孟买
- value: ap-jakarta
label: 雅加达
- value: ap-seoul
label: 首尔
- value: ap-bangkok
label: 曼谷
- value: ap-tokyo
label: 东京
- value: na-siliconvalley
label: 硅谷
- value: na-ashburn
label: 弗吉尼亚
- value: sa-saopaulo
label: 圣保罗
- value: eu-frankfurt
label: 法兰克福
required: true
order: 0
instanceId:
title: 实列ID
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: TencentStartInstancesPlugin
action: onGetInstanceList
watches:
- certDomains
- accessId
- region
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择实列
order: 0
action:
title: 操作
component:
name: a-radio-group
vModel: value
options:
- value: start
label: 开机
- value: stop
label: 关机
required: true
order: 0
charging:
title: 实例关机不收费
value: true
component:
name: a-switch
vModel: checked
placeholder: 按量计费实例关机不收费
required: false
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.action === 'stop';
})
}
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/start-instances/index.js

View File

@ -0,0 +1,61 @@
showRunStrategy: false
default:
strategy:
runStrategy: 0
name: TencentDeleteExpiringCert
title: 腾讯云-删除即将过期证书
icon: svg:icon-tencentcloud
group: tencent
desc: 仅删除未使用的证书
needPlus: true
input:
accessId:
title: Access提供者
helper: access 授权
component:
name: access-selector
type: tencent
required: true
order: 0
searchKey:
title: 关键字筛选
helper: 仅匹配ID、备注名称、域名包含关键字的证书可以不填
required: false
component:
name: a-input
order: 0
maxCount:
title: 最大删除数量
helper: 单次运行最大删除数量
value: 100
component:
name: a-input-number
vModel: value
required: true
order: 0
expiringDays:
title: 即将过期天数
helper: >-
仅删除有效期小于此天数的证书,
<span
class="color-red">注意:`1.26.14`版本之前Certd创建的证书流水线默认是到期前20天才更新证书需要将之前创建的证书申请任务的更新天数改为35天保证删除之前就已经替换掉即将过期证书</span>
value: 30
component:
name: a-input-number
vModel: value
required: true
order: 0
checkTimeout:
title: 检查超时时间
helper: 检查删除任务结果超时时间,单位分钟
value: 10
component:
name: a-input-number
vModel: value
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/index.js

View File

@ -0,0 +1,59 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: TencentDeployCertToCDNv2
title: 腾讯云-部署到CDN-v2
icon: svg:icon-tencentcloud
group: tencent
desc: 推荐使用
input:
accessId:
title: Access提供者
helper: access 授权
component:
name: access-selector
type: tencent
required: true
order: 0
domains:
title: CDN域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: TencentDeployCertToCDNv2
action: onGetDomainList
watches:
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择域名或输入域名
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书或者选择前置任务“上传证书到腾讯云”任务的证书ID
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- UploadCertToTencent
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/index.js

View File

@ -0,0 +1,60 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: TencentDeployCertToLive
title: 腾讯云-部署到腾讯云直播
icon: svg:icon-tencentcloud
desc: https://console.cloud.tencent.com/live/
group: tencent
needPlus: true
input:
accessId:
title: Access提供者
helper: access 授权
component:
name: access-selector
type: tencent
required: true
order: 0
domains:
title: 直播域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: TencentDeployCertToLive
action: onGetDomainList
watches:
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 请选择域名或输入域名
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书或者选择前置任务“上传证书到腾讯云”任务的证书ID
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- UploadCertToTencent
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/deploy-to-live/index.js

View File

@ -0,0 +1,38 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: UploadCertToTencent
title: 腾讯云-上传证书到腾讯云
icon: svg:icon-tencentcloud
desc: 上传成功后输出tencentCertId
group: tencent
input:
name:
title: 证书名称
order: 0
accessId:
title: Access授权
helper: access授权
component:
name: access-selector
type: tencent
required: true
order: 0
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
output:
tencentCertId:
title: 上传成功后的腾讯云CertId
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-tencent/plugin/upload-to-tencent/index.js

View File

@ -0,0 +1,104 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: UpyunDeployToCdn
title: 又拍云-部署证书到CDN/USS
icon: svg:icon-upyun
desc: 支持又拍云CDN又拍云云存储USS
group: cdn
needPlus: true
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Upyun授权
component:
name: access-selector
type: upyun
required: true
order: 0
cdnList:
title: 加速域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
typeName: UpyunDeployToCdn
action: onGetCdnList
watches:
- certDomains
- accessId
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 选择加速域名,可以手动输入
order: 0
forceHttps:
title: 强制HTTPS
value: keep
component:
name: a-select
vModel: value
options:
- value: 'true'
label: 强制HTTPS
- value: 'false'
label: 不强制HTTPS
- value: keep
label: 保持原样
required: true
order: 0
https:
title: 开启HTTPS
value: 'true'
component:
name: a-select
vModel: value
options:
- value: 'true'
label: 开启HTTPS
- value: 'false'
label: 关闭HTTPS
- value: keep
label: 保持原样
required: true
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-upyun/plugins/plugin-depoy-to-cdn.js

View File

@ -0,0 +1,100 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: VolcengineDeployToALB
title: 火山引擎-部署证书至ALB
icon: svg:icon-volcengine
group: volcengine
desc: 部署至火山引擎应用负载均衡
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- VolcengineUploadToCertCenter
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 火山引擎AccessKeyId、AccessKeySecret
component:
name: access-selector
type: volcengine
required: true
order: 0
regionId:
title: Region
helper: 地区选择
component:
name: a-select
options:
- label: 北京
value: cn-beijing
- label: 上海
value: cn-shanghai
- label: 广州
value: cn-guangzhou
- label: 香港
value: cn-hongkong
- label: 柔佛
value: ap-southeast-1
- label: 雅加达
value: ap-southeast-3
value: cn-beijing
required: true
order: 0
listenerList:
title: 监听器列表
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetListenerList
watches:
- certDomains
- accessId
- certDomains
- accessId
- regionId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: |-
选择要部署证书的监听器
需要在监听器中选择证书中心,进行跨服务访问授权
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-volcengine/plugins/plugin-deploy-to-alb.js

View File

@ -0,0 +1,92 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: VolcengineDeployToCDN
title: 火山引擎-部署证书至CDN
icon: svg:icon-volcengine
group: volcengine
desc: 支持网页,文件下载,音视频点播
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- VolcengineUploadToCertCenter
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 火山引擎AccessKeyId、AccessKeySecret
component:
name: access-selector
type: volcengine
required: true
order: 0
serviceType:
title: 服务类型
helper: 网页,文件下载,音视频点播
component:
name: a-select
options:
- label: 网页
value: web
- label: 文件下载
value: download
- label: 音视频点播
value: video
value: web
required: true
order: 0
domainName:
title: CDN加速域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetDomainList
watches:
- certDomains
- accessId
- certDomains
- accessId
- serviceType
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 你在火山引擎上配置的CDN加速域名比如:certd.docmirror.cn
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-volcengine/plugins/plugin-deploy-to-cdn.js

View File

@ -0,0 +1,110 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: VolcengineDeployToCLB
title: 火山引擎-部署证书至CLB
icon: svg:icon-volcengine
group: volcengine
desc: 部署至火山引擎负载均衡
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
- VolcengineUploadToCertCenter
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 火山引擎AccessKeyId、AccessKeySecret
component:
name: access-selector
type: volcengine
required: true
order: 0
regionId:
title: Region
helper: 地区选择
component:
name: a-select
options:
- label: 北京
value: cn-beijing
- label: 上海
value: cn-shanghai
- label: 广州
value: cn-guangzhou
- label: 深圳
value: cn-shenzhen
- label: 杭州
value: cn-hangzhou
- label: 南京
value: cn-north-1
- label: 青岛
value: cn-qingdao
- label: 重庆
value: cn-chengdu
- label: 香港
value: cn-hongkong
- label: 柔佛
value: ap-southeast-1
- label: 雅加达
value: ap-southeast-3
value: cn-beijing
required: true
order: 0
listenerList:
title: 监听器列表
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetListenerList
watches:
- certDomains
- accessId
- certDomains
- accessId
- regionId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: |-
选择要部署证书的监听器
需要在监听器中选择证书中心,进行跨服务访问授权
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-volcengine/plugins/plugin-deploy-to-clb.js

View File

@ -0,0 +1,75 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: VolcengineDeployToLive
title: 火山引擎-部署证书至Live
icon: svg:icon-volcengine
group: volcengine
desc: 部署至火山引擎视频直播
input:
cert:
title: 域名证书
helper: 请选择前置任务输出的域名证书
component:
name: output-selector
from:
- CertApply
- CertApplyLego
- CertApplyUpload
required: true
order: 0
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |2-
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: false
order: 0
accessId:
title: Access授权
helper: 火山引擎AccessKeyId、AccessKeySecret
component:
name: access-selector
type: volcengine
required: true
order: 0
domainList:
title: 直播域名
component:
name: remote-select
vModel: value
mode: tags
type: plugin
action: onGetDomainList
watches:
- certDomains
- accessId
- certDomains
- accessId
required: true
mergeScript: |2-
return {
component:{
form: ctx.compute(({form})=>{
return form
})
},
}
helper: 选择要部署证书的直播域名
order: 0
output: {}
type: builtIn
pluginType: deploy
scriptFilePath: ../../../plugins/plugin-volcengine/plugins/plugin-deploy-to-live.js

Some files were not shown because too many files have changed in this diff Show More