From 2fbb58eb2b239eab4864f90aa72b0ef2ada38e8f Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 15 Jan 2026 23:43:07 +0800 Subject: [PATCH 01/10] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=8F=92=E4=BB=B6name=E4=B8=A2=E5=A4=B1autho?= =?UTF-8?q?r=E5=AF=BC=E8=87=B4=E6=89=BE=E4=B8=8D=E5=88=B0=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/pipeline/src/core/executor.ts | 7 +- packages/plugins/plugin-lib/src/lib/check.ts | 17 ---- packages/plugins/plugin-lib/src/lib/index.ts | 1 - .../modules/plugin/service/plugin-service.ts | 12 ++- .../plugins/plugin-admin/plugin-db-backup.ts | 2 +- .../plugins/plugin-refresh-cert.ts | 4 +- .../plugin-cmcc/plugin-deploy-to-cdn.ts | 2 +- .../plugin/plugin-deploy-to-iis.ts | 2 +- .../plugins/plugin-delete-expiring-cert.ts | 2 +- .../baota/plugins/plugin-deploy-to-panel.ts | 2 +- .../plugin-plus/exsi/plugin-deploy-to-exsi.ts | 3 +- .../plugin-plus/k8s/plugins/plugin-apply.ts | 2 +- .../lucky/plugins/plugin-upload.ts | 2 +- .../maoyun/plugins/plugin-deploy-to-cdn.ts | 2 +- .../openwrt/plugin-deploy-to-openwrt.ts | 3 +- .../plesk/plugins/plugin-deploy-cert.ts | 2 +- .../plesk/plugins/plugin-refresh-cert.ts | 2 +- .../plugins/plugin-deploy-to-panel.ts | 2 +- .../plugin-proxmox/plugins/plugin-upload.ts | 2 +- .../plugin-qnap/plugins/plugin-qnap.ts | 2 +- .../plugin/delete-expiring-cert/index.ts | 2 +- pnpm-lock.yaml | 83 ++++++++++--------- 22 files changed, 73 insertions(+), 85 deletions(-) delete mode 100644 packages/plugins/plugin-lib/src/lib/check.ts diff --git a/packages/core/pipeline/src/core/executor.ts b/packages/core/pipeline/src/core/executor.ts index 92a4b9697..d7f88b383 100644 --- a/packages/core/pipeline/src/core/executor.ts +++ b/packages/core/pipeline/src/core/executor.ts @@ -276,7 +276,10 @@ export class Executor { const lastStatus = this.lastStatusMap.get(step.id); //执行任务 const plugin: RegistryItem = pluginRegistry.get(step.type); - + if (!plugin) { + currentLogger.error(`未找到插件${step.type}`); + throw new Error(`未找到插件${step.type}`); + } //@ts-ignore let instance: ITaskPlugin = null; try { @@ -285,7 +288,7 @@ export class Executor { //@ts-ignore instance = new pluginCls(); } catch (e: any) { - currentLogger.error(`实例化插件失败:${e.message}`); + currentLogger.error(`实例化插件失败:${step.type}:${e.message}`); throw new Error(`实例化插件失败`, e); } diff --git a/packages/plugins/plugin-lib/src/lib/check.ts b/packages/plugins/plugin-lib/src/lib/check.ts deleted file mode 100644 index 2425976c1..000000000 --- a/packages/plugins/plugin-lib/src/lib/check.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { AbstractTaskPlugin, TaskInstanceContext } from "@certd/pipeline"; -import { isPlus } from "@certd/plus-core"; - -export function mustPlus() { - if (!isPlus()) { - throw new Error("此插件仅供专业版中使用"); - } -} - -export abstract class AbstractPlusTaskPlugin extends AbstractTaskPlugin { - setCtx(ctx: TaskInstanceContext) { - super.setCtx(ctx); - mustPlus(); - } - - abstract execute(): Promise; -} diff --git a/packages/plugins/plugin-lib/src/lib/index.ts b/packages/plugins/plugin-lib/src/lib/index.ts index 56f24306a..d66827933 100644 --- a/packages/plugins/plugin-lib/src/lib/index.ts +++ b/packages/plugins/plugin-lib/src/lib/index.ts @@ -1,2 +1 @@ export * from "./ocr-api.js"; -export * from "./check.js"; \ No newline at end of file diff --git a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts index a6f192cc6..5866c9952 100644 --- a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts +++ b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts @@ -262,7 +262,7 @@ export class PluginService extends BaseService { return; } let name = item.name; - if (item.author){ + if (item.author && !item.name.startsWith( `${item.author}/`)){ name = `${item.author}/${item.name}` } if (item.pluginType === "access"){ @@ -331,7 +331,6 @@ export class PluginService extends BaseService { }); if (info && info.length > 0) { const plugin = info[0]; - try { const AsyncFunction = Object.getPrototypeOf(async () => { }).constructor; @@ -399,12 +398,11 @@ export class PluginService extends BaseService { delete item.metadata; delete item.content; delete item.extra; - let name = item.name - - if (item.author) { - name = item.author + "/" + name; + if (item.author) { + item.name = item.author + "/" + item.name; } - if(item.addonType){ + let name = item.name + if(item.addonType){ name = item.addonType + ":" + name; } let registry = null; diff --git a/packages/ui/certd-server/src/plugins/plugin-admin/plugin-db-backup.ts b/packages/ui/certd-server/src/plugins/plugin-admin/plugin-db-backup.ts index 2420734ef..d012702ea 100644 --- a/packages/ui/certd-server/src/plugins/plugin-admin/plugin-db-backup.ts +++ b/packages/ui/certd-server/src/plugins/plugin-admin/plugin-db-backup.ts @@ -2,7 +2,7 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipel import fs from "fs"; import path from "path"; import dayjs from "dayjs"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import JSZip from "jszip"; import * as os from "node:os"; import { OssClientContext, ossClientFactory, OssClientRemoveByOpts} from "../plugin-lib/oss/index.js"; diff --git a/packages/ui/certd-server/src/plugins/plugin-apisix/plugins/plugin-refresh-cert.ts b/packages/ui/certd-server/src/plugins/plugin-apisix/plugins/plugin-refresh-cert.ts index 0426e210c..9c13fd654 100644 --- a/packages/ui/certd-server/src/plugins/plugin-apisix/plugins/plugin-refresh-cert.ts +++ b/packages/ui/certd-server/src/plugins/plugin-apisix/plugins/plugin-refresh-cert.ts @@ -1,8 +1,8 @@ import {IsTaskPlugin, PageSearch, pluginGroups, RunStrategy, TaskInput} from "@certd/pipeline"; import {CertApplyPluginNames, CertInfo} from "@certd/plugin-cert"; -import {AbstractPlusTaskPlugin, createCertDomainGetterInputDefine, createRemoteSelectInputDefine} from "@certd/plugin-lib"; +import {createCertDomainGetterInputDefine, createRemoteSelectInputDefine} from "@certd/plugin-lib"; import {ApisixAccess} from "../access.js"; - +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; @IsTaskPlugin({ //命名规范,插件类型+功能(就是目录plugin-demo中的demo),大写字母开头,驼峰命名 name: "ApisixRefreshCert", diff --git a/packages/ui/certd-server/src/plugins/plugin-cmcc/plugin-deploy-to-cdn.ts b/packages/ui/certd-server/src/plugins/plugin-cmcc/plugin-deploy-to-cdn.ts index 91037d3bb..f27d7473a 100644 --- a/packages/ui/certd-server/src/plugins/plugin-cmcc/plugin-deploy-to-cdn.ts +++ b/packages/ui/certd-server/src/plugins/plugin-cmcc/plugin-deploy-to-cdn.ts @@ -7,7 +7,7 @@ import { } from "@certd/pipeline"; import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert"; import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "@certd/plugin-lib"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { CmccAccess } from "./access.js"; @IsTaskPlugin({ diff --git a/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-deploy-to-iis.ts b/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-deploy-to-iis.ts index a6259adc4..506ef1c33 100644 --- a/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-deploy-to-iis.ts +++ b/packages/ui/certd-server/src/plugins/plugin-host/plugin/plugin-deploy-to-iis.ts @@ -1,6 +1,6 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { CertInfo } from "@certd/plugin-cert"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "@certd/plugin-lib"; import { tmpdir } from "node:os"; import path from "node:path"; diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/baota/plugins/plugin-delete-expiring-cert.ts b/packages/ui/certd-server/src/plugins/plugin-plus/baota/plugins/plugin-delete-expiring-cert.ts index 60a2e4eb1..4065bb086 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/baota/plugins/plugin-delete-expiring-cert.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/baota/plugins/plugin-delete-expiring-cert.ts @@ -1,6 +1,6 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { BaotaClient } from "../lib/client.js"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import dayjs from "dayjs"; @IsTaskPlugin({ name: "BaotaDeleteExpiringCert", diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/baota/plugins/plugin-deploy-to-panel.ts b/packages/ui/certd-server/src/plugins/plugin-plus/baota/plugins/plugin-deploy-to-panel.ts index 95b5de3bf..f6dddcc15 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/baota/plugins/plugin-deploy-to-panel.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/baota/plugins/plugin-deploy-to-panel.ts @@ -1,7 +1,7 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { CertInfo } from "@certd/plugin-cert"; import { BaotaClient } from "../lib/client.js"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { CertApplyPluginNames } from "@certd/plugin-cert"; @IsTaskPlugin({ name: "BaotaDeployPanelCert", diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/exsi/plugin-deploy-to-exsi.ts b/packages/ui/certd-server/src/plugins/plugin-plus/exsi/plugin-deploy-to-exsi.ts index 255069586..4c648452f 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/exsi/plugin-deploy-to-exsi.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/exsi/plugin-deploy-to-exsi.ts @@ -1,8 +1,9 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert"; -import { AbstractPlusTaskPlugin, CertReader } from "@certd/plugin-lib"; +import { CertReader } from "@certd/plugin-lib"; import { SshAccess } from "../../plugin-lib/ssh/ssh-access.js"; import { SshClient } from "../../plugin-lib/ssh/ssh.js"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; @IsTaskPlugin({ name: "ExsiDeployCert", title: "Exsi-部署证书到Exsi", diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/k8s/plugins/plugin-apply.ts b/packages/ui/certd-server/src/plugins/plugin-plus/k8s/plugins/plugin-apply.ts index 6ee058a7c..d51b75864 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/k8s/plugins/plugin-apply.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/k8s/plugins/plugin-apply.ts @@ -4,7 +4,7 @@ import { CertApplyPluginNames, CertInfo, CertReader } from "@certd/plugin-cert"; import dayjs from "dayjs"; import { get } from "lodash-es"; import { K8sAccess } from "../access.js"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; @IsTaskPlugin({ name: "K8sApply", title: "K8S-Apply自定义yaml", diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/lucky/plugins/plugin-upload.ts b/packages/ui/certd-server/src/plugins/plugin-plus/lucky/plugins/plugin-upload.ts index 742ef2a26..cb66f5ef7 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/lucky/plugins/plugin-upload.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/lucky/plugins/plugin-upload.ts @@ -2,7 +2,7 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipel import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert"; import { LuckyAccess } from "../access.js"; import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "@certd/plugin-lib"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { isArray } from "lodash-es"; @IsTaskPlugin({ diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/plugins/plugin-deploy-to-cdn.ts b/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/plugins/plugin-deploy-to-cdn.ts index ad43d47f4..20bf46a41 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/plugins/plugin-deploy-to-cdn.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/plugins/plugin-deploy-to-cdn.ts @@ -1,7 +1,7 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert"; import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "@certd/plugin-lib"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { MaoyunAccess } from "../access.js"; import { MaoyunClient } from "../client.js"; diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/openwrt/plugin-deploy-to-openwrt.ts b/packages/ui/certd-server/src/plugins/plugin-plus/openwrt/plugin-deploy-to-openwrt.ts index 9c3955836..d8d48788d 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/openwrt/plugin-deploy-to-openwrt.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/openwrt/plugin-deploy-to-openwrt.ts @@ -1,8 +1,9 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert"; -import { AbstractPlusTaskPlugin, CertReader } from "@certd/plugin-lib"; +import { CertReader } from "@certd/plugin-lib"; import { SshAccess } from "../../plugin-lib/ssh/ssh-access.js"; import { SshClient } from "../../plugin-lib/ssh/ssh.js"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; @IsTaskPlugin({ name: "OpenwrtDeployCert", title: "Openwrt-部署证书到Openwrt", diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/plesk/plugins/plugin-deploy-cert.ts b/packages/ui/certd-server/src/plugins/plugin-plus/plesk/plugins/plugin-deploy-cert.ts index 3907989c0..cd85f5286 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/plesk/plugins/plugin-deploy-cert.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/plesk/plugins/plugin-deploy-cert.ts @@ -1,6 +1,6 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { PleskAccess } from "../access.js"; import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "@certd/plugin-lib"; import FormData from "form-data"; diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/plesk/plugins/plugin-refresh-cert.ts b/packages/ui/certd-server/src/plugins/plugin-plus/plesk/plugins/plugin-refresh-cert.ts index 6ca9b8c1f..f143c8b01 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/plesk/plugins/plugin-refresh-cert.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/plesk/plugins/plugin-refresh-cert.ts @@ -1,6 +1,6 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { CertApplyPluginNames, CertInfo, CertReader } from "@certd/plugin-cert"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { PleskAccess } from "../access.js"; import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "@certd/plugin-lib"; import FormData from "form-data"; diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/synology/plugins/plugin-deploy-to-panel.ts b/packages/ui/certd-server/src/plugins/plugin-plus/synology/plugins/plugin-deploy-to-panel.ts index b6e0c3f28..6921aa2ef 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/synology/plugins/plugin-deploy-to-panel.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/synology/plugins/plugin-deploy-to-panel.ts @@ -1,6 +1,6 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline"; import { CertInfo } from "@certd/plugin-lib"; -import { AbstractPlusTaskPlugin } from "@certd/plugin-lib"; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { SynologyClient } from "@certd/plugin-plus"; import { SynologyAccess } from "../access.js"; import { CertApplyPluginNames } from "@certd/plugin-lib"; diff --git a/packages/ui/certd-server/src/plugins/plugin-proxmox/plugins/plugin-upload.ts b/packages/ui/certd-server/src/plugins/plugin-proxmox/plugins/plugin-upload.ts index da44a96f2..1e3b6171a 100644 --- a/packages/ui/certd-server/src/plugins/plugin-proxmox/plugins/plugin-upload.ts +++ b/packages/ui/certd-server/src/plugins/plugin-proxmox/plugins/plugin-upload.ts @@ -1,6 +1,6 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; import { CertInfo } from '@certd/plugin-cert'; -import { AbstractPlusTaskPlugin } from '@certd/plugin-lib'; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { ProxmoxAccess } from '../access.js'; import { createRemoteSelectInputDefine } from '@certd/plugin-lib'; import { CertApplyPluginNames} from '@certd/plugin-cert'; diff --git a/packages/ui/certd-server/src/plugins/plugin-qnap/plugins/plugin-qnap.ts b/packages/ui/certd-server/src/plugins/plugin-qnap/plugins/plugin-qnap.ts index 6d65d6e14..8f65c190c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-qnap/plugins/plugin-qnap.ts +++ b/packages/ui/certd-server/src/plugins/plugin-qnap/plugins/plugin-qnap.ts @@ -1,6 +1,6 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; import { CertInfo } from '@certd/plugin-cert'; -import { AbstractPlusTaskPlugin } from '@certd/plugin-lib'; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { tmpdir } from 'node:os'; import fs from 'fs'; import { SshAccess, SshClient } from '../../plugin-lib/ssh/index.js'; diff --git a/packages/ui/certd-server/src/plugins/plugin-tencent/plugin/delete-expiring-cert/index.ts b/packages/ui/certd-server/src/plugins/plugin-tencent/plugin/delete-expiring-cert/index.ts index bf6b83a99..f1b1753c8 100644 --- a/packages/ui/certd-server/src/plugins/plugin-tencent/plugin/delete-expiring-cert/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-tencent/plugin/delete-expiring-cert/index.ts @@ -1,5 +1,5 @@ import { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; -import { AbstractPlusTaskPlugin } from '@certd/plugin-lib'; +import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import dayjs from 'dayjs'; import { remove } from 'lodash-es'; import { TencentAccess, TencentSslClient } from '../../../plugin-lib/tencent/index.js'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b0faa588..2d228e1a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,7 +49,7 @@ importers: packages/core/acme-client: dependencies: '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../basic '@peculiar/x509': specifier: ^1.11.0 @@ -213,10 +213,10 @@ importers: packages/core/pipeline: dependencies: '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../basic '@certd/plus-core': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../pro/plus-core dayjs: specifier: ^1.11.7 @@ -412,7 +412,7 @@ importers: packages/libs/lib-k8s: dependencies: '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/basic '@kubernetes/client-node': specifier: 0.21.0 @@ -452,19 +452,19 @@ importers: packages/libs/lib-server: dependencies: '@certd/acme-client': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/pipeline '@certd/plugin-lib': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../plugins/plugin-lib '@certd/plus-core': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../pro/plus-core '@midwayjs/cache': specifier: 3.14.0 @@ -610,16 +610,16 @@ importers: packages/plugins/plugin-cert: dependencies: '@certd/acme-client': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/pipeline '@certd/plugin-lib': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../plugin-lib psl: specifier: ^1.9.0 @@ -683,16 +683,16 @@ importers: specifier: ^3.964.0 version: 3.964.0(aws-crt@1.26.2) '@certd/acme-client': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/pipeline '@certd/plus-core': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../pro/plus-core '@kubernetes/client-node': specifier: 0.21.0 @@ -783,16 +783,16 @@ importers: packages/pro/commercial-core: dependencies: '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/basic '@certd/lib-server': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../libs/lib-server '@certd/pipeline': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/pipeline '@certd/plus-core': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../plus-core '@midwayjs/core': specifier: 3.20.11 @@ -865,14 +865,17 @@ importers: packages/pro/plugin-plus: dependencies: '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/pipeline '@certd/plugin-lib': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../plugins/plugin-lib + '@certd/plus-core': + specifier: ^1.38.0 + version: link:../plus-core crypto-js: specifier: ^4.2.0 version: 4.2.0 @@ -944,7 +947,7 @@ importers: packages/pro/plus-core: dependencies: '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/basic dayjs: specifier: ^1.11.7 @@ -1240,10 +1243,10 @@ importers: version: 0.1.3(zod@3.24.4) devDependencies: '@certd/lib-iframe': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../libs/lib-iframe '@certd/pipeline': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/pipeline '@rollup/plugin-commonjs': specifier: ^25.0.7 @@ -1432,46 +1435,46 @@ importers: specifier: ^3.964.0 version: 3.964.0(aws-crt@1.26.2) '@certd/acme-client': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/basic '@certd/commercial-core': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../pro/commercial-core '@certd/cv4pve-api-javascript': specifier: ^8.4.2 version: 8.4.2 '@certd/jdcloud': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../libs/lib-jdcloud '@certd/lib-huawei': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../libs/lib-huawei '@certd/lib-k8s': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../libs/lib-k8s '@certd/lib-server': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../libs/lib-server '@certd/midway-flyway-js': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../libs/midway-flyway-js '@certd/pipeline': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../core/pipeline '@certd/plugin-cert': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../plugins/plugin-cert '@certd/plugin-lib': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../plugins/plugin-lib '@certd/plugin-plus': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../pro/plugin-plus '@certd/plus-core': - specifier: ^1.37.17 + specifier: ^1.38.0 version: link:../../pro/plus-core '@google-cloud/publicca': specifier: ^1.3.0 From 9eace86aeeb48c23b55102fc5d42088294d9eb97 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 00:46:26 +0800 Subject: [PATCH 02/10] =?UTF-8?q?perf:=20=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=94=AF=E6=8C=81=E4=BD=BF=E7=94=A8=5Fctx.im?= =?UTF-8?q?port("/@/xxx.js")=E4=BB=A5=E7=BB=9D=E5=AF=B9=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/builtin-plugin-service.ts | 2 +- .../modules/plugin/service/plugin-service.ts | 115 ++++++++++-------- .../src/plugins/plugin-plus/maoyun/client.ts | 98 --------------- .../src/plugins/plugin-plus/maoyun/index.ts | 1 - .../maoyun/plugins/plugin-deploy-to-cdn.ts | 2 +- pnpm-lock.yaml | 3 + 6 files changed, 69 insertions(+), 152 deletions(-) delete mode 100644 packages/ui/certd-server/src/plugins/plugin-plus/maoyun/client.ts diff --git a/packages/ui/certd-server/src/modules/pipeline/service/builtin-plugin-service.ts b/packages/ui/certd-server/src/modules/pipeline/service/builtin-plugin-service.ts index ca1e791dc..d04ec2a27 100644 --- a/packages/ui/certd-server/src/modules/pipeline/service/builtin-plugin-service.ts +++ b/packages/ui/certd-server/src/modules/pipeline/service/builtin-plugin-service.ts @@ -14,7 +14,7 @@ export class BuiltInPluginService { continue; } //@ts-ignore - if(Plugin.define?.type && Plugin.define?.type !== 'builtin'){ + if(Plugin.define?.type && Plugin.define?.type.toLowerCase() !== 'builtin'){ continue; } list.push({ ...Plugin.define, key }); diff --git a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts index 5866c9952..4fd7da3f3 100644 --- a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts +++ b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts @@ -1,16 +1,16 @@ -import {Inject, Provide, Scope, ScopeEnum} from "@midwayjs/core"; -import {addonRegistry, BaseService, PageReq} from "@certd/lib-server"; -import {PluginEntity} from "../entity/plugin.js"; -import {InjectEntityModel} from "@midwayjs/typeorm"; -import {IsNull, Not, Repository} from "typeorm"; -import {isComm} from "@certd/plus-core"; -import {BuiltInPluginService} from "../../pipeline/service/builtin-plugin-service.js"; -import {merge} from "lodash-es"; -import {accessRegistry, notificationRegistry, pluginRegistry} from "@certd/pipeline"; -import {dnsProviderRegistry} from "@certd/plugin-cert"; -import {logger} from "@certd/basic"; +import { Inject, Provide, Scope, ScopeEnum } from "@midwayjs/core"; +import { addonRegistry, BaseService, PageReq } from "@certd/lib-server"; +import { PluginEntity } from "../entity/plugin.js"; +import { InjectEntityModel } from "@midwayjs/typeorm"; +import { IsNull, Not, Repository } from "typeorm"; +import { isComm } from "@certd/plus-core"; +import { BuiltInPluginService } from "../../pipeline/service/builtin-plugin-service.js"; +import { merge } from "lodash-es"; +import { accessRegistry, notificationRegistry, pluginRegistry } from "@certd/pipeline"; +import { dnsProviderRegistry } from "@certd/plugin-cert"; +import { logger } from "@certd/basic"; import yaml from "js-yaml"; -import {getDefaultAccessPlugin, getDefaultDeployPlugin, getDefaultDnsPlugin} from "./default-plugin.js"; +import { getDefaultAccessPlugin, getDefaultDeployPlugin, getDefaultDnsPlugin } from "./default-plugin.js"; import fs from "fs"; import path from "path"; @@ -19,8 +19,21 @@ export type PluginImportReq = { override?: boolean; }; + async function importer(modulePath: string) { + if (!modulePath) { + throw new Error("modules path 不能为空") + } + if (!modulePath.startsWith("/@/")) { + return await import(modulePath) + } + modulePath = modulePath.replace("/@/", "") + //替换@为相对地址 + modulePath = `../../../${modulePath}` + return await import(modulePath) +} + @Provide() -@Scope(ScopeEnum.Request, {allowDowngrade: true}) +@Scope(ScopeEnum.Request, { allowDowngrade: true }) export class PluginService extends BaseService { @InjectEntityModel(PluginEntity) repository: Repository; @@ -57,7 +70,7 @@ export class PluginService extends BaseService { }; } - async getEnabledBuildInGroup(opts?:{isSimple?:boolean,withSetting?:boolean}) { + async getEnabledBuildInGroup(opts?: { isSimple?: boolean, withSetting?: boolean }) { const groups = this.builtInPluginService.getGroups(); if (opts?.isSimple) { for (const key in groups) { @@ -75,17 +88,17 @@ export class PluginService extends BaseService { // 初始化设置 const settingPlugins = await this.repository.find({ - select:{ - id:true, - name:true, - sysSetting:true + select: { + id: true, + name: true, + sysSetting: true }, where: { - sysSetting : Not(IsNull()) + sysSetting: Not(IsNull()) } }) //合并插件配置 - const pluginSettingMap:any = {} + const pluginSettingMap: any = {} for (const item of settingPlugins) { if (!item.sysSetting) { continue; @@ -99,7 +112,7 @@ export class PluginService extends BaseService { } for (const item of group.plugins) { const pluginSetting = pluginSettingMap[item.name]; - if (pluginSetting){ + if (pluginSetting) { item.sysSetting = pluginSetting } } @@ -172,13 +185,13 @@ export class PluginService extends BaseService { } async setDisabled(opts: { id?: number; name?: string; type: string; disabled: boolean }) { - const {id, name, type, disabled} = opts; + const { id, name, type, disabled } = opts; if (!type) { throw new Error("参数错误: type 不能为空"); } if (id > 0) { //update - await this.repository.update({id}, {disabled}); + await this.repository.update({ id }, { disabled }); return; } @@ -214,7 +227,7 @@ export class PluginService extends BaseService { throw new Error(`插件${param.author}/${param.name}已存在`); } - if (param.type === "builtIn"){ + if (param.type === "builtIn") { return await super.add({ ...param, }); @@ -233,7 +246,7 @@ export class PluginService extends BaseService { throw new Error(`插件类型${param.pluginType}不支持`); } - const res= await super.add({ + const res = await super.add({ ...param, ...plugin }); @@ -242,18 +255,18 @@ export class PluginService extends BaseService { return res } - async registerById(id: any) { + async registerById(id: any) { const item = await this.info(id); if (!item) { return; } - if(item.type === "builtIn"){ + if (item.type === "builtIn") { return; } await this.registerPlugin(item); } - async unRegisterById(id: any){ + async unRegisterById(id: any) { const item = await this.info(id); if (!item) { return; @@ -262,19 +275,19 @@ export class PluginService extends BaseService { return; } let name = item.name; - if (item.author && !item.name.startsWith( `${item.author}/`)){ - name = `${item.author}/${item.name}` + if (item.author && !item.name.startsWith(`${item.author}/`)) { + name = `${item.author}/${item.name}` } - if (item.pluginType === "access"){ + if (item.pluginType === "access") { accessRegistry.unRegister(name) - }else if (item.pluginType === "deploy"){ + } else if (item.pluginType === "deploy") { pluginRegistry.unRegister(name) - }else if (item.pluginType === "dnsProvider"){ + } else if (item.pluginType === "dnsProvider") { dnsProviderRegistry.unRegister(name) - }else if (item.pluginType === "notification"){ + } else if (item.pluginType === "notification") { notificationRegistry.unRegister(name) - }else{ - logger.warn(`不支持的插件类型:${item.pluginType}`) + } else { + logger.warn(`不支持的插件类型:${item.pluginType}`) } } @@ -291,7 +304,7 @@ export class PluginService extends BaseService { } - const res= await super.update(param); + const res = await super.update(param); await this.registerById(param.id); return res @@ -300,14 +313,14 @@ export class PluginService extends BaseService { async compile(code: string) { const ts = await import("typescript"); return ts.transpileModule(code, { - compilerOptions: {module: ts.ModuleKind.ESNext} + compilerOptions: { module: ts.ModuleKind.ESNext } }).outputText; } private async getPluginClassFromFile(item: any) { const scriptFilePath = item.scriptFilePath; - const res = await import((`../../..${scriptFilePath}`)) + const res = await import((`../../..${scriptFilePath}`)) const classNames = Object.keys(res) return res[classNames[classNames.length - 1]] } @@ -336,8 +349,8 @@ export class PluginService extends BaseService { }).constructor; // const script = await this.compile(plugin.content); const script = plugin.content; - const getPluginClass = new AsyncFunction(script); - return await getPluginClass({logger: logger}); + const getPluginClass = new AsyncFunction("_ctx", script); + return await getPluginClass({ logger: logger, import: importer }); } catch (e) { logger.error("编译插件失败:", e); throw e; @@ -379,7 +392,7 @@ export class PluginService extends BaseService { } //排序 list = list.sort((a, b) => { - return (a.order??10) - (b.order ??10); + return (a.order ?? 10) - (b.order ?? 10); }); for (const item of list) { @@ -398,11 +411,11 @@ export class PluginService extends BaseService { delete item.metadata; delete item.content; delete item.extra; - if (item.author) { - item.name = item.author + "/" + item.name; + if (item.author) { + item.name = item.author + "/" + item.name; } let name = item.name - if(item.addonType){ + if (item.addonType) { name = item.addonType + ":" + name; } let registry = null; @@ -414,9 +427,9 @@ export class PluginService extends BaseService { registry = dnsProviderRegistry; } else if (item.pluginType === "notification") { registry = notificationRegistry; - }else if (item.pluginType === "addon") { + } else if (item.pluginType === "addon") { registry = addonRegistry; - } else { + } else { logger.warn(`插件${name}类型错误:${item.pluginType}`); return; } @@ -495,9 +508,9 @@ export class PluginService extends BaseService { if (!old) { //add - const {id} = await this.add(pluginEntity); + const { id } = await this.add(pluginEntity); pluginEntity.id = id; - } else{ + } else { if (!req.override) { throw new Error(`插件${loaded.author}/${loaded.name}已存在`); } @@ -511,8 +524,8 @@ export class PluginService extends BaseService { } - async deleteByIds(ids:any[]){ - await super.delete(ids); + async deleteByIds(ids: any[]) { + await super.delete(ids); for (const id of ids) { await this.unRegisterById(id) } diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/client.ts b/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/client.ts deleted file mode 100644 index 0b94bb755..000000000 --- a/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/client.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { HttpClient, HttpRequestConfig, ILogger } from "@certd/basic"; -import { MaoyunAccess } from "./access.js"; - -export class MaoyunClient { - privateKeyPem = ""; - http: HttpClient; - logger: ILogger; - access: MaoyunAccess; - token: string; - - constructor(opts: { logger: ILogger; http: HttpClient; access: MaoyunAccess }) { - this.logger = opts.logger; - this.http = opts.http; - this.access = opts.access; - this.privateKeyPem = - "\n-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAt83xKlUSU0i09/pwwQ0MQQ0v71IULdVGJ3AFo+anwLX1TRCp\nxmY5i+xmT9tshHqiPGN8qeg+lDaqA+iwmS6zqi+KlNmmKJc3kUx/h24MI3nff0xy\nz605ZfDgJhwBkJpTI6Sk4+OLX+lZxOiET0nOT7jrhKiFCKX8+0ZXjTJ1cmdifKaj\nqXmjD+XYZzBwA2fCr1kPq2xKvU097Ksu6QvM+La5X/tt+FJOuedmuqZmsb6YQ+6O\n6mJ0bcY0kFDGNkoeY6dEyeJAkIDJbda3n0I71KwRR2J0CSN3TF+w1hSQa7Hp1rXw\n+zQvR6p7O2VY8zQeZZKRKGl7OGdKW5F79iz2fQIDAQABAoIBAEN0BaRGciI0VY2H\n0CdY1X1uDIBke9lSIpvIhZlfxYJ4hFxS2CtiSo4qJGX8HbgElVNaI17rR0P3R6+F\njoG43OCA7/euZEcTL6ZYD5kw7q16RWYfNSc36A+cNXZm4sAhko9LFeQ4FmcNaQ9V\nUXEToe4p6+zUN3Y0DEJezzSXJvjjjodT5L03i2HCW+/xZIHi6oh1DuXdy7h1Ah8s\nSxN188HsX7/SoDHAxDqi/SSGyoYg/SvtOetPtrcZCfqoHfxkR+jQHNaOTq3vGmsu\np8KPtRBoFvSPMxSSHNLb4qbIFvlWRLNXfIhYnenTPtmCnnqogotZZ9CoCHL9dX5R\nt4q5L6ECgYEA5jYhqpRIhqSZOTJopGgy3LBy5T1PHDTfedTuSxnoywYWCuGNwgjI\nRgd94jcUuizO9euobxvDUTdOZ6LdK1NStfwOspb2NojvlE+9SfC8JDv7ZeRz8egB\nClrT6jtCUr80K1I0eF31ha0YMjgi7WZJvTMp53fqI0b1yQO2FaBNgWUCgYEAzGT6\nay+QlO2Fdt9mqeIJy9QiugItC7lk75fQMg5fa8A8wj9DO86o/2k4rKhl7SPg0H+R\nSJQoZGuS4M2f9muEHnLmVF8EzizuHZoR3HO4mie2adVf9NfAmkFsCluRAZKtQkNc\nt/VwlJEC6dChoZkU8Wzd0fSJKrdhjik2ayGXmzkCgYEAuie9s5UyzIXfTSwhCAkm\nT+TzE8Iu7Y0nxPnVM6+g2kNyoZvgqK23XUGDnuCRhzbiqGPGkQovN8Z0RUOiev1m\n3bgUHoAKWvECYrjURS1AxkAmuy8wPsYvyTLHOBpxOD5bLkjMGyVHe7AL59gTDktv\nh2oPEZibIamo6MJyhCxbYC0CgYAIZhnYL7MsO3phgRqR3oTyiDwJEq/RLIQWSFG4\nzNhk8BhPDxRvL7XIEQXQKndNwEyrpKJOri/euIDnlet9z7s1GRmX2/OxmS0LsFoN\nif/K7djUDn2L7RWwAQI0hsC1pNZTw7raoE5I/JB3FSifIFA4/3U5/GdqhvCOS+k9\ni7rUGQKBgQDPspapfGj2ozgWChJ2xMTGBhJhynM81w3j9w7MLvO/7/U43zYzKzyc\n7YJzApQOSwX/nLdquzi+UIbvuCB3npZVZl52S4f7BBcgLNQpdmcfWrAbDv5lySfn\n/KTN22Wxmhh20QgiNSxj+o+KIgdAgZCgWt7NrkZ5UX7Lo+ZfYU1xbg==\n-----END RSA PRIVATE KEY-----"; - } - - async sign(data: string) { - const { KJUR, KEYUTIL, hextob64 } = await import("jsrsasign"); - const privateKey = KEYUTIL.getKey(this.privateKeyPem); - // 创建签名实例 - const signature = new KJUR.crypto.Signature({ - alg: "SHA256withRSA", - }); - - // 初始化私钥 - signature.init(privateKey); - - // 更新待签名数据(假设原文是字符串) - signature.updateString(data); - - // 生成签名(默认返回十六进制字符串) - const hexSignature = signature.sign(); - - // 转换为 Base64(假设 Ix 是 Base64 编码) - return hextob64(hexSignature); - } - - async doRequest(req: HttpRequestConfig) { - const timestamp = Date.now(); - - let data = ""; - if (req.method.toLowerCase() === "get") { - // area_codes=&channel_type=0,1,2&domain_name=&https_status=&nonce=1747242446238&order=&page=1&page_size=10&status=×tamp=1747242446238 - let queryList = []; - for (const key in req.params) { - queryList.push(`${key}=${req.params[key]}`); - } - queryList.push(`nonce=${timestamp}`); - queryList.push(`timestamp=${timestamp}`); - //sort - queryList = queryList.sort(); - data = queryList.join("&"); - } else { - data = `body=${JSON.stringify(req.data || {})}&nonce=${timestamp}×tamp=${timestamp}`; - } - const sign = await this.sign(data); - const headers: any = { - sign: sign, - timestamp: timestamp, - nonce: timestamp, - }; - - if (this.token) { - headers.Token = this.token; - } - - const res = await this.http.request({ - ...req, - headers, - baseURL: "https://testaa.5678.jp", - }); - - if (!res.success && res.code !== 200) { - throw new Error(`请求失败:${res.msg}`); - } - return res.data; - } - - async login() { - const req = { - email: this.access.username, - password: this.access.password, - accountType: 1, - }; - const res = await this.doRequest({ - url: "/api/vcloud/v1/userApi/noAuth/login", - method: "post", - data: req, - logRes: false, - logParams: false, - }); - const { token } = res; - this.logger.info(`登录成功`); - this.token = token; - } -} diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/index.ts b/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/index.ts index b9436b7da..9e832e961 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/index.ts @@ -1,4 +1,3 @@ // 隐藏 通过下载插件形式分发 // export * from "./plugins/index.js"; export * from "./access.js"; -export * from "./client.js"; diff --git a/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/plugins/plugin-deploy-to-cdn.ts b/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/plugins/plugin-deploy-to-cdn.ts index 20bf46a41..4039a710e 100644 --- a/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/plugins/plugin-deploy-to-cdn.ts +++ b/packages/ui/certd-server/src/plugins/plugin-plus/maoyun/plugins/plugin-deploy-to-cdn.ts @@ -3,7 +3,7 @@ import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert"; import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "@certd/plugin-lib"; import { AbstractPlusTaskPlugin } from "@certd/plugin-plus"; import { MaoyunAccess } from "../access.js"; -import { MaoyunClient } from "../client.js"; +import { MaoyunClient } from "@certd/plugin-plus"; @IsTaskPlugin({ //命名规范,插件类型+功能(就是目录plugin-demo中的demo),大写字母开头,驼峰命名 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d228e1a3..d599bc5d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -885,6 +885,9 @@ importers: form-data: specifier: ^4.0.0 version: 4.0.2 + jsrsasign: + specifier: ^11.1.0 + version: 11.1.0 querystring: specifier: ^0.2.1 version: 0.2.1 From f7983ee4d9473aaeab17336bcc72f50f69be8c51 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 00:46:57 +0800 Subject: [PATCH 03/10] chore: docs --- .../certd-server/src/modules/plugin/service/default-plugin.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/ui/certd-server/src/modules/plugin/service/default-plugin.ts b/packages/ui/certd-server/src/modules/plugin/service/default-plugin.ts index 8fb19fa23..0728ffcfb 100644 --- a/packages/ui/certd-server/src/modules/plugin/service/default-plugin.ts +++ b/packages/ui/certd-server/src/modules/plugin/service/default-plugin.ts @@ -96,6 +96,9 @@ input: # 插件的输入参数 const script = ` // 要用await来import模块 const { AbstractTaskPlugin } = await import("@certd/pipeline") +// 使用_ctx.import("/@/xxx.js") 以绝对路径引用模块,/@相当于根路径 +const {AliyunAccess} = await _ctx.import("/@/plugins/plugin-lib/aliyun/access/index.js") +_ctx.logger.info("AliyunAccess:",AliyunAccess) // 要返回一个继承AbstractTaskPlugin的class return class DemoTask extends AbstractTaskPlugin { // 这里是插件的输入参数,对应左边的input配置 From 54b73769b8ac516d96e0b5037183f59852160c11 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 00:55:54 +0800 Subject: [PATCH 04/10] 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 1af9d98f8..9d3fbed80 100644 --- a/packages/core/basic/build.md +++ b/packages/core/basic/build.md @@ -1 +1 @@ -23:23 +00:55 From 2c80c35b21b3f435e835167fca13db510bbc38a2 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 00:58:32 +0800 Subject: [PATCH 05/10] v1.38.1 --- CHANGELOG.md | 11 ++++++++ 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 | 12 ++++----- packages/libs/midway-flyway-js/CHANGELOG.md | 4 +++ packages/libs/midway-flyway-js/package.json | 2 +- packages/plugins/plugin-cert/CHANGELOG.md | 4 +++ packages/plugins/plugin-cert/package.json | 10 ++++---- packages/plugins/plugin-lib/CHANGELOG.md | 6 +++++ packages/plugins/plugin-lib/package.json | 10 ++++---- packages/ui/certd-client/CHANGELOG.md | 4 +++ packages/ui/certd-client/package.json | 6 ++--- packages/ui/certd-server/CHANGELOG.md | 10 ++++++++ packages/ui/certd-server/package.json | 28 ++++++++++----------- 28 files changed, 119 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bdee8be2e..52fd6926c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +### Bug Fixes + +* 修复自定义插件name丢失author导致找不到插件的bug ([2fbb58e](https://github.com/certd/certd/commit/2fbb58eb2b239eab4864f90aa72b0ef2ada38e8f)) + +### Performance Improvements + +* 优化内存占用 ([4fc8acc](https://github.com/certd/certd/commit/4fc8acce8c1beec38c24b0977b71ff6b18cb52c9)) +* 自定义插件支持使用_ctx.import("/@/xxx.js")以绝对路径引用模块 ([9eace86](https://github.com/certd/certd/commit/9eace86aeeb48c23b55102fc5d42088294d9eb97)) + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) ### Bug Fixes diff --git a/lerna.json b/lerna.json index 9d4aae386..a0fb6bb61 100644 --- a/lerna.json +++ b/lerna.json @@ -9,5 +9,5 @@ } }, "npmClient": "pnpm", - "version": "1.38.0" + "version": "1.38.1" } diff --git a/packages/core/acme-client/CHANGELOG.md b/packages/core/acme-client/CHANGELOG.md index 61f4fd812..2d4c45661 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.38.1](https://github.com/publishlab/node-acme-client/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/acme-client + # [1.38.0](https://github.com/publishlab/node-acme-client/compare/v1.37.17...v1.38.0) (2026-01-13) **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 ac25b1127..d2526a453 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.38.0", + "version": "1.38.1", "type": "module", "module": "scr/index.js", "main": "src/index.js", @@ -18,7 +18,7 @@ "types" ], "dependencies": { - "@certd/basic": "^1.38.0", + "@certd/basic": "^1.38.1", "@peculiar/x509": "^1.11.0", "asn1js": "^3.0.5", "axios": "^1.9.0", diff --git a/packages/core/basic/CHANGELOG.md b/packages/core/basic/CHANGELOG.md index 56409a727..6a26b1fc3 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/basic + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) **Note:** Version bump only for package @certd/basic diff --git a/packages/core/basic/package.json b/packages/core/basic/package.json index 8d218aeec..7f9adce0b 100644 --- a/packages/core/basic/package.json +++ b/packages/core/basic/package.json @@ -1,7 +1,7 @@ { "name": "@certd/basic", "private": false, - "version": "1.38.0", + "version": "1.38.1", "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 a0b52d986..b7f5fa6cd 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +### Bug Fixes + +* 修复自定义插件name丢失author导致找不到插件的bug ([2fbb58e](https://github.com/certd/certd/commit/2fbb58eb2b239eab4864f90aa72b0ef2ada38e8f)) + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) ### Features diff --git a/packages/core/pipeline/package.json b/packages/core/pipeline/package.json index fb003f031..82de89286 100644 --- a/packages/core/pipeline/package.json +++ b/packages/core/pipeline/package.json @@ -1,7 +1,7 @@ { "name": "@certd/pipeline", "private": false, - "version": "1.38.0", + "version": "1.38.1", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -18,8 +18,8 @@ "compile": "tsc --skipLibCheck --watch" }, "dependencies": { - "@certd/basic": "^1.38.0", - "@certd/plus-core": "^1.38.0", + "@certd/basic": "^1.38.1", + "@certd/plus-core": "^1.38.1", "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 e34e5d915..4bd9f4691 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/lib-huawei + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) **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 9fa99d1c6..5d7e51d08 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.38.0", + "version": "1.38.1", "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 17036bf05..ae4a747a4 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/lib-iframe + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) **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 9a351509f..b82860baf 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.38.0", + "version": "1.38.1", "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 bd2c65e99..236a0c8e3 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/jdcloud + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) **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 c491eaa0e..1d673ae2e 100644 --- a/packages/libs/lib-jdcloud/package.json +++ b/packages/libs/lib-jdcloud/package.json @@ -1,6 +1,6 @@ { "name": "@certd/jdcloud", - "version": "1.38.0", + "version": "1.38.1", "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 d68a2a16a..35f2d4dcf 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/lib-k8s + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) **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 db0e54207..c70ef9036 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.38.0", + "version": "1.38.1", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -17,7 +17,7 @@ "pub": "npm publish" }, "dependencies": { - "@certd/basic": "^1.38.0", + "@certd/basic": "^1.38.1", "@kubernetes/client-node": "0.21.0" }, "devDependencies": { diff --git a/packages/libs/lib-server/CHANGELOG.md b/packages/libs/lib-server/CHANGELOG.md index f76a6a0c5..ded799c6c 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/lib-server + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) ### Features diff --git a/packages/libs/lib-server/package.json b/packages/libs/lib-server/package.json index b01718500..a0c160e57 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.38.0", + "version": "1.38.1", "description": "midway with flyway, sql upgrade way ", "private": false, "type": "module", @@ -28,11 +28,11 @@ ], "license": "AGPL", "dependencies": { - "@certd/acme-client": "^1.38.0", - "@certd/basic": "^1.38.0", - "@certd/pipeline": "^1.38.0", - "@certd/plugin-lib": "^1.38.0", - "@certd/plus-core": "^1.38.0", + "@certd/acme-client": "^1.38.1", + "@certd/basic": "^1.38.1", + "@certd/pipeline": "^1.38.1", + "@certd/plugin-lib": "^1.38.1", + "@certd/plus-core": "^1.38.1", "@midwayjs/cache": "3.14.0", "@midwayjs/core": "3.20.11", "@midwayjs/i18n": "3.20.13", diff --git a/packages/libs/midway-flyway-js/CHANGELOG.md b/packages/libs/midway-flyway-js/CHANGELOG.md index 9398bc0f7..63502164c 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/midway-flyway-js + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) **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 4a9048667..6ebc62513 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.38.0", + "version": "1.38.1", "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 1cb998014..3a42cbdc5 100644 --- a/packages/plugins/plugin-cert/CHANGELOG.md +++ b/packages/plugins/plugin-cert/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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/plugin-cert + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) ### Features diff --git a/packages/plugins/plugin-cert/package.json b/packages/plugins/plugin-cert/package.json index 90ea00732..63652de3b 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.38.0", + "version": "1.38.1", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -17,10 +17,10 @@ "compile": "tsc --skipLibCheck --watch" }, "dependencies": { - "@certd/acme-client": "^1.38.0", - "@certd/basic": "^1.38.0", - "@certd/pipeline": "^1.38.0", - "@certd/plugin-lib": "^1.38.0", + "@certd/acme-client": "^1.38.1", + "@certd/basic": "^1.38.1", + "@certd/pipeline": "^1.38.1", + "@certd/plugin-lib": "^1.38.1", "psl": "^1.9.0", "punycode.js": "^2.3.1" }, diff --git a/packages/plugins/plugin-lib/CHANGELOG.md b/packages/plugins/plugin-lib/CHANGELOG.md index bc4a8db94..f1358c694 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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +### Bug Fixes + +* 修复自定义插件name丢失author导致找不到插件的bug ([2fbb58e](https://github.com/certd/certd/commit/2fbb58eb2b239eab4864f90aa72b0ef2ada38e8f)) + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) ### Features diff --git a/packages/plugins/plugin-lib/package.json b/packages/plugins/plugin-lib/package.json index a61ea8e7d..e8d0e16ba 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.38.0", + "version": "1.38.1", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -22,10 +22,10 @@ "@alicloud/pop-core": "^1.7.10", "@alicloud/tea-util": "^1.4.11", "@aws-sdk/client-s3": "^3.964.0", - "@certd/acme-client": "^1.38.0", - "@certd/basic": "^1.38.0", - "@certd/pipeline": "^1.38.0", - "@certd/plus-core": "^1.38.0", + "@certd/acme-client": "^1.38.1", + "@certd/basic": "^1.38.1", + "@certd/pipeline": "^1.38.1", + "@certd/plus-core": "^1.38.1", "@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 304d38bd1..bf9c79d57 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-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.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +**Note:** Version bump only for package @certd/ui-client + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) ### Bug Fixes diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index 5ba89637d..aceb37622 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.38.0", + "version": "1.38.1", "private": true, "scripts": { "dev": "vite --open", @@ -106,8 +106,8 @@ "zod-defaults": "^0.1.3" }, "devDependencies": { - "@certd/lib-iframe": "^1.38.0", - "@certd/pipeline": "^1.38.0", + "@certd/lib-iframe": "^1.38.1", + "@certd/pipeline": "^1.38.1", "@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 89c77aa1a..0fc512895 100644 --- a/packages/ui/certd-server/CHANGELOG.md +++ b/packages/ui/certd-server/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +### Bug Fixes + +* 修复自定义插件name丢失author导致找不到插件的bug ([2fbb58e](https://github.com/certd/certd/commit/2fbb58eb2b239eab4864f90aa72b0ef2ada38e8f)) + +### Performance Improvements + +* 自定义插件支持使用_ctx.import("/@/xxx.js")以绝对路径引用模块 ([9eace86](https://github.com/certd/certd/commit/9eace86aeeb48c23b55102fc5d42088294d9eb97)) + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) ### Bug Fixes diff --git a/packages/ui/certd-server/package.json b/packages/ui/certd-server/package.json index f5bd7b06c..cdc9e0fec 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.38.0", + "version": "1.38.1", "description": "fast-server base midway", "private": true, "type": "module", @@ -48,20 +48,20 @@ "@aws-sdk/client-iam": "^3.964.0", "@aws-sdk/client-route-53": "^3.964.0", "@aws-sdk/client-s3": "^3.964.0", - "@certd/acme-client": "^1.38.0", - "@certd/basic": "^1.38.0", - "@certd/commercial-core": "^1.38.0", + "@certd/acme-client": "^1.38.1", + "@certd/basic": "^1.38.1", + "@certd/commercial-core": "^1.38.1", "@certd/cv4pve-api-javascript": "^8.4.2", - "@certd/jdcloud": "^1.38.0", - "@certd/lib-huawei": "^1.38.0", - "@certd/lib-k8s": "^1.38.0", - "@certd/lib-server": "^1.38.0", - "@certd/midway-flyway-js": "^1.38.0", - "@certd/pipeline": "^1.38.0", - "@certd/plugin-cert": "^1.38.0", - "@certd/plugin-lib": "^1.38.0", - "@certd/plugin-plus": "^1.38.0", - "@certd/plus-core": "^1.38.0", + "@certd/jdcloud": "^1.38.1", + "@certd/lib-huawei": "^1.38.1", + "@certd/lib-k8s": "^1.38.1", + "@certd/lib-server": "^1.38.1", + "@certd/midway-flyway-js": "^1.38.1", + "@certd/pipeline": "^1.38.1", + "@certd/plugin-cert": "^1.38.1", + "@certd/plugin-lib": "^1.38.1", + "@certd/plugin-plus": "^1.38.1", + "@certd/plus-core": "^1.38.1", "@google-cloud/publicca": "^1.3.0", "@huaweicloud/huaweicloud-sdk-cdn": "^3.1.120", "@huaweicloud/huaweicloud-sdk-core": "^3.1.120", From 18146fdf9e3f4aff72f8328c0655e5ce5213aeac Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 01:00:03 +0800 Subject: [PATCH 06/10] build: trigger build image --- trigger/build.trigger | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trigger/build.trigger b/trigger/build.trigger index 0cfbf0888..6656d43cd 100644 --- a/trigger/build.trigger +++ b/trigger/build.trigger @@ -1 +1 @@ -2 +01:00 From 7b6cde6ae3bab859bece929f11601d11e55b0da0 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 01:00:16 +0800 Subject: [PATCH 07/10] build: publish --- docs/guide/changelogs/CHANGELOG.md | 11 +++++++++++ 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, 22 insertions(+), 11 deletions(-) diff --git a/docs/guide/changelogs/CHANGELOG.md b/docs/guide/changelogs/CHANGELOG.md index bdee8be2e..52fd6926c 100644 --- a/docs/guide/changelogs/CHANGELOG.md +++ b/docs/guide/changelogs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15) + +### Bug Fixes + +* 修复自定义插件name丢失author导致找不到插件的bug ([2fbb58e](https://github.com/certd/certd/commit/2fbb58eb2b239eab4864f90aa72b0ef2ada38e8f)) + +### Performance Improvements + +* 优化内存占用 ([4fc8acc](https://github.com/certd/certd/commit/4fc8acce8c1beec38c24b0977b71ff6b18cb52c9)) +* 自定义插件支持使用_ctx.import("/@/xxx.js")以绝对路径引用模块 ([9eace86](https://github.com/certd/certd/commit/9eace86aeeb48c23b55102fc5d42088294d9eb97)) + # [1.38.0](https://github.com/certd/certd/compare/v1.37.17...v1.38.0) (2026-01-13) ### Bug Fixes diff --git a/packages/core/acme-client/package.json b/packages/core/acme-client/package.json index d2526a453..fca9a30bd 100644 --- a/packages/core/acme-client/package.json +++ b/packages/core/acme-client/package.json @@ -70,5 +70,5 @@ "bugs": { "url": "https://github.com/publishlab/node-acme-client/issues" }, - "gitHead": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/core/basic/package.json b/packages/core/basic/package.json index 7f9adce0b..d116a7300 100644 --- a/packages/core/basic/package.json +++ b/packages/core/basic/package.json @@ -47,5 +47,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/core/pipeline/package.json b/packages/core/pipeline/package.json index 82de89286..b6d9bf148 100644 --- a/packages/core/pipeline/package.json +++ b/packages/core/pipeline/package.json @@ -45,5 +45,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/libs/lib-huawei/package.json b/packages/libs/lib-huawei/package.json index 5d7e51d08..29ce52be5 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": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/libs/lib-iframe/package.json b/packages/libs/lib-iframe/package.json index b82860baf..098bde614 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": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/libs/lib-jdcloud/package.json b/packages/libs/lib-jdcloud/package.json index 1d673ae2e..299829d50 100644 --- a/packages/libs/lib-jdcloud/package.json +++ b/packages/libs/lib-jdcloud/package.json @@ -56,5 +56,5 @@ "fetch" ] }, - "gitHead": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/libs/lib-k8s/package.json b/packages/libs/lib-k8s/package.json index c70ef9036..ee45a680b 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": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/libs/lib-server/package.json b/packages/libs/lib-server/package.json index a0c160e57..37ef6c840 100644 --- a/packages/libs/lib-server/package.json +++ b/packages/libs/lib-server/package.json @@ -64,5 +64,5 @@ "typeorm": "^0.3.11", "typescript": "^5.4.2" }, - "gitHead": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/libs/midway-flyway-js/package.json b/packages/libs/midway-flyway-js/package.json index 6ebc62513..e574bb7df 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": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/plugins/plugin-cert/package.json b/packages/plugins/plugin-cert/package.json index 63652de3b..0900f22d7 100644 --- a/packages/plugins/plugin-cert/package.json +++ b/packages/plugins/plugin-cert/package.json @@ -38,5 +38,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } diff --git a/packages/plugins/plugin-lib/package.json b/packages/plugins/plugin-lib/package.json index e8d0e16ba..fb7ee4b96 100644 --- a/packages/plugins/plugin-lib/package.json +++ b/packages/plugins/plugin-lib/package.json @@ -57,5 +57,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "a218cd0ffb16b658dd261e106cc0dbea63034756" + "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2" } From e634513f7b8329e521553218ddd85bc5166dfaa3 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 01:22:51 +0800 Subject: [PATCH 08/10] chore: docs --- packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts index 17e93c545..16fd72868 100644 --- a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts @@ -810,7 +810,7 @@ export default { oauthAutoRedirect: "自动跳转第三方登录", oauthAutoRedirectHelper: "是否自动跳转第三方登录(使用第一个已启用的第三方登录类型)", oauthOnly: "仅使用第三方登录", - oauthOnlyHelper: "是否仅使用第三方登录,关闭密码登录(注意:请务必在测试第三方登录功能正常后再开启)", + oauthOnlyHelper: "是否仅使用第三方登录,关闭密码登录(注意:请务必在测试第三方登录功能正常后再开启,否则会导致无法登录)\n 如果无法登录,请访问 http://你的certd地址/#/login?oauthOnly=false 来临时关闭此模式", email: { templates: "邮件模板", From 1cd3881aa80972f77f37323ebd17c2089ca1acb6 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 01:29:50 +0800 Subject: [PATCH 09/10] chore: docs --- docs/.vitepress/config.ts | 2 +- docs/guide/use/forgotpasswd/index.md | 27 +++++++++++++++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index c4b91849c..4f7d9b2f9 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -108,12 +108,12 @@ export default defineConfig({ text: "常见问题", items: [ {text: "QA", link: "/guide/qa/use.md"}, + {text: "忘记密码/无法登录", link: "/guide/use/forgotpasswd/"}, {text: "群晖证书部署", link: "/guide/use/synology/"}, {text: "腾讯云密钥获取", link: "/guide/use/tencent/"}, {text: "连接windows主机", link: "/guide/use/host/windows.md"}, {text: "Google EAB获取", link: "/guide/use/google/"}, {text: "阿里云相关", link: "/guide/use/aliyun/"}, - {text: "忘记密码", link: "/guide/use/forgotpasswd/"}, {text: "数据备份", link: "/guide/use/backup/"}, {text: "Certd本身的证书更新", link: "/guide/use/https/index.md"}, {text: "js脚本插件使用", link: "/guide/use/custom-script/index.md"}, diff --git a/docs/guide/use/forgotpasswd/index.md b/docs/guide/use/forgotpasswd/index.md index f84ccbf20..f05edcebc 100644 --- a/docs/guide/use/forgotpasswd/index.md +++ b/docs/guide/use/forgotpasswd/index.md @@ -1,7 +1,15 @@ -# 忘记管理员密码 +# 忘记密码/无法登录 + +无法登录的情况: +1、忘记管理员密码 +2、仅有第三方登录,但第三方登录失效,导致无法登录 + +请查看如下方法恢复的登录 + +## 一、忘记管理员密码 解决方法如下: -## 1. 修改环境变量 +### 1. 修改环境变量 docker部署的: 修改docker-compose.yaml文件,将环境变量`certd_system_resetAdminPasswd`改为`true` @@ -18,21 +26,28 @@ services: certd_system_resetAdminPasswd=true ``` -## 2. 重启容器 +### 2. 重启容器 ```shell docker compose up -d docker logs -f --tail 500 certd # 观察日志,当日志中输出“重置1号管理员用户密码完成”,即可操作下一步 # 这里会打印1号管理员记录的用户名,如果你修改过管理员用户名,请注意查看此条日志 ``` -## 3. 恢复环境变量 +### 3. 恢复环境变量 修改docker-compose.yaml,将`certd_system_resetAdminPasswd`改回`false` -## 4. 再次重启容器 +### 4. 再次重启容器 ```shell docker compose up -d ``` -## 5. 默认密码登录 +### 5. 默认密码登录 使用`原管理员账号/123456`登录系统,请及时修改管理员密码 > 默认管理员账号: admin > 如果忘记管理员账号,请查看修改密码时的启动日志,会打印管理员账号名 + + +## 二、仅有第三方登录,没有登录窗口 + +当开启仅使用第三方登录模式时,如果第三方登录未配置或已失效,则会导致无法登录 + +您可以通过访问 `http://你的certd地址/#/login?oauthOnly=false` 来临时关闭仅使用第三方登录模式,以使用密码登录。 \ No newline at end of file From 4f669ca82f9cc89b5d4fa8a44e9207725d87a9a0 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 16 Jan 2026 01:32:11 +0800 Subject: [PATCH 10/10] build: release --- trigger/release.trigger | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trigger/release.trigger b/trigger/release.trigger index 00750edc0..fd93886aa 100644 --- a/trigger/release.trigger +++ b/trigger/release.trigger @@ -1 +1 @@ -3 +01:32