feat: 【破坏性更新】插件改为metadata加载模式,plugin-cert、plugin-lib包部分代码转移到certd-server中,影响自定义插件,需要修改相关import引用

ssh、aliyun、tencent、qiniu、oss等 access和client需要转移import
This commit is contained in:
xiaojunnuo
2025-12-31 17:01:37 +08:00
parent 9c26598831
commit a3fb24993d
312 changed files with 14321 additions and 597 deletions
@@ -1,8 +1,11 @@
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine, QiniuAccess, QiniuClient } from '@certd/plugin-lib';
import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from '@certd/plugin-lib';
import { CertInfo } from '@certd/plugin-cert';
import { optionsUtils } from '@certd/basic';
import { CertApplyPluginNames} from '@certd/plugin-cert';
import { QiniuAccess } from '../../../plugin-lib/qiniu/access.js';
import { QiniuClient } from '../../../plugin-lib/qiniu/index.js';
@IsTaskPlugin({
name: 'QiniuDeployCertToCDN',
title: '七牛云-部署证书至CDN/DCDN',
@@ -1,2 +1,3 @@
export * from './deploy-to-cdn/index.js';
export * from './upload-cert/index.js';
export * from './plugin-deploy-to-oss.js';
@@ -0,0 +1,84 @@
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline";
import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert";
import { QiniuAccess, QiniuClient } from "../../plugin-lib/qiniu/index.js";
@IsTaskPlugin({
name: "QiniuDeployCertToOSS",
title: "七牛云-部署证书至OSS",
icon: "svg:icon-qiniuyun",
group: pluginGroups.qiniu.key,
desc: "自动部署域名证书至七牛云KODO,注意是自定义源站域名,不是CDN域名",
default: {
strategy: {
runStrategy: RunStrategy.SkipWhenSucceed,
},
},
})
export class QiniuDeployCertToOSS extends AbstractTaskPlugin {
@TaskInput({
title: "自定义源站域名",
helper: "你在七牛云上配置的OSS域名,比如:certd.handsfree.work",
required: true,
})
domainName!: string;
@TaskInput({
title: "域名证书",
helper: "请选择前置任务输出的域名证书,或者上传到七牛云的证书id",
component: {
name: "output-selector",
from: [...CertApplyPluginNames, "QiniuCertUpload"],
},
required: true,
})
cert!: CertInfo | string;
@TaskInput({
title: "Access授权",
helper: "七牛云授权",
component: {
name: "access-selector",
type: "qiniu",
},
required: true,
})
accessId!: string;
async onInstance() {}
async execute(): Promise<void> {
this.logger.info("开始部署证书到七牛云oss");
const access = await this.getAccess<QiniuAccess>(this.accessId);
const qiniuClient = new QiniuClient({
http: this.ctx.http,
access,
logger: this.logger,
});
let certId = null;
if (typeof this.cert !== "string") {
// 是证书id,直接上传即可
this.logger.info("先上传证书");
certId = await qiniuClient.uploadCert(this.cert, this.appendTimeSuffix("certd"));
} else {
certId = this.cert;
}
// const url1 = `https://uc.qiniuapi.com/v2/domains?tbl=handfree`;
// const ossDomains = await qiniuClient.doRequestV2({
// url: url1,
// method: "get",
// body: null,
// contentType: "application/x-www-form-urlencoded",
// });
// this.logger.info("ossDomains:", ossDomains);
//
// const res = await qiniuClient.getCertBindings();
// this.logger.info(res);
this.logger.info(`开始修改证书,certId:${certId},domain:${this.domainName}`);
await qiniuClient.bindCert({ certid: certId, domain: this.domainName });
this.logger.info("部署完成");
}
}
new QiniuDeployCertToOSS();
@@ -1,6 +1,7 @@
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput, TaskOutput } from '@certd/pipeline';
import { CertInfo } from '@certd/plugin-cert';
import { QiniuAccess, QiniuClient } from '@certd/plugin-lib';
import { QiniuAccess } from '../../../plugin-lib/qiniu/access.js';
import { QiniuClient } from '../../../plugin-lib/qiniu/index.js';
import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'QiniuCertUpload',