chore: product info

pull/409/head
xiaojunnuo 2025-04-27 22:51:47 +08:00
parent 605440812f
commit 8087524bef
136 changed files with 124 additions and 7122 deletions

View File

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

View File

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

View File

@ -109,3 +109,11 @@ export async function sendEmailCode(data: any): Promise<any> {
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 { useTitle } from "@vueuse/core";
import { utils } from "/@/utils";
import { cloneDeep } from "lodash-es";
import { cloneDeep, merge } from "lodash-es";
export interface SettingState {
sysPublic?: SysPublicSetting;
@ -32,6 +32,21 @@ export interface SettingState {
time?: 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 = {
@ -80,6 +95,19 @@ export const useSettingStore = defineStore({
time: 0,
deltaTime: 0,
},
productInfo: {
notice: "",
plus: {
name: "专业版",
price: 29.9,
price3: 89.9,
},
comm: {
name: "商业版",
price: 399,
price3: 899,
},
},
}),
getters: {
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() {
await this.loadSysSettings();
},
@ -235,6 +271,7 @@ export const useSettingStore = defineStore({
return;
}
await this.init();
this.loadProductInfo();
this.inited = true;
},
},

View File

@ -93,5 +93,6 @@ for (const key in modules) {
}
}
}
process.exit();
process.exit()

View File

@ -20,7 +20,8 @@
"lint": "mwts check",
"lint:fix": "mwts fix",
"ci": "npm run cov",
"build": "mwtsc --cleanOutDir --skipLibCheck",
"build": "npm run export-metadata && mwtsc --cleanOutDir --skipLibCheck",
"export-metadata": "node export-plugin-yaml.js",
"dev-build": "echo 1",
"build-on-docker": "node ./before-build.js && npm run build",
"up-mw-deps": "npx midway-version -u -w",

View File

@ -1,4 +1,4 @@
import { Config, Controller, Get, Inject, Provide } from '@midwayjs/core';
import { Config, Controller, Get, Inject, Provide } from "@midwayjs/core";
import {
BaseController,
Constants,
@ -8,24 +8,25 @@ import {
SysSettingsService,
SysSiteEnv,
SysSiteInfo,
SysSuiteSetting,
} from '@certd/lib-server';
import { AppKey, getPlusInfo, isComm } from '@certd/plus-core';
import { cloneDeep } from 'lodash-es';
SysSuiteSetting
} from "@certd/lib-server";
import { AppKey, getPlusInfo, isComm } from "@certd/plus-core";
import { cloneDeep } from "lodash-es";
import { getVersion } from "../../utils/version.js";
import { http } from "@certd/basic";
/**
*/
@Provide()
@Controller('/api/basic/settings')
@Controller("/api/basic/settings")
export class BasicSettingsController extends BaseController {
@Inject()
sysSettingsService: SysSettingsService;
@Config('account.server.baseUrl')
@Config("account.server.baseUrl")
accountServerBaseUrl: any;
@Config('agent')
agentConfig: SysSiteEnv['agent'];
@Config("agent")
agentConfig: SysSiteEnv["agent"];
public async getSysPublic() {
return await this.sysSettingsService.getSetting(SysPublicSettings);
@ -52,13 +53,13 @@ export class BasicSettingsController extends BaseController {
}
const setting = await this.sysSettingsService.getSetting<SysSuiteSetting>(SysSuiteSetting);
return {
enabled: setting.enabled,
enabled: setting.enabled
};
}
public async getSiteEnv() {
const env: SysSiteEnv = {
agent: this.agentConfig,
agent: this.agentConfig
};
return env;
}
@ -70,7 +71,16 @@ export class BasicSettingsController extends BaseController {
return copy;
}
@Get('/all', { summary: Constants.per.guest })
@Get("/productInfo", { summary: Constants.per.guest })
async getProductInfo() {
const info = await http.request({
url: "https://app.handfree.work/certd/info.json"
});
return this.ok(info);
}
@Get("/all", { summary: Constants.per.guest })
async getAllSettings() {
const sysPublic = await this.getSysPublic();
const installInfo = await this.getInstallInfo();
@ -82,8 +92,7 @@ export class BasicSettingsController extends BaseController {
const plusInfo = await this.plusInfo();
const headerMenus = await this.getHeaderMenus();
const suiteSetting = await this.getSuiteSetting();
const version = await getVersion()
const version = await getVersion();
return this.ok({
sysPublic,
installInfo,
@ -94,8 +103,8 @@ export class BasicSettingsController extends BaseController {
suiteSetting,
app: {
time: new Date().getTime(),
version,
}
version
},
});
}
}

View File

@ -1,43 +0,0 @@
name: yizhifu
title: 易支付
icon: svg:icon-yizhifu
input:
url:
title: url
component:
placeholder: https://pay.xxxx.com
helper: 易支付系统地址
required: true
encrypt: false
pid:
title: 商户id
component:
placeholder: pid
required: true
encrypt: false
key:
title: key
component:
placeholder: key
required: true
encrypt: true
payType:
title: 固定支付方式
component:
placeholder: 固定一种支付方式也就是submit.php中的type参数
helper: 不填则跳转到收银台由用户自己选择,如果您的易支付系统不支持收银台,则必须填写
required: false
encrypt: false
signType:
title: 签名方式
component:
name: a-select
vModel: value
options:
- label: MD5
value: MD5
- label: SHA256
value: SHA256
required: true
encrypt: false
pluginType: access

View File

@ -1,6 +0,0 @@
name: aliyun
title: 阿里云
desc: 阿里云DNS解析提供商
accessType: aliyun
icon: svg:icon-aliyun
pluginType: dnsProvider

View File

@ -1,64 +0,0 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: uploadCertToAliyun
title: 阿里云-上传证书到阿里云
icon: svg:icon-aliyun
group: aliyun
desc: 如果不想在阿里云上同一份证书上传多次,可以把此任务作为前置任务,其他阿里云任务证书那一项选择此任务的输出
input:
name:
title: 证书名称
helper: 证书上传后将以此参数作为名称前缀
order: 0
regionId:
title: 大区
value: cn-hangzhou
component:
name: a-auto-complete
vModel: value
options:
- value: cn-hangzhou
endpoint: cas.aliyuncs.com
label: cn-hangzhou-中国大陆
- value: eu-central-1
endpoint: cas.eu-central-1.aliyuncs.com
label: eu-central-1-德国(法兰克福)
- value: ap-southeast-1
endpoint: cas.ap-southeast-1.aliyuncs.com
label: ap-southeast-1-新加坡
- value: ap-southeast-3
endpoint: cas.ap-southeast-3.aliyuncs.com
label: ap-southeast-3-马来西亚(吉隆坡)
- value: ap-southeast-5
endpoint: cas.ap-southeast-5.aliyuncs.com
label: ap-southeast-5-印度尼西亚(雅加达)
- value: cn-hongkong
endpoint: cas.cn-hongkong.aliyuncs.com
label: cn-hongkong-中国香港
required: true
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:
aliyunCertId:
title: 上传成功后的阿里云CertId
pluginType: deploy

View File

@ -1,143 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,107 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,57 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,147 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,143 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,111 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,143 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,106 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,64 +0,0 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: uploadCertToAliyun
title: 阿里云-上传证书到阿里云
icon: svg:icon-aliyun
group: aliyun
desc: 如果不想在阿里云上同一份证书上传多次,可以把此任务作为前置任务,其他阿里云任务证书那一项选择此任务的输出
input:
name:
title: 证书名称
helper: 证书上传后将以此参数作为名称前缀
order: 0
regionId:
title: 大区
value: cn-hangzhou
component:
name: a-auto-complete
vModel: value
options:
- value: cn-hangzhou
endpoint: cas.aliyuncs.com
label: cn-hangzhou-中国大陆
- value: eu-central-1
endpoint: cas.eu-central-1.aliyuncs.com
label: eu-central-1-德国(法兰克福)
- value: ap-southeast-1
endpoint: cas.ap-southeast-1.aliyuncs.com
label: ap-southeast-1-新加坡
- value: ap-southeast-3
endpoint: cas.ap-southeast-3.aliyuncs.com
label: ap-southeast-3-马来西亚(吉隆坡)
- value: ap-southeast-5
endpoint: cas.ap-southeast-5.aliyuncs.com
label: ap-southeast-5-印度尼西亚(雅加达)
- value: cn-hongkong
endpoint: cas.cn-hongkong.aliyuncs.com
label: cn-hongkong-中国香港
required: true
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:
aliyunCertId:
title: 上传成功后的阿里云CertId
pluginType: deploy

View File

@ -1,64 +0,0 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: uploadCertToAliyun
title: 阿里云-上传证书到阿里云
icon: svg:icon-aliyun
group: aliyun
desc: 如果不想在阿里云上同一份证书上传多次,可以把此任务作为前置任务,其他阿里云任务证书那一项选择此任务的输出
input:
name:
title: 证书名称
helper: 证书上传后将以此参数作为名称前缀
order: 0
regionId:
title: 大区
value: cn-hangzhou
component:
name: a-auto-complete
vModel: value
options:
- value: cn-hangzhou
endpoint: cas.aliyuncs.com
label: cn-hangzhou-中国大陆
- value: eu-central-1
endpoint: cas.eu-central-1.aliyuncs.com
label: eu-central-1-德国(法兰克福)
- value: ap-southeast-1
endpoint: cas.ap-southeast-1.aliyuncs.com
label: ap-southeast-1-新加坡
- value: ap-southeast-3
endpoint: cas.ap-southeast-3.aliyuncs.com
label: ap-southeast-3-马来西亚(吉隆坡)
- value: ap-southeast-5
endpoint: cas.ap-southeast-5.aliyuncs.com
label: ap-southeast-5-印度尼西亚(雅加达)
- value: cn-hongkong
endpoint: cas.cn-hongkong.aliyuncs.com
label: cn-hongkong-中国香港
required: true
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:
aliyunCertId:
title: 上传成功后的阿里云CertId
pluginType: deploy

View File

@ -1,20 +0,0 @@
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中创建新的访问密钥。
pluginType: access

View File

@ -1,142 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,142 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,142 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,102 +0,0 @@
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
pluginType: deploy

View File

@ -1,22 +0,0 @@
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
pluginType: access

View File

@ -1,22 +0,0 @@
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
pluginType: access

View File

@ -1,31 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,31 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,22 +0,0 @@
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
pluginType: access

View File

@ -1,6 +0,0 @@
name: cloudflare
title: cloudflare
desc: cloudflare dns provider
icon: simple-icons:cloudflare
accessType: cloudflare
pluginType: dnsProvider

View File

@ -1,6 +0,0 @@
name: cloudflare
title: cloudflare
desc: cloudflare dns provider
icon: simple-icons:cloudflare
accessType: cloudflare
pluginType: dnsProvider

View File

@ -1,17 +0,0 @@
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
pluginType: access

View File

@ -1,6 +0,0 @@
name: demo
title: Dns提供商Demo
desc: dns provider示例
icon: clarity:plugin-line
accessType: demo
pluginType: dnsProvider

View File

@ -1,122 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,122 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,122 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,20 +0,0 @@
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
pluginType: access

View File

@ -1,6 +0,0 @@
name: dnsla
title: dns.la
desc: dns.la
icon: arcticons:dns-changer-3
accessType: dnsla
pluginType: dnsProvider

View File

@ -1,6 +0,0 @@
name: dnsla
title: dns.la
desc: dns.la
icon: arcticons:dns-changer-3
accessType: dnsla
pluginType: dnsProvider

View File

@ -1,20 +0,0 @@
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
pluginType: access

View File

@ -1,45 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,45 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,45 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,22 +0,0 @@
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
pluginType: access

View File

@ -1,35 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,35 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,38 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,35 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,223 +0,0 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: uploadCertToHost
title: 主机-部署证书到SSH主机
icon: line-md:uploading-loop
group: host
desc: SFTP上传证书到主机然后SSH执行部署脚本命令
order: 1
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: pemcrtNginx等大部分应用
- value: pfx
label: pfx一般用于IIS
- value: der
label: der一般用于Apache
- value: jks
label: jks一般用于JAVA应用
- value: one
label: 证书私钥一体crt+key简单合并为一个pem文件
required: true
order: 0
crtPath:
title: 证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.pem
component:
placeholder: /root/deploy/nginx/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: /root/deploy/nginx/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: 填写应用原本的证书保存路径路径要包含证书文件名例如D:\iis\cert.pfx
component:
placeholder: D:\iis\cert.pfx
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'pfx';
})
}
required: true
rules:
- type: filepath
order: 0
derPath:
title: DER证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.der
component:
placeholder: /root/deploy/apache/cert.der
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'der';
})
}
required: true
rules:
- type: filepath
order: 0
jksPath:
title: jks证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.jks
component:
placeholder: /root/deploy/java_app/cert.jks
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'jks';
})
}
required: true
rules:
- type: filepath
order: 0
onePath:
title: 一体证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/crt_key.pem
component:
placeholder: /root/deploy/app/crt_key.pem
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'one';
})
}
required: true
rules:
- type: filepath
order: 0
accessId:
title: 主机登录配置
helper: access授权
component:
name: access-selector
type: ssh
required: true
order: 0
uploadType:
title: 上传方式
helper: 选择上传方式sftp或者scp
value: sftp
component:
name: a-select
options:
- value: sftp
label: sftp
- value: scp
label: scp
required: true
order: 0
mkdirs:
title: 自动创建远程目录
helper: 是否自动创建远程目录,如果关闭则你需要自己确保远程目录存在
value: true
component:
name: a-switch
vModel: checked
order: 0
script:
title: shell脚本命令
component:
name: a-textarea
vModel: value
rows: 6
helper: |-
上传后执行脚本命令,不填则不执行
注意如果目标主机是windows且终端是cmd系统会自动将多行命令通过“&&”连接成一行
required: false
order: 0
injectEnv:
title: 注入环境变量
value: false
component:
name: a-switch
vModel: checked
helper: 是否将证书域名、路径等信息注入脚本执行环境变量中,具体的变量名称,可以运行后从日志中查看
required: false
order: 0
output:
hostCrtPath:
title: 证书保存路径
hostKeyPath:
title: 私钥保存路径
hostIcPath:
title: 中间证书保存路径
hostPfxPath:
title: PFX保存路径
hostDerPath:
title: DER保存路径
hostJksPath:
title: jks保存路径
hostOnePath:
title: 一体证书保存路径
pluginType: deploy

View File

@ -1,167 +0,0 @@
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
pluginType: deploy

View File

@ -1,30 +0,0 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: hostShellExecute
title: 主机-执行远程主机脚本命令
icon: tabler:brand-powershell
group: host
desc: 可以执行重启nginx等操作让证书生效
input:
accessId:
title: 主机登录配置
helper: 登录
component:
name: access-selector
type: ssh
required: true
order: 0
script:
title: shell脚本命令
component:
name: a-textarea
vModel: value
rows: 6
placeholder: systemctl restart nginx
helper: 注意如果目标主机是windows且终端是cmd系统会自动将多行命令通过“&&”连接成一行
required: true
order: 0
output: {}
pluginType: deploy

View File

@ -1,223 +0,0 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: uploadCertToHost
title: 主机-部署证书到SSH主机
icon: line-md:uploading-loop
group: host
desc: SFTP上传证书到主机然后SSH执行部署脚本命令
order: 1
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: pemcrtNginx等大部分应用
- value: pfx
label: pfx一般用于IIS
- value: der
label: der一般用于Apache
- value: jks
label: jks一般用于JAVA应用
- value: one
label: 证书私钥一体crt+key简单合并为一个pem文件
required: true
order: 0
crtPath:
title: 证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.pem
component:
placeholder: /root/deploy/nginx/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: /root/deploy/nginx/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: 填写应用原本的证书保存路径路径要包含证书文件名例如D:\iis\cert.pfx
component:
placeholder: D:\iis\cert.pfx
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'pfx';
})
}
required: true
rules:
- type: filepath
order: 0
derPath:
title: DER证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.der
component:
placeholder: /root/deploy/apache/cert.der
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'der';
})
}
required: true
rules:
- type: filepath
order: 0
jksPath:
title: jks证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.jks
component:
placeholder: /root/deploy/java_app/cert.jks
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'jks';
})
}
required: true
rules:
- type: filepath
order: 0
onePath:
title: 一体证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/crt_key.pem
component:
placeholder: /root/deploy/app/crt_key.pem
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'one';
})
}
required: true
rules:
- type: filepath
order: 0
accessId:
title: 主机登录配置
helper: access授权
component:
name: access-selector
type: ssh
required: true
order: 0
uploadType:
title: 上传方式
helper: 选择上传方式sftp或者scp
value: sftp
component:
name: a-select
options:
- value: sftp
label: sftp
- value: scp
label: scp
required: true
order: 0
mkdirs:
title: 自动创建远程目录
helper: 是否自动创建远程目录,如果关闭则你需要自己确保远程目录存在
value: true
component:
name: a-switch
vModel: checked
order: 0
script:
title: shell脚本命令
component:
name: a-textarea
vModel: value
rows: 6
helper: |-
上传后执行脚本命令,不填则不执行
注意如果目标主机是windows且终端是cmd系统会自动将多行命令通过“&&”连接成一行
required: false
order: 0
injectEnv:
title: 注入环境变量
value: false
component:
name: a-switch
vModel: checked
helper: 是否将证书域名、路径等信息注入脚本执行环境变量中,具体的变量名称,可以运行后从日志中查看
required: false
order: 0
output:
hostCrtPath:
title: 证书保存路径
hostKeyPath:
title: 私钥保存路径
hostIcPath:
title: 中间证书保存路径
hostPfxPath:
title: PFX保存路径
hostDerPath:
title: DER保存路径
hostJksPath:
title: jks保存路径
hostOnePath:
title: 一体证书保存路径
pluginType: deploy

View File

@ -1,223 +0,0 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: uploadCertToHost
title: 主机-部署证书到SSH主机
icon: line-md:uploading-loop
group: host
desc: SFTP上传证书到主机然后SSH执行部署脚本命令
order: 1
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: pemcrtNginx等大部分应用
- value: pfx
label: pfx一般用于IIS
- value: der
label: der一般用于Apache
- value: jks
label: jks一般用于JAVA应用
- value: one
label: 证书私钥一体crt+key简单合并为一个pem文件
required: true
order: 0
crtPath:
title: 证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.pem
component:
placeholder: /root/deploy/nginx/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: /root/deploy/nginx/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: 填写应用原本的证书保存路径路径要包含证书文件名例如D:\iis\cert.pfx
component:
placeholder: D:\iis\cert.pfx
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'pfx';
})
}
required: true
rules:
- type: filepath
order: 0
derPath:
title: DER证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.der
component:
placeholder: /root/deploy/apache/cert.der
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'der';
})
}
required: true
rules:
- type: filepath
order: 0
jksPath:
title: jks证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.jks
component:
placeholder: /root/deploy/java_app/cert.jks
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'jks';
})
}
required: true
rules:
- type: filepath
order: 0
onePath:
title: 一体证书保存路径
helper: 填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/crt_key.pem
component:
placeholder: /root/deploy/app/crt_key.pem
mergeScript: |2-
return {
show: ctx.compute(({form})=>{
return form.certType === 'one';
})
}
required: true
rules:
- type: filepath
order: 0
accessId:
title: 主机登录配置
helper: access授权
component:
name: access-selector
type: ssh
required: true
order: 0
uploadType:
title: 上传方式
helper: 选择上传方式sftp或者scp
value: sftp
component:
name: a-select
options:
- value: sftp
label: sftp
- value: scp
label: scp
required: true
order: 0
mkdirs:
title: 自动创建远程目录
helper: 是否自动创建远程目录,如果关闭则你需要自己确保远程目录存在
value: true
component:
name: a-switch
vModel: checked
order: 0
script:
title: shell脚本命令
component:
name: a-textarea
vModel: value
rows: 6
helper: |-
上传后执行脚本命令,不填则不执行
注意如果目标主机是windows且终端是cmd系统会自动将多行命令通过“&&”连接成一行
required: false
order: 0
injectEnv:
title: 注入环境变量
value: false
component:
name: a-switch
vModel: checked
helper: 是否将证书域名、路径等信息注入脚本执行环境变量中,具体的变量名称,可以运行后从日志中查看
required: false
order: 0
output:
hostCrtPath:
title: 证书保存路径
hostKeyPath:
title: 私钥保存路径
hostIcPath:
title: 中间证书保存路径
hostPfxPath:
title: PFX保存路径
hostDerPath:
title: DER保存路径
hostJksPath:
title: jks保存路径
hostOnePath:
title: 一体证书保存路径
pluginType: deploy

View File

@ -1,19 +0,0 @@
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
pluginType: access

View File

@ -1,19 +0,0 @@
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
pluginType: access

View File

@ -1,6 +0,0 @@
name: huawei
title: 华为云
desc: 华为云DNS解析提供商
accessType: huawei
icon: svg:icon-huawei
pluginType: dnsProvider

View File

@ -1,19 +0,0 @@
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
pluginType: access

View File

@ -1,72 +0,0 @@
showRunStrategy: false
default:
strategy:
runStrategy: 1
name: HauweiDeployCertToCDN
title: 华为云-部署证书至CDN
icon: svg:icon-huawei
group: huawei
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: 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: {}
pluginType: deploy

View File

@ -1,61 +0,0 @@
name: HuaweiUploadToCCM
title: 华为-上传证书至CCM
desc: 上传证书至华为云CCM
type: plugin
pluginType: deploy
author: certd
version: 1.0.0
icon: 'svg:icon-huawei'
group: huawei
default:
strategy:
runStrategy: 1,
input: # 插件的输入参数
cert:
title: 前置任务证书
helper: 请选择前置任务产生的证书 # 帮助说明
component:
name: output-selector # 输入组件名称
vModel: modelValue # 组件参数
from:
- ApplyCert
- ApplyCertLego
- ApplyCertUpload
required: true
certDomains:
title: 当前证书域名
component:
name: cert-domains-getter
mergeScript: |
return {
component:{
inputKey: ctx.compute(({form})=>{
return form.cert
}),
}
}
required: true
accessId:
title: Access授权
helper: xxxx的授权
component:
name: access-selector # 授权选择组件名称
type: aliyun # 授权类型
required: true
key1:
title: 输入示例1
required: false
key2:
title: 可选项
component:
name: a-select
vMode: value
options:
- value: "1"
label: 选项1
- value: "2"
label: 选项2
required: false
#output: # 输出参数,一般插件都不需要配置此项
# outputName:
#

View File

@ -1,49 +0,0 @@
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
pluginType: deploy

View File

@ -1,18 +0,0 @@
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
pluginType: access

View File

@ -1,6 +0,0 @@
name: jdcloud
title: 京东云
desc: 京东云DNS解析提供商
accessType: jdcloud
icon: svg:icon-jdcloud
pluginType: dnsProvider

View File

@ -1,39 +0,0 @@
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
pluginType: deploy

View File

@ -1,39 +0,0 @@
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
pluginType: deploy

View File

@ -1,74 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,74 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,39 +0,0 @@
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
pluginType: deploy

View File

@ -1,17 +0,0 @@
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
pluginType: access

View File

@ -1,6 +0,0 @@
name: namesilo
title: namesilo
desc: namesilo dns provider
icon: simple-icons:namesilo
accessType: namesilo
pluginType: dnsProvider

View File

@ -1,6 +0,0 @@
name: namesilo
title: namesilo
desc: namesilo dns provider
icon: simple-icons:namesilo
accessType: namesilo
pluginType: dnsProvider

View File

@ -1,18 +0,0 @@
name: anpush
title: AnPush
desc: https://anpush.com
needPlus: true
input:
token:
title: API密钥
component:
placeholder: ''
helper: '[获取API密钥](https://anpush.com/push/tool) '
required: true
channel:
title: 通道ID
component:
placeholder: ''
helper: '[获取通道ID](https://anpush.com/push/setting)创建通道复制通道id填入此处'
required: true
pluginType: access

View File

@ -1,19 +0,0 @@
name: bark
title: Bark 通知
desc: Bark 推送通知插件
needPlus: true
input:
webhook:
title: 服务地址
component:
placeholder: https://api.day.app/your_key
required: true
helper: 你的bark服务地址+key
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,49 +0,0 @@
name: dingtalk
title: 钉钉通知
desc: 钉钉群聊通知
needPlus: true
input:
webhook:
title: webhook地址
component:
placeholder: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxx
helper: >-
钉钉APP->群聊->设置->机器人->添加机器人->自定义->[创建机器人->复制webhook地址](https://open.dingtalk.com/document/robots/custom-robot-access)
required: true
secret:
title: 加签密钥
component:
placeholder: SECxxxxxxxxxxxxxxxxxxxxx
helper: 必须选择一种安全设置,请选择加密密钥
required: false
atUserIds:
title: '@用户ID'
component:
placeholder: 非必填,填写完一个按回车
name: a-select
vModel: value
mode: tags
multiple: true
open: false
helper: 填写要@的用户ID
required: false
atMobiles:
title: '@用户手机号'
component:
placeholder: 非必填,填写一个按回车
name: a-select
vModel: value
mode: tags
multiple: true
open: false
helper: 填写要@的用户的手机号
required: false
isAtAll:
title: '@all'
component:
placeholder: 非必填
name: a-switch
vModel: checked
helper: 是否@所有人
required: false
pluginType: access

View File

@ -1,36 +0,0 @@
name: discord
title: Discord 通知
desc: Discord 机器人通知
needPlus: true
input:
webhook:
title: Webhook URL
component:
placeholder: https://discord.com/api/webhooks/xxxxx/xxxx
helper: >-
[Discord Webhook
说明](https://discord.com/developers/docs/resources/webhook#execute-webhook)
required: true
mentionedList:
title: 提醒指定成员
component:
name: a-select
vModel: value
mode: tags
open: false
required: false
helper: 填写成员的Id或者角色Id&id或者everyone
httpsProxy:
title: 代理
component:
placeholder: http://xxxxx:xx
helper: 使用https_proxy
required: false
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,16 +0,0 @@
name: email
title: 电子邮件
desc: 电子邮件通知
input:
receivers:
title: 收件人邮箱
component:
name: a-select
vModel: value
mode: tags
open: false
required: true
helper: |-
可以填写多个,填写一个按回车键再填写下一个
需要先[配置邮件服务器](#/sys/settings/email)
pluginType: access

View File

@ -1,41 +0,0 @@
name: feishu
title: 飞书通知
desc: 飞书群聊webhook通知
needPlus: true
input:
webhook:
title: webhook地址
component:
placeholder: https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxx
helper: >-
飞书APP->群聊->设置->机器人->添加机器人->自定义webhook->[创建机器人->复制webhook地址](https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot?lang=zh-CN)
required: true
secret:
title: 加签密钥
component:
placeholder: SECxxxxxxxxxxxxxxxxxxxxx
helper: 必须选择一种安全设置,建议选择加密密钥
required: false
atUserIds:
title: '@用户'
component:
placeholder: 非必填,支持多个,填写完一个按回车
name: a-select
vModel: value
mode: tags
multiple: true
open: false
helper: >-
填写要@的用户ID【ou_xxxxxxxxx】
用户ID获取方法,[查看OpenId获取方法](https://open.feishu.cn/document/home/user-identity-introduction/open-id)
required: false
isAtAll:
title: '@all'
component:
placeholder: 非必填
name: a-switch
vModel: checked
helper: 是否@所有人
required: false
pluginType: access

View File

@ -1,73 +0,0 @@
name: webhook
title: 自定义webhook
desc: 根据模版自定义http请求
input:
webhook:
title: webhook地址
component:
placeholder: https://xxxxx.com/xxxx
col:
span: 24
required: true
method:
title: 请求方式
value: POST
component:
name: a-select
placeholder: post/put/get
options:
- value: POST
label: POST
- value: PUT
label: PUT
- value: GET
label: GET
required: true
contentType:
title: ContentType
value: application/json
component:
name: a-auto-complete
options:
- value: application/json
label: application/json
- value: application/x-www-form-urlencoded
label: application/x-www-form-urlencoded
helper: 也可以自定义填写
required: true
headers:
title: Headers
component:
name: a-textarea
vModel: value
rows: 2
col:
span: 24
helper: 一行一个格式为key=value
required: false
template:
title: 消息body模版
value: |-
{
"title":"{title}",
"content":"{content}\n[查看详情]({url})"
}
component:
name: a-textarea
rows: 4
col:
span: 24
helper: |-
根据对应的webhook接口文档构建一个json对象作为参数默认值只是一个示例一般不是正确的参数
支持变量:{title}、{content}、{url},变量用{}包裹
字符串需要双引号,使用\n换行
如果是get方式将作为query参数拼接到url上
required: true
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,12 +0,0 @@
name: iyuu
title: 爱语飞飞微信通知(iyuu)
desc: https://iyuu.cn/
needPlus: true
input:
token:
title: Token令牌
component:
placeholder: ''
helper: https://iyuu.cn/ 微信扫码获取
required: true
pluginType: access

View File

@ -1,30 +0,0 @@
name: qywx
title: 企业微信通知
desc: 企业微信群聊机器人通知
needPlus: true
input:
webhook:
title: webhook地址
component:
placeholder: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx
helper: '[企微群聊机器人配置说明](https://developer.work.weixin.qq.com/document/path/91770)'
required: true
mentionedList:
title: 提醒指定成员
component:
name: a-select
vModel: value
mode: tags
open: false
required: false
helper: 填写成员名字,@all 为提醒所有人
mentionedMobileList:
title: 提醒指定手机号成员
component:
name: a-select
vModel: value
mode: tags
open: false
required: false
helper: 填写成员手机号,@all 为提醒所有人
pluginType: access

View File

@ -1,35 +0,0 @@
name: serverchan
title: Server酱ᵀ
desc: https://sct.ftqq.com/
needPlus: true
input:
endpoint:
title: 服务地址
value: https://sctapi.ftqq.com
required: true
sendKey:
title: SendKey
component:
placeholder: https://sctapi.ftqq.com/<SENDKEY>.send
helper: https://sct.ftqq.com/ 微信扫码获取
required: true
channel:
title: 消息通道号
component:
placeholder: 9|66
helper: 可以不填,最多两个通道,[通道配置说明](https://sct.ftqq.com/sendkey)
required: false
noip:
title: 是否隐藏IP
component:
name: a-switch
vModel: checked
required: false
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,30 +0,0 @@
name: serverchan3
title: Server酱³
desc: https://doc.sc3.ft07.com/serverchan3
needPlus: true
input:
apiURL:
title: ApiURL
component:
placeholder: https://uid.push.ft07.com/send/sendKey.send
required: true
tags:
title: 标签Tags
component:
name: a-select
vModel: value
mode: tags
open: false
helper: 支持多个,回车后填写下一个
required: false
short:
title: short
required: false
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,28 +0,0 @@
name: slack
title: Slack通知
desc: Slack消息推送通知
needPlus: true
input:
webhook:
title: webhook地址
component:
placeholder: >-
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
helper: >-
[APPS](https://api.slack.com/apps/)->进入APP->incoming-webhooks->Add New
Webhook to Workspace
required: true
httpsProxy:
title: 代理
component:
placeholder: http://xxxxx:xx
helper: 使用https_proxy
required: false
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,37 +0,0 @@
name: telegram
title: Telegram通知
desc: Telegram Bot推送通知
needPlus: true
input:
endpoint:
title: URL
value: https://api.telegram.org
component:
placeholder: https://api.telegram.org
required: true
botToken:
title: Bot Token
component:
placeholder: 123456789:ABCdefGhijklmnopqrstUVWXyz
helper: '[token获取](https://core.telegram.org/bots/features#botfather)'
required: true
chatId:
title: 聊天ID
component:
placeholder: 聊天ID例如 123456789 或 @channelusername
helper: 用户ID(纯数字)或频道名称(@xxxx)
required: true
httpsProxy:
title: 代理
component:
placeholder: http://xxxxx:xx
helper: 使用https_proxy
required: false
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,41 +0,0 @@
name: vocechat
title: VoceChat通知
desc: https://voce.chat
needPlus: true
input:
endpoint:
title: 服务地址
component:
placeholder: https://replace.your.domain
required: true
apiKey:
title: apiKey
component:
placeholder: ''
helper: '[获取APIKEY](https://doc.voce.chat/bot/bot-and-webhook)'
required: true
targetType:
title: 目标类型
component:
name: a-select
options:
- value: user
label: 用户
- value: channel
label: 频道
required: true
helper: 发送消息的目标类型
targetId:
title: 目标ID
component:
placeholder: 发送消息的目标ID
required: true
helper: 目标ID可以是用户ID或频道ID
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,73 +0,0 @@
name: webhook
title: 自定义webhook
desc: 根据模版自定义http请求
input:
webhook:
title: webhook地址
component:
placeholder: https://xxxxx.com/xxxx
col:
span: 24
required: true
method:
title: 请求方式
value: POST
component:
name: a-select
placeholder: post/put/get
options:
- value: POST
label: POST
- value: PUT
label: PUT
- value: GET
label: GET
required: true
contentType:
title: ContentType
value: application/json
component:
name: a-auto-complete
options:
- value: application/json
label: application/json
- value: application/x-www-form-urlencoded
label: application/x-www-form-urlencoded
helper: 也可以自定义填写
required: true
headers:
title: Headers
component:
name: a-textarea
vModel: value
rows: 2
col:
span: 24
helper: 一行一个格式为key=value
required: false
template:
title: 消息body模版
value: |-
{
"title":"{title}",
"content":"{content}\n[查看详情]({url})"
}
component:
name: a-textarea
rows: 4
col:
span: 24
helper: |-
根据对应的webhook接口文档构建一个json对象作为参数默认值只是一个示例一般不是正确的参数
支持变量:{title}、{content}、{url},变量用{}包裹
字符串需要双引号,使用\n换行
如果是get方式将作为query参数拼接到url上
required: true
skipSslVerify:
title: 忽略证书校验
value: false
component:
name: a-switch
vModel: checked
required: false
pluginType: access

View File

@ -1,21 +0,0 @@
showRunStrategy: true
default:
strategy:
runStrategy: 1
name: WaitPlugin
title: 等待
icon: ri:rest-time-line
desc: 等待一段时间
group: other
input:
waitTime:
title: 等待时长
value: 30
component:
name: a-input-number
vModel: value
helper: 单位:秒
required: true
order: 0
output: {}
pluginType: deploy

View File

@ -1,21 +0,0 @@
showRunStrategy: true
default:
strategy:
runStrategy: 1
name: WaitPlugin
title: 等待
icon: ri:rest-time-line
desc: 等待一段时间
group: other
input:
waitTime:
title: 等待时长
value: 30
component:
name: a-input-number
vModel: value
helper: 单位:秒
required: true
order: 0
output: {}
pluginType: deploy

View File

@ -1,77 +0,0 @@
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
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
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: {}
pluginType: deploy

View File

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

View File

@ -1,33 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,21 +0,0 @@
showRunStrategy: true
default:
strategy:
runStrategy: 1
name: WaitPlugin
title: 等待
icon: ri:rest-time-line
desc: 等待一段时间
group: other
input:
waitTime:
title: 等待时长
value: 30
component:
name: a-input-number
vModel: value
helper: 单位:秒
required: true
order: 0
output: {}
pluginType: deploy

View File

@ -1,32 +0,0 @@
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
pluginType: access

View File

@ -1,55 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,55 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,55 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,75 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,75 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,75 +0,0 @@
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: {}
pluginType: deploy

View File

@ -1,37 +0,0 @@
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
pluginType: deploy

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