mirror of
https://github.com/certd/certd.git
synced 2026-05-17 13:57:31 +08:00
Compare commits
11 Commits
0b9933df1e
...
64e8adddfd
| Author | SHA1 | Date | |
|---|---|---|---|
| 64e8adddfd | |||
| 729a4d64e9 | |||
| 6f12504588 | |||
| 271459f820 | |||
| 5000c95d01 | |||
| f477733483 | |||
| 54e1681c5e | |||
| 2f6d9a156a | |||
| 10dd89ae62 | |||
| d01bfbec96 | |||
| 5eb4aa3a0e |
Vendored
+10
@@ -79,5 +79,15 @@
|
||||
"PLUS_SERVER_BASE_URL": "http://127.0.0.1:11007"
|
||||
}
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "all",
|
||||
"configurations": [
|
||||
"server",
|
||||
"client",
|
||||
],
|
||||
"stopAll": false
|
||||
},
|
||||
]
|
||||
}
|
||||
@@ -3,6 +3,27 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复当证书更新后第一次站点检查会报与主站证书过期时间不一致错误的bug ([dd999b6](https://github.com/certd/certd/commit/dd999b60a4fe3507ff5e0109d637b4e891b28bdd))
|
||||
* 修复京东云报错不准确的bug ([10dd89a](https://github.com/certd/certd/commit/10dd89ae62e438a211a15e729559af823a096583))
|
||||
* 修复群晖测试时报addSecret undefine错误 ([5eb4aa3](https://github.com/certd/certd/commit/5eb4aa3a0eab9ffa729c8e813cbf973d9683cc13))
|
||||
* 修复提示支付失败的bug ([12fed34](https://github.com/certd/certd/commit/12fed34e109f3254de664813954081a52513bd38))
|
||||
* 修复修改项目名称后,没有同步刷新的bug ([3abee72](https://github.com/certd/certd/commit/3abee72fee286864b665033b23b172ef0ea92d83))
|
||||
* cname provider授权修改为sys级别 ([d01bfbe](https://github.com/certd/certd/commit/d01bfbec96a3a2109ec864953b0c9e8c1f95b97b))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 查看证书增加证书详情显示,包括域名,过期时间,颁发机构,指纹等 ([0b9933d](https://github.com/certd/certd/commit/0b9933df1e8d1685d14271435a8a7488974cc47b))
|
||||
* 获取阿里证书订单id组件增加翻页功能,突破50的上限 ([d79db3b](https://github.com/certd/certd/commit/d79db3bd3f0d5ad39664bb47ec3814d43ad93304))
|
||||
* 优化阿里云连接超时时长为10秒,支持配置环境变量 ([1588461](https://github.com/certd/certd/commit/1588461633bd275765daa96fc68320abb58d616d))
|
||||
* 优化个人账户页面 ([e506116](https://github.com/certd/certd/commit/e50611666ef731a903d7bdd8eb62333b97e2cc5b))
|
||||
* 支持批量转移流水线到其他项目 ([8a3841f](https://github.com/certd/certd/commit/8a3841f6382b53ce2343307fb035e74fa5383fef))
|
||||
* 支持passkey登录 ([10b7644](https://github.com/certd/certd/commit/10b7644bb7ba5f82776537bc0c4f5eb95d5f8e4e))
|
||||
* dns-provider 支持bind9 ,support bind9 ([76d12d6](https://github.com/certd/certd/commit/76d12d60624c0672fd3717a80a2cfef6845b14b8))
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -3,6 +3,27 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复当证书更新后第一次站点检查会报与主站证书过期时间不一致错误的bug ([dd999b6](https://github.com/certd/certd/commit/dd999b60a4fe3507ff5e0109d637b4e891b28bdd))
|
||||
* 修复京东云报错不准确的bug ([10dd89a](https://github.com/certd/certd/commit/10dd89ae62e438a211a15e729559af823a096583))
|
||||
* 修复群晖测试时报addSecret undefine错误 ([5eb4aa3](https://github.com/certd/certd/commit/5eb4aa3a0eab9ffa729c8e813cbf973d9683cc13))
|
||||
* 修复提示支付失败的bug ([12fed34](https://github.com/certd/certd/commit/12fed34e109f3254de664813954081a52513bd38))
|
||||
* 修复修改项目名称后,没有同步刷新的bug ([3abee72](https://github.com/certd/certd/commit/3abee72fee286864b665033b23b172ef0ea92d83))
|
||||
* cname provider授权修改为sys级别 ([d01bfbe](https://github.com/certd/certd/commit/d01bfbec96a3a2109ec864953b0c9e8c1f95b97b))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 查看证书增加证书详情显示,包括域名,过期时间,颁发机构,指纹等 ([0b9933d](https://github.com/certd/certd/commit/0b9933df1e8d1685d14271435a8a7488974cc47b))
|
||||
* 获取阿里证书订单id组件增加翻页功能,突破50的上限 ([d79db3b](https://github.com/certd/certd/commit/d79db3bd3f0d5ad39664bb47ec3814d43ad93304))
|
||||
* 优化阿里云连接超时时长为10秒,支持配置环境变量 ([1588461](https://github.com/certd/certd/commit/1588461633bd275765daa96fc68320abb58d616d))
|
||||
* 优化个人账户页面 ([e506116](https://github.com/certd/certd/commit/e50611666ef731a903d7bdd8eb62333b97e2cc5b))
|
||||
* 支持批量转移流水线到其他项目 ([8a3841f](https://github.com/certd/certd/commit/8a3841f6382b53ce2343307fb035e74fa5383fef))
|
||||
* 支持passkey登录 ([10b7644](https://github.com/certd/certd/commit/10b7644bb7ba5f82776537bc0c4f5eb95d5f8e4e))
|
||||
* dns-provider 支持bind9 ,support bind9 ([76d12d6](https://github.com/certd/certd/commit/76d12d60624c0672fd3717a80a2cfef6845b14b8))
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -40,7 +40,7 @@ admin/123456
|
||||
https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
|
||||
|
||||
::: tip
|
||||
默认使用SQLite数据库,如果需要使用MySQL、PostgreSQL数据库,请参考[多数据库支持](./install/database.md)
|
||||
默认使用SQLite数据库,如果需要使用MySQL、PostgreSQL数据库,请参考[多数据库支持](../database.md)
|
||||
:::
|
||||
|
||||
2. 然后到 `1Panel->容器->编排->新建编排`
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||

|
||||
|
||||
::: tip
|
||||
默认安装使用SQLite数据库,如果需要使用MySQL、PostgreSQL数据库,请参考[多数据库支持](./install/database.md)
|
||||
默认安装使用SQLite数据库,如果需要使用MySQL、PostgreSQL数据库,请参考[多数据库支持](../database.md)
|
||||
:::
|
||||
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ docker compose up -d
|
||||
> https://docs.docker.com/compose/install/linux/
|
||||
|
||||
::: tip
|
||||
默认安装使用SQLite数据库,如果需要使用MySQL、PostgreSQL数据库,请参考[多数据库支持](./install/database.md)
|
||||
默认安装使用SQLite数据库,如果需要使用MySQL、PostgreSQL数据库,请参考[多数据库支持](../database.md)
|
||||
:::
|
||||
|
||||
### 3. 访问测试
|
||||
|
||||
@@ -20,58 +20,59 @@
|
||||
| 16.| **APISIX授权** | |
|
||||
| 17.| **亚马逊云aws授权** | |
|
||||
| 18.| **亚马逊云科技(国区)授权** | |
|
||||
| 19.| **CacheFly** | CacheFly |
|
||||
| 20.| **EAB授权** | ZeroSSL证书申请需要EAB授权 |
|
||||
| 21.| **google cloud** | 谷歌云授权 |
|
||||
| 22.| **cloudflare授权** | |
|
||||
| 23.| **中国移动CND授权** | |
|
||||
| 24.| **授权插件示例** | 这是一个示例授权插件,用于演示如何实现一个授权插件 |
|
||||
| 25.| **dns.la授权** | |
|
||||
| 26.| **多吉云** | |
|
||||
| 27.| **Dokploy授权** | |
|
||||
| 28.| **farcdn授权** | |
|
||||
| 29.| **FlexCDN授权** | |
|
||||
| 30.| **Gcore** | Gcore |
|
||||
| 31.| **Github授权** | |
|
||||
| 32.| **godaddy授权** | |
|
||||
| 33.| **金山云授权** | |
|
||||
| 34.| **FTP授权** | |
|
||||
| 35.| **七牛OSS授权** | |
|
||||
| 36.| **腾讯云COS授权** | 腾讯云对象存储授权,包含地域和存储桶 |
|
||||
| 37.| **s3/minio授权** | S3/minio oss授权 |
|
||||
| 38.| **namesilo授权** | |
|
||||
| 39.| **Next Terminal 授权** | 用于访问 Next Terminal API 的授权配置 |
|
||||
| 40.| **1panel授权** | 账号和密码 |
|
||||
| 41.| **支付宝** | |
|
||||
| 42.| **白山云授权** | |
|
||||
| 43.| **宝塔云WAF授权** | 用于连接和管理宝塔云WAF服务的授权配置 |
|
||||
| 44.| **cdnfly授权** | |
|
||||
| 45.| **k8s授权** | |
|
||||
| 46.| **括彩云cdn授权** | 括彩云CDN,每月免费30G,[注册即领](https://kuocaicdn.com/register?code=8mn536rrzfbf8) |
|
||||
| 47.| **LeCDN授权** | |
|
||||
| 48.| **lucky** | |
|
||||
| 49.| **猫云授权** | |
|
||||
| 50.| **plesk授权** | |
|
||||
| 51.| **长亭雷池授权** | |
|
||||
| 52.| **群晖登录授权** | |
|
||||
| 53.| **uniCloud** | unicloud授权 |
|
||||
| 54.| **微信支付** | |
|
||||
| 55.| **易盾rcdn授权** | 易盾CDN,每月免费30G,[注册即领](https://rhcdn.yiduncdn.com/register?code=8mn536rrzfbf8) |
|
||||
| 56.| **易发云短信** | sms.yfyidc.cn/ |
|
||||
| 57.| **易盾DCDN授权** | https://user.yiduncdn.com |
|
||||
| 58.| **易支付** | |
|
||||
| 59.| **proxmox** | |
|
||||
| 60.| **UCloud授权** | 优刻得授权 |
|
||||
| 61.| **又拍云** | |
|
||||
| 62.| **网宿授权** | |
|
||||
| 63.| **西部数码授权** | |
|
||||
| 64.| **我爱云授权** | 我爱云CDN |
|
||||
| 65.| **新网授权(代理方式)** | |
|
||||
| 66.| **新网授权** | |
|
||||
| 67.| **新网互联授权** | 仅支持代理账号,ip需要加入白名单 |
|
||||
| 68.| **Zenlayer授权** | Zenlayer授权 |
|
||||
| 69.| **GoEdge授权** | |
|
||||
| 70.| **雨云授权** | https://app.rainyun.com/ |
|
||||
| 19.| **BIND9 DNS 授权** | 通过 SSH 连接到 BIND9 服务器,使用 nsupdate 命令管理 DNS 记录 |
|
||||
| 20.| **CacheFly** | CacheFly |
|
||||
| 21.| **EAB授权** | ZeroSSL证书申请需要EAB授权 |
|
||||
| 22.| **google cloud** | 谷歌云授权 |
|
||||
| 23.| **cloudflare授权** | |
|
||||
| 24.| **中国移动CND授权** | |
|
||||
| 25.| **授权插件示例** | 这是一个示例授权插件,用于演示如何实现一个授权插件 |
|
||||
| 26.| **dns.la授权** | |
|
||||
| 27.| **多吉云** | |
|
||||
| 28.| **Dokploy授权** | |
|
||||
| 29.| **farcdn授权** | |
|
||||
| 30.| **FlexCDN授权** | |
|
||||
| 31.| **Gcore** | Gcore |
|
||||
| 32.| **Github授权** | |
|
||||
| 33.| **godaddy授权** | |
|
||||
| 34.| **金山云授权** | |
|
||||
| 35.| **FTP授权** | |
|
||||
| 36.| **七牛OSS授权** | |
|
||||
| 37.| **腾讯云COS授权** | 腾讯云对象存储授权,包含地域和存储桶 |
|
||||
| 38.| **s3/minio授权** | S3/minio oss授权 |
|
||||
| 39.| **namesilo授权** | |
|
||||
| 40.| **Next Terminal 授权** | 用于访问 Next Terminal API 的授权配置 |
|
||||
| 41.| **1panel授权** | 账号和密码 |
|
||||
| 42.| **支付宝** | |
|
||||
| 43.| **白山云授权** | |
|
||||
| 44.| **宝塔云WAF授权** | 用于连接和管理宝塔云WAF服务的授权配置 |
|
||||
| 45.| **cdnfly授权** | |
|
||||
| 46.| **k8s授权** | |
|
||||
| 47.| **括彩云cdn授权** | 括彩云CDN,每月免费30G,[注册即领](https://kuocaicdn.com/register?code=8mn536rrzfbf8) |
|
||||
| 48.| **LeCDN授权** | |
|
||||
| 49.| **lucky** | |
|
||||
| 50.| **猫云授权** | |
|
||||
| 51.| **plesk授权** | |
|
||||
| 52.| **长亭雷池授权** | |
|
||||
| 53.| **群晖登录授权** | |
|
||||
| 54.| **uniCloud** | unicloud授权 |
|
||||
| 55.| **微信支付** | |
|
||||
| 56.| **易盾rcdn授权** | 易盾CDN,每月免费30G,[注册即领](https://rhcdn.yiduncdn.com/register?code=8mn536rrzfbf8) |
|
||||
| 57.| **易发云短信** | sms.yfyidc.cn/ |
|
||||
| 58.| **易盾DCDN授权** | https://user.yiduncdn.com |
|
||||
| 59.| **易支付** | |
|
||||
| 60.| **proxmox** | |
|
||||
| 61.| **UCloud授权** | 优刻得授权 |
|
||||
| 62.| **又拍云** | |
|
||||
| 63.| **网宿授权** | |
|
||||
| 64.| **西部数码授权** | |
|
||||
| 65.| **我爱云授权** | 我爱云CDN |
|
||||
| 66.| **新网授权(代理方式)** | |
|
||||
| 67.| **新网授权** | |
|
||||
| 68.| **新网互联授权** | 仅支持代理账号,ip需要加入白名单 |
|
||||
| 69.| **Zenlayer授权** | Zenlayer授权 |
|
||||
| 70.| **GoEdge授权** | |
|
||||
| 71.| **雨云授权** | https://app.rainyun.com/ |
|
||||
|
||||
<style module>
|
||||
table th:first-of-type {
|
||||
|
||||
@@ -112,9 +112,9 @@
|
||||
| 1.| **腾讯云-删除即将过期证书** | 仅删除未使用的证书 |
|
||||
| 2.| **腾讯云-部署证书到任意云资源** | 支持负载均衡、CDN、DDoS、直播、点播、Web应用防火墙、API网关、TEO、容器服务、对象存储、轻应用服务器、云原生微服务、云开发 |
|
||||
| 3.| **腾讯云-部署到CDN(废弃)** | 已废弃,请使用v2版 |
|
||||
| 4.| **腾讯云-部署到CDN-v2** | 推荐使用 |
|
||||
| 4.| **腾讯云-部署到CDN-v2** | 推荐使用,支持CDN域名以及COS加速域名 |
|
||||
| 5.| **腾讯云-部署到CLB** | 暂时只支持单向认证证书,暂时只支持通用负载均衡 |
|
||||
| 6.| **腾讯云-部署证书到COS** | 部署到腾讯云COS源站域名证书【注意:很不稳定,需要重试很多次偶尔才能成功一次】 |
|
||||
| 6.| **腾讯云-部署证书到COS** | 部署到腾讯云COS源站域名证书,注意是源站域名,加速域名请使用腾讯云CDN v2插件【注意:很不稳定,需要重试很多次偶尔才能成功一次】 |
|
||||
| 7.| **腾讯云-部署到腾讯云EO** | 腾讯云边缘安全加速平台EdgeOne(EO) |
|
||||
| 8.| **腾讯云-部署到腾讯云直播** | https://console.cloud.tencent.com/live/ |
|
||||
| 9.| **腾讯云-部署到TKE** | 修改TKE集群密钥配置,支持Opaque和TLS证书类型。注意: 1. serverless集群请使用K8S部署插件; 2. Opaque类型需要【上传到腾讯云】作为前置任务; 3. ApiServer需要开通公网访问(或者certd可访问),实际上底层仍然是通过KubeClient进行部署 |
|
||||
|
||||
@@ -9,18 +9,19 @@
|
||||
| 5.| **京东云** | 京东云DNS解析提供商 |
|
||||
| 6.| **新网(代理方式)** | 新网域名解析(代理方式) |
|
||||
| 7.| **新网** | 新网域名解析 |
|
||||
| 8.| **cloudflare** | cloudflare dns provider |
|
||||
| 9.| **dns.la** | dns.la |
|
||||
| 10.| **godaddy** | GoDaddy |
|
||||
| 11.| **华为云** | 华为云DNS解析提供商 |
|
||||
| 12.| **namesilo** | namesilo dns provider |
|
||||
| 13.| **雨云** | 雨云DNS解析提供商 |
|
||||
| 14.| **腾讯云** | 腾讯云域名DNS解析提供者 |
|
||||
| 15.| **腾讯云EO DNS** | 腾讯云EO DNS解析提供者 |
|
||||
| 16.| **西部数码** | west dns provider |
|
||||
| 17.| **Dns提供商Demo** | dns provider示例 |
|
||||
| 18.| **51dns** | 51DNS |
|
||||
| 19.| **新网互联** | 新网互联 |
|
||||
| 8.| **BIND9 DNS** | 通过 SSH 连接到 BIND9 服务器,使用 nsupdate 命令管理 DNS 记录 |
|
||||
| 9.| **cloudflare** | cloudflare dns provider |
|
||||
| 10.| **dns.la** | dns.la |
|
||||
| 11.| **godaddy** | GoDaddy |
|
||||
| 12.| **华为云** | 华为云DNS解析提供商 |
|
||||
| 13.| **namesilo** | namesilo dns provider |
|
||||
| 14.| **雨云** | 雨云DNS解析提供商 |
|
||||
| 15.| **腾讯云** | 腾讯云域名DNS解析提供者 |
|
||||
| 16.| **腾讯云EO DNS** | 腾讯云EO DNS解析提供者 |
|
||||
| 17.| **西部数码** | west dns provider |
|
||||
| 18.| **Dns提供商Demo** | dns provider示例 |
|
||||
| 19.| **51dns** | 51DNS |
|
||||
| 20.| **新网互联** | 新网互联 |
|
||||
|
||||
<style module>
|
||||
table th:first-of-type {
|
||||
|
||||
+1
-1
@@ -9,5 +9,5 @@
|
||||
}
|
||||
},
|
||||
"npmClient": "pnpm",
|
||||
"version": "1.39.1"
|
||||
"version": "1.39.2"
|
||||
}
|
||||
|
||||
@@ -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.39.2](https://github.com/publishlab/node-acme-client/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复京东云报错不准确的bug ([10dd89a](https://github.com/publishlab/node-acme-client/commit/10dd89ae62e438a211a15e729559af823a096583))
|
||||
|
||||
## [1.39.1](https://github.com/publishlab/node-acme-client/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/acme-client
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"description": "Simple and unopinionated ACME client",
|
||||
"private": false,
|
||||
"author": "nmorsman",
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"type": "module",
|
||||
"module": "scr/index.js",
|
||||
"main": "src/index.js",
|
||||
@@ -18,7 +18,7 @@
|
||||
"types"
|
||||
],
|
||||
"dependencies": {
|
||||
"@certd/basic": "^1.39.1",
|
||||
"@certd/basic": "^1.39.2",
|
||||
"@peculiar/x509": "^1.11.0",
|
||||
"asn1js": "^3.0.5",
|
||||
"axios": "^1.9.0",
|
||||
@@ -70,5 +70,5 @@
|
||||
"bugs": {
|
||||
"url": "https://github.com/publishlab/node-acme-client/issues"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -174,7 +174,7 @@ export default async (client, userOpts) => {
|
||||
|
||||
|
||||
} catch (e) {
|
||||
log(`[auto] [${d}] challengeCreateFn threw error: ${e.message}`);
|
||||
log(`[auto] [${d}] challengeCreateFn threw error: ${e.message || e}`);
|
||||
await deactivateAuth(e);
|
||||
throw e;
|
||||
}
|
||||
|
||||
@@ -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.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复群晖测试时报addSecret undefine错误 ([5eb4aa3](https://github.com/certd/certd/commit/5eb4aa3a0eab9ffa729c8e813cbf973d9683cc13))
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/basic
|
||||
|
||||
@@ -1 +1 @@
|
||||
23:44
|
||||
00:53
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/basic",
|
||||
"private": false,
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
@@ -47,5 +47,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ export function resetLogConfigure() {
|
||||
}
|
||||
resetLogConfigure();
|
||||
export const logger: ILogger = log4js.getLogger("default") as any;
|
||||
logger.addSecret = (secret: string) => {};
|
||||
|
||||
export function resetLogFilePath(filePath: string) {
|
||||
logFilePath = filePath;
|
||||
@@ -106,8 +107,8 @@ export class PipelineLogger implements ILogger {
|
||||
logger: ILogger;
|
||||
customWriter!: (text: string) => void;
|
||||
|
||||
constructor(name: string, write: (text: string) => void) {
|
||||
this.customWriter = write;
|
||||
constructor(name: string, write?: (text: string) => void) {
|
||||
this.customWriter = write || (() => {});
|
||||
//@ts-ignore
|
||||
this.logger = log4js.getLogger(name);
|
||||
}
|
||||
|
||||
@@ -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.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* cname provider授权修改为sys级别 ([d01bfbe](https://github.com/certd/certd/commit/d01bfbec96a3a2109ec864953b0c9e8c1f95b97b))
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/pipeline
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/pipeline",
|
||||
"private": false,
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
@@ -18,8 +18,8 @@
|
||||
"compile": "tsc --skipLibCheck --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@certd/basic": "^1.39.1",
|
||||
"@certd/plus-core": "^1.39.1",
|
||||
"@certd/basic": "^1.39.2",
|
||||
"@certd/plus-core": "^1.39.2",
|
||||
"dayjs": "^1.11.7",
|
||||
"lodash-es": "^4.17.21",
|
||||
"reflect-metadata": "^0.1.13"
|
||||
@@ -45,5 +45,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ export type PluginRequestHandleReq<T = any> = {
|
||||
input: T;
|
||||
data: any;
|
||||
record: { id: number; type: string; title: string };
|
||||
fromType?: "sys" | "user"; // sys、user
|
||||
};
|
||||
|
||||
export type UserInfo = {
|
||||
|
||||
@@ -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.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-huawei
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-huawei
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/lib-huawei",
|
||||
"private": false,
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"main": "./dist/bundle.js",
|
||||
"module": "./dist/bundle.js",
|
||||
"types": "./dist/d/index.d.ts",
|
||||
@@ -24,5 +24,5 @@
|
||||
"prettier": "^2.8.8",
|
||||
"tslib": "^2.8.1"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -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.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-iframe
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-iframe
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/lib-iframe",
|
||||
"private": false,
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
@@ -31,5 +31,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -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.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @certd/jdcloud
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/jdcloud
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/jdcloud",
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"description": "jdcloud openApi sdk",
|
||||
"main": "./dist/bundle.js",
|
||||
"module": "./dist/bundle.js",
|
||||
@@ -56,5 +56,5 @@
|
||||
"fetch"
|
||||
]
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -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.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-k8s
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-k8s
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/lib-k8s",
|
||||
"private": false,
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
@@ -17,7 +17,7 @@
|
||||
"pub": "npm publish"
|
||||
},
|
||||
"dependencies": {
|
||||
"@certd/basic": "^1.39.1",
|
||||
"@certd/basic": "^1.39.2",
|
||||
"@kubernetes/client-node": "0.21.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -32,5 +32,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,18 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复京东云报错不准确的bug ([10dd89a](https://github.com/certd/certd/commit/10dd89ae62e438a211a15e729559af823a096583))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 优化阿里云连接超时时长为10秒,支持配置环境变量 ([1588461](https://github.com/certd/certd/commit/1588461633bd275765daa96fc68320abb58d616d))
|
||||
* 优化个人账户页面 ([e506116](https://github.com/certd/certd/commit/e50611666ef731a903d7bdd8eb62333b97e2cc5b))
|
||||
* 支持批量转移流水线到其他项目 ([8a3841f](https://github.com/certd/certd/commit/8a3841f6382b53ce2343307fb035e74fa5383fef))
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-server
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/lib-server",
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"description": "midway with flyway, sql upgrade way ",
|
||||
"private": false,
|
||||
"type": "module",
|
||||
@@ -28,11 +28,11 @@
|
||||
],
|
||||
"license": "AGPL",
|
||||
"dependencies": {
|
||||
"@certd/acme-client": "^1.39.1",
|
||||
"@certd/basic": "^1.39.1",
|
||||
"@certd/pipeline": "^1.39.1",
|
||||
"@certd/plugin-lib": "^1.39.1",
|
||||
"@certd/plus-core": "^1.39.1",
|
||||
"@certd/acme-client": "^1.39.2",
|
||||
"@certd/basic": "^1.39.2",
|
||||
"@certd/pipeline": "^1.39.2",
|
||||
"@certd/plugin-lib": "^1.39.2",
|
||||
"@certd/plus-core": "^1.39.2",
|
||||
"@midwayjs/cache": "3.14.0",
|
||||
"@midwayjs/core": "3.20.11",
|
||||
"@midwayjs/i18n": "3.20.13",
|
||||
@@ -64,5 +64,5 @@
|
||||
"typeorm": "^0.3.11",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import { cache, logger, mergeUtils, setGlobalProxy } from '@certd/basic';
|
||||
import * as dns from 'node:dns';
|
||||
import { BaseService, setAdminMode } from '../../../basic/index.js';
|
||||
import { executorQueue } from '../../basic/service/executor-queue.js';
|
||||
import { isComm } from '@certd/plus-core';
|
||||
import { isComm, isPlus } from '@certd/plus-core';
|
||||
const { merge } = mergeUtils;
|
||||
|
||||
let lastSaveEnvVars = {};
|
||||
@@ -155,7 +155,9 @@ export class SysSettingsService extends BaseService<SysSettingsEntity> {
|
||||
|
||||
async reloadPublicSettings() {
|
||||
const publicSetting = await this.getPublicSettings()
|
||||
setAdminMode(publicSetting.adminMode)
|
||||
if (isPlus()){
|
||||
setAdminMode(publicSetting.adminMode )
|
||||
}
|
||||
}
|
||||
|
||||
async reloadPrivateSettings() {
|
||||
|
||||
@@ -244,10 +244,11 @@ export class AccessService extends BaseService<AccessEntity> {
|
||||
}
|
||||
const newAccess = {
|
||||
...access,
|
||||
userId:-1,
|
||||
id: undefined,
|
||||
projectId,
|
||||
}
|
||||
await this.add(newAccess);
|
||||
await this.repository.save(newAccess);
|
||||
return newAccess.id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @certd/midway-flyway-js
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/midway-flyway-js
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/midway-flyway-js",
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"description": "midway with flyway, sql upgrade way ",
|
||||
"private": false,
|
||||
"type": "module",
|
||||
@@ -46,5 +46,5 @@
|
||||
"typeorm": "^0.3.11",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -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.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
**Note:** Version bump only for package @certd/plugin-cert
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/plugin-cert
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/plugin-cert",
|
||||
"private": false,
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -17,10 +17,10 @@
|
||||
"compile": "tsc --skipLibCheck --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@certd/acme-client": "^1.39.1",
|
||||
"@certd/basic": "^1.39.1",
|
||||
"@certd/pipeline": "^1.39.1",
|
||||
"@certd/plugin-lib": "^1.39.1",
|
||||
"@certd/acme-client": "^1.39.2",
|
||||
"@certd/basic": "^1.39.2",
|
||||
"@certd/pipeline": "^1.39.2",
|
||||
"@certd/plugin-lib": "^1.39.2",
|
||||
"psl": "^1.9.0",
|
||||
"punycode.js": "^2.3.1"
|
||||
},
|
||||
@@ -38,5 +38,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,13 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 查看证书增加证书详情显示,包括域名,过期时间,颁发机构,指纹等 ([0b9933d](https://github.com/certd/certd/commit/0b9933df1e8d1685d14271435a8a7488974cc47b))
|
||||
* dns-provider 支持bind9 ,support bind9 ([76d12d6](https://github.com/certd/certd/commit/76d12d60624c0672fd3717a80a2cfef6845b14b8))
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/plugin-lib
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/plugin-lib",
|
||||
"private": false,
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"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.39.1",
|
||||
"@certd/basic": "^1.39.1",
|
||||
"@certd/pipeline": "^1.39.1",
|
||||
"@certd/plus-core": "^1.39.1",
|
||||
"@certd/acme-client": "^1.39.2",
|
||||
"@certd/basic": "^1.39.2",
|
||||
"@certd/pipeline": "^1.39.2",
|
||||
"@certd/plus-core": "^1.39.2",
|
||||
"@kubernetes/client-node": "0.21.0",
|
||||
"ali-oss": "^6.22.0",
|
||||
"basic-ftp": "^5.0.5",
|
||||
@@ -57,5 +57,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "590ff67fcb40ff8ba0f7b2a9592b51d9fb54a2ef"
|
||||
"gitHead": "f47773348312d5480b248c02beed9e162f59e3c7"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,25 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复群晖测试时报addSecret undefine错误 ([5eb4aa3](https://github.com/certd/certd/commit/5eb4aa3a0eab9ffa729c8e813cbf973d9683cc13))
|
||||
* 修复提示支付失败的bug ([12fed34](https://github.com/certd/certd/commit/12fed34e109f3254de664813954081a52513bd38))
|
||||
* 修复修改项目名称后,没有同步刷新的bug ([3abee72](https://github.com/certd/certd/commit/3abee72fee286864b665033b23b172ef0ea92d83))
|
||||
* cname provider授权修改为sys级别 ([d01bfbe](https://github.com/certd/certd/commit/d01bfbec96a3a2109ec864953b0c9e8c1f95b97b))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 查看证书增加证书详情显示,包括域名,过期时间,颁发机构,指纹等 ([0b9933d](https://github.com/certd/certd/commit/0b9933df1e8d1685d14271435a8a7488974cc47b))
|
||||
* 获取阿里证书订单id组件增加翻页功能,突破50的上限 ([d79db3b](https://github.com/certd/certd/commit/d79db3bd3f0d5ad39664bb47ec3814d43ad93304))
|
||||
* 优化阿里云连接超时时长为10秒,支持配置环境变量 ([1588461](https://github.com/certd/certd/commit/1588461633bd275765daa96fc68320abb58d616d))
|
||||
* 优化个人账户页面 ([e506116](https://github.com/certd/certd/commit/e50611666ef731a903d7bdd8eb62333b97e2cc5b))
|
||||
* 支持批量转移流水线到其他项目 ([8a3841f](https://github.com/certd/certd/commit/8a3841f6382b53ce2343307fb035e74fa5383fef))
|
||||
* 支持passkey登录 ([10b7644](https://github.com/certd/certd/commit/10b7644bb7ba5f82776537bc0c4f5eb95d5f8e4e))
|
||||
* dns-provider 支持bind9 ,support bind9 ([76d12d6](https://github.com/certd/certd/commit/76d12d60624c0672fd3717a80a2cfef6845b14b8))
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/ui-client",
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite --open",
|
||||
@@ -106,8 +106,8 @@
|
||||
"zod-defaults": "^0.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@certd/lib-iframe": "^1.39.1",
|
||||
"@certd/pipeline": "^1.39.1",
|
||||
"@certd/lib-iframe": "^1.39.2",
|
||||
"@certd/pipeline": "^1.39.2",
|
||||
"@rollup/plugin-commonjs": "^25.0.7",
|
||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||
"@types/chai": "^4.3.12",
|
||||
|
||||
@@ -19,6 +19,7 @@ defineOptions({
|
||||
name: "ApiTest",
|
||||
});
|
||||
|
||||
const fromType: any = inject("getFromType");
|
||||
const getScope: any = inject("get:scope");
|
||||
const getPluginType: any = inject("get:plugin:type", () => {
|
||||
return "access";
|
||||
@@ -55,6 +56,7 @@ const doTest = async () => {
|
||||
action: props.action,
|
||||
input,
|
||||
record,
|
||||
fromType,
|
||||
},
|
||||
{
|
||||
onError(err: any) {
|
||||
|
||||
@@ -90,7 +90,6 @@ const getPluginType: any = inject("get:plugin:type", () => {
|
||||
return "plugin";
|
||||
});
|
||||
|
||||
debugger;
|
||||
const searchKeyRef = ref("");
|
||||
const optionsRef = ref([]);
|
||||
const message = ref("");
|
||||
|
||||
@@ -13,11 +13,12 @@ export type RequestHandleReq<T = any> = {
|
||||
data?: any;
|
||||
input: T;
|
||||
record?: any;
|
||||
fromType?: string; // sys、user
|
||||
};
|
||||
|
||||
export async function doRequest(req: RequestHandleReq, opts: any = {}) {
|
||||
const url = `/pi/handle/${req.type}`;
|
||||
const { typeName, action, data, input, record } = req;
|
||||
const { typeName, action, data, input, record, fromType } = req;
|
||||
const res = await request({
|
||||
url,
|
||||
method: "post",
|
||||
@@ -27,6 +28,7 @@ export async function doRequest(req: RequestHandleReq, opts: any = {}) {
|
||||
data,
|
||||
input,
|
||||
record,
|
||||
fromType,
|
||||
},
|
||||
...opts,
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { request } from "/src/api/service";
|
||||
export function createAccessApi(from = "user") {
|
||||
const apiPrefix = from === "sys" ? "/sys/access" : "/pi/access";
|
||||
return {
|
||||
from,
|
||||
async GetList(query: any) {
|
||||
if (query?.query) {
|
||||
delete query.query.access;
|
||||
|
||||
@@ -6,6 +6,7 @@ import SecretPlainGetter from "/@/views/certd/access/access-selector/access/secr
|
||||
import { utils } from "/@/utils";
|
||||
|
||||
export function getCommonColumnDefine(crudExpose: any, typeRef: any, api: any) {
|
||||
provide("getFromType", api.from);
|
||||
provide("accessApi", api);
|
||||
provide("get:plugin:type", () => {
|
||||
return "access";
|
||||
|
||||
@@ -46,8 +46,8 @@
|
||||
</div>
|
||||
|
||||
<div class="flex flex-wrap">
|
||||
<div class="w-full md:w-1/2 md:pr-2">
|
||||
<div v-if="settingStore.sysPublic.oauthEnabled && settingStore.isPlus" class="bindings-card md:rounded">
|
||||
<div v-if="settingStore.sysPublic.oauthEnabled && settingStore.isPlus" class="w-full md:w-1/2">
|
||||
<div class="bindings-card md:rounded">
|
||||
<div class="card-title">
|
||||
<fs-icon icon="ion:link-outline" class="title-icon" />
|
||||
<span>第三方账号绑定</span>
|
||||
@@ -80,8 +80,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-full md:w-1/2 md:pl-2">
|
||||
<div v-if="settingStore.sysPublic.passkeyEnabled && settingStore.isPlus" class="passkey-card md:rounded">
|
||||
<div v-if="settingStore.sysPublic.passkeyEnabled && settingStore.isPlus" class="w-full md:w-1/2">
|
||||
<div class="passkey-card md:rounded">
|
||||
<div class="card-title">
|
||||
<fs-icon icon="ion:finger-print" class="title-icon" />
|
||||
<span>Passkey 安全密钥</span>
|
||||
@@ -308,7 +308,6 @@ async function doRegisterPasskey(deviceName: string) {
|
||||
},
|
||||
};
|
||||
console.log("credential", credential, response);
|
||||
debugger;
|
||||
|
||||
const verifyRes: any = await api.verifyPasskeyRegistration(response, options.challenge, deviceName);
|
||||
await loadPasskeys();
|
||||
@@ -491,16 +490,17 @@ onMounted(async () => {
|
||||
.profile-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
gap: 10px;
|
||||
// max-width: 1000px;
|
||||
|
||||
.profile-card,
|
||||
.bindings-card,
|
||||
.passkey-card {
|
||||
background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
|
||||
background: #fff;
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
|
||||
overflow: hidden;
|
||||
transition: all 0.3s ease;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.bindings-card,
|
||||
|
||||
@@ -115,7 +115,7 @@ export function useCertPipelineCreator() {
|
||||
label: "name",
|
||||
});
|
||||
|
||||
const DEFAULT_RENEW_DAYS = settingStore.sysPublic.defaultCertRenewDays || settingStore.sysPublic.defaultWillExpireDays || 15;
|
||||
const DEFAULT_RENEW_DAYS = settingStore.sysPublic.defaultCertRenewDays || settingStore.sysPublic.defaultWillExpireDays || 20;
|
||||
|
||||
merge(inputs, {
|
||||
renewDays: {
|
||||
@@ -347,7 +347,7 @@ export function useCertPipelineCreator() {
|
||||
title: "申请证书",
|
||||
runnableType: "step",
|
||||
input: {
|
||||
renewDays: 15,
|
||||
renewDays: 20,
|
||||
...pluginInput,
|
||||
},
|
||||
strategy: {
|
||||
|
||||
@@ -30,12 +30,13 @@ const pipelineOptions: PipelineOptions = {
|
||||
return {
|
||||
pipeline: {
|
||||
id: detail.pipeline.id,
|
||||
userId: detail.pipeline.userId,
|
||||
stages: [],
|
||||
triggers: [],
|
||||
...JSON.parse(detail.pipeline.content || "{}"),
|
||||
type: detail.pipeline.type,
|
||||
from: detail.pipeline.from,
|
||||
userId: detail.pipeline.userId,
|
||||
projectId: detail.pipeline.projectId,
|
||||
},
|
||||
validTime: detail.pipeline.validTime,
|
||||
webhookKey: detail.pipeline.webhookKey,
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<change-group v-if="hasActionPermission('write')" :selected-row-keys="selectedRowKeys" @change="batchFinished"></change-group>
|
||||
<change-notification v-if="hasActionPermission('write')" :selected-row-keys="selectedRowKeys" @change="batchFinished"></change-notification>
|
||||
<change-trigger v-if="hasActionPermission('write')" :selected-row-keys="selectedRowKeys" @change="batchFinished"></change-trigger>
|
||||
<change-project v-if="hasActionPermission('write')" :selected-row-keys="selectedRowKeys" @change="batchFinished"></change-project>
|
||||
<change-project v-if="hasActionPermission('write') && settingStore.isEnterprise" :selected-row-keys="selectedRowKeys" @change="batchFinished"></change-project>
|
||||
</div>
|
||||
</div>
|
||||
<template #form-bottom>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
</a-form-item>
|
||||
</template>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="passkey" :tab="t('authentication.passkeyTab')">
|
||||
<a-tab-pane v-if="settingStore.sysPublic.passkeyEnabled && settingStore.isPlus" key="passkey" :tab="t('authentication.passkeyTab')">
|
||||
<template v-if="formState.loginType === 'passkey'">
|
||||
<div v-if="!passkeySupported" class="text-red-500 text-sm mt-2 text-center mb-10">
|
||||
{{ t("authentication.passkeyNotSupported") }}
|
||||
|
||||
@@ -122,7 +122,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
title: t("certd.dnsProviderAuthorization"),
|
||||
type: "dict-select",
|
||||
dict: dict({
|
||||
url: "/pi/access/list",
|
||||
url: "/sys/access/list",
|
||||
value: "id",
|
||||
label: "name",
|
||||
}),
|
||||
@@ -133,6 +133,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
type: compute(({ form }) => {
|
||||
return form.dnsProviderType;
|
||||
}),
|
||||
from: "sys",
|
||||
},
|
||||
rules: [{ required: true, message: t("certd.requiredField") }],
|
||||
},
|
||||
|
||||
@@ -3,6 +3,24 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.39.2](https://github.com/certd/certd/compare/v1.39.1...v1.39.2) (2026-03-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复当证书更新后第一次站点检查会报与主站证书过期时间不一致错误的bug ([dd999b6](https://github.com/certd/certd/commit/dd999b60a4fe3507ff5e0109d637b4e891b28bdd))
|
||||
* 修复京东云报错不准确的bug ([10dd89a](https://github.com/certd/certd/commit/10dd89ae62e438a211a15e729559af823a096583))
|
||||
* 修复群晖测试时报addSecret undefine错误 ([5eb4aa3](https://github.com/certd/certd/commit/5eb4aa3a0eab9ffa729c8e813cbf973d9683cc13))
|
||||
* cname provider授权修改为sys级别 ([d01bfbe](https://github.com/certd/certd/commit/d01bfbec96a3a2109ec864953b0c9e8c1f95b97b))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 查看证书增加证书详情显示,包括域名,过期时间,颁发机构,指纹等 ([0b9933d](https://github.com/certd/certd/commit/0b9933df1e8d1685d14271435a8a7488974cc47b))
|
||||
* 获取阿里证书订单id组件增加翻页功能,突破50的上限 ([d79db3b](https://github.com/certd/certd/commit/d79db3bd3f0d5ad39664bb47ec3814d43ad93304))
|
||||
* 优化个人账户页面 ([e506116](https://github.com/certd/certd/commit/e50611666ef731a903d7bdd8eb62333b97e2cc5b))
|
||||
* 支持批量转移流水线到其他项目 ([8a3841f](https://github.com/certd/certd/commit/8a3841f6382b53ce2343307fb035e74fa5383fef))
|
||||
* 支持passkey登录 ([10b7644](https://github.com/certd/certd/commit/10b7644bb7ba5f82776537bc0c4f5eb95d5f8e4e))
|
||||
* dns-provider 支持bind9 ,support bind9 ([76d12d6](https://github.com/certd/certd/commit/76d12d60624c0672fd3717a80a2cfef6845b14b8))
|
||||
|
||||
## [1.39.1](https://github.com/certd/certd/compare/v1.39.0...v1.39.1) (2026-03-09)
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
CREATE TABLE `sys_passkey`
|
||||
(
|
||||
`id` bigint PRIMARY KEY AUTO_INCREMENT NOT NULL,
|
||||
`user_id` bigint NOT NULL,
|
||||
`device_name` varchar(100) NOT NULL,
|
||||
`passkey_id` varchar(100) NOT NULL,
|
||||
`public_key` varchar(1024) NOT NULL,
|
||||
`counter` bigint NOT NULL,
|
||||
`transports` varchar(512) NULL,
|
||||
`registered_at` bigint NOT NULL,
|
||||
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
|
||||
CREATE INDEX `index_passkey_user_id` ON `sys_passkey` (`user_id`);
|
||||
CREATE INDEX `index_passkey_passkey_id` ON `sys_passkey` (`passkey_id`);
|
||||
|
||||
ALTER TABLE `sys_passkey` ENGINE = InnoDB;
|
||||
@@ -0,0 +1,12 @@
|
||||
ALTER TABLE cd_access ADD COLUMN key_id varchar(100) NULL;
|
||||
CREATE INDEX `index_access_key_id` ON `cd_access` (`key_id`);
|
||||
update cd_access set key_id = id where key_id is null;
|
||||
|
||||
ALTER TABLE pi_notification ADD COLUMN key_id varchar(100) NULL;
|
||||
CREATE INDEX `index_notification_key_id` ON `pi_notification` (`key_id`);
|
||||
update pi_notification set key_id = id where key_id is null;
|
||||
|
||||
|
||||
ALTER TABLE cd_addon ADD COLUMN key_id varchar(100) NULL;
|
||||
CREATE INDEX `index_addon_key_id` ON `cd_addon` (`key_id`);
|
||||
update cd_addon set key_id = id where key_id is null;
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
CREATE TABLE "sys_passkey"
|
||||
(
|
||||
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY NOT NULL,
|
||||
"user_id" bigint NOT NULL,
|
||||
"device_name" varchar(100) NOT NULL,
|
||||
"passkey_id" varchar(100) NOT NULL,
|
||||
"public_key" varchar(1024) NOT NULL,
|
||||
"counter" bigint NOT NULL,
|
||||
"transports" varchar(512) NULL,
|
||||
"registered_at" bigint NOT NULL,
|
||||
"create_time" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
||||
"update_time" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP)
|
||||
);
|
||||
|
||||
|
||||
CREATE INDEX "index_passkey_user_id" ON "sys_passkey" ("user_id");
|
||||
CREATE INDEX "index_passkey_passkey_id" ON "sys_passkey" ("passkey_id");
|
||||
@@ -0,0 +1,12 @@
|
||||
ALTER TABLE cd_access ADD COLUMN key_id varchar(100) NULL;
|
||||
CREATE INDEX "index_access_key_id" ON "cd_access" ("key_id");
|
||||
update cd_access set key_id = id where key_id is null;
|
||||
|
||||
ALTER TABLE pi_notification ADD COLUMN key_id varchar(100) NULL;
|
||||
CREATE INDEX "index_notification_key_id" ON "pi_notification" ("key_id");
|
||||
update pi_notification set key_id = id where key_id is null;
|
||||
|
||||
|
||||
ALTER TABLE cd_addon ADD COLUMN key_id varchar(100) NULL;
|
||||
CREATE INDEX "index_addon_key_id" ON "cd_addon" ("key_id");
|
||||
update cd_addon set key_id = id where key_id is null;
|
||||
@@ -0,0 +1,46 @@
|
||||
name: bind9
|
||||
title: BIND9 DNS 授权
|
||||
desc: 通过 SSH 连接到 BIND9 服务器,使用 nsupdate 命令管理 DNS 记录
|
||||
icon: clarity:host-line
|
||||
input:
|
||||
sshAccessId:
|
||||
title: SSH 授权
|
||||
helper: 选择已配置的 SSH 授权
|
||||
component:
|
||||
name: access-selector
|
||||
type: ssh
|
||||
vModel: modelValue
|
||||
required: true
|
||||
dnsServer:
|
||||
title: DNS 服务器地址
|
||||
helper: BIND9 DNS 服务器地址,用于 nsupdate 命令
|
||||
component:
|
||||
placeholder: 192.168.182.100
|
||||
dnsPort:
|
||||
title: DNS 服务器端口
|
||||
helper: BIND9 DNS 服务器端口,用于 nsupdate 命令,默认为 53
|
||||
value: 53
|
||||
component:
|
||||
name: a-input-number
|
||||
placeholder: '53'
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
type: access
|
||||
typeName: bind9
|
||||
action: TestRequest
|
||||
mergeScript: |2-
|
||||
|
||||
return {
|
||||
component:{
|
||||
form: ctx.compute(({form})=>{
|
||||
return form
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
helper: 点击测试 SSH 连接和 nsupdate 命令
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-bind9/access.js
|
||||
@@ -3,7 +3,7 @@ default:
|
||||
strategy:
|
||||
runStrategy: 0
|
||||
input:
|
||||
renewDays: 15
|
||||
renewDays: 20
|
||||
forceUpdate: false
|
||||
name: CertApply
|
||||
title: 证书申请(JS版)
|
||||
|
||||
@@ -59,14 +59,14 @@ input:
|
||||
orderId:
|
||||
title: 证书订单ID
|
||||
component:
|
||||
name: RemoteAutoComplete
|
||||
name: RemoteSelect
|
||||
vModel: value
|
||||
mode: tags
|
||||
type: plugin
|
||||
typeName: CertApplyGetFormAliyun
|
||||
action: onGetOrderList
|
||||
search: false
|
||||
pager: false
|
||||
pager: true
|
||||
watches:
|
||||
- certDomains
|
||||
- accessId
|
||||
|
||||
@@ -3,7 +3,7 @@ default:
|
||||
strategy:
|
||||
runStrategy: 0
|
||||
input:
|
||||
renewDays: 15
|
||||
renewDays: 20
|
||||
forceUpdate: false
|
||||
name: CertApplyLego
|
||||
icon: ph:certificate
|
||||
|
||||
@@ -131,7 +131,7 @@ input:
|
||||
helper: 兼容Windows Server各个版本
|
||||
renewDays:
|
||||
title: 过期前提醒
|
||||
value: 10
|
||||
value: 20
|
||||
component:
|
||||
name: a-input-number
|
||||
vModel: value
|
||||
|
||||
@@ -7,7 +7,7 @@ title: 腾讯云-部署证书到COS
|
||||
needPlus: false
|
||||
icon: svg:icon-tencentcloud
|
||||
group: tencent
|
||||
desc: 部署到腾讯云COS源站域名证书【注意:很不稳定,需要重试很多次偶尔才能成功一次】
|
||||
desc: 部署到腾讯云COS源站域名证书,注意是源站域名,加速域名请使用腾讯云CDN v2插件【注意:很不稳定,需要重试很多次偶尔才能成功一次】
|
||||
input:
|
||||
accessId:
|
||||
title: Access授权
|
||||
|
||||
@@ -6,7 +6,7 @@ name: TencentDeployCertToCDNv2
|
||||
title: 腾讯云-部署到CDN-v2
|
||||
icon: svg:icon-tencentcloud
|
||||
group: tencent
|
||||
desc: 推荐使用
|
||||
desc: 推荐使用,支持CDN域名以及COS加速域名
|
||||
input:
|
||||
cert:
|
||||
title: 域名证书
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
name: bind9
|
||||
title: BIND9 DNS
|
||||
desc: 通过 SSH 连接到 BIND9 服务器,使用 nsupdate 命令管理 DNS 记录
|
||||
icon: clarity:host-line
|
||||
accessType: bind9
|
||||
pluginType: dnsProvider
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-bind9/dns-provider.js
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/ui-server",
|
||||
"version": "1.39.1",
|
||||
"version": "1.39.2",
|
||||
"description": "fast-server base midway",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
@@ -50,20 +50,20 @@
|
||||
"@aws-sdk/client-route-53": "^3.964.0",
|
||||
"@aws-sdk/client-s3": "^3.964.0",
|
||||
"@aws-sdk/client-sts": "^3.990.0",
|
||||
"@certd/acme-client": "^1.39.1",
|
||||
"@certd/basic": "^1.39.1",
|
||||
"@certd/commercial-core": "^1.39.1",
|
||||
"@certd/acme-client": "^1.39.2",
|
||||
"@certd/basic": "^1.39.2",
|
||||
"@certd/commercial-core": "^1.39.2",
|
||||
"@certd/cv4pve-api-javascript": "^8.4.2",
|
||||
"@certd/jdcloud": "^1.39.1",
|
||||
"@certd/lib-huawei": "^1.39.1",
|
||||
"@certd/lib-k8s": "^1.39.1",
|
||||
"@certd/lib-server": "^1.39.1",
|
||||
"@certd/midway-flyway-js": "^1.39.1",
|
||||
"@certd/pipeline": "^1.39.1",
|
||||
"@certd/plugin-cert": "^1.39.1",
|
||||
"@certd/plugin-lib": "^1.39.1",
|
||||
"@certd/plugin-plus": "^1.39.1",
|
||||
"@certd/plus-core": "^1.39.1",
|
||||
"@certd/jdcloud": "^1.39.2",
|
||||
"@certd/lib-huawei": "^1.39.2",
|
||||
"@certd/lib-k8s": "^1.39.2",
|
||||
"@certd/lib-server": "^1.39.2",
|
||||
"@certd/midway-flyway-js": "^1.39.2",
|
||||
"@certd/pipeline": "^1.39.2",
|
||||
"@certd/plugin-cert": "^1.39.2",
|
||||
"@certd/plugin-lib": "^1.39.2",
|
||||
"@certd/plugin-plus": "^1.39.2",
|
||||
"@certd/plus-core": "^1.39.2",
|
||||
"@google-cloud/publicca": "^1.3.0",
|
||||
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.185",
|
||||
"@huaweicloud/huaweicloud-sdk-core": "^3.1.185",
|
||||
|
||||
@@ -17,6 +17,7 @@ import {NotificationService} from '../../../modules/pipeline/service/notificatio
|
||||
import {TaskServiceBuilder} from "../../../modules/pipeline/service/getter/task-service-getter.js";
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
import { AuthService } from '../../../modules/sys/authority/service/auth-service.js';
|
||||
|
||||
@Provide()
|
||||
@Controller('/api/pi/handle')
|
||||
@@ -28,6 +29,9 @@ export class HandleController extends BaseController {
|
||||
@Inject()
|
||||
emailService: EmailService;
|
||||
|
||||
@Inject()
|
||||
authService: AuthService;
|
||||
|
||||
@Inject()
|
||||
taskServiceBuilder: TaskServiceBuilder;
|
||||
|
||||
@@ -36,16 +40,26 @@ export class HandleController extends BaseController {
|
||||
|
||||
@Post('/access', { description: Constants.per.authOnly, summary: "处理授权请求" })
|
||||
async accessRequest(@Body(ALL) body: AccessRequestHandleReq) {
|
||||
const {projectId,userId} = await this.getProjectUserIdRead()
|
||||
let {projectId,userId} = await this.getProjectUserIdRead()
|
||||
if (body.fromType === 'sys') {
|
||||
//系统级别的请求
|
||||
const pass = await this.authService.checkPermission(this.ctx, "sys:settings:view");
|
||||
if (!pass) {
|
||||
throw new Error('权限不足');
|
||||
}
|
||||
projectId = null
|
||||
userId = 0
|
||||
}
|
||||
|
||||
let inputAccess = body.input;
|
||||
if (body.record.id > 0) {
|
||||
const oldEntity = await this.accessService.info(body.record.id);
|
||||
if (oldEntity) {
|
||||
if (oldEntity.userId !== this.getUserId()) {
|
||||
throw new Error('access not found');
|
||||
if (oldEntity.userId !== userId && oldEntity.userId !== this.getUserId()) {
|
||||
throw new Error('您没有权限使用该授权');
|
||||
}
|
||||
if (oldEntity.projectId && oldEntity.projectId !== projectId) {
|
||||
throw new Error('access not found');
|
||||
throw new Error('您没有权限使用该授权(projectId不匹配)');
|
||||
}
|
||||
const param: any = {
|
||||
type: body.typeName,
|
||||
|
||||
@@ -33,7 +33,7 @@ const pipelineExample = `
|
||||
"title": "申请证书", // 步骤标题
|
||||
"runnableType": "step", // 类型标识
|
||||
"input": { //输入参数 ,根据插件的配置有不同的参数,具体参数建议通过浏览器F12进行查看
|
||||
"renewDays": 15,
|
||||
"renewDays": 20,
|
||||
},
|
||||
"strategy": { // 策略
|
||||
"runStrategy": 0 // 运行策略,0:正常执行,1:成功后跳过
|
||||
|
||||
@@ -28,7 +28,7 @@ export class UserSiteMonitorSetting extends BaseSettings {
|
||||
cron?:string = undefined;
|
||||
retryTimes?:number = 3;
|
||||
dnsServer?:string[] = undefined;
|
||||
certValidDays?:number = 10;
|
||||
certValidDays?:number = 14;
|
||||
}
|
||||
|
||||
export class UserEmailSetting extends BaseSettings {
|
||||
|
||||
@@ -648,6 +648,11 @@ export class PipelineService extends BaseService<PipelineEntity> {
|
||||
pipeline.id = id;
|
||||
}
|
||||
|
||||
if(entity.userId !=null){
|
||||
pipeline.userId = entity.userId;
|
||||
pipeline.projectId = entity.projectId;
|
||||
}
|
||||
|
||||
if (!pipeline.stages || pipeline.stages.length === 0) {
|
||||
return;
|
||||
}
|
||||
@@ -1285,7 +1290,7 @@ export class PipelineService extends BaseService<PipelineEntity> {
|
||||
title: "申请证书",
|
||||
runnableType: "step",
|
||||
input: {
|
||||
renewDays: 18,
|
||||
renewDays: 20,
|
||||
domains: req.domains,
|
||||
email: req.email,
|
||||
"challengeType": "auto",
|
||||
|
||||
@@ -90,7 +90,7 @@ const preferredChainMergeScript = (() => {
|
||||
desc: "免费通配符域名证书申请,支持多个域名打到同一个证书上",
|
||||
default: {
|
||||
input: {
|
||||
renewDays: 15,
|
||||
renewDays: 20,
|
||||
forceUpdate: false,
|
||||
},
|
||||
strategy: {
|
||||
|
||||
@@ -61,7 +61,7 @@ import dayjs from "dayjs";
|
||||
export class CertApplyUploadPlugin extends CertApplyBaseConvertPlugin {
|
||||
@TaskInput({
|
||||
title: "过期前提醒",
|
||||
value: 10,
|
||||
value: 20,
|
||||
component: {
|
||||
name: "a-input-number",
|
||||
vModel: "value",
|
||||
|
||||
@@ -16,7 +16,7 @@ import { PrivateKeyType } from "./dns.js";
|
||||
desc: "支持海量DNS解析提供商,推荐使用,一样的免费通配符域名证书申请,支持多个域名打到同一个证书上",
|
||||
default: {
|
||||
input: {
|
||||
renewDays: 15,
|
||||
renewDays: 20,
|
||||
forceUpdate: false,
|
||||
},
|
||||
strategy: {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {AccessInput, BaseAccess, IsAccess, Pager, PageRes, PageSearch} from '@certd/pipeline';
|
||||
import { AccessInput, BaseAccess, IsAccess, Pager, PageRes, PageSearch } from '@certd/pipeline';
|
||||
import { DomainRecord } from '@certd/plugin-lib';
|
||||
|
||||
/**
|
||||
@@ -19,7 +19,7 @@ export class JDCloudAccess extends BaseAccess {
|
||||
component: {
|
||||
placeholder: 'AccessKeyID',
|
||||
},
|
||||
helper:"[获取密钥](https://uc.jdcloud.com/account/accesskey)",
|
||||
helper: "[获取密钥](https://uc.jdcloud.com/account/accesskey)",
|
||||
required: true,
|
||||
})
|
||||
accessKeyId = '';
|
||||
@@ -34,7 +34,7 @@ export class JDCloudAccess extends BaseAccess {
|
||||
secretAccessKey = '';
|
||||
|
||||
|
||||
@AccessInput({
|
||||
@AccessInput({
|
||||
title: "测试",
|
||||
component: {
|
||||
name: "api-test",
|
||||
@@ -55,8 +55,8 @@ export class JDCloudAccess extends BaseAccess {
|
||||
}
|
||||
|
||||
|
||||
async getJDDomainService() {
|
||||
const {JDDomainService} = await import("@certd/jdcloud")
|
||||
async getJDDomainService() {
|
||||
const { JDDomainService } = await import("@certd/jdcloud")
|
||||
const service = new JDDomainService({
|
||||
credentials: {
|
||||
accessKeyId: this.accessKeyId,
|
||||
@@ -68,24 +68,34 @@ export class JDCloudAccess extends BaseAccess {
|
||||
}
|
||||
|
||||
async getDomainListPage(req: PageSearch): Promise<PageRes<DomainRecord>> {
|
||||
const pager = new Pager(req);
|
||||
const service = await this.getJDDomainService();
|
||||
const domainRes = await service.describeDomains({
|
||||
domainName: req.searchKey,
|
||||
pageNumber: pager.pageNo,
|
||||
pageSize: pager.pageSize,
|
||||
})
|
||||
let list = domainRes.result?.dataList || []
|
||||
list = list.map((item: any) => ({
|
||||
id: item.domainId,
|
||||
domain: item.domainName,
|
||||
}));
|
||||
return {
|
||||
total:domainRes.result.totalCount || list.length,
|
||||
list,
|
||||
};
|
||||
const pager = new Pager(req);
|
||||
const service = await this.getJDDomainService();
|
||||
const domainRes = await this.catchCall(() => service.describeDomains({
|
||||
domainName: req.searchKey,
|
||||
pageNumber: pager.pageNo,
|
||||
pageSize: pager.pageSize,
|
||||
}))
|
||||
let list = domainRes.result?.dataList || []
|
||||
list = list.map((item: any) => ({
|
||||
id: item.domainId,
|
||||
domain: item.domainName,
|
||||
}));
|
||||
return {
|
||||
total: domainRes.result.totalCount || list.length,
|
||||
list,
|
||||
};
|
||||
}
|
||||
async catchCall<T=any>(fn: () => Promise<T>): Promise<T> {
|
||||
try {
|
||||
return await fn();
|
||||
} catch (e) {
|
||||
if (e.error) {
|
||||
this.ctx.logger.error(JSON.stringify(e.error))
|
||||
throw new Error(JSON.stringify(e.error))
|
||||
}
|
||||
throw e
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
new JDCloudAccess();
|
||||
|
||||
@@ -8,7 +8,7 @@ import { JDCloudAccess } from "./access.js";
|
||||
desc: "京东云DNS解析提供商",
|
||||
accessType: "jdcloud",
|
||||
icon: "svg:icon-jdcloud",
|
||||
order:3,
|
||||
order: 3,
|
||||
})
|
||||
export class JDCloudDnsProvider extends AbstractDnsProvider {
|
||||
access!: JDCloudAccess;
|
||||
@@ -36,8 +36,8 @@ export class JDCloudDnsProvider extends AbstractDnsProvider {
|
||||
}
|
||||
const list = domainRes.result.dataList
|
||||
|
||||
const found = list.find((item) => item.domainName === domain)
|
||||
if (!found){
|
||||
const found = list.find((item) => item.domainName === domain)
|
||||
if (!found) {
|
||||
throw new Error(`域名${domain}在此京东云账号中不存在`)
|
||||
}
|
||||
|
||||
@@ -54,44 +54,33 @@ export class JDCloudDnsProvider extends AbstractDnsProvider {
|
||||
* weight Integer False 解析记录的权重,目前支持权重的有:A/AAAA/CNAME/JNAME,A/AAAA权重范围:0-100、CNAME/JNAME权重范围:1-100。
|
||||
* viewValue Integer True 解析线路的ID,请调用describeViewTree接口获取基础解
|
||||
*/
|
||||
try{
|
||||
const res = await service.createResourceRecord({
|
||||
domainId: domainId,
|
||||
req:{
|
||||
hostRecord: hostRecord,
|
||||
hostValue: value,
|
||||
type: type,
|
||||
ttl: 200,
|
||||
viewValue:-1,
|
||||
}
|
||||
})
|
||||
return {
|
||||
recordId: res.result.dataList.id,
|
||||
domainId: domainId
|
||||
};
|
||||
}catch (e) {
|
||||
if (e.error){
|
||||
this.logger.error(JSON.stringify(e.error))
|
||||
throw new Error(JSON.stringify(e.error))
|
||||
const res = await this.access.catchCall(() => service.createResourceRecord({
|
||||
domainId: domainId,
|
||||
req: {
|
||||
hostRecord: hostRecord,
|
||||
hostValue: value,
|
||||
type: type,
|
||||
ttl: 200,
|
||||
viewValue: -1,
|
||||
}
|
||||
throw e
|
||||
}
|
||||
|
||||
|
||||
|
||||
}))
|
||||
return {
|
||||
recordId: res.result.dataList.id,
|
||||
domainId: domainId
|
||||
};
|
||||
}
|
||||
|
||||
async removeRecord(options: RemoveRecordOptions<any>): Promise<any> {
|
||||
const record = options.recordRes;
|
||||
|
||||
const service = await this.getJDDomainService();
|
||||
await service.deleteResourceRecord({
|
||||
await this.access.catchCall(() => service.deleteResourceRecord({
|
||||
domainId: record.domainId,
|
||||
resourceRecordId: record.recordId
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
private async getJDDomainService() {
|
||||
private async getJDDomainService() {
|
||||
return await this.access.getJDDomainService();
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ export class JDCloudDeployToCDN extends AbstractTaskPlugin {
|
||||
this.logger.info(`开始上传证书`);
|
||||
|
||||
const sslService = await this.getSslClient(access);
|
||||
const res = await sslService.uploadCert({
|
||||
const res = await access.catchCall(() => sslService.uploadCert({
|
||||
// certName String True 证书名称
|
||||
// keyFile String True 私钥
|
||||
// certFile String True 证书
|
||||
@@ -80,7 +80,7 @@ export class JDCloudDeployToCDN extends AbstractTaskPlugin {
|
||||
keyFile: certInfo.key,
|
||||
certFile: certInfo.crt,
|
||||
aliasName: certName
|
||||
});
|
||||
}));
|
||||
certId = res.result.certId;
|
||||
}
|
||||
|
||||
@@ -152,10 +152,10 @@ export class JDCloudDeployToCDN extends AbstractTaskPlugin {
|
||||
* pageNumber Integer False 1 pageNumber,默认值1
|
||||
* pageSize
|
||||
*/
|
||||
const res = await service.getDomainList({
|
||||
const res = await access.catchCall(() => service.getDomainList({
|
||||
pageNumber: 1,
|
||||
pageSize: 50
|
||||
});
|
||||
}));
|
||||
// @ts-ignore
|
||||
const list = res?.result?.domains;
|
||||
if (!list || list.length === 0) {
|
||||
|
||||
@@ -85,7 +85,7 @@ export class JDCloudUpdateCert extends AbstractTaskPlugin {
|
||||
const certInfo = this.cert as CertInfo
|
||||
for (const certId of this.certIds) {
|
||||
this.logger.info(`开始更新证书:${certId}`)
|
||||
const res = await service.updateCert({
|
||||
const res = await access.catchCall(() => service.updateCert({
|
||||
/*
|
||||
@param {string} opts.certId - 证书Id
|
||||
@param {string} opts.certId - 证书ID
|
||||
@@ -96,7 +96,7 @@ export class JDCloudUpdateCert extends AbstractTaskPlugin {
|
||||
certId,
|
||||
certFile: certInfo.crt,
|
||||
keyFile:certInfo.key,
|
||||
})
|
||||
}))
|
||||
this.logger.info(`更新证书${certId}成功:${JSON.stringify(res)}`);
|
||||
await this.ctx.utils.sleep(2000)
|
||||
}
|
||||
@@ -126,10 +126,10 @@ export class JDCloudUpdateCert extends AbstractTaskPlugin {
|
||||
* pageNumber Integer False 1 pageNumber,默认值1
|
||||
* pageSize
|
||||
*/
|
||||
const res = await service.describeCerts({
|
||||
const res = await access.catchCall(() => service.describeCerts({
|
||||
pageNumber: 1,
|
||||
pageSize: 100,
|
||||
})
|
||||
}))
|
||||
// @ts-ignore
|
||||
const list = res?.result?.certListDetails
|
||||
if (!list || list.length === 0) {
|
||||
|
||||
@@ -61,7 +61,7 @@ export class JDCloudUploadCert extends AbstractTaskPlugin {
|
||||
const service = await this.getClient(access);
|
||||
|
||||
const certInfo = this.cert as CertInfo;
|
||||
const res = await service.uploadCert({
|
||||
const res = await access.catchCall(() => service.uploadCert({
|
||||
/*
|
||||
@param {string} opts.certName - 证书名称
|
||||
@param {string} opts.keyFile - 私钥
|
||||
@@ -71,7 +71,7 @@ export class JDCloudUploadCert extends AbstractTaskPlugin {
|
||||
certName: this.appendTimeSuffix(this.certName || "certd"),
|
||||
certFile: certInfo.crt,
|
||||
keyFile: certInfo.key
|
||||
});
|
||||
}));
|
||||
this.jdcloudCertId = res.result.certId;
|
||||
this.logger.info(`上传证书成功:${JSON.stringify(res)}`);
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
00:03
|
||||
00:57
|
||||
|
||||
@@ -1 +1 @@
|
||||
00:21
|
||||
01:15
|
||||
|
||||
Reference in New Issue
Block a user