mirror of
https://github.com/certd/certd.git
synced 2026-04-23 11:37:23 +08:00
Merge branch 'v2-dev' into v2_admin_mode
This commit is contained in:
@@ -3,6 +3,32 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复1panel 请求失败的bug ([0283662](https://github.com/certd/certd/commit/0283662931ff47d6b5d49f91a30c4a002fe1d108))
|
||||
* 修复阿里云dcdn使用上传到cas的id引用错误的bug ([61800b2](https://github.com/certd/certd/commit/61800b23e2be324169990810d1176c18decabb23))
|
||||
* 修复保存站点监控dns设置,偶尔无法保存成功的bug ([8387fe0](https://github.com/certd/certd/commit/8387fe0d5b2e77b8c2788a10791e5389d97a3e41))
|
||||
* 修复任务步骤标题过长导致错位的问题 ([9fb9805](https://github.com/certd/certd/commit/9fb980599f96ccbf61bd46019411db2f13c70e57))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 421 支持3次重试 ([b91548e](https://github.com/certd/certd/commit/b91548eef4c24faa822d3a40f1f6a77b41d274e4))
|
||||
* 备份支持scp上传 ([66ac471](https://github.com/certd/certd/commit/66ac4716f2565d7ee827461b625397ae21599451))
|
||||
* 监控设置支持逗号分割 ([c23d1d1](https://github.com/certd/certd/commit/c23d1d11b58a6cdfe431a7e8abbd5d955146c38d))
|
||||
* 列表中支持下次执行时间显示 ([a3cabd5](https://github.com/certd/certd/commit/a3cabd5f36ed41225ad418098596e9b2c44e31a1))
|
||||
* 模版编辑页面,hover反色过亮问题优化 ([e55a3a8](https://github.com/certd/certd/commit/e55a3a82fc6939b940f0c3be4529d74a625f6f4e))
|
||||
* 群晖支持刷新登录有效期 ([42c7ec2](https://github.com/certd/certd/commit/42c7ec2f75947e2b8298d6605d4dbcd441aacd51))
|
||||
* 所有授权增加测试按钮 ([7a3e68d](https://github.com/certd/certd/commit/7a3e68d656c1dcdcd814b69891bd2c2c6fe3098a))
|
||||
* 新网互联支持查询域名列表 ([e7e54bc](https://github.com/certd/certd/commit/e7e54bc19e3a734913a93a94e25db3bb06d2ab0f))
|
||||
* 优化京东云报错详情显示 ([1195417](https://github.com/certd/certd/commit/1195417b9714d2fcb540e43c0a20809b7ee2052b))
|
||||
* 优化网络测试页面,夜间模式显示效果 ([305da86](https://github.com/certd/certd/commit/305da86f97d918374819ecd6c50685f09b94ea59))
|
||||
* 增加部署证书到certd本身插件 ([3cd1aae](https://github.com/certd/certd/commit/3cd1aaeb035f8af79714030889b2b4dc259b700e))
|
||||
* 支持next-terminal ([6f3fd78](https://github.com/certd/certd/commit/6f3fd785e77a33c72bdf4115dc5d498e677d1863))
|
||||
* 主题默认跟随系统颜色(自动切换深色浅色模式) ([32c3ce5](https://github.com/certd/certd/commit/32c3ce5c9868569523901a9a939ca5b535ec3277))
|
||||
* http校验方式支持scp上传 ([4eb940f](https://github.com/certd/certd/commit/4eb940ffe765a0330331bc6af8396315e36d4e4a))
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -3,6 +3,32 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复1panel 请求失败的bug ([0283662](https://github.com/certd/certd/commit/0283662931ff47d6b5d49f91a30c4a002fe1d108))
|
||||
* 修复阿里云dcdn使用上传到cas的id引用错误的bug ([61800b2](https://github.com/certd/certd/commit/61800b23e2be324169990810d1176c18decabb23))
|
||||
* 修复保存站点监控dns设置,偶尔无法保存成功的bug ([8387fe0](https://github.com/certd/certd/commit/8387fe0d5b2e77b8c2788a10791e5389d97a3e41))
|
||||
* 修复任务步骤标题过长导致错位的问题 ([9fb9805](https://github.com/certd/certd/commit/9fb980599f96ccbf61bd46019411db2f13c70e57))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 421 支持3次重试 ([b91548e](https://github.com/certd/certd/commit/b91548eef4c24faa822d3a40f1f6a77b41d274e4))
|
||||
* 备份支持scp上传 ([66ac471](https://github.com/certd/certd/commit/66ac4716f2565d7ee827461b625397ae21599451))
|
||||
* 监控设置支持逗号分割 ([c23d1d1](https://github.com/certd/certd/commit/c23d1d11b58a6cdfe431a7e8abbd5d955146c38d))
|
||||
* 列表中支持下次执行时间显示 ([a3cabd5](https://github.com/certd/certd/commit/a3cabd5f36ed41225ad418098596e9b2c44e31a1))
|
||||
* 模版编辑页面,hover反色过亮问题优化 ([e55a3a8](https://github.com/certd/certd/commit/e55a3a82fc6939b940f0c3be4529d74a625f6f4e))
|
||||
* 群晖支持刷新登录有效期 ([42c7ec2](https://github.com/certd/certd/commit/42c7ec2f75947e2b8298d6605d4dbcd441aacd51))
|
||||
* 所有授权增加测试按钮 ([7a3e68d](https://github.com/certd/certd/commit/7a3e68d656c1dcdcd814b69891bd2c2c6fe3098a))
|
||||
* 新网互联支持查询域名列表 ([e7e54bc](https://github.com/certd/certd/commit/e7e54bc19e3a734913a93a94e25db3bb06d2ab0f))
|
||||
* 优化京东云报错详情显示 ([1195417](https://github.com/certd/certd/commit/1195417b9714d2fcb540e43c0a20809b7ee2052b))
|
||||
* 优化网络测试页面,夜间模式显示效果 ([305da86](https://github.com/certd/certd/commit/305da86f97d918374819ecd6c50685f09b94ea59))
|
||||
* 增加部署证书到certd本身插件 ([3cd1aae](https://github.com/certd/certd/commit/3cd1aaeb035f8af79714030889b2b4dc259b700e))
|
||||
* 支持next-terminal ([6f3fd78](https://github.com/certd/certd/commit/6f3fd785e77a33c72bdf4115dc5d498e677d1863))
|
||||
* 主题默认跟随系统颜色(自动切换深色浅色模式) ([32c3ce5](https://github.com/certd/certd/commit/32c3ce5c9868569523901a9a939ca5b535ec3277))
|
||||
* http校验方式支持scp上传 ([4eb940f](https://github.com/certd/certd/commit/4eb940ffe765a0330331bc6af8396315e36d4e4a))
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -40,37 +40,38 @@
|
||||
| 36.| **腾讯云COS授权** | 腾讯云对象存储授权,包含地域和存储桶 |
|
||||
| 37.| **s3/minio授权** | S3/minio oss授权 |
|
||||
| 38.| **namesilo授权** | |
|
||||
| 39.| **1panel授权** | 账号和密码 |
|
||||
| 40.| **支付宝** | |
|
||||
| 41.| **白山云授权** | |
|
||||
| 42.| **宝塔云WAF授权** | 用于连接和管理宝塔云WAF服务的授权配置 |
|
||||
| 43.| **cdnfly授权** | |
|
||||
| 44.| **k8s授权** | |
|
||||
| 45.| **括彩云cdn授权** | 括彩云CDN,每月免费30G,[注册即领](https://kuocaicdn.com/register?code=8mn536rrzfbf8) |
|
||||
| 46.| **LeCDN授权** | |
|
||||
| 47.| **lucky** | |
|
||||
| 48.| **猫云授权** | |
|
||||
| 49.| **plesk授权** | |
|
||||
| 50.| **长亭雷池授权** | |
|
||||
| 51.| **群晖登录授权** | |
|
||||
| 52.| **uniCloud** | unicloud授权 |
|
||||
| 53.| **微信支付** | |
|
||||
| 54.| **易盾rcdn授权** | 易盾CDN,每月免费30G,[注册即领](https://rhcdn.yiduncdn.com/register?code=8mn536rrzfbf8) |
|
||||
| 55.| **易发云短信** | sms.yfyidc.cn/ |
|
||||
| 56.| **易盾DCDN授权** | https://user.yiduncdn.com |
|
||||
| 57.| **易支付** | |
|
||||
| 58.| **proxmox** | |
|
||||
| 59.| **UCloud授权** | 优刻得授权 |
|
||||
| 60.| **又拍云** | |
|
||||
| 61.| **网宿授权** | |
|
||||
| 62.| **西部数码授权** | |
|
||||
| 63.| **我爱云授权** | 我爱云CDN |
|
||||
| 64.| **新网授权(代理方式)** | |
|
||||
| 65.| **新网授权** | |
|
||||
| 66.| **新网互联授权** | 仅支持代理账号,ip需要加入白名单 |
|
||||
| 67.| **Zenlayer授权** | Zenlayer授权 |
|
||||
| 68.| **GoEdge授权** | |
|
||||
| 69.| **雨云授权** | https://app.rainyun.com/ |
|
||||
| 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/ |
|
||||
|
||||
<style module>
|
||||
table th:first-of-type {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# 任务插件
|
||||
共 `122` 款任务插件
|
||||
共 `125` 款任务插件
|
||||
## 1. 证书申请
|
||||
|
||||
| 序号 | 名称 | 说明 |
|
||||
@@ -57,24 +57,26 @@
|
||||
| 2.| **AcePanel-面板证书** | 部署AcePanel面板证书 |
|
||||
| 3.| **Dokploy-部署server证书** | 自动更新Dokploy server证书 |
|
||||
| 4.| **飞牛NAS-部署证书** | |
|
||||
| 5.| **1Panel-部署面板证书** | 更新1Panel的面板证书 |
|
||||
| 6.| **1Panel-更新站点证书** | 更新1Panel的站点证书 |
|
||||
| 7.| **宝塔-删除过期证书** | 删除证书夹中过期证书 |
|
||||
| 8.| **宝塔-WAF证书部署** | 部署宝塔云WAF/aaWAF |
|
||||
| 9.| **宝塔-面板证书部署** | 部署宝塔面板本身的ssl证书 |
|
||||
| 10.| **宝塔win-网站证书部署** | 部署到Windows版宝塔管理的站点的ssl证书 |
|
||||
| 11.| **宝塔-网站证书部署** | 部署宝塔管理的站点的ssl证书,目前支持宝塔网站站点、docker站点等。本插件也支持aaPanel。 |
|
||||
| 12.| **K8S-Apply自定义yaml** | apply自定义yaml到k8s |
|
||||
| 13.| **K8S-Ingress 证书部署** | 部署证书到k8s的Ingress |
|
||||
| 14.| **K8S-部署证书到Secret** | 部署证书到k8s的secret |
|
||||
| 15.| **lucky-更新Lucky证书** | |
|
||||
| 16.| **Plesk-部署Plesk网站证书** | |
|
||||
| 17.| **Plesk-更新证书** | 不会创建新证书记录,直接更新旧的证书 |
|
||||
| 18.| **雷池-更新证书** | 更新长亭雷池WAF的证书 |
|
||||
| 19.| **群晖-部署证书到群晖面板** | Synology,支持6.x以上版本 |
|
||||
| 20.| **uniCloud-部署到服务空间** | 部署到服务空间 |
|
||||
| 21.| **Proxmox-上传证书到Proxmox** | |
|
||||
| 22.| **威联通-部署证书到威联通** | 部署证书到qnap |
|
||||
| 5.| **NextTerminal-更新证书** | 更新 Next Terminal 证书 |
|
||||
| 6.| **1Panel-部署面板证书** | 更新1Panel的面板证书 |
|
||||
| 7.| **1Panel-更新站点证书** | 更新1Panel的站点证书 |
|
||||
| 8.| **宝塔-删除过期证书** | 删除证书夹中过期证书 |
|
||||
| 9.| **宝塔-WAF证书部署** | 部署宝塔云WAF/aaWAF |
|
||||
| 10.| **宝塔-面板证书部署** | 部署宝塔面板本身的ssl证书 |
|
||||
| 11.| **宝塔win-网站证书部署** | 部署到Windows版宝塔管理的站点的ssl证书 |
|
||||
| 12.| **宝塔-网站证书部署** | 部署宝塔管理的站点的ssl证书,目前支持宝塔网站站点、docker站点等。本插件也支持aaPanel。 |
|
||||
| 13.| **K8S-Apply自定义yaml** | apply自定义yaml到k8s |
|
||||
| 14.| **K8S-Ingress 证书部署** | 部署证书到k8s的Ingress |
|
||||
| 15.| **K8S-部署证书到Secret** | 部署证书到k8s的secret |
|
||||
| 16.| **lucky-更新Lucky证书** | |
|
||||
| 17.| **Plesk-部署Plesk网站证书** | |
|
||||
| 18.| **Plesk-更新证书** | 不会创建新证书记录,直接更新旧的证书 |
|
||||
| 19.| **雷池-更新证书(支持控制台和防护应用)** | 更新长亭雷池WAF的证书,支持更新控制台和防护应用的证书。 |
|
||||
| 20.| **群晖-部署证书到群晖面板** | Synology,支持6.x以上版本 |
|
||||
| 21.| **群晖-刷新OTP登录有效期** | 群晖登录状态可能30天失效,需要在失效之前登录一次,刷新有效期,您可以将其放在“部署到群晖面板”任务之后 |
|
||||
| 22.| **uniCloud-部署到服务空间** | 部署到服务空间 |
|
||||
| 23.| **Proxmox-上传证书到Proxmox** | |
|
||||
| 24.| **威联通-部署证书到威联通** | 部署证书到qnap |
|
||||
## 5. 阿里云
|
||||
|
||||
| 序号 | 名称 | 说明 |
|
||||
@@ -182,7 +184,8 @@
|
||||
|-----|-----|-----|
|
||||
| 1.| **数据库备份** | 【仅管理员可用】仅支持备份SQLite数据库 |
|
||||
| 2.| **重启 Certd** | 【仅管理员可用】 重启 certd的https服务,用于更新 Certd 的 ssl 证书 |
|
||||
| 3.| **自定义js脚本** | 【仅管理员】运行自定义js脚本执行 |
|
||||
| 3.| **部署证书到Certd本身** | 【仅管理员可用】 部署证书到 certd的https服务,用于更新 Certd 的 ssl 证书,建议将此任务放在流水线的最后一步 |
|
||||
| 4.| **自定义js脚本** | 【仅管理员】运行自定义js脚本执行 |
|
||||
|
||||
<style module>
|
||||
table th:first-of-type {
|
||||
|
||||
+1
-1
@@ -9,5 +9,5 @@
|
||||
}
|
||||
},
|
||||
"npmClient": "pnpm",
|
||||
"version": "1.38.9"
|
||||
"version": "1.38.10"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/publishlab/node-acme-client/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/acme-client
|
||||
|
||||
## [1.38.9](https://github.com/publishlab/node-acme-client/compare/v1.38.8...v1.38.9) (2026-02-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.38.9",
|
||||
"version": "1.38.10",
|
||||
"type": "module",
|
||||
"module": "scr/index.js",
|
||||
"main": "src/index.js",
|
||||
@@ -18,7 +18,7 @@
|
||||
"types"
|
||||
],
|
||||
"dependencies": {
|
||||
"@certd/basic": "^1.38.9",
|
||||
"@certd/basic": "^1.38.10",
|
||||
"@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": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 421 支持3次重试 ([b91548e](https://github.com/certd/certd/commit/b91548eef4c24faa822d3a40f1f6a77b41d274e4))
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1 +1 @@
|
||||
23:08
|
||||
00:20
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/basic",
|
||||
"private": false,
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
@@ -47,5 +47,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,16 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复1panel 请求失败的bug ([0283662](https://github.com/certd/certd/commit/0283662931ff47d6b5d49f91a30c4a002fe1d108))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 所有授权增加测试按钮 ([7a3e68d](https://github.com/certd/certd/commit/7a3e68d656c1dcdcd814b69891bd2c2c6fe3098a))
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/pipeline
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/pipeline",
|
||||
"private": false,
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
@@ -18,8 +18,8 @@
|
||||
"compile": "tsc --skipLibCheck --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@certd/basic": "^1.38.9",
|
||||
"@certd/plus-core": "^1.38.9",
|
||||
"@certd/basic": "^1.38.10",
|
||||
"@certd/plus-core": "^1.38.10",
|
||||
"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": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -4,13 +4,13 @@ import { HttpClient, ILogger, utils } from "@certd/basic";
|
||||
import * as _ from "lodash-es";
|
||||
import { PluginRequestHandleReq } from "../plugin/index.js";
|
||||
|
||||
export type AccessRequestHandleReqInput<T = any> = {
|
||||
id?: number;
|
||||
title?: string;
|
||||
access: T;
|
||||
};
|
||||
// export type AccessRequestHandleReqInput<T = any> = {
|
||||
// id?: number;
|
||||
// title?: string;
|
||||
// access: T;
|
||||
// };
|
||||
|
||||
export type AccessRequestHandleReq<T = any> = PluginRequestHandleReq<AccessRequestHandleReqInput<T>>;
|
||||
export type AccessRequestHandleReq<T = any> = PluginRequestHandleReq<T>;
|
||||
|
||||
export type AccessInputDefine = FormItemProps & {
|
||||
title: string;
|
||||
|
||||
@@ -17,6 +17,7 @@ export type PluginRequestHandleReq<T = any> = {
|
||||
action: string;
|
||||
input: T;
|
||||
data: any;
|
||||
record: { id: number; type: string; title: string };
|
||||
};
|
||||
|
||||
export type UserInfo = {
|
||||
@@ -301,6 +302,14 @@ export abstract class AbstractTaskPlugin implements ITaskPlugin {
|
||||
buildDomainGroupOptions(options: any[], domains: string[]) {
|
||||
return utils.options.buildGroupOptions(options, domains);
|
||||
}
|
||||
|
||||
getLastStatus(): Runnable {
|
||||
return this.ctx.lastStatus || ({} as any);
|
||||
}
|
||||
|
||||
getLastOutput(key: string) {
|
||||
return this.getLastStatus().status?.output?.[key];
|
||||
}
|
||||
}
|
||||
|
||||
export type OutputVO = {
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-huawei
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-huawei
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/lib-huawei",
|
||||
"private": false,
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"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": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-iframe
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-iframe
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/lib-iframe",
|
||||
"private": false,
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
@@ -31,5 +31,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/jdcloud
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/jdcloud
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/jdcloud",
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"description": "jdcloud openApi sdk",
|
||||
"main": "./dist/bundle.js",
|
||||
"module": "./dist/bundle.js",
|
||||
@@ -56,5 +56,5 @@
|
||||
"fetch"
|
||||
]
|
||||
},
|
||||
"gitHead": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-k8s
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-k8s
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/lib-k8s",
|
||||
"private": false,
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
@@ -17,7 +17,7 @@
|
||||
"pub": "npm publish"
|
||||
},
|
||||
"dependencies": {
|
||||
"@certd/basic": "^1.38.9",
|
||||
"@certd/basic": "^1.38.10",
|
||||
"@kubernetes/client-node": "0.21.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -32,5 +32,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-server
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/lib-server
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/lib-server",
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"description": "midway with flyway, sql upgrade way ",
|
||||
"private": false,
|
||||
"type": "module",
|
||||
@@ -28,11 +28,11 @@
|
||||
],
|
||||
"license": "AGPL",
|
||||
"dependencies": {
|
||||
"@certd/acme-client": "^1.38.9",
|
||||
"@certd/basic": "^1.38.9",
|
||||
"@certd/pipeline": "^1.38.9",
|
||||
"@certd/plugin-lib": "^1.38.9",
|
||||
"@certd/plus-core": "^1.38.9",
|
||||
"@certd/acme-client": "^1.38.10",
|
||||
"@certd/basic": "^1.38.10",
|
||||
"@certd/pipeline": "^1.38.10",
|
||||
"@certd/plugin-lib": "^1.38.10",
|
||||
"@certd/plus-core": "^1.38.10",
|
||||
"@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": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/midway-flyway-js
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/midway-flyway-js",
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"description": "midway with flyway, sql upgrade way ",
|
||||
"private": false,
|
||||
"type": "module",
|
||||
@@ -46,5 +46,5 @@
|
||||
"typeorm": "^0.3.11",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/plugin-cert
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/plugin-cert
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/plugin-cert",
|
||||
"private": false,
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -17,10 +17,10 @@
|
||||
"compile": "tsc --skipLibCheck --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@certd/acme-client": "^1.38.9",
|
||||
"@certd/basic": "^1.38.9",
|
||||
"@certd/pipeline": "^1.38.9",
|
||||
"@certd/plugin-lib": "^1.38.9",
|
||||
"@certd/acme-client": "^1.38.10",
|
||||
"@certd/basic": "^1.38.10",
|
||||
"@certd/pipeline": "^1.38.10",
|
||||
"@certd/plugin-lib": "^1.38.10",
|
||||
"psl": "^1.9.0",
|
||||
"punycode.js": "^2.3.1"
|
||||
},
|
||||
@@ -38,5 +38,5 @@
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
"gitHead": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
**Note:** Version bump only for package @certd/plugin-lib
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
**Note:** Version bump only for package @certd/plugin-lib
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@certd/plugin-lib",
|
||||
"private": false,
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -22,10 +22,10 @@
|
||||
"@alicloud/pop-core": "^1.7.10",
|
||||
"@alicloud/tea-util": "^1.4.11",
|
||||
"@aws-sdk/client-s3": "^3.964.0",
|
||||
"@certd/acme-client": "^1.38.9",
|
||||
"@certd/basic": "^1.38.9",
|
||||
"@certd/pipeline": "^1.38.9",
|
||||
"@certd/plus-core": "^1.38.9",
|
||||
"@certd/acme-client": "^1.38.10",
|
||||
"@certd/basic": "^1.38.10",
|
||||
"@certd/pipeline": "^1.38.10",
|
||||
"@certd/plus-core": "^1.38.10",
|
||||
"@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": "b30cb5d7dc8311af4863da7dc8781f7264ba0545"
|
||||
"gitHead": "01eb50078e135e00148a144d20747096e2f64a28"
|
||||
}
|
||||
|
||||
@@ -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.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复1panel 请求失败的bug ([0283662](https://github.com/certd/certd/commit/0283662931ff47d6b5d49f91a30c4a002fe1d108))
|
||||
* 修复保存站点监控dns设置,偶尔无法保存成功的bug ([8387fe0](https://github.com/certd/certd/commit/8387fe0d5b2e77b8c2788a10791e5389d97a3e41))
|
||||
* 修复任务步骤标题过长导致错位的问题 ([9fb9805](https://github.com/certd/certd/commit/9fb980599f96ccbf61bd46019411db2f13c70e57))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 监控设置支持逗号分割 ([c23d1d1](https://github.com/certd/certd/commit/c23d1d11b58a6cdfe431a7e8abbd5d955146c38d))
|
||||
* 列表中支持下次执行时间显示 ([a3cabd5](https://github.com/certd/certd/commit/a3cabd5f36ed41225ad418098596e9b2c44e31a1))
|
||||
* 模版编辑页面,hover反色过亮问题优化 ([e55a3a8](https://github.com/certd/certd/commit/e55a3a82fc6939b940f0c3be4529d74a625f6f4e))
|
||||
* 所有授权增加测试按钮 ([7a3e68d](https://github.com/certd/certd/commit/7a3e68d656c1dcdcd814b69891bd2c2c6fe3098a))
|
||||
* 优化网络测试页面,夜间模式显示效果 ([305da86](https://github.com/certd/certd/commit/305da86f97d918374819ecd6c50685f09b94ea59))
|
||||
* 支持next-terminal ([6f3fd78](https://github.com/certd/certd/commit/6f3fd785e77a33c72bdf4115dc5d498e677d1863))
|
||||
* 主题默认跟随系统颜色(自动切换深色浅色模式) ([32c3ce5](https://github.com/certd/certd/commit/32c3ce5c9868569523901a9a939ca5b535ec3277))
|
||||
* http校验方式支持scp上传 ([4eb940f](https://github.com/certd/certd/commit/4eb940ffe765a0330331bc6af8396315e36d4e4a))
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/ui-client",
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite --open",
|
||||
@@ -106,8 +106,8 @@
|
||||
"zod-defaults": "^0.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@certd/lib-iframe": "^1.38.9",
|
||||
"@certd/pipeline": "^1.38.9",
|
||||
"@certd/lib-iframe": "^1.38.10",
|
||||
"@certd/pipeline": "^1.38.10",
|
||||
"@rollup/plugin-commonjs": "^25.0.7",
|
||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||
"@types/chai": "^4.3.12",
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.4 KiB |
@@ -13,6 +13,7 @@
|
||||
import { ComponentPropsType, doRequest } from "/@/components/plugins/lib";
|
||||
import { ref, inject } from "vue";
|
||||
import { Form } from "ant-design-vue";
|
||||
import { getInputFromForm } from "./utils";
|
||||
|
||||
defineOptions({
|
||||
name: "ApiTest",
|
||||
@@ -45,13 +46,15 @@ const doTest = async () => {
|
||||
message.value = "";
|
||||
hasError.value = false;
|
||||
loading.value = true;
|
||||
const { input, record } = getInputFromForm(form, pluginType);
|
||||
try {
|
||||
const res = await doRequest(
|
||||
{
|
||||
type: pluginType,
|
||||
typeName: form.type,
|
||||
action: props.action,
|
||||
input: pluginType === "plugin" ? form.input : form,
|
||||
input,
|
||||
record,
|
||||
},
|
||||
{
|
||||
onError(err: any) {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
import { ComponentPropsType, doRequest } from "/@/components/plugins/lib";
|
||||
import { defineComponent, inject, ref, useAttrs, watch, Ref } from "vue";
|
||||
import { PluginDefine } from "@certd/pipeline";
|
||||
import { getInputFromForm } from "./utils";
|
||||
|
||||
defineOptions({
|
||||
name: "RemoteAutoComplete",
|
||||
@@ -48,18 +49,6 @@ const message = ref("");
|
||||
const hasError = ref(false);
|
||||
const loading = ref(false);
|
||||
|
||||
function getInputFromForm(form: any, pluginType: string) {
|
||||
let input: any = {};
|
||||
if (pluginType === "plugin") {
|
||||
input = form?.input || {};
|
||||
} else if (pluginType === "access") {
|
||||
input = form?.access || {};
|
||||
} else {
|
||||
input = form || {};
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
const getOptions = async () => {
|
||||
if (loading.value) {
|
||||
return;
|
||||
@@ -75,7 +64,7 @@ const getOptions = async () => {
|
||||
}
|
||||
const pluginType = getPluginType();
|
||||
const { form } = getScope();
|
||||
const input = getInputFromForm(form, pluginType);
|
||||
const { input, record } = getInputFromForm(form, pluginType);
|
||||
for (let key in define.input) {
|
||||
const inWatches = props.watches?.includes(key);
|
||||
const inputDefine = define.input[key];
|
||||
@@ -99,6 +88,7 @@ const getOptions = async () => {
|
||||
action: props.action,
|
||||
input,
|
||||
data: {},
|
||||
record,
|
||||
},
|
||||
{
|
||||
onError(err: any) {
|
||||
@@ -140,7 +130,7 @@ watch(
|
||||
() => {
|
||||
const pluginType = getPluginType();
|
||||
const { form, key } = getScope();
|
||||
const input = getInputFromForm(form, pluginType);
|
||||
const { input, record } = getInputFromForm(form, pluginType);
|
||||
const watches: any = {};
|
||||
if (props.watches && props.watches.length > 0) {
|
||||
for (const key of props.watches) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import { doRequest } from "/@/components/plugins/lib";
|
||||
import { inject, ref, useAttrs } from "vue";
|
||||
import { useFormWrapper } from "@fast-crud/fast-crud";
|
||||
import { notification } from "ant-design-vue";
|
||||
import { getInputFromForm } from "./utils";
|
||||
|
||||
defineOptions({
|
||||
name: "RemoteInput",
|
||||
@@ -71,15 +72,18 @@ const doPluginFormSubmit = async (data: any) => {
|
||||
}
|
||||
|
||||
loading.value = true;
|
||||
|
||||
try {
|
||||
const pluginType = getPluginType();
|
||||
const { form } = getScope();
|
||||
const { input, record } = getInputFromForm(form, pluginType);
|
||||
const res = await doRequest({
|
||||
type: pluginType,
|
||||
typeName: form.type,
|
||||
action: props.action,
|
||||
input: pluginType === "plugin" ? form.input : form,
|
||||
input,
|
||||
data: data,
|
||||
record,
|
||||
});
|
||||
//获取返回值 填入到input中
|
||||
emit("update:modelValue", res);
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
import { ComponentPropsType, doRequest } from "/@/components/plugins/lib";
|
||||
import { defineComponent, inject, ref, useAttrs, watch, Ref } from "vue";
|
||||
import { PluginDefine } from "@certd/pipeline";
|
||||
import { getInputFromForm } from "./utils";
|
||||
|
||||
defineOptions({
|
||||
name: "RemoteSelect",
|
||||
@@ -79,17 +80,6 @@ const getPluginType: any = inject("get:plugin:type", () => {
|
||||
return "plugin";
|
||||
});
|
||||
|
||||
function getInputFromForm(form: any, pluginType: string) {
|
||||
let input: any = {};
|
||||
if (pluginType === "plugin") {
|
||||
input = form?.input || {};
|
||||
} else if (pluginType === "access") {
|
||||
input = form?.access || {};
|
||||
} else {
|
||||
input = form || {};
|
||||
}
|
||||
return input;
|
||||
}
|
||||
const searchKeyRef = ref("");
|
||||
const optionsRef = ref([]);
|
||||
const message = ref("");
|
||||
@@ -115,7 +105,7 @@ const getOptions = async () => {
|
||||
}
|
||||
const pluginType = getPluginType();
|
||||
const { form } = getScope();
|
||||
const input = getInputFromForm(form, pluginType);
|
||||
const { input, record } = getInputFromForm(form, pluginType);
|
||||
|
||||
for (let key in define.input) {
|
||||
const inWatches = props.watches?.includes(key);
|
||||
@@ -141,6 +131,7 @@ const getOptions = async () => {
|
||||
typeName: form.type,
|
||||
action: props.action,
|
||||
input,
|
||||
record,
|
||||
data: {
|
||||
searchKey: props.search ? searchKeyRef.value : "",
|
||||
pageNo,
|
||||
@@ -211,7 +202,7 @@ watch(
|
||||
() => {
|
||||
const pluginType = getPluginType();
|
||||
const { form, key } = getScope();
|
||||
const input = getInputFromForm(form, pluginType);
|
||||
const { input, record } = getInputFromForm(form, pluginType);
|
||||
const watches: any = {};
|
||||
if (props.watches && props.watches.length > 0) {
|
||||
for (const key of props.watches) {
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
import { ComponentPropsType, doRequest } from "/@/components/plugins/lib";
|
||||
import { defineComponent, inject, ref, useAttrs, watch, Ref } from "vue";
|
||||
import { PluginDefine } from "@certd/pipeline";
|
||||
import { getInputFromForm } from "./utils";
|
||||
|
||||
defineOptions({
|
||||
name: "RemoteTreeSelect",
|
||||
@@ -67,7 +68,7 @@ const getOptions = async () => {
|
||||
}
|
||||
const pluginType = getPluginType();
|
||||
const { form } = getScope();
|
||||
const input = (pluginType === "plugin" ? form?.input : form) || {};
|
||||
const { input, record } = getInputFromForm(form, pluginType);
|
||||
|
||||
for (let key in define.input) {
|
||||
const inWatches = props.watches?.includes(key);
|
||||
@@ -98,6 +99,7 @@ const getOptions = async () => {
|
||||
pageNo,
|
||||
pageSize,
|
||||
},
|
||||
record,
|
||||
},
|
||||
{
|
||||
onError(err: any) {
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import { cloneDeep } from "lodash-es";
|
||||
|
||||
export function getInputFromForm(form: any, pluginType: string) {
|
||||
form = cloneDeep(form);
|
||||
let input: any = {};
|
||||
const record: any = form;
|
||||
if (pluginType === "plugin") {
|
||||
input = form?.input || {};
|
||||
delete form.input;
|
||||
} else if (pluginType === "access") {
|
||||
input = form?.access || {};
|
||||
delete form.access;
|
||||
} else if (pluginType === "notification") {
|
||||
input = form?.body || {};
|
||||
delete form.body;
|
||||
} else if (pluginType === "addon") {
|
||||
input = form?.body || {};
|
||||
delete form.body;
|
||||
} else {
|
||||
throw new Error(`pluginType ${pluginType} not support`);
|
||||
}
|
||||
return {
|
||||
input,
|
||||
record,
|
||||
};
|
||||
}
|
||||
@@ -20,6 +20,7 @@ export const Dicts = {
|
||||
uploaderTypeDict: dict({
|
||||
data: [
|
||||
{ label: "SFTP", value: "sftp" },
|
||||
{ label: "SCP", value: "scp" },
|
||||
{ label: "FTP", value: "ftp" },
|
||||
{ label: "阿里云OSS", value: "alioss" },
|
||||
{ label: "腾讯云COS", value: "tencentcos" },
|
||||
|
||||
@@ -12,11 +12,12 @@ export type RequestHandleReq<T = any> = {
|
||||
action: string;
|
||||
data?: any;
|
||||
input: T;
|
||||
record?: any;
|
||||
};
|
||||
|
||||
export async function doRequest(req: RequestHandleReq, opts: any = {}) {
|
||||
const url = `/pi/handle/${req.type}`;
|
||||
const { typeName, action, data, input } = req;
|
||||
const { typeName, action, data, input, record } = req;
|
||||
const res = await request({
|
||||
url,
|
||||
method: "post",
|
||||
@@ -25,6 +26,7 @@ export async function doRequest(req: RequestHandleReq, opts: any = {}) {
|
||||
action,
|
||||
data,
|
||||
input,
|
||||
record,
|
||||
},
|
||||
...opts,
|
||||
});
|
||||
|
||||
@@ -160,6 +160,7 @@ export default {
|
||||
updateTime: "Update Time",
|
||||
triggerType: "Trigger Type",
|
||||
pipelineId: "Pipeline Id",
|
||||
nextRunTime: "Next Run Time",
|
||||
projectName: "Project",
|
||||
adminId: "Admin",
|
||||
},
|
||||
|
||||
@@ -167,6 +167,7 @@ export default {
|
||||
updateTime: "更新时间",
|
||||
triggerType: "触发类型",
|
||||
pipelineId: "流水线Id",
|
||||
nextRunTime: "下次运行时间",
|
||||
projectName: "项目",
|
||||
adminId: "管理员",
|
||||
},
|
||||
|
||||
@@ -117,3 +117,4 @@ span.fs-icon-svg {
|
||||
margin: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
@import "./fix-windicss.less";
|
||||
@import "./antdv4.less";
|
||||
@import "./certd.less";
|
||||
@import "./dark.less";
|
||||
|
||||
html,
|
||||
body {
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
.dark{
|
||||
.fs-page-header{
|
||||
.title {
|
||||
color: #d5d5d5 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,7 @@ const defaultPreferences: Preferences = {
|
||||
colorPrimary: "hsl(212 100% 45%)",
|
||||
colorSuccess: "hsl(144 57% 58%)",
|
||||
colorWarning: "hsl(42 84% 61%)",
|
||||
mode: "light",
|
||||
mode: "auto",
|
||||
radius: "0.5",
|
||||
semiDarkHeader: false,
|
||||
semiDarkSidebar: false,
|
||||
|
||||
@@ -67,7 +67,10 @@ export function getCommonColumnDefine(crudExpose: any, typeRef: any, api: any) {
|
||||
set(form, key, column.value);
|
||||
}
|
||||
//字段配置赋值
|
||||
columnsRef.value[key] = column;
|
||||
if (columnsRef.value) {
|
||||
columnsRef.value[key] = column;
|
||||
}
|
||||
|
||||
console.log("form", columnsRef.value);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('certd.monitor.setting.dnsServer')" :name="['dnsServer']">
|
||||
<div class="flex">
|
||||
<a-select v-model:value="formState.dnsServer" mode="tags" :open="false" />
|
||||
<a-select v-model:value="formState.dnsServer" :token-separators="[' ', ',', ',', '、', '|']" mode="tags" :open="false" />
|
||||
</div>
|
||||
<div class="helper">{{ t("certd.monitor.setting.dnsServerHelper") }}</div>
|
||||
</a-form-item>
|
||||
@@ -75,7 +75,7 @@ async function loadUserSettings() {
|
||||
|
||||
loadUserSettings();
|
||||
const doSave = async (form: any) => {
|
||||
await utils.sleep(1);
|
||||
await utils.sleep(300);
|
||||
await api.SiteMonitorSettingsSave({
|
||||
...formState,
|
||||
});
|
||||
|
||||
@@ -358,6 +358,7 @@ export default function ({ crudExpose, context: { selectedRowKeys, openCertApply
|
||||
column: {
|
||||
align: "center",
|
||||
width: 120,
|
||||
show: false,
|
||||
sorter: true,
|
||||
},
|
||||
form: {
|
||||
@@ -471,6 +472,18 @@ export default function ({ crudExpose, context: { selectedRowKeys, openCertApply
|
||||
align: "center",
|
||||
},
|
||||
},
|
||||
nextRunTime: {
|
||||
title: t("certd.fields.nextRunTime"),
|
||||
type: "datetime",
|
||||
form: {
|
||||
show: false,
|
||||
},
|
||||
column: {
|
||||
sorter: true,
|
||||
width: 150,
|
||||
align: "center",
|
||||
},
|
||||
},
|
||||
disabled: {
|
||||
title: t("certd.fields.enabled"),
|
||||
type: "dict-switch",
|
||||
|
||||
@@ -885,6 +885,7 @@ export default defineComponent({
|
||||
saveLoading.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
const edit = () => {
|
||||
pipeline.value = cloneDeep(currentPipeline.value);
|
||||
currentHistory.value = null;
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<a-collapse v-if="detail?.template?.pipelineId > 0" v-model:active-key="activeKey">
|
||||
<a-collapse-panel v-for="(step, stepId) in steps" :key="stepId" class="step-item" :header="step.title">
|
||||
<div class="step-inputs flex flex-wrap">
|
||||
<div v-for="(input, key) of step.input" :key="key" class="hover:bg-gray-100 p-5 w-full xl:w-[50%]">
|
||||
<div v-for="(input, key) of step.input" :key="key" class="hover:bg-gray-100 dark:hover:bg-[#2d2d2d] p-5 w-full xl:w-[50%]">
|
||||
<div class="flex flex-between" :title="input.define.helper">
|
||||
<div class="flex flex-1 overflow-hidden mr-5">
|
||||
<span style="min-width: 140px" class="bas">
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { get, set } from "lodash-es";
|
||||
import { computed, reactive, ref, defineProps } from "vue";
|
||||
import { computed, reactive, ref } from "vue";
|
||||
import { useStepHelper } from "./utils";
|
||||
import { usePluginStore } from "/@/store/plugin";
|
||||
|
||||
|
||||
@@ -221,14 +221,12 @@ onMounted(() => {
|
||||
border: 1px solid #e8e8e8;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
|
||||
.card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 12px 16px;
|
||||
background-color: #fafafa;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
@@ -245,13 +243,11 @@ onMounted(() => {
|
||||
.input-form {
|
||||
margin-bottom: 12px;
|
||||
padding: 12px;
|
||||
background-color: #fafafa;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.domain-info {
|
||||
padding: 5.5px 12px;
|
||||
background-color: #f0f0f0;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
@@ -272,7 +268,6 @@ onMounted(() => {
|
||||
.summary {
|
||||
margin-top: 16px;
|
||||
padding: 12px;
|
||||
background-color: #f8f9fa;
|
||||
border-radius: 4px;
|
||||
.summary-text {
|
||||
}
|
||||
|
||||
@@ -110,7 +110,6 @@ onMounted(() => {
|
||||
}
|
||||
|
||||
.info-item {
|
||||
background-color: #fafafa;
|
||||
border-radius: 4px;
|
||||
padding: 12px;
|
||||
|
||||
|
||||
@@ -138,7 +138,6 @@ const resultError = computed(() => {
|
||||
.port-info {
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
background-color: #f0f0f0;
|
||||
padding: 2px 6px;
|
||||
border-radius: 3px;
|
||||
margin-right: 8px;
|
||||
@@ -154,7 +153,6 @@ const resultError = computed(() => {
|
||||
.error-message,
|
||||
.object-result,
|
||||
.text-result {
|
||||
background-color: #f8f8f8;
|
||||
padding: 8px 10px;
|
||||
border-radius: 3px;
|
||||
overflow-x: auto;
|
||||
@@ -170,7 +168,6 @@ const resultError = computed(() => {
|
||||
}
|
||||
|
||||
.test-log {
|
||||
background-color: #f8f8f8;
|
||||
padding: 8px 10px;
|
||||
border-radius: 3px;
|
||||
overflow-x: auto;
|
||||
|
||||
@@ -30,7 +30,6 @@ import ServerInfoCard from "./ServerInfoCard.vue";
|
||||
.page-sys-nettest {
|
||||
.nettest-container {
|
||||
padding: 16px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.test-areas {
|
||||
|
||||
@@ -3,6 +3,26 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.38.10](https://github.com/certd/certd/compare/v1.38.9...v1.38.10) (2026-02-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复1panel 请求失败的bug ([0283662](https://github.com/certd/certd/commit/0283662931ff47d6b5d49f91a30c4a002fe1d108))
|
||||
* 修复阿里云dcdn使用上传到cas的id引用错误的bug ([61800b2](https://github.com/certd/certd/commit/61800b23e2be324169990810d1176c18decabb23))
|
||||
* 修复保存站点监控dns设置,偶尔无法保存成功的bug ([8387fe0](https://github.com/certd/certd/commit/8387fe0d5b2e77b8c2788a10791e5389d97a3e41))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* 备份支持scp上传 ([66ac471](https://github.com/certd/certd/commit/66ac4716f2565d7ee827461b625397ae21599451))
|
||||
* 列表中支持下次执行时间显示 ([a3cabd5](https://github.com/certd/certd/commit/a3cabd5f36ed41225ad418098596e9b2c44e31a1))
|
||||
* 群晖支持刷新登录有效期 ([42c7ec2](https://github.com/certd/certd/commit/42c7ec2f75947e2b8298d6605d4dbcd441aacd51))
|
||||
* 所有授权增加测试按钮 ([7a3e68d](https://github.com/certd/certd/commit/7a3e68d656c1dcdcd814b69891bd2c2c6fe3098a))
|
||||
* 新网互联支持查询域名列表 ([e7e54bc](https://github.com/certd/certd/commit/e7e54bc19e3a734913a93a94e25db3bb06d2ab0f))
|
||||
* 优化京东云报错详情显示 ([1195417](https://github.com/certd/certd/commit/1195417b9714d2fcb540e43c0a20809b7ee2052b))
|
||||
* 增加部署证书到certd本身插件 ([3cd1aae](https://github.com/certd/certd/commit/3cd1aaeb035f8af79714030889b2b4dc259b700e))
|
||||
* 支持next-terminal ([6f3fd78](https://github.com/certd/certd/commit/6f3fd785e77a33c72bdf4115dc5d498e677d1863))
|
||||
* http校验方式支持scp上传 ([4eb940f](https://github.com/certd/certd/commit/4eb940ffe765a0330331bc6af8396315e36d4e4a))
|
||||
|
||||
## [1.38.9](https://github.com/certd/certd/compare/v1.38.8...v1.38.9) (2026-02-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -17,6 +17,12 @@ input:
|
||||
placeholder: 密码
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 测试授权是否正确
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-51dns/access.js
|
||||
|
||||
@@ -19,6 +19,12 @@ input:
|
||||
component:
|
||||
placeholder: totp key
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 测试授权是否正确
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-cachefly/access.js
|
||||
|
||||
@@ -19,6 +19,12 @@ input:
|
||||
component:
|
||||
placeholder: totp key
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-gcore/access.js
|
||||
|
||||
@@ -24,6 +24,12 @@ input:
|
||||
value: ap-southeast-1
|
||||
helper: 请选择ESA地区
|
||||
required: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-lib/aliyun/access/aliesa-access.js
|
||||
|
||||
@@ -17,6 +17,12 @@ input:
|
||||
required: true
|
||||
encrypt: true
|
||||
helper: 注意:证书申请需要dns解析权限;其他阿里云插件,需要对应的权限,比如证书上传需要证书管理权限;嫌麻烦就用主账号的全量权限的accessKey
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-lib/aliyun/access/aliyun-access.js
|
||||
|
||||
@@ -165,6 +165,12 @@ input:
|
||||
value: me-south-1
|
||||
- label: sa-east-1
|
||||
value: sa-east-1
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 测试授权是否正确
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-aws/access.js
|
||||
|
||||
@@ -19,6 +19,12 @@ input:
|
||||
helper: 是否使用http代理
|
||||
required: false
|
||||
encrypt: false
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 测试授权是否正确
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-cloudflare/access.js
|
||||
|
||||
@@ -17,6 +17,12 @@ input:
|
||||
required: true
|
||||
encrypt: true
|
||||
helper: ''
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/ctyun/access/ctyun-access.js
|
||||
|
||||
@@ -17,6 +17,12 @@ input:
|
||||
helper: ''
|
||||
required: false
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 测试授权是否正确
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-dnsla/access.js
|
||||
|
||||
@@ -17,6 +17,12 @@ input:
|
||||
helper: 请前往[多吉云-密钥管理](https://console.dogecloud.com/user/keys)获取
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 测试授权是否正确
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-doge/access.js
|
||||
|
||||
@@ -17,6 +17,12 @@ input:
|
||||
placeholder: accessKeySecret
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-huawei/access/huawei-access.js
|
||||
|
||||
@@ -16,6 +16,12 @@ input:
|
||||
placeholder: SecretAccessKey
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-jdcloud/access.js
|
||||
|
||||
@@ -18,6 +18,12 @@ input:
|
||||
vModel: checked
|
||||
required: false
|
||||
encrypt: false
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/k8s/access.js
|
||||
|
||||
@@ -15,6 +15,12 @@ input:
|
||||
placeholder: password
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/kuocai/access.js
|
||||
|
||||
@@ -64,6 +64,12 @@ input:
|
||||
})
|
||||
}
|
||||
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/lecdn/access.js
|
||||
|
||||
@@ -24,6 +24,12 @@ input:
|
||||
helper: 设置->最下面开发者设置->启用OpenToken
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/lucky/access.js
|
||||
|
||||
@@ -30,6 +30,12 @@ input:
|
||||
vModel: value
|
||||
encrypt: false
|
||||
required: false
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/maoyun/access.js
|
||||
|
||||
@@ -14,6 +14,12 @@ input:
|
||||
然后点击Generate按钮
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-namesilo/access.js
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
name: nextTerminal
|
||||
title: Next Terminal 授权
|
||||
icon: clarity:plugin-line
|
||||
desc: 用于访问 Next Terminal API 的授权配置
|
||||
input:
|
||||
baseUrl:
|
||||
title: 系统地址
|
||||
component:
|
||||
name: a-input
|
||||
allowClear: true
|
||||
placeholder: https://nt.example.com:8088
|
||||
required: true
|
||||
apiToken:
|
||||
title: API 令牌
|
||||
helper: 个人中心->授权令牌->创建令牌
|
||||
component:
|
||||
name: a-input
|
||||
allowClear: true
|
||||
placeholder: NT_xxxxx
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: TestRequest
|
||||
helper: 点击测试接口是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-next-terminal/access.js
|
||||
@@ -37,6 +37,12 @@ input:
|
||||
helper: pam 或 pve。默认值 pam
|
||||
required: false
|
||||
encrypt: false
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-proxmox/access.js
|
||||
|
||||
@@ -13,6 +13,12 @@ input:
|
||||
title: SecretKey
|
||||
encrypt: true
|
||||
helper: SK
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
order: 2
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
|
||||
@@ -21,6 +21,12 @@ input:
|
||||
name: a-switch
|
||||
vModel: checked
|
||||
helper: 如果面板的url是https,且使用的是自签名证书,则需要开启此选项,其他情况可以关闭
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/safeline/access.js
|
||||
|
||||
@@ -83,6 +83,12 @@ input:
|
||||
name: a-input-number
|
||||
vModel: value
|
||||
helper: 请求超时时间,单位:秒
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/synology/access.js
|
||||
|
||||
@@ -41,6 +41,12 @@ input:
|
||||
component:
|
||||
name: a-switch
|
||||
vModel: checked
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-lib/tencent/access.js
|
||||
|
||||
@@ -16,6 +16,12 @@ input:
|
||||
placeholder: 密码
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/unicloud/access.js
|
||||
|
||||
@@ -14,6 +14,12 @@ input:
|
||||
placeholder: 又拍云密码
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-upyun/access.js
|
||||
|
||||
@@ -16,6 +16,12 @@ input:
|
||||
placeholder: SecretAccessKey
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-volcengine/access.js
|
||||
|
||||
@@ -18,6 +18,12 @@ input:
|
||||
placeholder: 密码
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-xinnetconnet/access.js
|
||||
|
||||
@@ -17,6 +17,12 @@ input:
|
||||
helper: http://user.yiduncdn.com/console/index.html#/account/config/api,点击开启后获取
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/yidun/access.js
|
||||
|
||||
@@ -15,6 +15,12 @@ input:
|
||||
placeholder: password
|
||||
required: true
|
||||
encrypt: true
|
||||
testRequest:
|
||||
title: 测试
|
||||
component:
|
||||
name: api-test
|
||||
action: onTestRequest
|
||||
helper: 点击测试接口看是否正常
|
||||
pluginType: access
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/yidun/access-rcdn.js
|
||||
|
||||
@@ -18,10 +18,11 @@ input:
|
||||
options:
|
||||
- label: 本地复制
|
||||
value: local
|
||||
- label: ssh上传
|
||||
value: ssh
|
||||
- label: oss上传
|
||||
- label: oss上传(推荐)
|
||||
value: oss
|
||||
- label: ssh上传(请使用oss上传方式)
|
||||
value: ssh
|
||||
disabled: true
|
||||
placeholder: ''
|
||||
helper: 支持本地复制、ssh上传
|
||||
required: true
|
||||
@@ -58,6 +59,8 @@ input:
|
||||
label: Ftp
|
||||
- value: sftp
|
||||
label: Sftp
|
||||
- value: scp
|
||||
label: SCP
|
||||
mergeScript: |2-
|
||||
|
||||
return {
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
showRunStrategy: false
|
||||
default:
|
||||
strategy:
|
||||
runStrategy: 1
|
||||
name: DeployToCertd
|
||||
title: 部署证书到Certd本身
|
||||
icon: mdi:restart
|
||||
desc: 【仅管理员可用】 部署证书到 certd的https服务,用于更新 Certd 的 ssl 证书,建议将此任务放在流水线的最后一步
|
||||
group: admin
|
||||
onlyAdmin: true
|
||||
input:
|
||||
cert:
|
||||
title: 域名证书
|
||||
helper: 请选择前置任务输出的域名证书
|
||||
component:
|
||||
name: output-selector
|
||||
from:
|
||||
- ':cert:'
|
||||
required: true
|
||||
order: 0
|
||||
output: {}
|
||||
pluginType: deploy
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-admin/plugin-deploy-to-certd.js
|
||||
@@ -0,0 +1,58 @@
|
||||
showRunStrategy: false
|
||||
default:
|
||||
strategy:
|
||||
runStrategy: 1
|
||||
name: NextTerminalRefreshCert
|
||||
title: NextTerminal-更新证书
|
||||
icon: clarity:plugin-line
|
||||
desc: 更新 Next Terminal 证书
|
||||
group: panel
|
||||
input:
|
||||
cert:
|
||||
title: 域名证书
|
||||
helper: 请选择前置任务输出的域名证书
|
||||
component:
|
||||
name: output-selector
|
||||
from:
|
||||
- CertApply
|
||||
required: true
|
||||
order: 0
|
||||
accessId:
|
||||
title: Next Terminal 授权
|
||||
helper: 选择 Next Terminal 授权配置
|
||||
component:
|
||||
name: access-selector
|
||||
type: nextTerminal
|
||||
required: true
|
||||
order: 0
|
||||
certIds:
|
||||
title: 选择证书
|
||||
component:
|
||||
name: remote-select
|
||||
vModel: value
|
||||
mode: tags
|
||||
type: plugin
|
||||
action: onGetCertList
|
||||
search: false
|
||||
pager: false
|
||||
watches:
|
||||
- certDomains
|
||||
- accessId
|
||||
- accessId
|
||||
required: true
|
||||
mergeScript: |2-
|
||||
|
||||
return {
|
||||
component:{
|
||||
form: ctx.compute(({form})=>{
|
||||
return form
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
helper: 选择要更新的 Next Terminal 证书(支持多选),如果这里没有列出,需要先前往控制台上传证书,之后就可以自动更新
|
||||
order: 0
|
||||
output: {}
|
||||
pluginType: deploy
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-next-terminal/plugins/plugin-refresh-cert.js
|
||||
@@ -3,9 +3,9 @@ default:
|
||||
strategy:
|
||||
runStrategy: 1
|
||||
name: SafelineDeployToWebsitePlugin
|
||||
title: 雷池-更新证书
|
||||
title: 雷池-更新证书(支持控制台和防护应用)
|
||||
icon: svg:icon-safeline
|
||||
desc: 更新长亭雷池WAF的证书
|
||||
desc: 更新长亭雷池WAF的证书,支持更新控制台和防护应用的证书。
|
||||
group: panel
|
||||
needPlus: false
|
||||
input:
|
||||
@@ -68,7 +68,9 @@ input:
|
||||
},
|
||||
}
|
||||
|
||||
helper: 请选择要更新的雷池的证书Id,需要先手动到雷池控制台上传一次
|
||||
helper: |-
|
||||
请选择要更新的雷池的证书Id,需要先手动到雷池控制台上传一次
|
||||
如果输入0,则表示新增证书,运行一次之后可以在雷池中使用该证书,最后记得在此处选择新上传的这个证书id,后续将进行自动更新
|
||||
order: 0
|
||||
output: {}
|
||||
pluginType: deploy
|
||||
|
||||
@@ -31,7 +31,9 @@ input:
|
||||
order: 0
|
||||
accessId:
|
||||
title: 群晖授权
|
||||
helper: 群晖登录授权,请确保账户是管理员用户组
|
||||
helper: |-
|
||||
群晖登录授权,请确保账户是管理员用户组
|
||||
群晖OTP授权有效期只有30天,您还需要添加“群晖-刷新OTP登录有效期”任务做登录有效期保活
|
||||
component:
|
||||
name: access-selector
|
||||
type: synology
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
showRunStrategy: false
|
||||
default:
|
||||
strategy:
|
||||
runStrategy: 0
|
||||
name: SynologyKeepAlive
|
||||
title: 群晖-刷新OTP登录有效期
|
||||
icon: simple-icons:synology
|
||||
group: panel
|
||||
desc: 群晖登录状态可能30天失效,需要在失效之前登录一次,刷新有效期,您可以将其放在“部署到群晖面板”任务之后
|
||||
needPlus: true
|
||||
input:
|
||||
accessId:
|
||||
title: 群晖授权
|
||||
helper: 群晖登录授权,请确保账户是管理员用户组
|
||||
component:
|
||||
name: access-selector
|
||||
type: synology
|
||||
required: true
|
||||
order: 0
|
||||
intervalDays:
|
||||
title: 间隔天数
|
||||
helper: 多少天刷新一次,建议15天以内
|
||||
value: 15
|
||||
component:
|
||||
name: a-input-number
|
||||
vModel: value
|
||||
required: true
|
||||
order: 0
|
||||
output:
|
||||
lastRefreshTime:
|
||||
title: 上次刷新时间
|
||||
type: SynologyLastRefreshTime
|
||||
pluginType: deploy
|
||||
type: builtIn
|
||||
scriptFilePath: /plugins/plugin-plus/synology/plugins/plugin-keep-alive.js
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@certd/ui-server",
|
||||
"version": "1.38.9",
|
||||
"version": "1.38.10",
|
||||
"description": "fast-server base midway",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
@@ -41,6 +41,7 @@
|
||||
"@alicloud/openapi-client": "^0.4.12",
|
||||
"@alicloud/openapi-util": "^0.3.2",
|
||||
"@alicloud/pop-core": "^1.7.10",
|
||||
"@alicloud/sts-sdk": "^1.0.2",
|
||||
"@alicloud/tea-typescript": "^1.8.0",
|
||||
"@alicloud/tea-util": "^1.4.10",
|
||||
"@aws-sdk/client-acm": "^3.964.0",
|
||||
@@ -48,20 +49,21 @@
|
||||
"@aws-sdk/client-iam": "^3.964.0",
|
||||
"@aws-sdk/client-route-53": "^3.964.0",
|
||||
"@aws-sdk/client-s3": "^3.964.0",
|
||||
"@certd/acme-client": "^1.38.9",
|
||||
"@certd/basic": "^1.38.9",
|
||||
"@certd/commercial-core": "^1.38.9",
|
||||
"@aws-sdk/client-sts": "^3.990.0",
|
||||
"@certd/acme-client": "^1.38.10",
|
||||
"@certd/basic": "^1.38.10",
|
||||
"@certd/commercial-core": "^1.38.10",
|
||||
"@certd/cv4pve-api-javascript": "^8.4.2",
|
||||
"@certd/jdcloud": "^1.38.9",
|
||||
"@certd/lib-huawei": "^1.38.9",
|
||||
"@certd/lib-k8s": "^1.38.9",
|
||||
"@certd/lib-server": "^1.38.9",
|
||||
"@certd/midway-flyway-js": "^1.38.9",
|
||||
"@certd/pipeline": "^1.38.9",
|
||||
"@certd/plugin-cert": "^1.38.9",
|
||||
"@certd/plugin-lib": "^1.38.9",
|
||||
"@certd/plugin-plus": "^1.38.9",
|
||||
"@certd/plus-core": "^1.38.9",
|
||||
"@certd/jdcloud": "^1.38.10",
|
||||
"@certd/lib-huawei": "^1.38.10",
|
||||
"@certd/lib-k8s": "^1.38.10",
|
||||
"@certd/lib-server": "^1.38.10",
|
||||
"@certd/midway-flyway-js": "^1.38.10",
|
||||
"@certd/pipeline": "^1.38.10",
|
||||
"@certd/plugin-cert": "^1.38.10",
|
||||
"@certd/plugin-lib": "^1.38.10",
|
||||
"@certd/plugin-plus": "^1.38.10",
|
||||
"@certd/plus-core": "^1.38.10",
|
||||
"@google-cloud/publicca": "^1.3.0",
|
||||
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.185",
|
||||
"@huaweicloud/huaweicloud-sdk-core": "^3.1.185",
|
||||
|
||||
@@ -35,9 +35,9 @@ export class HandleController extends BaseController {
|
||||
@Post('/access', { summary: Constants.per.authOnly })
|
||||
async accessRequest(@Body(ALL) body: AccessRequestHandleReq) {
|
||||
const {projectId,userId} = await this.getProjectUserIdRead()
|
||||
let inputAccess = body.input.access;
|
||||
if (body.input.id > 0) {
|
||||
const oldEntity = await this.accessService.info(body.input.id);
|
||||
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');
|
||||
@@ -47,7 +47,7 @@ export class HandleController extends BaseController {
|
||||
}
|
||||
const param: any = {
|
||||
type: body.typeName,
|
||||
setting: JSON.stringify(body.input.access),
|
||||
setting: JSON.stringify(body.input),
|
||||
};
|
||||
this.accessService.encryptSetting(param, oldEntity);
|
||||
inputAccess = this.accessService.decryptAccessEntity(param);
|
||||
@@ -56,7 +56,7 @@ export class HandleController extends BaseController {
|
||||
const accessGetter = new AccessGetter(userId,projectId, this.accessService.getById.bind(this.accessService));
|
||||
const access = await newAccess(body.typeName, inputAccess,accessGetter);
|
||||
|
||||
mergeUtils.merge(access, body.input);
|
||||
// mergeUtils.merge(access, body.input);
|
||||
const res = await access.onRequest(body);
|
||||
|
||||
return this.ok(res);
|
||||
@@ -64,7 +64,7 @@ export class HandleController extends BaseController {
|
||||
|
||||
@Post('/notification', { summary: Constants.per.authOnly })
|
||||
async notificationRequest(@Body(ALL) body: NotificationRequestHandleReq) {
|
||||
const input = body.input.body;
|
||||
const input = body.input;
|
||||
|
||||
const notification = await newNotification(body.typeName, input, {
|
||||
http,
|
||||
|
||||
@@ -58,6 +58,8 @@ export class PipelineEntity {
|
||||
// 变量
|
||||
lastVars: any;
|
||||
|
||||
nextRunTime: number;
|
||||
|
||||
@Column({name: 'order', comment: '排序', nullable: true,})
|
||||
order: number;
|
||||
|
||||
@@ -72,4 +74,5 @@ export class PipelineEntity {
|
||||
default: () => 'CURRENT_TIMESTAMP',
|
||||
})
|
||||
updateTime: Date;
|
||||
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ import { TaskServiceBuilder } from "./getter/task-service-getter.js";
|
||||
import { nanoid } from "nanoid";
|
||||
import { set } from "lodash-es";
|
||||
import { executorQueue } from "@certd/lib-server";
|
||||
|
||||
import parser from "cron-parser";
|
||||
const runningTasks: Map<string | number, Executor> = new Map();
|
||||
|
||||
|
||||
@@ -142,16 +142,47 @@ export class PipelineService extends BaseService<PipelineEntity> {
|
||||
}
|
||||
// @ts-ignore
|
||||
item.stepCount = stepCount;
|
||||
if(item.triggerCount == 0 ){
|
||||
if (item.triggerCount == 0) {
|
||||
item.triggerCount = pipeline.triggers?.length;
|
||||
}
|
||||
|
||||
|
||||
//获取下次执行时间
|
||||
if (pipeline.triggers?.length > 0) {
|
||||
const triggers = pipeline.triggers.filter((item) => item.type === 'timer');
|
||||
if (triggers && triggers.length > 0) {
|
||||
let nextTimes: any = [];
|
||||
for (const item of triggers) {
|
||||
if (!item.props?.cron) {
|
||||
continue;
|
||||
}
|
||||
const ret = this.getCronNextTimes(item.props?.cron, 1);
|
||||
nextTimes.push(...ret);
|
||||
}
|
||||
item.nextRunTime = nextTimes[0]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
delete item.content;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
getCronNextTimes(cron: string, count: number = 1) {
|
||||
if (cron == null) {
|
||||
return [];
|
||||
}
|
||||
const nextTimes = [];
|
||||
const interval = parser.parseExpression(cron);
|
||||
for (let i = 0; i < count; i++) {
|
||||
const next = interval.next().getTime();
|
||||
nextTimes.push(dayjs(next).format("YYYY-MM-DD HH:mm:ss"));
|
||||
}
|
||||
return nextTimes;
|
||||
}
|
||||
|
||||
|
||||
private async fillLastVars(records: PipelineEntity[]) {
|
||||
const pipelineIds: number[] = [];
|
||||
const recordMap = {};
|
||||
@@ -221,7 +252,7 @@ export class PipelineService extends BaseService<PipelineEntity> {
|
||||
//修改
|
||||
old = await this.info(bean.id);
|
||||
}
|
||||
if (!old || !old.webhookKey ) {
|
||||
if (!old || !old.webhookKey) {
|
||||
bean.webhookKey = await this.genWebhookKey();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { IsAccess, AccessInput, BaseAccess } from '@certd/pipeline';
|
||||
import { Dns51Client } from './client.js';
|
||||
|
||||
/**
|
||||
* 这个注解将注册一个授权配置
|
||||
@@ -27,14 +28,38 @@ export class Dns51Access extends BaseAccess {
|
||||
@AccessInput({
|
||||
title: '登录密码',
|
||||
component: {
|
||||
name:"a-input-password",
|
||||
vModel:"value",
|
||||
name: "a-input-password",
|
||||
vModel: "value",
|
||||
placeholder: '密码',
|
||||
},
|
||||
required: true,
|
||||
encrypt: true,
|
||||
})
|
||||
password = '';
|
||||
|
||||
@AccessInput({
|
||||
title: "测试",
|
||||
component: {
|
||||
name: "api-test",
|
||||
action: "TestRequest"
|
||||
},
|
||||
helper: "测试授权是否正确"
|
||||
})
|
||||
testRequest = true;
|
||||
|
||||
async onTestRequest() {
|
||||
|
||||
const client = new Dns51Client({
|
||||
logger: this.ctx.logger,
|
||||
access: this,
|
||||
});
|
||||
|
||||
await client.login();
|
||||
|
||||
return "ok";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
new Dns51Access();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export * from './plugin-restart.js';
|
||||
export * from './plugin-script.js';
|
||||
export * from './plugin-db-backup.js';
|
||||
export * from './plugin-deploy-to-certd.js';
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user