From 38e867c917bbc68bd228bdd8064f3e7358d6413d Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 10:42:56 +0800 Subject: [PATCH 01/12] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E8=AF=81=E4=B9=A6=E6=A3=80=E6=9F=A5=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E9=87=8D=E5=90=AF=E4=B9=8B=E5=90=8E=E4=B8=8D=E7=94=9F?= =?UTF-8?q?=E6=95=88=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/certd-server/src/modules/auto/auto-c-register-cron.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/certd-server/src/modules/auto/auto-c-register-cron.ts b/packages/ui/certd-server/src/modules/auto/auto-c-register-cron.ts index 2dd07f68..d97adc1c 100644 --- a/packages/ui/certd-server/src/modules/auto/auto-c-register-cron.ts +++ b/packages/ui/certd-server/src/modules/auto/auto-c-register-cron.ts @@ -71,7 +71,7 @@ export class AutoCRegisterCron { } }) for (const item of monitorSettingList) { - const setting = item.setting ?? JSON.parse(item.setting) + const setting = item.setting ? JSON.parse(item.setting):{} if(!setting?.cron){ continue } From 9864792bbfd149e770d6e1ffa809573694f99dd3 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 10:53:11 +0800 Subject: [PATCH 02/12] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E7=BA=BF=E5=88=97=E8=A1=A8=E9=A1=B5=E6=8A=A5length?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/pipeline/service/pipeline-service.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts index cf9b53b8..89e862f1 100644 --- a/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts +++ b/packages/ui/certd-server/src/modules/pipeline/service/pipeline-service.ts @@ -128,13 +128,15 @@ export class PipelineService extends BaseService { } const pipeline = JSON.parse(item.content); let stepCount = 0; - RunnableCollection.each(pipeline.stages, (runnable: any) => { - stepCount++; - }); + if(pipeline.stages){ + RunnableCollection.each(pipeline.stages, (runnable: any) => { + stepCount++; + }); + } // @ts-ignore item.stepCount = stepCount; // @ts-ignore - item.triggerCount = pipeline.triggers.length; + item.triggerCount = pipeline.triggers?.length; delete item.content; } From 95332d5db96cd54ddab6ab737332417a09169b39 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 13:58:01 +0800 Subject: [PATCH 03/12] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E9=82=AE?= =?UTF-8?q?=E7=AE=B1=E5=8F=91=E9=80=81=E8=AF=81=E4=B9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/pipeline/src/service/email.ts | 4 +- .../src/plugin/cert-plugin/base-convert.ts | 9 +- .../modules/basic/service/email-service.ts | 2 + .../src/plugins/plugin-other/plugins/index.ts | 1 + .../plugins/plugin-deploy-to-mail.ts | 98 +++++++++++++++++++ .../plugin/deploy-to-eo/index.ts | 2 +- 6 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts diff --git a/packages/core/pipeline/src/service/email.ts b/packages/core/pipeline/src/service/email.ts index 871a185b..dd3b6561 100644 --- a/packages/core/pipeline/src/service/email.ts +++ b/packages/core/pipeline/src/service/email.ts @@ -1,7 +1,9 @@ export type EmailSend = { subject: string; - content: string; receivers: string[]; + content?: string; + attachments?: any[]; + html?: string; }; export interface IEmailService { diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/base-convert.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/base-convert.ts index 48381706..00f1614a 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/base-convert.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/base-convert.ts @@ -1,4 +1,4 @@ -import { AbstractTaskPlugin, IContext, Step, TaskInput, TaskOutput } from "@certd/pipeline"; +import { AbstractTaskPlugin, FileItem, IContext, Step, TaskInput, TaskOutput } from "@certd/pipeline"; import dayjs from "dayjs"; import type { CertInfo } from "./acme.js"; import { CertReader } from "./cert-reader.js"; @@ -71,6 +71,12 @@ export abstract class CertApplyBaseConvertPlugin extends AbstractTaskPlugin { }) cert?: CertInfo; + @TaskOutput({ + title: "域名证书压缩文件", + type: "certZip", + }) + certZip?: FileItem; + async onInstance() { this.userContext = this.ctx.userContext; this.lastStatus = this.ctx.lastStatus as Step; @@ -131,6 +137,7 @@ export abstract class CertApplyBaseConvertPlugin extends AbstractTaskPlugin { } else { this.extendsFiles(); } + this.certZip = this._result.files[0]; } async zipCert(cert: CertInfo, filename: string) { diff --git a/packages/ui/certd-server/src/modules/basic/service/email-service.ts b/packages/ui/certd-server/src/modules/basic/service/email-service.ts index 25b19644..6159600a 100644 --- a/packages/ui/certd-server/src/modules/basic/service/email-service.ts +++ b/packages/ui/certd-server/src/modules/basic/service/email-service.ts @@ -98,6 +98,8 @@ export class EmailService implements IEmailService { to: email.receivers.join(', '), // list of receivers subject: subject, text: email.content, + html: email.html, + attachments: email.attachments, }; await transporter.sendMail(mailOptions); } diff --git a/packages/ui/certd-server/src/plugins/plugin-other/plugins/index.ts b/packages/ui/certd-server/src/plugins/plugin-other/plugins/index.ts index 25488992..c12c34da 100644 --- a/packages/ui/certd-server/src/plugins/plugin-other/plugins/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-other/plugins/index.ts @@ -2,3 +2,4 @@ export * from './plugin-restart.js'; export * from './plugin-script.js'; export * from './plugin-wait.js'; export * from './plugin-db-backup.js'; +export * from './plugin-deploy-to-mail.js'; diff --git a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts new file mode 100644 index 00000000..73a2a85a --- /dev/null +++ b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts @@ -0,0 +1,98 @@ +import {AbstractTaskPlugin, FileItem, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput} from '@certd/pipeline'; +import {CertInfo, CertReader} from "@certd/plugin-cert"; +import dayjs from "dayjs"; + +@IsTaskPlugin({ + name: 'DeployCertToMailPlugin', + title: '邮件发送证书', + icon: 'ri:rest-time-line', + desc: '通过邮件发送证书', + group: pluginGroups.other.key, + showRunStrategy:false, + default: { + strategy: { + runStrategy: RunStrategy.SkipWhenSucceed, + }, + }, +}) +export class DeployCertToMailPlugin extends AbstractTaskPlugin { + + @TaskInput({ + title: '域名证书', + helper: '请选择前置任务输出的域名证书', + component: { + name: 'output-selector', + from: [":cert:"], + }, + required: true, + }) + cert!: CertInfo; + + @TaskInput({ + title: '证书压缩文件', + helper: '请选择前置任务输出的域名证书压缩文件', + component: { + name: 'output-selector', + from: [":certZip:"], + }, + required: true, + }) + certZip!: FileItem; + + @TaskInput({ + title: '接收邮箱', + component: { + name: 'EmailSelector', + vModel: 'value', + mode:"tags", + }, + required: true, + }) + email!: string[]; + + @TaskInput({ + title: '备注', + component: { + name: 'a-input', + vModel: 'value', + }, + required: false, + }) + remark!: string; + + async onInstance() {} + async execute(): Promise { + + this.logger.info(`开始发送邮件`); + const certReader = new CertReader(this.cert) + const mainDomain = certReader.getMainDomain(); + const domains = certReader.getAllDomains().join(','); + const title = `证书申请成功【${mainDomain}】`; + const html = ` +
+

证书申请成功

+

域名:${domains}

+

证书有效期:${dayjs(certReader.expires).format("YYYY-MM-DD HH:mm:ss")}

+

备注:${this.remark||""}

+
+ `; + const file = this.certZip + if (!file) { + throw new Error('证书压缩文件还未生成,重新运行证书任务'); + } + await this.ctx.emailService.send({ + subject:title, + html: html, + receivers: this.email, + attachments: [ + { + filename: file.filename, + path: file.path, + }, + ], + }) + + + } +} +new DeployCertToMailPlugin(); diff --git a/packages/ui/certd-server/src/plugins/plugin-tencent/plugin/deploy-to-eo/index.ts b/packages/ui/certd-server/src/plugins/plugin-tencent/plugin/deploy-to-eo/index.ts index ab4b16f7..df3c1074 100644 --- a/packages/ui/certd-server/src/plugins/plugin-tencent/plugin/deploy-to-eo/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-tencent/plugin/deploy-to-eo/index.ts @@ -5,7 +5,7 @@ import { TencentAccess } from "@certd/plugin-lib"; name: 'DeployCertToTencentEO', title: '腾讯云-部署到腾讯云EO', icon: 'svg:icon-tencentcloud', - desc: '腾讯云边缘安全加速平台EO,必须配置上传证书到腾讯云任务', + desc: '腾讯云边缘安全加速平台EdgeOne(EO),必须配置上传证书到腾讯云任务', group: pluginGroups.tencent.key, default: { strategy: { From 93e9498b410353f504e11e264db62468895d7290 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:05:09 +0800 Subject: [PATCH 04/12] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E7=BA=BF=E9=A1=B5=E9=9D=A2=E7=8A=B6=E6=80=81=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=88=B7=E6=96=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugins/plugin-lib/src/oss/impls/ssh.ts | 4 + .../views/certd/pipeline/pipeline/index.vue | 8 +- .../src/plugins/plugin-host/plugin/index.ts | 1 + .../plugin/plugin-upload-to-oss.ts | 274 ++++++++++++++++++ .../plugins/plugin-deploy-to-mail.ts | 85 +++++- 5 files changed, 367 insertions(+), 5 deletions(-) create mode 100644 packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts diff --git a/packages/plugins/plugin-lib/src/oss/impls/ssh.ts b/packages/plugins/plugin-lib/src/oss/impls/ssh.ts index c2f23981..0e2d076f 100644 --- a/packages/plugins/plugin-lib/src/oss/impls/ssh.ts +++ b/packages/plugins/plugin-lib/src/oss/impls/ssh.ts @@ -16,6 +16,10 @@ export default class SshOssClientImpl extends BaseOssClient { throw new Error("Method not implemented."); } async upload(filePath: string, fileContent: Buffer) { + if (!filePath) { + filePath = ""; + } + filePath = filePath.trim(); const tmpFilePath = path.join(os.tmpdir(), "cert", "http", filePath); // Write file to temp path diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue index 485e25d1..a0326e65 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue @@ -374,6 +374,7 @@ export default defineComponent({ const detail: RunHistory = await props.options?.getHistoryDetail({ historyId: currentHistory.value.id }); currentHistory.value.logs = detail.logs; currentHistory.value.pipeline = detail.pipeline; + currentHistory.value.status = detail.pipeline.status.result; }; const changeCurrentHistory = async (history?: RunHistory) => { if (!history) { @@ -385,7 +386,7 @@ export default defineComponent({ currentHistory.value = history; await loadCurrentHistoryDetail(); pipeline.value = currentHistory.value.pipeline; - currentPipeline.value = cloneDeep(pipeline.value); + currentPipeline.value = currentHistory.value.pipeline; }; async function loadHistoryList(reload = false) { @@ -441,6 +442,11 @@ export default defineComponent({ if (currentHistory.value != null) { if (currentHistory.value.pipeline?.status?.status === "start") { await loadCurrentHistoryDetail(); + pipeline.value = currentHistory.value.pipeline; + // if (currentHistory.value.pipeline?.status?.status !== "start") { + // 不传true好像不会刷新 + // await loadHistoryList(true); + // } } } } catch (e) { diff --git a/packages/ui/certd-server/src/plugins/plugin-host/plugin/index.ts b/packages/ui/certd-server/src/plugins/plugin-host/plugin/index.ts index 6bb828b9..bb1e4d36 100644 --- a/packages/ui/certd-server/src/plugins/plugin-host/plugin/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-host/plugin/index.ts @@ -1,3 +1,4 @@ export * from './host-shell-execute/index.js'; export * from './upload-to-host/index.js'; export * from './copy-to-local/index.js' +export * from './plugin-upload-to-oss.js' diff --git a/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts b/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts new file mode 100644 index 00000000..0fc92151 --- /dev/null +++ b/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts @@ -0,0 +1,274 @@ +import {AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput} from '@certd/pipeline'; +import {CertInfo} from "@certd/plugin-cert"; +import {ossClientFactory} from "@certd/plugin-lib"; +import {utils} from "@certd/basic"; + +@IsTaskPlugin({ + name: 'UploadCertToOss', + title: '上传证书到对象存储OSS', + icon: 'ri:rest-time-line', + desc: '支持阿里云OSS、腾讯云COS、七牛云KODO、S3、MinIO、FTP、SFTP', + group: pluginGroups.other.key, + showRunStrategy:false, + default: { + strategy: { + runStrategy: RunStrategy.SkipWhenSucceed, + }, + }, +}) +export class UploadCertToOssPlugin extends AbstractTaskPlugin { + + @TaskInput({ + title: '域名证书', + helper: '请选择前置任务输出的域名证书', + component: { + name: 'output-selector', + from: [":cert:"], + }, + required: true, + }) + cert!: CertInfo; + + + @TaskInput({ + title: 'OSS类型', + component: { + name: 'a-select', + vModel:"value", + options: [ + { label: "阿里云OSS", value: "alioss" }, + { label: "腾讯云COS", value: "tencentcos" }, + { label: "七牛OSS", value: "qiniuoss" }, + { label: "S3/Minio", value: "s3" }, + { label: "SFTP", value: "sftp" }, + { label: "FTP", value: "ftp" }, + ] + }, + required: true, + }) + uploaderType!: string; + + + @TaskInput({ + title: 'OSS授权', + component: { + name: 'access-selector', + }, + required: true, + mergeScript: ` + return { + component: { + type: ctx.compute(({form})=>{ + return form.uploaderType; + }) + } + } + `, + }) + accessId!: string; + + + @TaskInput({ + 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应用' }, + { value: 'one', label: '证书私钥一体,crt+key简单合并为一个pem文件' }, + ], + }, + required: true, + }) + certType!: string; + + @TaskInput({ + title: '证书保存路径', + helper: '路径要包含证书文件名,例如:/tmp/cert.pem', + component: { + placeholder: '/root/deploy/nginx/full_chain.pem', + }, + mergeScript: ` + return { + show: ctx.compute(({form})=>{ + return form.certType === 'pem'; + }) + } + `, + required: true, + rules: [{ type: 'filepath' }], + }) + crtPath!: string; + @TaskInput({ + title: '私钥保存路径', + helper: '原本的私钥保存路径,需要有写入权限,路径要包含私钥文件名,例如:/tmp/cert.key', + component: { + placeholder: '/root/deploy/nginx/cert.key', + }, + mergeScript: ` + return { + show: ctx.compute(({form})=>{ + return form.certType === 'pem'; + }) + } + `, + required: true, + rules: [{ type: 'filepath' }], + }) + keyPath!: string; + + @TaskInput({ + title: '中间证书保存路径', + helper: '路径要包含文件名,一般情况传上面两个文件即可,极少数情况需要这个中间证书', + component: { + placeholder: '/root/deploy/nginx/intermediate.pem', + }, + mergeScript: ` + return { + show: ctx.compute(({form})=>{ + return form.certType === 'pem'; + }) + } + `, + rules: [{ type: 'filepath' }], + }) + icPath!: string; + + @TaskInput({ + title: 'PFX证书保存路径', + helper: '路径要包含证书文件名,例如:D:\\iis\\cert.pfx', + component: { + placeholder: 'D:\\iis\\cert.pfx', + }, + mergeScript: ` + return { + show: ctx.compute(({form})=>{ + return form.certType === 'pfx'; + }) + } + `, + required: true, + rules: [{ type: 'filepath' }], + }) + pfxPath!: string; + + @TaskInput({ + title: 'DER证书保存路径', + helper: '路径要包含证书文件名,例如:/tmp/cert.der', + component: { + placeholder: '/root/deploy/apache/cert.der', + }, + mergeScript: ` + return { + show: ctx.compute(({form})=>{ + return form.certType === 'der'; + }) + } + `, + required: true, + rules: [{ type: 'filepath' }], + }) + derPath!: string; + + @TaskInput({ + title: 'jks证书保存路径', + helper: '路径要包含证书文件名,例如:/tmp/cert.jks', + component: { + placeholder: '/root/deploy/java_app/cert.jks', + }, + mergeScript: ` + return { + show: ctx.compute(({form})=>{ + return form.certType === 'jks'; + }) + } + `, + required: true, + rules: [{ type: 'filepath' }], + }) + jksPath!: string; + + @TaskInput({ + title: '一体证书保存路径', + helper: '路径要包含证书文件名,例如:/tmp/crt_key.pem', + component: { + placeholder: '/app/crt_key.pem', + }, + mergeScript: ` + return { + show: ctx.compute(({form})=>{ + return form.certType === 'one'; + }) + } + `, + required: true, + rules: [{ type: 'filepath' }], + }) + onePath!: string; + + + async onInstance() {} + async execute(): Promise { + const { accessId } = this; + let { crtPath, keyPath, icPath, pfxPath, derPath, jksPath, onePath } = this; + if (!accessId) { + throw new Error('OSS授权配置不能为空'); + } + + const uploaderType = this.uploaderType + const uploaderAccess = this.accessId + + const httpUploaderContext = { + accessService: this.ctx.accessService, + logger: this.logger, + utils, + }; + + const access = await this.getAccess(uploaderAccess); + this.logger.info("上传方式", uploaderType); + const httpUploader = await ossClientFactory.createOssClientByType(uploaderType, { + access, + rootDir: "", + ctx: httpUploaderContext, + }); + + + this.logger.info('准备上传文件到OSS'); + + if (crtPath) { + await httpUploader.upload(crtPath, Buffer.from(this.cert.crt)) + this.logger.info(`上传证书:${crtPath}`); + } + if (keyPath) { + await httpUploader.upload(keyPath, Buffer.from(this.cert.key)) + this.logger.info(`上传私钥:${keyPath}`); + } + if (icPath) { + await httpUploader.upload(icPath, Buffer.from(this.cert.ic)) + this.logger.info(`上传中间证书:${icPath}`); + } + if (pfxPath) { + await httpUploader.upload(pfxPath, Buffer.from(this.cert.pfx, "base64")) + this.logger.info(`上传PFX证书:${pfxPath}`); + } + if (derPath) { + await httpUploader.upload(derPath, Buffer.from(this.cert.der, "base64")) + this.logger.info(`上传DER证书:${derPath}`); + } + if (this.jksPath) { + await httpUploader.upload(jksPath,Buffer.from(this.cert.jks, "base64")) + this.logger.info(`上传jks证书:${jksPath}`); + } + + if (onePath) { + await httpUploader.upload(onePath, Buffer.from(this.cert.one)) + this.logger.info(`上传一体证书:${onePath}`); + } + + this.logger.info('上传文件成功'); + } +} +new UploadCertToOssPlugin(); diff --git a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts index 73a2a85a..5c4e962d 100644 --- a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts +++ b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts @@ -50,6 +50,60 @@ export class DeployCertToMailPlugin extends AbstractTaskPlugin { }) email!: string[]; + + /** + * title: + * title: 邮件标题 + * helper: |- + * 请输入邮件标题否则将使用默认标题 + * 域名:${certDomains} + * component: + * name: a-input + * required: false + * template: + * title: 邮件模版 + * helper: |- + * 请输入模版内容否则将使用默认模版 + * 域名:${certDomains} + * value: |- + * 尊敬的用户你好: + * 以下是域名(${certDomains})证书文件 + * component: + * name: a-textarea + * autosize: + * minRows: 6 + * maxRows: 10 + * required: false + */ + + + @TaskInput({ + title: '邮件标题', + component: { + name: 'a-input', + vModel: 'value', + }, + helper: '请输入邮件标题否则将使用默认标题\n模板变量在标题中也可以使用', + required: false, + }) + title!: string; + + @TaskInput({ + title: '邮件模版', + component: { + name: 'a-textarea', + vModel: 'value', + autosize: { + minRows: 6, + maxRows: 10, + }, + }, + helper: `请输入模版内容否则将使用默认模版 +变量:主域名=$\{mainDomain}、全部域名=$\{domains}、过期时间=$\{expiresTime}、备注=$\{remark}`, + required: false, + }) + template!: string; + @TaskInput({ title: '备注', component: { @@ -67,15 +121,33 @@ export class DeployCertToMailPlugin extends AbstractTaskPlugin { const certReader = new CertReader(this.cert) const mainDomain = certReader.getMainDomain(); const domains = certReader.getAllDomains().join(','); - const title = `证书申请成功【${mainDomain}】`; - const html = ` + + + const data = { + mainDomain, + domains, + expiresTime: dayjs(certReader.expires).format("YYYY-MM-DD HH:mm:ss"), + remark:this.remark + } + + let title = `证书申请成功【${mainDomain}】`; + let html = `

证书申请成功

域名:${domains}

-

证书有效期:${dayjs(certReader.expires).format("YYYY-MM-DD HH:mm:ss")}

+

证书有效期:${data.expiresTime}

备注:${this.remark||""}

`; + + if (this.title) { + const compile = this.compile(this.title); + title = compile(data); + } + if (this.template) { + const compile = this.compile(this.template); + html = compile(data); + } const file = this.certZip if (!file) { throw new Error('证书压缩文件还未生成,重新运行证书任务'); @@ -91,8 +163,13 @@ export class DeployCertToMailPlugin extends AbstractTaskPlugin { }, ], }) + } - + compile(templateString:string) { + return new Function('data', ` with(data || {}) { + return \`${templateString}\`; + } + `); } } new DeployCertToMailPlugin(); From 65d84f9e9d5d77049458814144421c4da5034b9c Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:06:59 +0800 Subject: [PATCH 05/12] chore: --- .../ui/certd-client/src/views/certd/pipeline/pipeline/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue index a0326e65..26dd9b48 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue @@ -440,7 +440,7 @@ export default defineComponent({ } if (currentHistory.value != null) { - if (currentHistory.value.pipeline?.status?.status === "start") { + if (currentHistory.value.status === "start") { await loadCurrentHistoryDetail(); pipeline.value = currentHistory.value.pipeline; // if (currentHistory.value.pipeline?.status?.status !== "start") { From e5967f7e9def4b4f071e33ceb1033a260d938aac Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:17:11 +0800 Subject: [PATCH 06/12] chore: --- .../plugin/plugin-upload-to-oss.ts | 4 ++-- .../plugins/plugin-deploy-to-mail.ts | 21 ++++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts b/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts index 0fc92151..2624de90 100644 --- a/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts +++ b/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts @@ -6,9 +6,9 @@ import {utils} from "@certd/basic"; @IsTaskPlugin({ name: 'UploadCertToOss', title: '上传证书到对象存储OSS', - icon: 'ri:rest-time-line', + icon: 'ion:cloud-upload-outline', desc: '支持阿里云OSS、腾讯云COS、七牛云KODO、S3、MinIO、FTP、SFTP', - group: pluginGroups.other.key, + group: pluginGroups.host.key, showRunStrategy:false, default: { strategy: { diff --git a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts index 5c4e962d..1ece351c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts +++ b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts @@ -5,7 +5,7 @@ import dayjs from "dayjs"; @IsTaskPlugin({ name: 'DeployCertToMailPlugin', title: '邮件发送证书', - icon: 'ri:rest-time-line', + icon: 'ion:mail-outline', desc: '通过邮件发送证书', group: pluginGroups.other.key, showRunStrategy:false, @@ -82,8 +82,9 @@ export class DeployCertToMailPlugin extends AbstractTaskPlugin { component: { name: 'a-input', vModel: 'value', + placeholder:`证书申请成功【$\{mainDomain}】`, }, - helper: '请输入邮件标题否则将使用默认标题\n模板变量在标题中也可以使用', + helper: '请输入邮件标题否则将使用默认标题\n模板变量:主域名=$\{mainDomain}、全部域名=$\{domains}、过期时间=$\{expiresTime}、备注=$\{remark}、证书PEM=$\{crt}、证书私钥=$\{key}、中间证书/CA证书=$\{ic}', required: false, }) title!: string; @@ -97,9 +98,16 @@ export class DeployCertToMailPlugin extends AbstractTaskPlugin { minRows: 6, maxRows: 10, }, + placeholder: ` +
+

证书申请成功

+

域名:$\{domains}

+

证书有效期:$\{expiresTime}

+

备注:$\{remark}

+
+`, }, - helper: `请输入模版内容否则将使用默认模版 -变量:主域名=$\{mainDomain}、全部域名=$\{domains}、过期时间=$\{expiresTime}、备注=$\{remark}`, + helper: `请输入模版内容否则将使用默认模版,模板变量同上`, required: false, }) template!: string; @@ -127,7 +135,10 @@ export class DeployCertToMailPlugin extends AbstractTaskPlugin { mainDomain, domains, expiresTime: dayjs(certReader.expires).format("YYYY-MM-DD HH:mm:ss"), - remark:this.remark + remark:this.remark ||"", + crt: this.cert.crt, + key: this.cert.key, + ic: this.cert.ic } let title = `证书申请成功【${mainDomain}】`; From 1da8617a53a675776635bbc3bcb3c6d7dff83e27 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:18:35 +0800 Subject: [PATCH 07/12] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E8=AF=81=E4=B9=A6=E5=88=B0=E5=90=84=E7=A7=8D=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E5=AD=98=E5=82=A8=EF=BC=8Coss=E3=80=81cos=E3=80=81?= =?UTF-8?q?=E4=B8=83=E7=89=9B=E3=80=81s3=E3=80=81minio=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts b/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts index 2624de90..6db72425 100644 --- a/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts +++ b/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-upload-to-oss.ts @@ -104,7 +104,7 @@ export class UploadCertToOssPlugin extends AbstractTaskPlugin { crtPath!: string; @TaskInput({ title: '私钥保存路径', - helper: '原本的私钥保存路径,需要有写入权限,路径要包含私钥文件名,例如:/tmp/cert.key', + helper: '路径要包含私钥文件名,例如:/tmp/cert.key', component: { placeholder: '/root/deploy/nginx/cert.key', }, From bbacb76581ab9fb57b65549b41555cd8e2a61f82 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:19:18 +0800 Subject: [PATCH 08/12] build: prepare to build --- packages/core/basic/build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/basic/build.md b/packages/core/basic/build.md index 78c144b1..df4d4f1c 100644 --- a/packages/core/basic/build.md +++ b/packages/core/basic/build.md @@ -1 +1 @@ -23:48 +15:19 From dca44fa093a98d0bb009de62d760857348eea1d1 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:21:52 +0800 Subject: [PATCH 09/12] build: prepare to build --- packages/core/basic/build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/basic/build.md b/packages/core/basic/build.md index df4d4f1c..e4faf3c1 100644 --- a/packages/core/basic/build.md +++ b/packages/core/basic/build.md @@ -1 +1 @@ -15:19 +15:21 From e0408f30ba604c4dbe7cb415d1eac8cb588fbc45 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:33:36 +0800 Subject: [PATCH 10/12] v1.36.7 --- CHANGELOG.md | 13 ++++++++++ lerna.json | 2 +- packages/core/acme-client/CHANGELOG.md | 4 +++ packages/core/acme-client/package.json | 4 +-- packages/core/basic/CHANGELOG.md | 4 +++ packages/core/basic/package.json | 2 +- packages/core/pipeline/CHANGELOG.md | 6 +++++ packages/core/pipeline/package.json | 6 ++--- packages/libs/lib-huawei/CHANGELOG.md | 4 +++ packages/libs/lib-huawei/package.json | 2 +- packages/libs/lib-iframe/CHANGELOG.md | 4 +++ packages/libs/lib-iframe/package.json | 2 +- packages/libs/lib-jdcloud/CHANGELOG.md | 4 +++ packages/libs/lib-jdcloud/package.json | 2 +- packages/libs/lib-k8s/CHANGELOG.md | 4 +++ packages/libs/lib-k8s/package.json | 4 +-- packages/libs/lib-server/CHANGELOG.md | 4 +++ packages/libs/lib-server/package.json | 10 ++++---- packages/libs/midway-flyway-js/CHANGELOG.md | 4 +++ packages/libs/midway-flyway-js/package.json | 2 +- packages/plugins/plugin-cert/CHANGELOG.md | 6 +++++ packages/plugins/plugin-cert/package.json | 10 ++++---- packages/plugins/plugin-lib/CHANGELOG.md | 6 +++++ packages/plugins/plugin-lib/package.json | 6 ++--- packages/ui/certd-client/CHANGELOG.md | 6 +++++ packages/ui/certd-client/package.json | 6 ++--- packages/ui/certd-server/CHANGELOG.md | 13 ++++++++++ packages/ui/certd-server/package.json | 28 ++++++++++----------- 28 files changed, 125 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc709806..e3e0373a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +### Bug Fixes + +* 修复流水线列表页报length错误的bug ([9864792](https://github.com/certd/certd/commit/9864792bbfd149e770d6e1ffa809573694f99dd3)) +* 修复流水线页面状态没有刷新的bug ([93e9498](https://github.com/certd/certd/commit/93e9498b410353f504e11e264db62468895d7290)) +* 修复自定义证书检查时间重启之后不生效的bug ([38e867c](https://github.com/certd/certd/commit/38e867c917bbc68bd228bdd8064f3e7358d6413d)) + +### Performance Improvements + +* 支持上传证书到各种对象存储,oss、cos、七牛、s3、minio等 ([1da8617](https://github.com/certd/certd/commit/1da8617a53a675776635bbc3bcb3c6d7dff83e27)) +* 支持邮箱发送证书 ([95332d5](https://github.com/certd/certd/commit/95332d5db96cd54ddab6ab737332417a09169b39)) + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) ### Bug Fixes diff --git a/lerna.json b/lerna.json index 1713ce17..5fe34190 100644 --- a/lerna.json +++ b/lerna.json @@ -9,5 +9,5 @@ } }, "npmClient": "pnpm", - "version": "1.36.6" + "version": "1.36.7" } diff --git a/packages/core/acme-client/CHANGELOG.md b/packages/core/acme-client/CHANGELOG.md index 06362d38..5c3aa963 100644 --- a/packages/core/acme-client/CHANGELOG.md +++ b/packages/core/acme-client/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/publishlab/node-acme-client/compare/v1.36.6...v1.36.7) (2025-07-15) + +**Note:** Version bump only for package @certd/acme-client + ## [1.36.6](https://github.com/publishlab/node-acme-client/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/acme-client diff --git a/packages/core/acme-client/package.json b/packages/core/acme-client/package.json index 31ca21ae..9e4537f0 100644 --- a/packages/core/acme-client/package.json +++ b/packages/core/acme-client/package.json @@ -3,7 +3,7 @@ "description": "Simple and unopinionated ACME client", "private": false, "author": "nmorsman", - "version": "1.36.6", + "version": "1.36.7", "type": "module", "module": "scr/index.js", "main": "src/index.js", @@ -18,7 +18,7 @@ "types" ], "dependencies": { - "@certd/basic": "^1.36.6", + "@certd/basic": "^1.36.7", "@peculiar/x509": "^1.11.0", "asn1js": "^3.0.5", "axios": "^1.7.2", diff --git a/packages/core/basic/CHANGELOG.md b/packages/core/basic/CHANGELOG.md index a909a6ed..f782f5dd 100644 --- a/packages/core/basic/CHANGELOG.md +++ b/packages/core/basic/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +**Note:** Version bump only for package @certd/basic + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/basic diff --git a/packages/core/basic/package.json b/packages/core/basic/package.json index 36c5f8bc..85c3a085 100644 --- a/packages/core/basic/package.json +++ b/packages/core/basic/package.json @@ -1,7 +1,7 @@ { "name": "@certd/basic", "private": false, - "version": "1.36.6", + "version": "1.36.7", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", diff --git a/packages/core/pipeline/CHANGELOG.md b/packages/core/pipeline/CHANGELOG.md index 9bacec7f..4644f21d 100644 --- a/packages/core/pipeline/CHANGELOG.md +++ b/packages/core/pipeline/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +### Performance Improvements + +* 支持邮箱发送证书 ([95332d5](https://github.com/certd/certd/commit/95332d5db96cd54ddab6ab737332417a09169b39)) + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/pipeline diff --git a/packages/core/pipeline/package.json b/packages/core/pipeline/package.json index bf8f4224..570c971c 100644 --- a/packages/core/pipeline/package.json +++ b/packages/core/pipeline/package.json @@ -1,7 +1,7 @@ { "name": "@certd/pipeline", "private": false, - "version": "1.36.6", + "version": "1.36.7", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -17,8 +17,8 @@ "pub": "npm publish" }, "dependencies": { - "@certd/basic": "^1.36.6", - "@certd/plus-core": "^1.36.6", + "@certd/basic": "^1.36.7", + "@certd/plus-core": "^1.36.7", "dayjs": "^1.11.7", "lodash-es": "^4.17.21", "reflect-metadata": "^0.1.13" diff --git a/packages/libs/lib-huawei/CHANGELOG.md b/packages/libs/lib-huawei/CHANGELOG.md index 1c6038b5..962c7e59 100644 --- a/packages/libs/lib-huawei/CHANGELOG.md +++ b/packages/libs/lib-huawei/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +**Note:** Version bump only for package @certd/lib-huawei + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/lib-huawei diff --git a/packages/libs/lib-huawei/package.json b/packages/libs/lib-huawei/package.json index 7afb28c8..2086a5af 100644 --- a/packages/libs/lib-huawei/package.json +++ b/packages/libs/lib-huawei/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-huawei", "private": false, - "version": "1.36.6", + "version": "1.36.7", "main": "./dist/bundle.js", "module": "./dist/bundle.js", "types": "./dist/d/index.d.ts", diff --git a/packages/libs/lib-iframe/CHANGELOG.md b/packages/libs/lib-iframe/CHANGELOG.md index 741e837b..40d3d6b3 100644 --- a/packages/libs/lib-iframe/CHANGELOG.md +++ b/packages/libs/lib-iframe/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +**Note:** Version bump only for package @certd/lib-iframe + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/lib-iframe diff --git a/packages/libs/lib-iframe/package.json b/packages/libs/lib-iframe/package.json index 3af672e1..a7cbc2ff 100644 --- a/packages/libs/lib-iframe/package.json +++ b/packages/libs/lib-iframe/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-iframe", "private": false, - "version": "1.36.6", + "version": "1.36.7", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", diff --git a/packages/libs/lib-jdcloud/CHANGELOG.md b/packages/libs/lib-jdcloud/CHANGELOG.md index 1028cce7..fe3bb9f5 100644 --- a/packages/libs/lib-jdcloud/CHANGELOG.md +++ b/packages/libs/lib-jdcloud/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +**Note:** Version bump only for package @certd/jdcloud + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/jdcloud diff --git a/packages/libs/lib-jdcloud/package.json b/packages/libs/lib-jdcloud/package.json index d1b60d4f..8fd4f267 100644 --- a/packages/libs/lib-jdcloud/package.json +++ b/packages/libs/lib-jdcloud/package.json @@ -1,6 +1,6 @@ { "name": "@certd/jdcloud", - "version": "1.36.6", + "version": "1.36.7", "description": "jdcloud openApi sdk", "main": "./dist/bundle.js", "module": "./dist/bundle.js", diff --git a/packages/libs/lib-k8s/CHANGELOG.md b/packages/libs/lib-k8s/CHANGELOG.md index cbdb1874..47769ab8 100644 --- a/packages/libs/lib-k8s/CHANGELOG.md +++ b/packages/libs/lib-k8s/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +**Note:** Version bump only for package @certd/lib-k8s + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/lib-k8s diff --git a/packages/libs/lib-k8s/package.json b/packages/libs/lib-k8s/package.json index d5bd6016..ce343ef8 100644 --- a/packages/libs/lib-k8s/package.json +++ b/packages/libs/lib-k8s/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-k8s", "private": false, - "version": "1.36.6", + "version": "1.36.7", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -17,7 +17,7 @@ "pub": "npm publish" }, "dependencies": { - "@certd/basic": "^1.36.6", + "@certd/basic": "^1.36.7", "@kubernetes/client-node": "0.21.0" }, "devDependencies": { diff --git a/packages/libs/lib-server/CHANGELOG.md b/packages/libs/lib-server/CHANGELOG.md index 8532999e..3eca4bd0 100644 --- a/packages/libs/lib-server/CHANGELOG.md +++ b/packages/libs/lib-server/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +**Note:** Version bump only for package @certd/lib-server + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) ### Performance Improvements diff --git a/packages/libs/lib-server/package.json b/packages/libs/lib-server/package.json index 93be6a33..30bc71f4 100644 --- a/packages/libs/lib-server/package.json +++ b/packages/libs/lib-server/package.json @@ -1,6 +1,6 @@ { "name": "@certd/lib-server", - "version": "1.36.6", + "version": "1.36.7", "description": "midway with flyway, sql upgrade way ", "private": false, "type": "module", @@ -27,10 +27,10 @@ ], "license": "AGPL", "dependencies": { - "@certd/acme-client": "^1.36.6", - "@certd/basic": "^1.36.6", - "@certd/pipeline": "^1.36.6", - "@certd/plus-core": "^1.36.6", + "@certd/acme-client": "^1.36.7", + "@certd/basic": "^1.36.7", + "@certd/pipeline": "^1.36.7", + "@certd/plus-core": "^1.36.7", "@midwayjs/cache": "~3.14.0", "@midwayjs/core": "~3.20.3", "@midwayjs/i18n": "~3.20.3", diff --git a/packages/libs/midway-flyway-js/CHANGELOG.md b/packages/libs/midway-flyway-js/CHANGELOG.md index 6f61e08c..04261fd9 100644 --- a/packages/libs/midway-flyway-js/CHANGELOG.md +++ b/packages/libs/midway-flyway-js/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +**Note:** Version bump only for package @certd/midway-flyway-js + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/midway-flyway-js diff --git a/packages/libs/midway-flyway-js/package.json b/packages/libs/midway-flyway-js/package.json index 8cc3efc8..1b7ae577 100644 --- a/packages/libs/midway-flyway-js/package.json +++ b/packages/libs/midway-flyway-js/package.json @@ -1,6 +1,6 @@ { "name": "@certd/midway-flyway-js", - "version": "1.36.6", + "version": "1.36.7", "description": "midway with flyway, sql upgrade way ", "private": false, "type": "module", diff --git a/packages/plugins/plugin-cert/CHANGELOG.md b/packages/plugins/plugin-cert/CHANGELOG.md index dcd06973..7b7b2306 100644 --- a/packages/plugins/plugin-cert/CHANGELOG.md +++ b/packages/plugins/plugin-cert/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +### Performance Improvements + +* 支持邮箱发送证书 ([95332d5](https://github.com/certd/certd/commit/95332d5db96cd54ddab6ab737332417a09169b39)) + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) ### Performance Improvements diff --git a/packages/plugins/plugin-cert/package.json b/packages/plugins/plugin-cert/package.json index 61db0472..ef5349ea 100644 --- a/packages/plugins/plugin-cert/package.json +++ b/packages/plugins/plugin-cert/package.json @@ -1,7 +1,7 @@ { "name": "@certd/plugin-cert", "private": false, - "version": "1.36.6", + "version": "1.36.7", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -16,10 +16,10 @@ "pub": "npm publish" }, "dependencies": { - "@certd/acme-client": "^1.36.6", - "@certd/basic": "^1.36.6", - "@certd/pipeline": "^1.36.6", - "@certd/plugin-lib": "^1.36.6", + "@certd/acme-client": "^1.36.7", + "@certd/basic": "^1.36.7", + "@certd/pipeline": "^1.36.7", + "@certd/plugin-lib": "^1.36.7", "@google-cloud/publicca": "^1.3.0", "dayjs": "^1.11.7", "jszip": "^3.10.1", diff --git a/packages/plugins/plugin-lib/CHANGELOG.md b/packages/plugins/plugin-lib/CHANGELOG.md index 41b04a22..351ef2ca 100644 --- a/packages/plugins/plugin-lib/CHANGELOG.md +++ b/packages/plugins/plugin-lib/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +### Bug Fixes + +* 修复流水线页面状态没有刷新的bug ([93e9498](https://github.com/certd/certd/commit/93e9498b410353f504e11e264db62468895d7290)) + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) **Note:** Version bump only for package @certd/plugin-lib diff --git a/packages/plugins/plugin-lib/package.json b/packages/plugins/plugin-lib/package.json index 17d2bbc2..08cff617 100644 --- a/packages/plugins/plugin-lib/package.json +++ b/packages/plugins/plugin-lib/package.json @@ -1,7 +1,7 @@ { "name": "@certd/plugin-lib", "private": false, - "version": "1.36.6", + "version": "1.36.7", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -21,8 +21,8 @@ "@alicloud/pop-core": "^1.7.10", "@alicloud/tea-util": "^1.4.10", "@aws-sdk/client-s3": "^3.787.0", - "@certd/basic": "^1.36.6", - "@certd/pipeline": "^1.36.6", + "@certd/basic": "^1.36.7", + "@certd/pipeline": "^1.36.7", "@kubernetes/client-node": "0.21.0", "ali-oss": "^6.22.0", "basic-ftp": "^5.0.5", diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index 279e3812..9fc090b9 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +### Bug Fixes + +* 修复流水线页面状态没有刷新的bug ([93e9498](https://github.com/certd/certd/commit/93e9498b410353f504e11e264db62468895d7290)) + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) ### Bug Fixes diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index 71ea49d6..c44d35ec 100644 --- a/packages/ui/certd-client/package.json +++ b/packages/ui/certd-client/package.json @@ -1,6 +1,6 @@ { "name": "@certd/ui-client", - "version": "1.36.6", + "version": "1.36.7", "private": true, "scripts": { "dev": "vite --open", @@ -103,8 +103,8 @@ "zod-defaults": "^0.1.3" }, "devDependencies": { - "@certd/lib-iframe": "^1.36.6", - "@certd/pipeline": "^1.36.6", + "@certd/lib-iframe": "^1.36.7", + "@certd/pipeline": "^1.36.7", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.3", "@types/chai": "^4.3.12", diff --git a/packages/ui/certd-server/CHANGELOG.md b/packages/ui/certd-server/CHANGELOG.md index 8647f5a9..fadd9737 100644 --- a/packages/ui/certd-server/CHANGELOG.md +++ b/packages/ui/certd-server/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +### Bug Fixes + +* 修复流水线列表页报length错误的bug ([9864792](https://github.com/certd/certd/commit/9864792bbfd149e770d6e1ffa809573694f99dd3)) +* 修复流水线页面状态没有刷新的bug ([93e9498](https://github.com/certd/certd/commit/93e9498b410353f504e11e264db62468895d7290)) +* 修复自定义证书检查时间重启之后不生效的bug ([38e867c](https://github.com/certd/certd/commit/38e867c917bbc68bd228bdd8064f3e7358d6413d)) + +### Performance Improvements + +* 支持上传证书到各种对象存储,oss、cos、七牛、s3、minio等 ([1da8617](https://github.com/certd/certd/commit/1da8617a53a675776635bbc3bcb3c6d7dff83e27)) +* 支持邮箱发送证书 ([95332d5](https://github.com/certd/certd/commit/95332d5db96cd54ddab6ab737332417a09169b39)) + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) ### Performance Improvements diff --git a/packages/ui/certd-server/package.json b/packages/ui/certd-server/package.json index ad31faba..65fd2851 100644 --- a/packages/ui/certd-server/package.json +++ b/packages/ui/certd-server/package.json @@ -1,6 +1,6 @@ { "name": "@certd/ui-server", - "version": "1.36.6", + "version": "1.36.7", "description": "fast-server base midway", "private": true, "type": "module", @@ -42,20 +42,20 @@ "@aws-sdk/client-cloudfront": "^3.699.0", "@aws-sdk/client-iam": "^3.699.0", "@aws-sdk/client-s3": "^3.705.0", - "@certd/acme-client": "^1.36.6", - "@certd/basic": "^1.36.6", - "@certd/commercial-core": "^1.36.6", + "@certd/acme-client": "^1.36.7", + "@certd/basic": "^1.36.7", + "@certd/commercial-core": "^1.36.7", "@certd/cv4pve-api-javascript": "^8.4.1", - "@certd/jdcloud": "^1.36.6", - "@certd/lib-huawei": "^1.36.6", - "@certd/lib-k8s": "^1.36.6", - "@certd/lib-server": "^1.36.6", - "@certd/midway-flyway-js": "^1.36.6", - "@certd/pipeline": "^1.36.6", - "@certd/plugin-cert": "^1.36.6", - "@certd/plugin-lib": "^1.36.6", - "@certd/plugin-plus": "^1.36.6", - "@certd/plus-core": "^1.36.6", + "@certd/jdcloud": "^1.36.7", + "@certd/lib-huawei": "^1.36.7", + "@certd/lib-k8s": "^1.36.7", + "@certd/lib-server": "^1.36.7", + "@certd/midway-flyway-js": "^1.36.7", + "@certd/pipeline": "^1.36.7", + "@certd/plugin-cert": "^1.36.7", + "@certd/plugin-lib": "^1.36.7", + "@certd/plugin-plus": "^1.36.7", + "@certd/plus-core": "^1.36.7", "@huaweicloud/huaweicloud-sdk-cdn": "^3.1.120", "@huaweicloud/huaweicloud-sdk-core": "^3.1.120", "@koa/cors": "^5.0.0", From 6b73f5d555bdf7f287c94702cf110d39dba0eb3b Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:36:14 +0800 Subject: [PATCH 11/12] build: trigger build image --- build.trigger | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.trigger b/build.trigger index 7a6a8781..13381f09 100644 --- a/build.trigger +++ b/build.trigger @@ -1 +1 @@ -23:53 +15:36 From 1921a64f4bf1b7a45faa4968ab2a7ff46d6d69f9 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 15 Jul 2025 15:36:31 +0800 Subject: [PATCH 12/12] build: publish --- docs/guide/changelogs/CHANGELOG.md | 13 +++++++++++++ packages/core/acme-client/package.json | 2 +- packages/core/basic/package.json | 2 +- packages/core/pipeline/package.json | 2 +- packages/libs/lib-huawei/package.json | 2 +- packages/libs/lib-iframe/package.json | 2 +- packages/libs/lib-jdcloud/package.json | 2 +- packages/libs/lib-k8s/package.json | 2 +- packages/libs/lib-server/package.json | 2 +- packages/libs/midway-flyway-js/package.json | 2 +- packages/plugins/plugin-cert/package.json | 2 +- packages/plugins/plugin-lib/package.json | 2 +- 12 files changed, 24 insertions(+), 11 deletions(-) diff --git a/docs/guide/changelogs/CHANGELOG.md b/docs/guide/changelogs/CHANGELOG.md index cc709806..e3e0373a 100644 --- a/docs/guide/changelogs/CHANGELOG.md +++ b/docs/guide/changelogs/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15) + +### Bug Fixes + +* 修复流水线列表页报length错误的bug ([9864792](https://github.com/certd/certd/commit/9864792bbfd149e770d6e1ffa809573694f99dd3)) +* 修复流水线页面状态没有刷新的bug ([93e9498](https://github.com/certd/certd/commit/93e9498b410353f504e11e264db62468895d7290)) +* 修复自定义证书检查时间重启之后不生效的bug ([38e867c](https://github.com/certd/certd/commit/38e867c917bbc68bd228bdd8064f3e7358d6413d)) + +### Performance Improvements + +* 支持上传证书到各种对象存储,oss、cos、七牛、s3、minio等 ([1da8617](https://github.com/certd/certd/commit/1da8617a53a675776635bbc3bcb3c6d7dff83e27)) +* 支持邮箱发送证书 ([95332d5](https://github.com/certd/certd/commit/95332d5db96cd54ddab6ab737332417a09169b39)) + ## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14) ### Bug Fixes diff --git a/packages/core/acme-client/package.json b/packages/core/acme-client/package.json index 9e4537f0..278d46b8 100644 --- a/packages/core/acme-client/package.json +++ b/packages/core/acme-client/package.json @@ -69,5 +69,5 @@ "bugs": { "url": "https://github.com/publishlab/node-acme-client/issues" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/core/basic/package.json b/packages/core/basic/package.json index 85c3a085..2befec21 100644 --- a/packages/core/basic/package.json +++ b/packages/core/basic/package.json @@ -45,5 +45,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/core/pipeline/package.json b/packages/core/pipeline/package.json index 570c971c..6232e6e8 100644 --- a/packages/core/pipeline/package.json +++ b/packages/core/pipeline/package.json @@ -44,5 +44,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/libs/lib-huawei/package.json b/packages/libs/lib-huawei/package.json index 2086a5af..e3d65b99 100644 --- a/packages/libs/lib-huawei/package.json +++ b/packages/libs/lib-huawei/package.json @@ -24,5 +24,5 @@ "prettier": "^2.8.8", "tslib": "^2.8.1" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/libs/lib-iframe/package.json b/packages/libs/lib-iframe/package.json index a7cbc2ff..934bb531 100644 --- a/packages/libs/lib-iframe/package.json +++ b/packages/libs/lib-iframe/package.json @@ -31,5 +31,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/libs/lib-jdcloud/package.json b/packages/libs/lib-jdcloud/package.json index 8fd4f267..9faef30d 100644 --- a/packages/libs/lib-jdcloud/package.json +++ b/packages/libs/lib-jdcloud/package.json @@ -61,5 +61,5 @@ "fetch" ] }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/libs/lib-k8s/package.json b/packages/libs/lib-k8s/package.json index ce343ef8..d744f86e 100644 --- a/packages/libs/lib-k8s/package.json +++ b/packages/libs/lib-k8s/package.json @@ -32,5 +32,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/libs/lib-server/package.json b/packages/libs/lib-server/package.json index 30bc71f4..fb133e8f 100644 --- a/packages/libs/lib-server/package.json +++ b/packages/libs/lib-server/package.json @@ -61,5 +61,5 @@ "typeorm": "^0.3.11", "typescript": "^5.4.2" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/libs/midway-flyway-js/package.json b/packages/libs/midway-flyway-js/package.json index 1b7ae577..abb9caac 100644 --- a/packages/libs/midway-flyway-js/package.json +++ b/packages/libs/midway-flyway-js/package.json @@ -46,5 +46,5 @@ "typeorm": "^0.3.11", "typescript": "^5.4.2" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/plugins/plugin-cert/package.json b/packages/plugins/plugin-cert/package.json index ef5349ea..0ee27435 100644 --- a/packages/plugins/plugin-cert/package.json +++ b/packages/plugins/plugin-cert/package.json @@ -43,5 +43,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" } diff --git a/packages/plugins/plugin-lib/package.json b/packages/plugins/plugin-lib/package.json index 08cff617..9530f6ac 100644 --- a/packages/plugins/plugin-lib/package.json +++ b/packages/plugins/plugin-lib/package.json @@ -53,5 +53,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "29d49d72f95aa101729965710375104240a2c038" + "gitHead": "e0408f30ba604c4dbe7cb415d1eac8cb588fbc45" }