mirror of
https://github.com/certd/certd.git
synced 2026-04-14 12:30:54 +08:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
26f2c9fea2 | ||
|
|
290cc0d1bb | ||
|
|
78044c062e | ||
|
|
3a2f653229 | ||
|
|
bbe22e6f36 | ||
|
|
d4474ff0fb | ||
|
|
c7979f1be5 | ||
|
|
ada0b7106e | ||
|
|
c3a5542935 | ||
|
|
287c3688fd | ||
|
|
3948b3993f | ||
|
|
bcacafeb84 | ||
|
|
2193ddfabe | ||
|
|
29ae0b7dca | ||
|
|
904837df12 | ||
|
|
00c2da444f | ||
|
|
13d0dde9f4 | ||
|
|
548f2a960c | ||
|
|
71803f891d | ||
|
|
75a38d95f3 | ||
|
|
c89686a2fd | ||
|
|
398323533a | ||
|
|
a773872cf3 | ||
|
|
2eb0d55f92 | ||
|
|
54bd1ad0fa |
24
CHANGELOG.md
24
CHANGELOG.md
@@ -3,6 +3,30 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 适配最新版1panel密码编码方式 ([78044c0](https://github.com/certd/certd/commit/78044c062e20cdd04f08baef9fb6745bf25eddcf))
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 修复腾讯云CLB多域名同证书部署报错的bug ([c3a5542](https://github.com/certd/certd/commit/c3a55429357e78f4b78c9592d3e5897db2d4d549))
|
||||||
|
* 修复新版本1panel密码需要加密,无法登录的问题 ([ada0b71](https://github.com/certd/certd/commit/ada0b7106e97e551783829e4e719f76793a7123d))
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 当前置任务被删除时进行校验 ([c89686a](https://github.com/certd/certd/commit/c89686a2fda251484930f0ae715417b618c21690))
|
||||||
|
* 修复cloudflare删除解析记录报错的bug ([00c2da4](https://github.com/certd/certd/commit/00c2da444f84adb89f3f1226d03294d7c6e3e4f1))
|
||||||
|
|
||||||
|
### Performance Improvements
|
||||||
|
|
||||||
|
* 上传自定义证书 ([75a38d9](https://github.com/certd/certd/commit/75a38d95f305b4271d9106babe7cffc1c89ae8f3))
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ Certd 是一个免费全自动申请和自动部署更新SSL证书的管理系
|
|||||||
* 私有化部署,数据保存本地,授权信息加密存储,镜像由Github Actions构建,过程公开透明
|
* 私有化部署,数据保存本地,授权信息加密存储,镜像由Github Actions构建,过程公开透明
|
||||||
* 支持SQLite,PostgreSQL、MySQL数据库
|
* 支持SQLite,PostgreSQL、MySQL数据库
|
||||||
|
|
||||||
|
|
||||||
>
|
>
|
||||||
> 流水线数量现已调整为无限制,欢迎大家使用
|
> 流水线数量现已调整为无限制,欢迎大家使用
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
00:38
|
01:48
|
||||||
|
|||||||
@@ -78,7 +78,8 @@ export default defineConfig({
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ text: "演示教程", link: "/guide/tutorial.md" },
|
{ text: "演示教程", link: "/guide/tutorial.md" },
|
||||||
{ text: "版本升级", link: "/guide/install/upgrade.md" }
|
{ text: "版本升级", link: "/guide/install/upgrade.md" },
|
||||||
|
{ text: "切换数据库", link: "/guide/install/database.md" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -102,12 +103,12 @@ export default defineConfig({
|
|||||||
{ text: "js脚本插件使用", link: "/guide/use/custom-script/index.md" },
|
{ text: "js脚本插件使用", link: "/guide/use/custom-script/index.md" },
|
||||||
{ text: "邮箱配置", link: "/guide/use/email/index.md" },
|
{ text: "邮箱配置", link: "/guide/use/email/index.md" },
|
||||||
{ text: "IPv6支持", link: "/guide/use/setting/ipv6.md" },
|
{ text: "IPv6支持", link: "/guide/use/setting/ipv6.md" },
|
||||||
{ text: "如何贡献代码", link: "/guide/development/index.md" },
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "其他",
|
text: "其他",
|
||||||
items: [
|
items: [
|
||||||
|
{ text: "贡献代码", link: "/guide/development/index.md" },
|
||||||
{ text: "更新日志", link: "/guide/changelogs/CHANGELOG.md" },
|
{ text: "更新日志", link: "/guide/changelogs/CHANGELOG.md" },
|
||||||
{ text: "镜像说明", link: "/guide/image.md" },
|
{ text: "镜像说明", link: "/guide/image.md" },
|
||||||
{ text: "联系我们", link: "/guide/contact/" },
|
{ text: "联系我们", link: "/guide/contact/" },
|
||||||
|
|||||||
@@ -3,6 +3,37 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 修复腾讯云CLB多域名同证书部署报错的bug ([c3a5542](https://github.com/certd/certd/commit/c3a55429357e78f4b78c9592d3e5897db2d4d549))
|
||||||
|
* 修复新版本1panel密码需要加密,无法登录的问题 ([ada0b71](https://github.com/certd/certd/commit/ada0b7106e97e551783829e4e719f76793a7123d))
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 当前置任务被删除时进行校验 ([c89686a](https://github.com/certd/certd/commit/c89686a2fda251484930f0ae715417b618c21690))
|
||||||
|
* 修复cloudflare删除解析记录报错的bug ([00c2da4](https://github.com/certd/certd/commit/00c2da444f84adb89f3f1226d03294d7c6e3e4f1))
|
||||||
|
|
||||||
|
### Performance Improvements
|
||||||
|
|
||||||
|
* 上传自定义证书 ([75a38d9](https://github.com/certd/certd/commit/75a38d95f305b4271d9106babe7cffc1c89ae8f3))
|
||||||
|
|
||||||
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 修复部署到阿里云ALB、NLB插件加载混乱的bug ([6ab83b6](https://github.com/certd/certd/commit/6ab83b662a2c5e715b9cb7eb1244de2ebb7f47b0))
|
||||||
|
* 修复腾讯clb重复执行会报错的bug ([e95d29f](https://github.com/certd/certd/commit/e95d29f446d06eced315a3087fc9e105a30b20bd))
|
||||||
|
* 修复tg消息内容中存在.和*就会发送失败的bug ([ae5dfc3](https://github.com/certd/certd/commit/ae5dfc3bee950267123ae2fbd1c11e7ce36626ea))
|
||||||
|
|
||||||
|
### Performance Improvements
|
||||||
|
|
||||||
|
* 创建流水线时,默认成功时也发送通知 ([52ae690](https://github.com/certd/certd/commit/52ae6902d203ca56e0312692b50c55cb6ddd3e39))
|
||||||
|
* http方式校验,选择sftp时,支持修改文件访问权限比如777 ([15d6eaf](https://github.com/certd/certd/commit/15d6eaf5532ed25acd4f8d58c429353a2f44206c))
|
||||||
|
|
||||||
# [1.30.0](https://github.com/certd/certd/compare/v1.29.5...v1.30.0) (2025-01-19)
|
# [1.30.0](https://github.com/certd/certd/compare/v1.29.5...v1.30.0) (2025-01-19)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ https://1panel.cn/docs/installation/online_installation/
|
|||||||
3. 点击确定,启动容器
|
3. 点击确定,启动容器
|
||||||

|

|
||||||
|
|
||||||
> 默认数据保存在`/data/certd`目录下,可以手动备份
|
> 默认使用sqlite数据库,数据保存在`/data/certd`目录下,您可以手动备份该目录
|
||||||
|
> certd还支持`mysql`和`postgresql`数据库,[点我了解如何切换其他数据库](../../database/)
|
||||||
|
|
||||||
3. 访问测试
|
3. 访问测试
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,9 @@
|
|||||||
点击确定,等待启动完成
|
点击确定,等待启动完成
|
||||||

|

|
||||||
|
|
||||||
|
> certd默认使用sqlite数据库,另外支持`mysql`和`postgresql`数据库,[点我了解如何切换其他数据库](../../database/)
|
||||||
|
|
||||||
|
|
||||||
## 二、访问应用
|
## 二、访问应用
|
||||||
|
|
||||||
http://ip:7001
|
http://ip:7001
|
||||||
@@ -59,6 +62,7 @@ admin/123456
|
|||||||
数据默认保存在`/data/certd`目录下,可以手动备份
|
数据默认保存在`/data/certd`目录下,可以手动备份
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 4.3 自动备份
|
### 4.3 自动备份
|
||||||
|
|
||||||
> 建议配置一条 [数据库备份流水线](../../use/backup/),自动备份
|
> 建议配置一条 [数据库备份流水线](../../use/backup/),自动备份
|
||||||
|
|||||||
73
docs/guide/install/database.md
Normal file
73
docs/guide/install/database.md
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# 切换数据库
|
||||||
|
|
||||||
|
certd支持如下几种数据库:
|
||||||
|
1. sqlite3 (默认)
|
||||||
|
2. mysql
|
||||||
|
3. postgresql
|
||||||
|
|
||||||
|
您可以按如下两种方式切换数据库
|
||||||
|
|
||||||
|
|
||||||
|
## 一、全新安装
|
||||||
|
::: tip
|
||||||
|
以下按照`docker-compose`安装方式介绍如何使用mysql或postgresql数据库
|
||||||
|
如果您使用其他方式部署,请自行修改对应的环境变量即可。
|
||||||
|
:::
|
||||||
|
|
||||||
|
### 1.1、使用mysql数据库
|
||||||
|
|
||||||
|
1. 安装mysql,创建数据库 `(注意:charset=utf8mb4, collation=utf8mb4_bin)`
|
||||||
|
2. 下载最新的docker-compose.yaml
|
||||||
|
3. 修改环境变量配置
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
certd:
|
||||||
|
environment:
|
||||||
|
# 使用mysql数据库,需要提前创建数据库 charset=utf8mb4, collation=utf8mb4_bin
|
||||||
|
- certd_flyway_scriptDir=./db/migration-mysql # 升级脚本目录 【照抄】
|
||||||
|
- certd_typeorm_dataSource_default_type=mysql # 数据库类型, 或者 mariadb
|
||||||
|
- certd_typeorm_dataSource_default_host=localhost # 数据库地址
|
||||||
|
- certd_typeorm_dataSource_default_port=3306 # 数据库端口
|
||||||
|
- certd_typeorm_dataSource_default_username=root # 用户名
|
||||||
|
- certd_typeorm_dataSource_default_password=yourpasswd # 密码
|
||||||
|
- certd_typeorm_dataSource_default_database=certd # 数据库名
|
||||||
|
|
||||||
|
```
|
||||||
|
4. 启动certd
|
||||||
|
```shell
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### 1.2、使用Postgresql数据库
|
||||||
|
|
||||||
|
1. 安装postgresql,创建数据库
|
||||||
|
2. 下载最新的docker-compose.yaml
|
||||||
|
3. 修改环境变量配置
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
certd:
|
||||||
|
environment:
|
||||||
|
# 使用postgresql数据库,需要提前创建数据库
|
||||||
|
- certd_flyway_scriptDir=./db/migration-pg # 升级脚本目录 【照抄】
|
||||||
|
- certd_typeorm_dataSource_default_type=postgres # 数据库类型 【照抄】
|
||||||
|
- certd_typeorm_dataSource_default_host=localhost # 数据库地址
|
||||||
|
- certd_typeorm_dataSource_default_port=5433 # 数据库端口
|
||||||
|
- certd_typeorm_dataSource_default_username=postgres # 用户名
|
||||||
|
- certd_typeorm_dataSource_default_password=yourpasswd # 密码
|
||||||
|
- certd_typeorm_dataSource_default_database=certd # 数据库名
|
||||||
|
|
||||||
|
```
|
||||||
|
4. 启动certd
|
||||||
|
```shell
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## 二、从旧版的sqlite切换数据库
|
||||||
|
|
||||||
|
1. 先将`旧certd`升级到最新版 (`建议:备份sqlite数据库` )
|
||||||
|
2. 按照上面全新安装方式部署一套`新的certd` (`注意:新旧版本的certd要一致`)
|
||||||
|
3. 使用数据库工具将数据从sqlite导入到mysql或postgresql (`注意:flyway_history数据表不要导入`)
|
||||||
|
4. 重启新certd
|
||||||
|
5. 确认没有问题之后,删除旧版certd
|
||||||
|
|
||||||
@@ -42,6 +42,8 @@ docker compose up -d
|
|||||||
> 如果提示 没有docker compose命令,请安装docker-compose
|
> 如果提示 没有docker compose命令,请安装docker-compose
|
||||||
> https://docs.docker.com/compose/install/linux/
|
> https://docs.docker.com/compose/install/linux/
|
||||||
|
|
||||||
|
> certd默认使用sqlite数据库,另外还支持`mysql`和`postgresql`数据库,[点我了解如何切换其他数据库](../../database/)
|
||||||
|
|
||||||
|
|
||||||
### 3. 访问测试
|
### 3. 访问测试
|
||||||
|
|
||||||
|
|||||||
@@ -9,5 +9,5 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"npmClient": "pnpm",
|
"npmClient": "pnpm",
|
||||||
"version": "1.30.1"
|
"version": "1.30.4"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/publishlab/node-acme-client/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/acme-client
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/publishlab/node-acme-client/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/acme-client
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/publishlab/node-acme-client/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/acme-client
|
||||||
|
|
||||||
## [1.30.1](https://github.com/publishlab/node-acme-client/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/publishlab/node-acme-client/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
**Note:** Version bump only for package @certd/acme-client
|
**Note:** Version bump only for package @certd/acme-client
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"description": "Simple and unopinionated ACME client",
|
"description": "Simple and unopinionated ACME client",
|
||||||
"private": false,
|
"private": false,
|
||||||
"author": "nmorsman",
|
"author": "nmorsman",
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "scr/index.js",
|
"module": "scr/index.js",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
"types"
|
"types"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/basic": "^1.30.1",
|
"@certd/basic": "^1.30.4",
|
||||||
"@peculiar/x509": "^1.11.0",
|
"@peculiar/x509": "^1.11.0",
|
||||||
"asn1js": "^3.0.5",
|
"asn1js": "^3.0.5",
|
||||||
"axios": "^1.7.2",
|
"axios": "^1.7.2",
|
||||||
@@ -65,5 +65,5 @@
|
|||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/publishlab/node-acme-client/issues"
|
"url": "https://github.com/publishlab/node-acme-client/issues"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/basic
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/basic
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/basic
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
**Note:** Version bump only for package @certd/basic
|
**Note:** Version bump only for package @certd/basic
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
23:35
|
14:56
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/basic",
|
"name": "@certd/basic",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
@@ -44,5 +44,5 @@
|
|||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/pipeline
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/pipeline
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/pipeline
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/pipeline",
|
"name": "@certd/pipeline",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
@@ -16,8 +16,8 @@
|
|||||||
"test": "mocha --loader=ts-node/esm"
|
"test": "mocha --loader=ts-node/esm"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/basic": "^1.30.1",
|
"@certd/basic": "^1.30.4",
|
||||||
"@certd/plus-core": "^1.30.1",
|
"@certd/plus-core": "^1.30.4",
|
||||||
"dayjs": "^1.11.7",
|
"dayjs": "^1.11.7",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"reflect-metadata": "^0.1.13"
|
"reflect-metadata": "^0.1.13"
|
||||||
@@ -43,5 +43,5 @@
|
|||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-huawei
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-huawei
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-huawei
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
**Note:** Version bump only for package @certd/lib-huawei
|
**Note:** Version bump only for package @certd/lib-huawei
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/lib-huawei",
|
"name": "@certd/lib-huawei",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"main": "./dist/bundle.js",
|
"main": "./dist/bundle.js",
|
||||||
"module": "./dist/bundle.js",
|
"module": "./dist/bundle.js",
|
||||||
"types": "./dist/d/index.d.ts",
|
"types": "./dist/d/index.d.ts",
|
||||||
@@ -21,5 +21,5 @@
|
|||||||
"prettier": "^2.8.8",
|
"prettier": "^2.8.8",
|
||||||
"tslib": "^2.8.1"
|
"tslib": "^2.8.1"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-iframe
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-iframe
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-iframe
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
**Note:** Version bump only for package @certd/lib-iframe
|
**Note:** Version bump only for package @certd/lib-iframe
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/lib-iframe",
|
"name": "@certd/lib-iframe",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
@@ -30,5 +30,5 @@
|
|||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-k8s
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-k8s
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-k8s
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
**Note:** Version bump only for package @certd/lib-k8s
|
**Note:** Version bump only for package @certd/lib-k8s
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/lib-k8s",
|
"name": "@certd/lib-k8s",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
"preview": "vite preview"
|
"preview": "vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/basic": "^1.30.1",
|
"@certd/basic": "^1.30.4",
|
||||||
"@kubernetes/client-node": "0.21.0"
|
"@kubernetes/client-node": "0.21.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -31,5 +31,5 @@
|
|||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-server
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-server
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/lib-server
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
**Note:** Version bump only for package @certd/lib-server
|
**Note:** Version bump only for package @certd/lib-server
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/lib-server",
|
"name": "@certd/lib-server",
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"description": "midway with flyway, sql upgrade way ",
|
"description": "midway with flyway, sql upgrade way ",
|
||||||
"private": false,
|
"private": false,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -27,10 +27,10 @@
|
|||||||
],
|
],
|
||||||
"license": "AGPL",
|
"license": "AGPL",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/acme-client": "^1.30.1",
|
"@certd/acme-client": "^1.30.4",
|
||||||
"@certd/basic": "^1.30.1",
|
"@certd/basic": "^1.30.4",
|
||||||
"@certd/pipeline": "^1.30.1",
|
"@certd/pipeline": "^1.30.4",
|
||||||
"@certd/plus-core": "^1.30.1",
|
"@certd/plus-core": "^1.30.4",
|
||||||
"@midwayjs/cache": "~3.14.0",
|
"@midwayjs/cache": "~3.14.0",
|
||||||
"@midwayjs/core": "~3.17.1",
|
"@midwayjs/core": "~3.17.1",
|
||||||
"@midwayjs/i18n": "~3.17.3",
|
"@midwayjs/i18n": "~3.17.3",
|
||||||
@@ -61,5 +61,5 @@
|
|||||||
"typeorm": "^0.3.11",
|
"typeorm": "^0.3.11",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/midway-flyway-js
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/midway-flyway-js
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/midway-flyway-js
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
**Note:** Version bump only for package @certd/midway-flyway-js
|
**Note:** Version bump only for package @certd/midway-flyway-js
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/midway-flyway-js",
|
"name": "@certd/midway-flyway-js",
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"description": "midway with flyway, sql upgrade way ",
|
"description": "midway with flyway, sql upgrade way ",
|
||||||
"private": false,
|
"private": false,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -46,5 +46,5 @@
|
|||||||
"typeorm": "^0.3.11",
|
"typeorm": "^0.3.11",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/plugin-cert
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/plugin-cert
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/plugin-cert
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
### Performance Improvements
|
### Performance Improvements
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/plugin-cert",
|
"name": "@certd/plugin-cert",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"types": "./dist/index.d.ts",
|
"types": "./dist/index.d.ts",
|
||||||
@@ -15,10 +15,10 @@
|
|||||||
"preview": "vite preview"
|
"preview": "vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/acme-client": "^1.30.1",
|
"@certd/acme-client": "^1.30.4",
|
||||||
"@certd/basic": "^1.30.1",
|
"@certd/basic": "^1.30.4",
|
||||||
"@certd/pipeline": "^1.30.1",
|
"@certd/pipeline": "^1.30.4",
|
||||||
"@certd/plugin-lib": "^1.30.1",
|
"@certd/plugin-lib": "^1.30.4",
|
||||||
"@google-cloud/publicca": "^1.3.0",
|
"@google-cloud/publicca": "^1.3.0",
|
||||||
"dayjs": "^1.11.7",
|
"dayjs": "^1.11.7",
|
||||||
"jszip": "^3.10.1",
|
"jszip": "^3.10.1",
|
||||||
@@ -41,5 +41,5 @@
|
|||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/plugin-lib
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/plugin-lib
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/plugin-lib
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
### Performance Improvements
|
### Performance Improvements
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/plugin-lib",
|
"name": "@certd/plugin-lib",
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"types": "./dist/index.d.ts",
|
"types": "./dist/index.d.ts",
|
||||||
@@ -16,8 +16,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alicloud/pop-core": "^1.7.10",
|
"@alicloud/pop-core": "^1.7.10",
|
||||||
"@certd/basic": "^1.30.1",
|
"@certd/basic": "^1.30.4",
|
||||||
"@certd/pipeline": "^1.30.1",
|
"@certd/pipeline": "^1.30.4",
|
||||||
"@kubernetes/client-node": "0.21.0",
|
"@kubernetes/client-node": "0.21.0",
|
||||||
"ali-oss": "^6.21.0",
|
"ali-oss": "^6.21.0",
|
||||||
"basic-ftp": "^5.0.5",
|
"basic-ftp": "^5.0.5",
|
||||||
@@ -48,5 +48,5 @@
|
|||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"gitHead": "9a78dad57619e02d1390cf5a013695a2aaf20e64"
|
"gitHead": "d4474ff0fb59947e16963fca28301ee8faddc572"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,24 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/ui-client
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @certd/ui-client
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 当前置任务被删除时进行校验 ([c89686a](https://github.com/certd/certd/commit/c89686a2fda251484930f0ae715417b618c21690))
|
||||||
|
|
||||||
|
### Performance Improvements
|
||||||
|
|
||||||
|
* 上传自定义证书 ([75a38d9](https://github.com/certd/certd/commit/75a38d95f305b4271d9106babe7cffc1c89ae8f3))
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
### Performance Improvements
|
### Performance Improvements
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/ui-client",
|
"name": "@certd/ui-client",
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite --open",
|
"dev": "vite --open",
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
"vuedraggable": "^4.1.0"
|
"vuedraggable": "^4.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@certd/lib-iframe": "^1.30.1",
|
"@certd/lib-iframe": "^1.30.4",
|
||||||
"@certd/pipeline": "^1.30.1",
|
"@certd/pipeline": "^1.30.4",
|
||||||
"@rollup/plugin-commonjs": "^25.0.7",
|
"@rollup/plugin-commonjs": "^25.0.7",
|
||||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||||
"@types/chai": "^4.3.12",
|
"@types/chai": "^4.3.12",
|
||||||
|
|||||||
@@ -10,9 +10,8 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import zhCN from "ant-design-vue/es/locale/zh_CN";
|
import zhCN from "ant-design-vue/es/locale/zh_CN";
|
||||||
import enUS from "ant-design-vue/es/locale/en_US";
|
import enUS from "ant-design-vue/es/locale/en_US";
|
||||||
import { nextTick, provide, ref } from "vue";
|
import { provide, ref } from "vue";
|
||||||
import { usePageStore } from "/src/store/modules/page";
|
import { usePageStore } from "/src/store/modules/page";
|
||||||
import { useResourceStore } from "/src/store/modules/resource";
|
|
||||||
import { useSettingStore } from "/@/store/modules/settings";
|
import { useSettingStore } from "/@/store/modules/settings";
|
||||||
import "dayjs/locale/zh-cn";
|
import "dayjs/locale/zh-cn";
|
||||||
import "dayjs/locale/en";
|
import "dayjs/locale/en";
|
||||||
|
|||||||
@@ -44,8 +44,15 @@ export default {
|
|||||||
options.value = options.value.filter((item: any) => props.from.includes(item.type));
|
options.value = options.value.filter((item: any) => props.from.includes(item.type));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (props.modelValue == null && options.value.length > 0) {
|
|
||||||
ctx.emit("update:modelValue", options.value[0].value);
|
if (props.modelValue != null) {
|
||||||
|
const found = options.value.find((item: any) => item.value === props.modelValue);
|
||||||
|
if (!found) {
|
||||||
|
ctx.emit("update:modelValue", undefined);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const value = options.value.length > 0 ? options.value[0].value : undefined;
|
||||||
|
ctx.emit("update:modelValue", value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
|||||||
key: "id",
|
key: "id",
|
||||||
type: "number",
|
type: "number",
|
||||||
column: {
|
column: {
|
||||||
width: 100
|
width: 80
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
show: false
|
show: false
|
||||||
|
|||||||
@@ -1,54 +1,57 @@
|
|||||||
import { request } from "/src/api/service";
|
import { request } from "/src/api/service";
|
||||||
|
|
||||||
export function createApi() {
|
const apiPrefix = "/monitor/cert";
|
||||||
const apiPrefix = "/monitor/cert";
|
export const certInfoApi = {
|
||||||
return {
|
async GetList(query: any) {
|
||||||
async GetList(query: any) {
|
return await request({
|
||||||
return await request({
|
url: apiPrefix + "/page",
|
||||||
url: apiPrefix + "/page",
|
method: "post",
|
||||||
method: "post",
|
data: query
|
||||||
data: query
|
});
|
||||||
});
|
},
|
||||||
},
|
|
||||||
|
|
||||||
async AddObj(obj: any) {
|
async AddObj(obj: any) {
|
||||||
return await request({
|
return await request({
|
||||||
url: apiPrefix + "/add",
|
url: apiPrefix + "/add",
|
||||||
method: "post",
|
method: "post",
|
||||||
data: obj
|
data: obj
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
async UpdateObj(obj: any) {
|
async UpdateObj(obj: any) {
|
||||||
return await request({
|
return await request({
|
||||||
url: apiPrefix + "/update",
|
url: apiPrefix + "/update",
|
||||||
method: "post",
|
method: "post",
|
||||||
data: obj
|
data: obj
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
async DelObj(id: number) {
|
async DelObj(id: number) {
|
||||||
return await request({
|
return await request({
|
||||||
url: apiPrefix + "/delete",
|
url: apiPrefix + "/delete",
|
||||||
method: "post",
|
method: "post",
|
||||||
params: { id }
|
params: { id }
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
async GetObj(id: number) {
|
async GetObj(id: number) {
|
||||||
return await request({
|
return await request({
|
||||||
url: apiPrefix + "/info",
|
url: apiPrefix + "/info",
|
||||||
method: "post",
|
method: "post",
|
||||||
params: { id }
|
params: { id }
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async ListAll() {
|
async ListAll() {
|
||||||
return await request({
|
return await request({
|
||||||
url: apiPrefix + "/all",
|
url: apiPrefix + "/all",
|
||||||
method: "post"
|
method: "post"
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
};
|
async Upload(body: { id?: number; cert: { crt: string; key: string } }) {
|
||||||
}
|
return await request({
|
||||||
|
url: apiPrefix + "/upload",
|
||||||
export const pipelineGroupApi = createApi();
|
method: "post",
|
||||||
|
data: body
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud";
|
import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, EditReq, useFormWrapper, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud";
|
||||||
import { pipelineGroupApi } from "./api";
|
import { certInfoApi } from "./api";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
|
import { useUserStore } from "/@/store/modules/user";
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
|
|
||||||
export default function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet {
|
export default function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet {
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const api = pipelineGroupApi;
|
const api = certInfoApi;
|
||||||
const pageRequest = async (query: UserPageQuery): Promise<UserPageRes> => {
|
const pageRequest = async (query: UserPageQuery): Promise<UserPageRes> => {
|
||||||
return await api.GetList(query);
|
return await api.GetList(query);
|
||||||
};
|
};
|
||||||
@@ -26,7 +28,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
|||||||
const res = await api.AddObj(form);
|
const res = await api.AddObj(form);
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
const { openCrudFormDialog } = useFormWrapper();
|
||||||
|
const router = useRouter();
|
||||||
return {
|
return {
|
||||||
crudOptions: {
|
crudOptions: {
|
||||||
request: {
|
request: {
|
||||||
@@ -50,7 +53,68 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
|||||||
width: 600
|
width: 600
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actionbar: { show: false },
|
actionbar: {
|
||||||
|
show: true,
|
||||||
|
buttons: {
|
||||||
|
add: {
|
||||||
|
text: "上传自定义证书",
|
||||||
|
type: "primary",
|
||||||
|
show: false,
|
||||||
|
async click() {
|
||||||
|
function createCrudOptions() {
|
||||||
|
return {
|
||||||
|
crudOptions: {
|
||||||
|
request: {
|
||||||
|
addRequest: async (form: any) => {
|
||||||
|
return await api.Upload(form);
|
||||||
|
},
|
||||||
|
editRequest: async (form: any) => {
|
||||||
|
return await api.Upload(form);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
columns: {
|
||||||
|
id: {
|
||||||
|
title: "ID",
|
||||||
|
type: "number",
|
||||||
|
form: {
|
||||||
|
show: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cert.crt": {
|
||||||
|
title: "证书",
|
||||||
|
type: "textarea",
|
||||||
|
form: {
|
||||||
|
component: {
|
||||||
|
rows: 4
|
||||||
|
},
|
||||||
|
rules: [{ required: true, message: "此项必填" }]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cert.key": {
|
||||||
|
title: "私钥",
|
||||||
|
type: "textarea",
|
||||||
|
form: {
|
||||||
|
component: {
|
||||||
|
rows: 4
|
||||||
|
},
|
||||||
|
rules: [{ required: true, message: "此项必填" }]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
wrapper: {
|
||||||
|
title: "上传自定义证书"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const { crudOptions } = createCrudOptions();
|
||||||
|
const wrapperRef = await openCrudFormDialog({ crudOptions });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
rowHandle: {
|
rowHandle: {
|
||||||
width: 200,
|
width: 200,
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
@@ -176,7 +240,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pipeline.title": {
|
"pipeline.title": {
|
||||||
title: "已关联流水线",
|
title: "关联流水线",
|
||||||
search: { show: false },
|
search: { show: false },
|
||||||
type: "link",
|
type: "link",
|
||||||
form: {
|
form: {
|
||||||
@@ -185,7 +249,13 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
|||||||
column: {
|
column: {
|
||||||
width: 350,
|
width: 350,
|
||||||
sorter: true,
|
sorter: true,
|
||||||
component: {}
|
component: {
|
||||||
|
on: {
|
||||||
|
onClick({ row }) {
|
||||||
|
router.push({ path: "/certd/pipeline/detail", query: { id: row.pipelineId, editMode: "false" } });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,8 @@
|
|||||||
<div
|
<div
|
||||||
class="task-container"
|
class="task-container"
|
||||||
:class="{
|
:class="{
|
||||||
'first-task': taskIndex === 0
|
'first-task': taskIndex === 0,
|
||||||
|
'validate-error': hasValidateError(task.id)
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div class="line line-left">
|
<div class="line line-left">
|
||||||
@@ -171,7 +172,6 @@
|
|||||||
<div class="task">
|
<div class="task">
|
||||||
<a-button shape="round" type="dashed" @click="notificationAdd()">
|
<a-button shape="round" type="dashed" @click="notificationAdd()">
|
||||||
<fs-icon icon="ion:add-circle-outline"></fs-icon>
|
<fs-icon icon="ion:add-circle-outline"></fs-icon>
|
||||||
|
|
||||||
添加通知
|
添加通知
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -626,7 +626,78 @@ export default defineComponent({
|
|||||||
function toggleEditMode(editMode: boolean) {
|
function toggleEditMode(editMode: boolean) {
|
||||||
ctx.emit("update:editMode", editMode);
|
ctx.emit("update:editMode", editMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const validateErrors: Ref = ref({});
|
||||||
|
function addValidateError(taskId: string, error: any) {
|
||||||
|
const errors = validateErrors.value[taskId] || [];
|
||||||
|
validateErrors.value[taskId] = errors;
|
||||||
|
errors.push(error);
|
||||||
|
}
|
||||||
|
function doValidate() {
|
||||||
|
validateErrors.value = {};
|
||||||
|
|
||||||
|
const stepIds: string[] = [];
|
||||||
|
//校验output id是否正确
|
||||||
|
const pp = pipeline.value;
|
||||||
|
function eachSteps(callback: any) {
|
||||||
|
if (pp.stages) {
|
||||||
|
for (const stage of pp.stages) {
|
||||||
|
if (stage.tasks) {
|
||||||
|
for (const task of stage.tasks) {
|
||||||
|
if (task.steps) {
|
||||||
|
for (const step of task.steps) {
|
||||||
|
callback(step, task, stage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//检查输出的stepid是否存在
|
||||||
|
let hasError = false;
|
||||||
|
let errorMessage = "";
|
||||||
|
eachSteps((step: any, task: any, stage: any) => {
|
||||||
|
stepIds.push(step.id);
|
||||||
|
if (step.input) {
|
||||||
|
for (const key in step.input) {
|
||||||
|
const value = step.input[key];
|
||||||
|
if (value == null || typeof value != "string" || !value.startsWith("step.")) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const arr = value.split(".");
|
||||||
|
if (arr.length != 3) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const stepId = arr[1];
|
||||||
|
const paramName = arr[2];
|
||||||
|
if (!stepIds.includes(stepId)) {
|
||||||
|
hasError = true;
|
||||||
|
const message = `任务${step.title}的前置输出步骤${paramName}不存在,请重新修改此任务`;
|
||||||
|
addValidateError(task.id, {
|
||||||
|
message
|
||||||
|
});
|
||||||
|
addValidateError(step.id, {
|
||||||
|
message
|
||||||
|
});
|
||||||
|
errorMessage += message + ";";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (hasError) {
|
||||||
|
notification.error({ message: errorMessage });
|
||||||
|
throw new Error(errorMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function hasValidateError(taskId: string) {
|
||||||
|
return validateErrors.value[taskId] != null;
|
||||||
|
}
|
||||||
const save = async () => {
|
const save = async () => {
|
||||||
|
doValidate();
|
||||||
|
|
||||||
saveLoading.value = true;
|
saveLoading.value = true;
|
||||||
try {
|
try {
|
||||||
if (props.options.doSave) {
|
if (props.options.doSave) {
|
||||||
@@ -663,7 +734,8 @@ export default defineComponent({
|
|||||||
save,
|
save,
|
||||||
edit,
|
edit,
|
||||||
cancel,
|
cancel,
|
||||||
saveLoading
|
saveLoading,
|
||||||
|
hasValidateError
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -875,6 +947,14 @@ export default defineComponent({
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
&.validate-error {
|
||||||
|
.task {
|
||||||
|
.ant-btn {
|
||||||
|
border-color: red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.task {
|
.task {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|||||||
@@ -217,9 +217,9 @@ async function loadPluginGroups() {
|
|||||||
const pluginGroups = ref();
|
const pluginGroups = ref();
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await userStore.loadUserInfo();
|
await userStore.loadUserInfo();
|
||||||
await loadLatestVersion();
|
loadLatestVersion();
|
||||||
await loadCount();
|
loadCount();
|
||||||
await loadPluginGroups();
|
loadPluginGroups();
|
||||||
});
|
});
|
||||||
|
|
||||||
function openUpgradeUrl() {
|
function openUpgradeUrl() {
|
||||||
|
|||||||
@@ -3,6 +3,28 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.30.4](https://github.com/certd/certd/compare/v1.30.3...v1.30.4) (2025-02-14)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 适配最新版1panel密码编码方式 ([78044c0](https://github.com/certd/certd/commit/78044c062e20cdd04f08baef9fb6745bf25eddcf))
|
||||||
|
|
||||||
|
## [1.30.3](https://github.com/certd/certd/compare/v1.30.2...v1.30.3) (2025-02-13)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 修复腾讯云CLB多域名同证书部署报错的bug ([c3a5542](https://github.com/certd/certd/commit/c3a55429357e78f4b78c9592d3e5897db2d4d549))
|
||||||
|
|
||||||
|
## [1.30.2](https://github.com/certd/certd/compare/v1.30.1...v1.30.2) (2025-02-09)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 修复cloudflare删除解析记录报错的bug ([00c2da4](https://github.com/certd/certd/commit/00c2da444f84adb89f3f1226d03294d7c6e3e4f1))
|
||||||
|
|
||||||
|
### Performance Improvements
|
||||||
|
|
||||||
|
* 上传自定义证书 ([75a38d9](https://github.com/certd/certd/commit/75a38d95f305b4271d9106babe7cffc1c89ae8f3))
|
||||||
|
|
||||||
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
## [1.30.1](https://github.com/certd/certd/compare/v1.30.0...v1.30.1) (2025-01-20)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -11,6 +11,5 @@
|
|||||||
|
|
||||||
```shell
|
```shell
|
||||||
npm run heap
|
npm run heap
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@certd/ui-server",
|
"name": "@certd/ui-server",
|
||||||
"version": "1.30.1",
|
"version": "1.30.4",
|
||||||
"description": "fast-server base midway",
|
"description": "fast-server base midway",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -34,18 +34,18 @@
|
|||||||
"@aws-sdk/client-acm": "^3.699.0",
|
"@aws-sdk/client-acm": "^3.699.0",
|
||||||
"@aws-sdk/client-cloudfront": "^3.699.0",
|
"@aws-sdk/client-cloudfront": "^3.699.0",
|
||||||
"@aws-sdk/client-s3": "^3.705.0",
|
"@aws-sdk/client-s3": "^3.705.0",
|
||||||
"@certd/acme-client": "^1.30.1",
|
"@certd/acme-client": "^1.30.4",
|
||||||
"@certd/basic": "^1.30.1",
|
"@certd/basic": "^1.30.4",
|
||||||
"@certd/commercial-core": "^1.30.1",
|
"@certd/commercial-core": "^1.30.4",
|
||||||
"@certd/lib-huawei": "^1.30.1",
|
"@certd/lib-huawei": "^1.30.4",
|
||||||
"@certd/lib-k8s": "^1.30.1",
|
"@certd/lib-k8s": "^1.30.4",
|
||||||
"@certd/lib-server": "^1.30.1",
|
"@certd/lib-server": "^1.30.4",
|
||||||
"@certd/midway-flyway-js": "^1.30.1",
|
"@certd/midway-flyway-js": "^1.30.4",
|
||||||
"@certd/pipeline": "^1.30.1",
|
"@certd/pipeline": "^1.30.4",
|
||||||
"@certd/plugin-cert": "^1.30.1",
|
"@certd/plugin-cert": "^1.30.4",
|
||||||
"@certd/plugin-lib": "^1.30.1",
|
"@certd/plugin-lib": "^1.30.4",
|
||||||
"@certd/plugin-plus": "^1.30.1",
|
"@certd/plugin-plus": "^1.30.4",
|
||||||
"@certd/plus-core": "^1.30.1",
|
"@certd/plus-core": "^1.30.4",
|
||||||
"@corsinvest/cv4pve-api-javascript": "^8.3.0",
|
"@corsinvest/cv4pve-api-javascript": "^8.3.0",
|
||||||
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.120",
|
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.120",
|
||||||
"@huaweicloud/huaweicloud-sdk-core": "^3.1.120",
|
"@huaweicloud/huaweicloud-sdk-core": "^3.1.120",
|
||||||
|
|||||||
@@ -15,12 +15,13 @@ export class AppController extends BaseController {
|
|||||||
|
|
||||||
@Get('/latest', { summary: Constants.per.authOnly })
|
@Get('/latest', { summary: Constants.per.authOnly })
|
||||||
async latest(): Promise<any> {
|
async latest(): Promise<any> {
|
||||||
const res = await http.request({
|
|
||||||
url: 'https://registry.npmmirror.com/@certd/pipeline',
|
|
||||||
method: 'get',
|
|
||||||
logRes: false,
|
|
||||||
});
|
|
||||||
try {
|
try {
|
||||||
|
const res = await http.request({
|
||||||
|
url: 'https://registry.npmmirror.com/@certd/pipeline',
|
||||||
|
method: 'get',
|
||||||
|
logRes: false,
|
||||||
|
timeout: 5000,
|
||||||
|
});
|
||||||
const latest = res['dist-tags'].latest;
|
const latest = res['dist-tags'].latest;
|
||||||
return this.ok(latest);
|
return this.ok(latest);
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
SysSuiteSetting,
|
SysSuiteSetting,
|
||||||
} from '@certd/lib-server';
|
} from '@certd/lib-server';
|
||||||
import { AppKey, getPlusInfo, isComm } from '@certd/plus-core';
|
import { AppKey, getPlusInfo, isComm } from '@certd/plus-core';
|
||||||
|
import { cloneDeep } from 'lodash-es';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@@ -62,7 +63,10 @@ export class BasicSettingsController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async plusInfo() {
|
async plusInfo() {
|
||||||
return getPlusInfo();
|
const res = getPlusInfo();
|
||||||
|
const copy = cloneDeep(res);
|
||||||
|
delete copy.secret;
|
||||||
|
return copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('/all', { summary: Constants.per.guest })
|
@Get('/all', { summary: Constants.per.guest })
|
||||||
|
|||||||
@@ -84,4 +84,15 @@ export class CertInfoController extends CrudController<CertInfoService> {
|
|||||||
});
|
});
|
||||||
return this.ok(list);
|
return this.ok(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Post('/upload', { summary: Constants.per.authOnly })
|
||||||
|
async upload(@Body(ALL) body: any) {
|
||||||
|
if (body.id) {
|
||||||
|
await this.service.checkUserId(body.id, this.getUserId());
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await this.service.upload(body);
|
||||||
|
|
||||||
|
return this.ok(res);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export class AutoEPipelineEmitterRegister {
|
|||||||
}
|
}
|
||||||
async onCertApplySuccess() {
|
async onCertApplySuccess() {
|
||||||
pipelineEmitter.on(EVENT_CERT_APPLY_SUCCESS, async (event: PipelineEvent<CertReader>) => {
|
pipelineEmitter.on(EVENT_CERT_APPLY_SUCCESS, async (event: PipelineEvent<CertReader>) => {
|
||||||
await this.certInfoService.updateCert(event.pipeline.id, event.event);
|
await this.certInfoService.updateCertByPipelineId(event.pipeline.id, event.event);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
import { Provide, Scope, ScopeEnum } from '@midwayjs/core';
|
import { Provide, Scope, ScopeEnum } from '@midwayjs/core';
|
||||||
import { BaseService, CodeException, Constants, PageReq } from '@certd/lib-server';
|
import { BaseService, CodeException, CommonException, Constants, PageReq } from '@certd/lib-server';
|
||||||
import { InjectEntityModel } from '@midwayjs/typeorm';
|
import { InjectEntityModel } from '@midwayjs/typeorm';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
import { CertInfoEntity } from '../entity/cert-info.js';
|
import { CertInfoEntity } from '../entity/cert-info.js';
|
||||||
import { utils } from '@certd/basic';
|
import { utils } from '@certd/basic';
|
||||||
import { CertInfo, CertReader } from '@certd/plugin-cert';
|
import { CertInfo, CertReader } from '@certd/plugin-cert';
|
||||||
|
|
||||||
|
export type UploadCertReq = {
|
||||||
|
id?: number;
|
||||||
|
certReader: CertReader;
|
||||||
|
fromType?: string;
|
||||||
|
};
|
||||||
|
|
||||||
@Provide()
|
@Provide()
|
||||||
@Scope(ScopeEnum.Request, { allowDowngrade: true })
|
@Scope(ScopeEnum.Request, { allowDowngrade: true })
|
||||||
export class CertInfoService extends BaseService<CertInfoEntity> {
|
export class CertInfoService extends BaseService<CertInfoEntity> {
|
||||||
@@ -125,15 +131,27 @@ export class CertInfoService extends BaseService<CertInfoEntity> {
|
|||||||
return certReader.toCertInfo();
|
return certReader.toCertInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateCert(pipelineId: number, certReader: CertReader) {
|
async updateCertByPipelineId(pipelineId: number, certReader: CertReader, fromType = 'pipeline') {
|
||||||
const found = await this.repository.findOne({
|
const found = await this.repository.findOne({
|
||||||
where: {
|
where: {
|
||||||
pipelineId,
|
pipelineId,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
const bean = await this.updateCert({
|
||||||
|
id: found?.id,
|
||||||
|
certReader,
|
||||||
|
fromType,
|
||||||
|
});
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async updateCert(req: UploadCertReq) {
|
||||||
const bean = new CertInfoEntity();
|
const bean = new CertInfoEntity();
|
||||||
if (found) {
|
const { id, fromType, certReader } = req;
|
||||||
bean.id = found.id;
|
if (id) {
|
||||||
|
bean.id = id;
|
||||||
|
} else {
|
||||||
|
bean.fromType = fromType;
|
||||||
}
|
}
|
||||||
const certInfo = certReader.toCertInfo();
|
const certInfo = certReader.toCertInfo();
|
||||||
bean.certInfo = JSON.stringify(certInfo);
|
bean.certInfo = JSON.stringify(certInfo);
|
||||||
@@ -146,5 +164,19 @@ export class CertInfoService extends BaseService<CertInfoEntity> {
|
|||||||
bean.certProvider = certReader.detail.issuer.commonName;
|
bean.certProvider = certReader.detail.issuer.commonName;
|
||||||
|
|
||||||
await this.addOrUpdate(bean);
|
await this.addOrUpdate(bean);
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
|
||||||
|
async upload(body: { id?: number; cert: CertInfo }) {
|
||||||
|
const { id, cert } = body;
|
||||||
|
if (!cert) {
|
||||||
|
throw new CommonException("cert can't be empty");
|
||||||
|
}
|
||||||
|
const res = await this.updateCert({
|
||||||
|
id,
|
||||||
|
certReader: new CertReader(cert),
|
||||||
|
fromType: 'upload',
|
||||||
|
});
|
||||||
|
return res.id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ export class CloudflareDnsProvider extends AbstractDnsProvider<CloudflareRecord>
|
|||||||
this.logger.info(`dns解析记录:${JSON.stringify(record)}`);
|
this.logger.info(`dns解析记录:${JSON.stringify(record)}`);
|
||||||
}
|
}
|
||||||
//本接口需要返回本次创建的dns解析记录,这个记录会在删除的时候用到
|
//本接口需要返回本次创建的dns解析记录,这个记录会在删除的时候用到
|
||||||
|
record.zone_id = zoneId;
|
||||||
return record;
|
return record;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -206,7 +206,24 @@ export class DeployCertToTencentCLB extends AbstractTaskPlugin {
|
|||||||
params.Domain = domain;
|
params.Domain = domain;
|
||||||
const ret = await client.ModifyDomainAttributes(params);
|
const ret = await client.ModifyDomainAttributes(params);
|
||||||
this.checkRet(ret);
|
this.checkRet(ret);
|
||||||
this.logger.info('设置腾讯云CLB证书(sni)成功:', ret.RequestId, '->loadBalancerId:', this.loadBalancerId, 'listenerId', this.listenerId, 'domain:', domain);
|
this.logger.info(
|
||||||
|
`[${domain}] 设置腾讯云CLB证书(sni)任务已提交:taskId:${ret.RequestId},loadBalancerId:${this.loadBalancerId},listenerId:${this.listenerId}`
|
||||||
|
);
|
||||||
|
|
||||||
|
const requestId = ret.RequestId;
|
||||||
|
while (true) {
|
||||||
|
const statusRes = await client.DescribeTaskStatus({ TaskId: requestId });
|
||||||
|
|
||||||
|
if (statusRes.Status === 0) {
|
||||||
|
this.logger.info(`[${domain}] 腾讯云CLB证书(sni)设置成功`);
|
||||||
|
break;
|
||||||
|
} else if (statusRes.Status === 2) {
|
||||||
|
this.logger.info(`[${domain}] 腾讯云CLB证书(sni)设置进行中,请耐心等待`);
|
||||||
|
} else if (statusRes.Status === 1) {
|
||||||
|
throw new Error(`[${domain}] 腾讯云CLB证书(sni)设置失败:` + statusRes.Message);
|
||||||
|
}
|
||||||
|
await this.ctx.utils.sleep(5000);
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
appendTimeSuffix(name: string) {
|
appendTimeSuffix(name: string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user