Compare commits

...

17 Commits

Author SHA1 Message Date
xiaojunnuo
98445afd3e v1.31.2 2025-03-12 10:25:30 +08:00
xiaojunnuo
3eb9671640 build: prepare to build 2025-03-12 10:23:41 +08:00
xiaojunnuo
95fb4e3e8b fix: 修复cname记录查找bug 2025-03-12 10:17:12 +08:00
xiaojunnuo
818015d24a build: publish 2025-03-11 23:34:04 +08:00
xiaojunnuo
e11bd3e813 build: trigger build image 2025-03-11 23:33:45 +08:00
xiaojunnuo
2a4d64af95 v1.31.1 2025-03-11 23:32:00 +08:00
xiaojunnuo
d73cb4be2b build: prepare to build 2025-03-11 23:29:21 +08:00
xiaojunnuo
82752040f8 build: trigger build image 2025-03-11 23:27:04 +08:00
xiaojunnuo
1bde6d8b9c build: prepare to build 2025-03-11 23:23:44 +08:00
xiaojunnuo
be55d36f67 chore: 2025-03-11 23:22:44 +08:00
xiaojunnuo
f07724372d chore: 2025-03-11 23:11:24 +08:00
xiaojunnuo
5b8d5dd975 perf: 一些手机端适配优化 2025-03-11 22:25:14 +08:00
xiaojunnuo
e36aa065e9 chore: 2025-03-11 18:05:36 +08:00
xiaojunnuo
45486ef399 chore: 2025-03-11 11:16:02 +08:00
xiaojunnuo
4fedf6f452 chore: 2025-03-11 11:14:02 +08:00
xiaojunnuo
702b80ef75 build: publish 2025-03-11 01:34:44 +08:00
xiaojunnuo
a5c7789dbc build: trigger build image 2025-03-11 01:34:24 +08:00
56 changed files with 375 additions and 165 deletions

View File

@@ -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.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
### Bug Fixes
* 修复cname记录查找bug ([95fb4e3](https://github.com/certd/certd/commit/95fb4e3e8be6ca13cc43b451f6141d62190ba453))
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
### Performance Improvements
* 一些手机端适配优化 ([5b8d5dd](https://github.com/certd/certd/commit/5b8d5dd97536456a9d5d1384216eac1093b2dc3d))
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
### Bug Fixes

View File

@@ -1 +1 @@
01:08
23:33

View File

@@ -7,10 +7,10 @@ services:
restart: unless-stopped # 自动重启
volumes:
# ↓↓↓↓↓ -------------------------------------------------------- 数据库以及证书存储路径,默认存在宿主机的/data/certd/目录下,【您需要定时备份此目录,以保障数据容灾】
# 只要修改冒号前面的,冒号后面的
# 只要修改冒号前面的,冒号后面的/app/data不要
- /data/certd:/app/data
ports: # 端口映射
# ↓↓↓↓ ---------------------------------------------------------- 如果端口有冲突可以修改第一个7001为其他不冲突的端口号
# ↓↓↓↓ ---------------------------------------------------------- 如果端口有冲突可以修改第一个7001为其他不冲突的端口号第二个7001不要动
- "7001:7001"
# ↓↓↓↓ ---------------------------------------------------------- https端口可以根据实际情况是否暴露该端口
- "7002:7002"
@@ -27,6 +27,8 @@ services:
# extra_hosts:
# # ↓↓↓↓ -------------------------------------------------------- 这里可以配置自定义hosts外网域名可以指向本地局域网ip地址
# - "localdomain.com:192.168.1.3"
# # ↓↓↓↓ ------------------------------------------------ 直接使用主机的网络,如果网络问题实在找不到原因,可以尝试打开此参数
# network_mode: host
labels:
com.centurylinklabs.watchtower.enable: "true"
# ↓↓↓↓ -------------------------------------------------------------- 启用ipv6网络还需要把下面networks的注释放开

View File

@@ -3,6 +3,31 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
### Performance Improvements
* 一些手机端适配优化 ([5b8d5dd](https://github.com/certd/certd/commit/5b8d5dd97536456a9d5d1384216eac1093b2dc3d))
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
### Bug Fixes
* 修复CDN插件我爱云因更换接口导致部署失败的问题 ([5641c19](https://github.com/certd/certd/commit/5641c19502970f67af19709bddf8c781b1a25bdc))
* 修复CDN插件我爱云因更换接口导致部署失败的问题 ([0110dfd](https://github.com/certd/certd/commit/0110dfdb70b12dfb0a7a067717f3773ed75aae7c))
* 修复webhook headers value中带等号是解析错误的bug ([1fe3365](https://github.com/certd/certd/commit/1fe3365e10c464c4c60c82f424cf74fe35b883e0))
* ProxmoxUploadCert 增加强制部署证书 ([441b15e](https://github.com/certd/certd/commit/441b15ed2fe5a143a5bd5508613b3816ddbff596))
### Performance Improvements
* 历史记录查看详情,可以切换到对应的历史记录日志上去 ([082802e](https://github.com/certd/certd/commit/082802e1197156837800f814728ee0f6b300b18c))
* 流水线同一个阶段任务优化为并行执行 ([efa9c74](https://github.com/certd/certd/commit/efa9c748c5c07fc950af3db742ef9310f1ac9a4b))
* 升级midwayjs版本 ([057b0b4](https://github.com/certd/certd/commit/057b0b4565e19bb93195633f767b2942e8e40e59))
* 是否允许爬虫爬取增加ui设置选项 ([779db9d](https://github.com/certd/certd/commit/779db9da705d2dfef36fec21f52bd38af9fc5f2e))
* 通知支持钉钉群聊机器人 ([fc8bef5](https://github.com/certd/certd/commit/fc8bef5aae522d75d408d8c3aa74543269da5398))
* 易支付支持固定支付方式,适合没有收银台版本使用 ([81df96b](https://github.com/certd/certd/commit/81df96bf4542ce8d8ef4a428a4460dd554e4719a))
* 支持易盾RCDN部署 ([065713c](https://github.com/certd/certd/commit/065713cdb6953d16df08585c316c1a7a8eaec437))
## [1.30.6](https://github.com/certd/certd/compare/v1.30.5...v1.30.6) (2025-02-24)
### Performance Improvements

View File

@@ -9,5 +9,5 @@
}
},
"npmClient": "pnpm",
"version": "1.31.0"
"version": "1.31.2"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/publishlab/node-acme-client/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/acme-client
## [1.31.1](https://github.com/publishlab/node-acme-client/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/acme-client
# [1.31.0](https://github.com/publishlab/node-acme-client/compare/v1.30.6...v1.31.0) (2025-03-10)
**Note:** Version bump only for package @certd/acme-client

View File

@@ -3,7 +3,7 @@
"description": "Simple and unopinionated ACME client",
"private": false,
"author": "nmorsman",
"version": "1.31.0",
"version": "1.31.2",
"type": "module",
"module": "scr/index.js",
"main": "src/index.js",
@@ -18,7 +18,7 @@
"types"
],
"dependencies": {
"@certd/basic": "^1.31.0",
"@certd/basic": "^1.31.2",
"@peculiar/x509": "^1.11.0",
"asn1js": "^3.0.5",
"axios": "^1.7.2",
@@ -65,5 +65,5 @@
"bugs": {
"url": "https://github.com/publishlab/node-acme-client/issues"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/basic
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/basic
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
### Performance Improvements

View File

@@ -1 +1 @@
01:30
10:23

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/basic",
"private": false,
"version": "1.31.0",
"version": "1.31.2",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -44,5 +44,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/pipeline
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/pipeline
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
### Performance Improvements

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/pipeline",
"private": false,
"version": "1.31.0",
"version": "1.31.2",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -16,8 +16,8 @@
"test": "mocha --loader=ts-node/esm"
},
"dependencies": {
"@certd/basic": "^1.31.0",
"@certd/plus-core": "^1.31.0",
"@certd/basic": "^1.31.2",
"@certd/plus-core": "^1.31.2",
"dayjs": "^1.11.7",
"lodash-es": "^4.17.21",
"reflect-metadata": "^0.1.13"
@@ -43,5 +43,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/lib-huawei
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/lib-huawei
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
**Note:** Version bump only for package @certd/lib-huawei

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/lib-huawei",
"private": false,
"version": "1.31.0",
"version": "1.31.2",
"main": "./dist/bundle.js",
"module": "./dist/bundle.js",
"types": "./dist/d/index.d.ts",
@@ -21,5 +21,5 @@
"prettier": "^2.8.8",
"tslib": "^2.8.1"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/lib-iframe
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/lib-iframe
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
**Note:** Version bump only for package @certd/lib-iframe

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/lib-iframe",
"private": false,
"version": "1.31.0",
"version": "1.31.2",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -30,5 +30,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/lib-k8s
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/lib-k8s
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
**Note:** Version bump only for package @certd/lib-k8s

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/lib-k8s",
"private": false,
"version": "1.31.0",
"version": "1.31.2",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -16,7 +16,7 @@
"preview": "vite preview"
},
"dependencies": {
"@certd/basic": "^1.31.0",
"@certd/basic": "^1.31.2",
"@kubernetes/client-node": "0.21.0"
},
"devDependencies": {
@@ -31,5 +31,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/lib-server
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/lib-server
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
### Performance Improvements

View File

@@ -1,6 +1,6 @@
{
"name": "@certd/lib-server",
"version": "1.31.0",
"version": "1.31.2",
"description": "midway with flyway, sql upgrade way ",
"private": false,
"type": "module",
@@ -27,10 +27,10 @@
],
"license": "AGPL",
"dependencies": {
"@certd/acme-client": "^1.31.0",
"@certd/basic": "^1.31.0",
"@certd/pipeline": "^1.31.0",
"@certd/plus-core": "^1.31.0",
"@certd/acme-client": "^1.31.2",
"@certd/basic": "^1.31.2",
"@certd/pipeline": "^1.31.2",
"@certd/plus-core": "^1.31.2",
"@midwayjs/cache": "~3.14.0",
"@midwayjs/core": "~3.20.3",
"@midwayjs/i18n": "~3.20.3",
@@ -61,5 +61,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/midway-flyway-js
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/midway-flyway-js
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
### Performance Improvements

View File

@@ -1,6 +1,6 @@
{
"name": "@certd/midway-flyway-js",
"version": "1.31.0",
"version": "1.31.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": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -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.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
### Bug Fixes
* 修复cname记录查找bug ([95fb4e3](https://github.com/certd/certd/commit/95fb4e3e8be6ca13cc43b451f6141d62190ba453))
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/plugin-cert
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
**Note:** Version bump only for package @certd/plugin-cert

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/plugin-cert",
"private": false,
"version": "1.31.0",
"version": "1.31.2",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -15,10 +15,10 @@
"preview": "vite preview"
},
"dependencies": {
"@certd/acme-client": "^1.31.0",
"@certd/basic": "^1.31.0",
"@certd/pipeline": "^1.31.0",
"@certd/plugin-lib": "^1.31.0",
"@certd/acme-client": "^1.31.2",
"@certd/basic": "^1.31.2",
"@certd/pipeline": "^1.31.2",
"@certd/plugin-lib": "^1.31.2",
"@google-cloud/publicca": "^1.3.0",
"dayjs": "^1.11.7",
"jszip": "^3.10.1",
@@ -41,5 +41,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -144,7 +144,7 @@ export class AcmeService {
accountKey: conf.key,
accountUrl: conf.accountUrl,
externalAccountBinding: this.eab,
backoffAttempts: 15,
backoffAttempts: 20,
backoffMin: 5000,
backoffMax: 10000,
urlMapping,

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/plugin-lib
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/plugin-lib
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
**Note:** Version bump only for package @certd/plugin-lib

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/plugin-lib",
"private": false,
"version": "1.31.0",
"version": "1.31.2",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -16,8 +16,8 @@
},
"dependencies": {
"@alicloud/pop-core": "^1.7.10",
"@certd/basic": "^1.31.0",
"@certd/pipeline": "^1.31.0",
"@certd/basic": "^1.31.2",
"@certd/pipeline": "^1.31.2",
"@kubernetes/client-node": "0.21.0",
"ali-oss": "^6.21.0",
"basic-ftp": "^5.0.5",
@@ -48,5 +48,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "5d6a9457630d620e842b876286a48227b9ae0b4b"
"gitHead": "2a4d64af9502881e2e553ea86a4479158cfa8918"
}

View File

@@ -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.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
**Note:** Version bump only for package @certd/ui-client
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
### Performance Improvements
* 一些手机端适配优化 ([5b8d5dd](https://github.com/certd/certd/commit/5b8d5dd97536456a9d5d1384216eac1093b2dc3d))
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
### Performance Improvements

View File

@@ -1,6 +1,6 @@
{
"name": "@certd/ui-client",
"version": "1.31.0",
"version": "1.31.2",
"private": true,
"scripts": {
"dev": "vite --open",
@@ -95,8 +95,8 @@
"zod-defaults": "^0.1.3"
},
"devDependencies": {
"@certd/lib-iframe": "^1.31.0",
"@certd/pipeline": "^1.31.0",
"@certd/lib-iframe": "^1.31.2",
"@certd/pipeline": "^1.31.2",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@types/chai": "^4.3.12",

View File

@@ -16,7 +16,7 @@ const slots = defineSlots();
<template>
<div class="tutorial-button pointer" @click="open">
<template v-if="!slots.default">
<fs-icon v-if="showIcon" icon="ant-design:question-circle-outlined"></fs-icon>
<fs-icon v-if="showIcon === false" icon="ant-design:question-circle-outlined" class="mr-0.5"></fs-icon>
<div class="hidden md:block">使用教程</div>
</template>
<slot></slot>

View File

@@ -382,7 +382,6 @@ onMounted(() => {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
cursor: pointer;
&.isPlus {

View File

@@ -4,15 +4,15 @@
<span v-if="!settingStore.isComm">
<span>Powered by</span>
<a> handsfree.work </a>
<a-divider type="vertical" />
</span>
<template v-if="siteInfo.licenseTo">
<a-divider type="vertical" />
<a :href="siteInfo.licenseToUrl || ''">{{ siteInfo.licenseTo }}</a>
<a-divider type="vertical" />
</template>
<template v-if="sysPublic.icpNo">
<a-divider type="vertical" />
<span>
<a href="https://beian.miit.gov.cn/" target="_blank">{{ sysPublic.icpNo }}</a>
</span>

View File

@@ -63,6 +63,9 @@ onMounted(async () => {
<LockScreen :avatar @to-login="handleLogout" />
</template>
<template #header-right-0>
<div class="hover:bg-accent ml-1 mr-2 cursor-pointer rounded-full hidden md:block">
<tutorial-button v-if="!settingStore.isComm" class="flex-center header-btn" />
</div>
<div class="hover:bg-accent ml-1 mr-2 cursor-pointer rounded-full">
<vip-button class="flex-center header-btn" mode="nav" />
</div>

View File

@@ -18,23 +18,6 @@ export const aboutResource = [
return !settingStore.isComm;
}
}
},
{
title: "教程",
name: "help",
path: "/help",
meta: {
icon: "lucide:copyright",
order: 9999,
show: () => {
const settingStore = useSettingStore();
return !settingStore.isComm;
},
slot() {
return <TutorialButton className="flex-center" show-icon={false} />;
},
click() {}
}
}
];

View File

@@ -76,7 +76,7 @@
.fs-crud-table{
.ant-table-body {
height: 1000px !important;
height: 60vh;
table {
}
}

View File

@@ -295,4 +295,9 @@ h1, h2, h3, h4, h5, h6 {
.w-50\%{
width: 50%;
}
.ant-drawer-content-wrapper {
max-width: 90vw;
}

View File

@@ -488,7 +488,7 @@ const idMainContent = ELEMENT_ID_MAIN_CONTENT;
</template>
</LayoutContent>
<LayoutFooter v-if="footerEnable" :fixed="footerFixed" :height="footerHeight" :show="!isFullContent" :width="footerWidth" :z-index="zIndex">
<LayoutFooter v-if="footerEnable" class="hidden md:block" :fixed="footerFixed" :height="footerHeight" :show="!isFullContent" :width="footerWidth" :z-index="zIndex">
<slot name="footer"></slot>
</LayoutFooter>
</div>

View File

@@ -1,4 +1,5 @@
import { request } from "/src/api/service";
import { CertInfo } from "/@/views/certd/pipeline/api";
const apiPrefix = "/monitor/cert";
export const certInfoApi = {
@@ -53,5 +54,12 @@ export const certInfoApi = {
method: "post",
data: body
});
},
async GetCert(id: number): Promise<CertInfo> {
return await request({
url: apiPrefix + "/getCert",
method: "post",
params: { id: id }
});
}
};

View File

@@ -5,6 +5,10 @@ import { certInfoApi } from "./api";
import dayjs from "dayjs";
import { useUserStore } from "/@/store/modules/user";
import { useRouter } from "vue-router";
import { useModal } from "/@/use/use-modal";
import * as api from "/@/views/certd/pipeline/api";
import { notification } from "ant-design-vue";
import CertView from "/@/views/certd/pipeline/cert-view.vue";
export default function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet {
const { t } = useI18n();
@@ -30,6 +34,26 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
};
const { openCrudFormDialog } = useFormWrapper();
const router = useRouter();
const model = useModal();
const viewCert = async (row: any) => {
const cert = await api.GetCert(row.id);
if (!cert) {
notification.error({ message: "证书还未生成,请先运行流水线" });
return;
}
model.success({
title: "查看证书",
maskClosable: true,
okText: "关闭",
width: 800,
content: () => {
return <CertView cert={cert}></CertView>;
}
});
};
return {
crudOptions: {
request: {
@@ -120,6 +144,15 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
fixed: "right",
buttons: {
view: { show: false },
viewCert: {
order: 3,
title: "查看证书",
type: "link",
icon: "ph:certificate",
async click({ row }) {
await viewCert(row);
}
},
copy: { show: false },
edit: { show: false },
remove: { show: false }

View File

@@ -29,6 +29,17 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
return {
crudOptions: {
settings: {
plugins: {
mobile: {
props: {
rowHandle: {
width: 160
}
}
}
}
},
request: {
pageRequest,
addRequest,

View File

@@ -1,12 +1,5 @@
<template>
<a-drawer
v-model:open="notificationDrawerVisible"
placement="right"
:closable="true"
width="600px"
class="pi-notification-form"
@after-open-change="notificationDrawerOnAfterVisibleChange"
>
<a-drawer v-model:open="notificationDrawerVisible" placement="right" :closable="true" width="600px" class="pi-notification-form" @after-open-change="notificationDrawerOnAfterVisibleChange">
<template #title>
<div>
编辑通知
@@ -59,11 +52,7 @@
rules: [{ required: true, message: '此项必填' }]
}"
/>
<pi-notification-form-email
v-if="currentNotification.type === 'email'"
ref="optionsRef"
v-model:options="currentNotification.options"
></pi-notification-form-email>
<pi-notification-form-email v-if="currentNotification.type === 'email'" ref="optionsRef" v-model:options="currentNotification.options"></pi-notification-form-email>
<fs-form-item
v-else

View File

@@ -1,11 +1,14 @@
<template>
<a-modal v-model:open="taskModal.open" class="pi-task-view" title="任务日志" style="width: 80%" v-bind="taskModal">
<a-tabs v-model:active-key="activeKey" tab-position="left" animated>
<a-tabs v-model:active-key="activeKey" :tab-position="tabPosition" animated>
<a-tab-pane v-for="item of detail.nodes" :key="item.node.id">
<template #tab>
<div class="tab-title" :title="item.node.title">
<span class="tab-title-text">{{ item.type }} {{ item.node.title }}</span>
<pi-status-show :status="item.node.status?.result" type="icon"></pi-status-show>
<div class="tab-title flex-between" :title="item.node.title">
<span class="tab-title-text flex items-center md:w-40">
<pi-status-show class="mr-1" :status="item.node.status?.result" type="icon"></pi-status-show>
<!-- <fs-icon icon="ion:chevron-forward-circle" class="text-md mr-1"></fs-icon>-->
{{ item.node.title }}
</span>
</div>
</template>
<div class="pi-task-view-logs" :class="'id-' + item.node.id" style="overflow: auto">
@@ -22,6 +25,7 @@
import { computed, inject, nextTick, Ref, ref, watch } from "vue";
import { RunHistory } from "../../type";
import PiStatusShow from "/@/views/certd/pipeline/pipeline/component/status-show.vue";
import { usePreferences } from "/@/vben/preferences";
export default {
name: "PiTaskView",
@@ -35,6 +39,13 @@ export default {
},
cancelText: "关闭"
});
const { isMobile } = usePreferences();
const tabPosition = computed(() => {
if (isMobile.value) {
return "top";
}
return "left";
});
const detail = ref({ nodes: [] });
const activeKey = ref();
@@ -129,7 +140,8 @@ export default {
taskModal,
activeKey,
taskViewOpen,
taskViewClose
taskViewClose,
tabPosition
};
}
};
@@ -141,8 +153,8 @@ export default {
display: flex;
.tab-title-text {
display: inline-block;
width: 180px;
display: flex;
max-width: 180px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;

View File

@@ -221,7 +221,11 @@
</div>
</div>
<div class="layout-right">
<div class="layout-right transition-all duration-300" :class="{ collapsed: logsCollapse }">
<div class="collapse-toggle bg-white dark:bg-black" @click="toggleLogsCollapse">
<fs-icon v-if="logsCollapse" icon="ion:chevron-back-outline"></fs-icon>
<fs-icon v-else icon="ion:chevron-forward-outline"></fs-icon>
</div>
<a-page-header title="运行历史" sub-title="点任务可查看日志" class="logs-block" :ghost="false">
<a-timeline class="mt-10">
<template v-for="item of histories" :key="item.id">
@@ -755,9 +759,15 @@ export default defineComponent({
console.log("currentPipeline", pipeline);
};
const logsCollapse = ref(false);
function toggleLogsCollapse() {
logsCollapse.value = !logsCollapse.value;
}
return {
historyView,
historyCancel
historyCancel,
logsCollapse,
toggleLogsCollapse
};
}
@@ -786,6 +796,9 @@ export default defineComponent({
.page-pipeline-edit {
.fs-page-header {
.title {
overflow: hidden;
text-overflow: ellipsis;
text-wrap: nowrap;
display: flex;
.back {
margin-right: 10px;
@@ -799,12 +812,15 @@ export default defineComponent({
.pi-status-show {
display: inline-flex;
}
.fs-page-content {
overflow-x: auto;
}
.layout {
width: 100%;
height: 100%;
position: relative;
display: flex;
overflow-x: hidden;
.layout-left {
flex: 1;
height: 100%;
@@ -1003,9 +1019,38 @@ export default defineComponent({
}
}
.logs-block {
height: 100%;
overflow-y: auto;
.layout-right {
position: "relative";
&.collapsed {
margin-right: -350px;
}
.collapse-toggle {
position: absolute;
margin-left: -30px;
top: 10px;
cursor: pointer;
font-size: 20px;
color: #1890ff;
width: 30px;
height: 30px;
border: 1px solid #eee;
border-right: 0;
border-radius: 5px 0 0 5px;
display: flex;
justify-content: center;
align-items: center;
}
.logs-block {
height: 100%;
overflow-y: auto;
max-width: 90vw;
.ant-page-header-content {
position: relative;
}
}
}
}
</style>

View File

@@ -4,7 +4,7 @@
<div class="title flex-baseline">
我的套餐
<div class="sub">
<div class="flex-o">当前套餐<suite-card></suite-card></div>
<div class="flex-o flex-wrap">当前套餐<suite-card></suite-card></div>
</div>
</div>
</template>

View File

@@ -5,9 +5,11 @@
<div class="flex-o mt-5"><span class="label">说明</span>{{ product.intro }}</div>
<div class="flex-o mt-5">
<span class="label">规格</span>
<span class="flex-o">流水线<suite-value class="ml-5" :model-value="product.content.maxPipelineCount" unit="条" /></span>
<span class="flex-o">域名<suite-value class="ml-5" :model-value="product.content.maxDomainCount" unit="" /></span>
<span class="flex-o">部署次数<suite-value class="ml-5" :model-value="product.content.maxDeployCount" unit="" /></span>
<span class="flex-o flex-wrap">
<span class="flex-o">流水线<suite-value class="ml-5" :model-value="product.content.maxPipelineCount" unit="" /></span>
<span class="flex-o">域名<suite-value class="ml-5" :model-value="product.content.maxDomainCount" unit="" /></span>
<span class="flex-o">部署次数<suite-value class="ml-5" :model-value="product.content.maxDeployCount" unit="次" /></span>
</span>
</div>
<div class="flex-o mt-5">
@@ -210,6 +212,7 @@ defineExpose({
text-align: right;
margin-right: 5px;
color: #686868;
flex: none;
}
}

View File

@@ -13,12 +13,12 @@
<div>
<span>您好{{ userInfo.nickName || userInfo.username }} 欢迎使用 {{ siteInfo.title }}</span>
</div>
<div class="flex-o">
<a-tag color="green" class="flex-inline pointer m-0"> <fs-icon icon="ion:time-outline"></fs-icon> {{ now }}</a-tag>
<div class="flex-o flex-wrap profile-badges">
<a-tag color="green" class="flex-inline pointer"> <fs-icon icon="ion:time-outline"></fs-icon> {{ now }}</a-tag>
<template v-if="userStore.isAdmin">
<a-divider type="vertical" />
<a-badge :dot="hasNewVersion">
<a-tag color="blue" class="flex-inline pointer m-0" :title="'最新版本:' + latestVersion" @click="openUpgradeUrl()">
<a-tag color="blue" class="flex-inline pointer mr-0" :title="'最新版本:' + latestVersion" @click="openUpgradeUrl()">
<fs-icon icon="ion:rocket-outline" class="mr-5"></fs-icon>
v{{ version }}
</a-tag>
@@ -245,6 +245,12 @@ function openUpgradeUrl() {
align-items: center;
padding: 20px;
.profile-badges {
> * {
margin: 4px;
}
}
.avatar {
margin-right: 10px;
}

View File

@@ -1,6 +1,6 @@
<template>
<div v-if="detail.enabled" class="my-suite-card">
<div class="flex-o">
<div class="flex-o flex-wrap">
<a-popover>
<template #content>
<div>

View File

@@ -3,7 +3,7 @@
<!-- <template #header>-->
<!-- <div class="title">系统设置</div>-->
<!-- </template>-->
<div class="sys-settings-body">
<div class="sys-settings-body md:p-5">
<a-tabs :active-key="activeKey" type="card" class="sys-settings-tabs" @update:active-key="onChange">
<a-tab-pane key="" tab="基本设置">
<SettingBase v-if="activeKey === ''" />
@@ -53,13 +53,13 @@ function onChange(value: string) {
.page-sys-settings {
.sys-settings-form {
width: 500px;
margin: 20px;
max-width: 100%;
padding: 20px;
}
.sys-settings-body {
height: 100%;
padding-top: 20px;
padding-left: 20px;
.sys-settings-tabs {
height: 100%;
display: flex;

View File

@@ -1,14 +1,6 @@
<template>
<div class="sys-settings-form sys-settings-base">
<a-form
:model="formState"
name="basic"
:label-col="{ span: 8 }"
:wrapper-col="{ span: 16 }"
autocomplete="off"
@finish="onFinish"
@finish-failed="onFinishFailed"
>
<a-form :model="formState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off" @finish="onFinish" @finish-failed="onFinishFailed">
<a-form-item label="ICP备案号" :name="['public', 'icpNo']">
<a-input v-model:value="formState.public.icpNo" placeholder="粤ICP备xxxxxxx号" />
</a-form-item>
@@ -41,12 +33,10 @@
<a-form-item label="启用公共CNAME服务" :name="['private', 'commonCnameEnabled']">
<a-switch v-model:checked="formState.private.commonCnameEnabled" />
<div class="helper">
是否可以使用公共CNAME服务如果禁用且没有设置<router-link to="/sys/cname/provider">自定义CNAME服务</router-link>则无法使用CNAME代理方式申请证书
</div>
<div class="helper">是否可以使用公共CNAME服务如果禁用且没有设置<router-link to="/sys/cname/provider">自定义CNAME服务</router-link>则无法使用CNAME代理方式申请证书</div>
</a-form-item>
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
<a-form-item label=" " :colon="false" :wrapper-col="{ span: 8 }">
<a-button :loading="saveLoading" type="primary" html-type="submit">保存</a-button>
</a-form-item>
</a-form>

View File

@@ -28,7 +28,7 @@
<div class="helper">需要开通Native支付 <a href="https://certd.docmirror.cn/comm/payments/wxpay.html">微信配置帮助文档</a></div>
</a-form-item>
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
<a-form-item label=" " :colon="false" :wrapper-col="{ span: 16 }">
<loading-button type="primary" html-type="button" :click="onClick">保存</loading-button>
</a-form-item>
</a-form>

View File

@@ -50,7 +50,7 @@
</template>
</template>
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
<a-form-item label=" " :colon="false" :wrapper-col="{ span: 16 }">
<a-button :loading="saveLoading" type="primary" html-type="submit">保存</a-button>
</a-form-item>
</a-form>

View File

@@ -1,18 +1,10 @@
<template>
<fs-page class="page-sys-site">
<fs-page class="page-sys-settings page-sys-site">
<template #header>
<div class="title">站点个性化设置</div>
</template>
<div class="sys-site-form">
<a-form
:model="formState"
name="basic"
:label-col="{ span: 8 }"
:wrapper-col="{ span: 16 }"
autocomplete="off"
@finish="onFinish"
@finish-failed="onFinishFailed"
>
<div class="sys-settings-form">
<a-form :model="formState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off" @finish="onFinish" @finish-failed="onFinishFailed">
<a-form-item label="站点名称" name="title">
<a-input v-model:value="formState.title" />
</a-form-item>
@@ -20,22 +12,10 @@
<a-input v-model:value="formState.slogan" />
</a-form-item>
<a-form-item label="Logo" name="logo">
<fs-cropper-uploader
v-model:model-value="formState.logo"
:cropper="cropperOptions"
value-type="key"
:uploader="uploaderConfig"
:build-url="buildUrl"
/>
<fs-cropper-uploader v-model:model-value="formState.logo" :cropper="cropperOptions" value-type="key" :uploader="uploaderConfig" :build-url="buildUrl" />
</a-form-item>
<a-form-item label="登录页Logo" name="loginLogo">
<fs-cropper-uploader
v-model:model-value="formState.loginLogo"
:cropper="loginLogoCropperOptions"
value-type="key"
:uploader="uploaderConfig"
:build-url="buildUrl"
/>
<fs-cropper-uploader v-model:model-value="formState.loginLogo" :cropper="loginLogoCropperOptions" value-type="key" :uploader="uploaderConfig" :build-url="buildUrl" />
</a-form-item>
<a-form-item label="你的主体名称" name="licenseTo">
<a-input v-model:value="formState.licenseTo" />
@@ -44,7 +24,7 @@
<a-form-item label="你的主体URL" name="licenseToUrl">
<a-input v-model:value="formState.licenseToUrl" />
</a-form-item>
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
<a-form-item label=" " :colon="false" :wrapper-col="{ span: 8 }">
<a-button :loading="saveLoading" type="primary" html-type="submit">保存</a-button>
</a-form-item>
</a-form>
@@ -122,7 +102,7 @@ function buildUrl(key: string) {
return `/api/basic/file/download?&key=` + key;
}
function onFinishFailed(err) {
function onFinishFailed(err: any) {
console.log(err);
}
@@ -139,12 +119,6 @@ const loginLogoCropperOptions = ref({
</script>
<style lang="less">
.page-sys-site {
.sys-site-form {
width: 500px;
margin: 20px;
}
}
.fs-cropper-dialog__preview img {
border-radius: 0 !important;
margin-top: 0 !important;

View File

@@ -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.31.2](https://github.com/certd/certd/compare/v1.31.1...v1.31.2) (2025-03-12)
### Bug Fixes
* 修复cname记录查找bug ([95fb4e3](https://github.com/certd/certd/commit/95fb4e3e8be6ca13cc43b451f6141d62190ba453))
## [1.31.1](https://github.com/certd/certd/compare/v1.31.0...v1.31.1) (2025-03-11)
**Note:** Version bump only for package @certd/ui-server
# [1.31.0](https://github.com/certd/certd/compare/v1.30.6...v1.31.0) (2025-03-10)
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@certd/ui-server",
"version": "1.31.0",
"version": "1.31.2",
"description": "fast-server base midway",
"private": true,
"type": "module",
@@ -38,18 +38,18 @@
"@aws-sdk/client-acm": "^3.699.0",
"@aws-sdk/client-cloudfront": "^3.699.0",
"@aws-sdk/client-s3": "^3.705.0",
"@certd/acme-client": "^1.31.0",
"@certd/basic": "^1.31.0",
"@certd/commercial-core": "^1.31.0",
"@certd/lib-huawei": "^1.31.0",
"@certd/lib-k8s": "^1.31.0",
"@certd/lib-server": "^1.31.0",
"@certd/midway-flyway-js": "^1.31.0",
"@certd/pipeline": "^1.31.0",
"@certd/plugin-cert": "^1.31.0",
"@certd/plugin-lib": "^1.31.0",
"@certd/plugin-plus": "^1.31.0",
"@certd/plus-core": "^1.31.0",
"@certd/acme-client": "^1.31.2",
"@certd/basic": "^1.31.2",
"@certd/commercial-core": "^1.31.2",
"@certd/lib-huawei": "^1.31.2",
"@certd/lib-k8s": "^1.31.2",
"@certd/lib-server": "^1.31.2",
"@certd/midway-flyway-js": "^1.31.2",
"@certd/pipeline": "^1.31.2",
"@certd/plugin-cert": "^1.31.2",
"@certd/plugin-lib": "^1.31.2",
"@certd/plugin-plus": "^1.31.2",
"@certd/plus-core": "^1.31.2",
"@corsinvest/cv4pve-api-javascript": "^8.3.0",
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.120",
"@huaweicloud/huaweicloud-sdk-core": "^3.1.120",

View File

@@ -95,4 +95,12 @@ export class CertInfoController extends CrudController<CertInfoService> {
return this.ok(res);
}
@Post('/getCert', { summary: Constants.per.authOnly })
async getCert(@Query('id') id: number) {
await this.service.checkUserId(id, this.getUserId());
const certInfoEntity = await this.service.info(id);
const certInfo = JSON.parse(certInfoEntity.certInfo);
return this.ok(certInfo);
}
}

View File

@@ -58,7 +58,7 @@ export class CnameRecordService extends BaseService<CnameRecordEntity> {
if (param.domain.startsWith('*.')) {
param.domain = param.domain.substring(2);
}
const info = await this.getRepository().findOne({ where: { domain: param.domain } });
const info = await this.getRepository().findOne({ where: { domain: param.domain,userId: param.userId } });
if (info) {
return info;
}