diff --git a/.vscode/settings.json b/.vscode/settings.json
index b5db549bf..7012403dc 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -9,5 +9,6 @@
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
- "editor.tabSize": 2
+ "editor.tabSize": 2,
+ "explorer.autoReveal": false
}
\ No newline at end of file
diff --git a/docs/guide/install/database.md b/docs/guide/install/database.md
index c62265086..49ff34e44 100644
--- a/docs/guide/install/database.md
+++ b/docs/guide/install/database.md
@@ -65,9 +65,54 @@ docker-compose up -d
## 二、从旧版的sqlite切换数据库
-1. 先将`旧certd`升级到最新版 (`建议:备份sqlite数据库` )
-2. 按照上面全新安装方式部署一套`新的certd` (`注意:新旧版本的certd要一致`)
-3. 使用数据库工具将数据从sqlite导入到mysql或postgresql (`注意:flyway_history数据表不要导入`)
-4. 重启新certd
-5. 确认没有问题之后,删除旧版certd
+从旧版`sqlite`迁移到`mysql`或`postgresql`数据库
+下面以 `SQLite` 转 `MySQL` 为例进行演示
+
+
+
+#### 0.前提条件:
+1. SQLite版Certd站点已经`升级到最新版` (`建议:备份sqlite数据库` )
+2. `全新安装`MySQL版本Certd(`确保是全新的,因为里面的数据会被清空覆盖`)
+3. 两套Certd站点版本一致
+
+#### 1. 安装DBeaver工具
+
+[https://dbeaver.io/download/](https://dbeaver.io/download/)
+
+
+
+#### 2. 连接到sqlite数据库
+
+
+
+
+
+#### 3. 连接到mysql或postgresql数据库
+
+
+
+
+
+
+#### 4. 开始同步数据
+
+选择mysql数据库,选择所有的表(`flyway_history除外`),右键导入数据
+
+> 切记flyway_history数据表不要导入
+
+
+
+
+下一步、下一步,直到数据加载设置,勾选`在加载前截断目标表`(此选项很重要,并且会清空mysql certd数据库中的数据)
+
+
+#### 5. 导入完成
+
+
+
+#### 6. 重启MySQL版本Certd
+
+访问MySQL版本测试,数据已成功迁移
+
+确认没有问题之后,删除旧版certd
\ No newline at end of file
diff --git a/docs/guide/install/images/db-0.png b/docs/guide/install/images/db-0.png
new file mode 100644
index 000000000..70a2e2cdf
Binary files /dev/null and b/docs/guide/install/images/db-0.png differ
diff --git a/docs/guide/install/images/db-1.png b/docs/guide/install/images/db-1.png
new file mode 100644
index 000000000..2dcaab583
Binary files /dev/null and b/docs/guide/install/images/db-1.png differ
diff --git a/docs/guide/install/images/db-mysql-1.png b/docs/guide/install/images/db-mysql-1.png
new file mode 100644
index 000000000..e17f20bca
Binary files /dev/null and b/docs/guide/install/images/db-mysql-1.png differ
diff --git a/docs/guide/install/images/db-mysql-2.png b/docs/guide/install/images/db-mysql-2.png
new file mode 100644
index 000000000..aa29f6f0a
Binary files /dev/null and b/docs/guide/install/images/db-mysql-2.png differ
diff --git a/docs/guide/install/images/db-sqlite-1.png b/docs/guide/install/images/db-sqlite-1.png
new file mode 100644
index 000000000..52aff4e41
Binary files /dev/null and b/docs/guide/install/images/db-sqlite-1.png differ
diff --git a/docs/guide/install/images/db-sqlite-2.png b/docs/guide/install/images/db-sqlite-2.png
new file mode 100644
index 000000000..1098210b3
Binary files /dev/null and b/docs/guide/install/images/db-sqlite-2.png differ
diff --git a/docs/guide/install/images/db-success.png b/docs/guide/install/images/db-success.png
new file mode 100644
index 000000000..009d43404
Binary files /dev/null and b/docs/guide/install/images/db-success.png differ
diff --git a/docs/guide/install/images/db-sync-1.jpg b/docs/guide/install/images/db-sync-1.jpg
new file mode 100644
index 000000000..b36d012a6
Binary files /dev/null and b/docs/guide/install/images/db-sync-1.jpg differ
diff --git a/docs/guide/install/images/db-sync-2.png b/docs/guide/install/images/db-sync-2.png
new file mode 100644
index 000000000..62209694e
Binary files /dev/null and b/docs/guide/install/images/db-sync-2.png differ
diff --git a/docs/guide/install/images/db-sync-3.png b/docs/guide/install/images/db-sync-3.png
new file mode 100644
index 000000000..65091ad3e
Binary files /dev/null and b/docs/guide/install/images/db-sync-3.png differ
diff --git a/docs/guide/install/images/db-sync-4.png b/docs/guide/install/images/db-sync-4.png
new file mode 100644
index 000000000..49bdaf4bd
Binary files /dev/null and b/docs/guide/install/images/db-sync-4.png differ
diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd.ts
index 33769a8be..e81f32735 100644
--- a/packages/ui/certd-client/src/locales/langs/en-US/certd.ts
+++ b/packages/ui/certd-client/src/locales/langs/en-US/certd.ts
@@ -631,7 +631,7 @@ export default {
autoHideTime: "Auto Hide Time",
autoHideTimeHelper: "Minutes without requests before auto hiding",
hideOpenApi: "Hide Open API",
- hideOpenApiHelper: "Whether to hide open APIs; whether to expose /api/v1 prefixed endpoints",
+ hideOpenApiHelper: "Whether to hide open APIs; whether to hide /api/v1 prefixed endpoints",
hideSiteImmediately: "Hide Site Immediately",
hideImmediately: "Hide Immediately",
confirmHideSiteTitle: "Are you sure to hide the site immediately?",
diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts
index 5fe7bc2f7..d2b7f8ad9 100644
--- a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts
+++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts
@@ -635,7 +635,7 @@ export default {
autoHideTime: "自动隐藏时间",
autoHideTimeHelper: "多少分钟内无请求自动隐藏",
hideOpenApi: "隐藏开放接口",
- hideOpenApiHelper: "是否隐藏开放接口,是否放开/api/v1开头的接口",
+ hideOpenApiHelper: "是否隐藏开放接口,是否同时隐藏/api/v1开头的接口",
hideSiteImmediately: "立即隐藏站点",
hideImmediately: "立即隐藏",
confirmHideSiteTitle: "确定要立即隐藏站点吗?",
diff --git a/packages/ui/certd-client/src/views/certd/addon/addon-selector/index.vue b/packages/ui/certd-client/src/views/certd/addon/addon-selector/index.vue
index dfd36ac8b..e7e75e6eb 100644
--- a/packages/ui/certd-client/src/views/certd/addon/addon-selector/index.vue
+++ b/packages/ui/certd-client/src/views/certd/addon/addon-selector/index.vue
@@ -21,6 +21,7 @@
},
},
}"
+ :disabled="disabled"
:show-current="false"
:show-select="false"
:dialog="{ width: 960 }"
diff --git a/packages/ui/certd-client/src/views/sys/settings/tabs/oauth.vue b/packages/ui/certd-client/src/views/sys/settings/tabs/oauth.vue
index 5b20c9a03..1a2ec6309 100644
--- a/packages/ui/certd-client/src/views/sys/settings/tabs/oauth.vue
+++ b/packages/ui/certd-client/src/views/sys/settings/tabs/oauth.vue
@@ -7,7 +7,7 @@
-
+
@@ -31,7 +31,14 @@
|
-
+
|
diff --git a/packages/ui/certd-server/db/migration-mysql/v10035__transform_fix.sql b/packages/ui/certd-server/db/migration-mysql/v10035__transform_fix.sql
new file mode 100644
index 000000000..cc07693b9
--- /dev/null
+++ b/packages/ui/certd-server/db/migration-mysql/v10035__transform_fix.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `sys_settings` MODIFY COLUMN `setting` longtext NULL;
+ALTER TABLE `user_settings` MODIFY COLUMN `setting` longtext NULL;
diff --git a/packages/ui/certd-server/db/migration-pg/v10035__transform_fix.sql b/packages/ui/certd-server/db/migration-pg/v10035__transform_fix.sql
new file mode 100644
index 000000000..e69de29bb
diff --git a/packages/ui/certd-server/db/migration/v10035__transform_fix.sql b/packages/ui/certd-server/db/migration/v10035__transform_fix.sql
new file mode 100644
index 000000000..3540790fd
--- /dev/null
+++ b/packages/ui/certd-server/db/migration/v10035__transform_fix.sql
@@ -0,0 +1,20 @@
+update cd_access set create_time = '2024-08-08 00:00:00.000' where create_time < '999999999999999999999';
+update cd_access set update_time = '2024-08-08 00:00:00.000' where update_time < '999999999999999999999';
+
+update pi_history set create_time = '2024-08-08 00:00:00.000' where create_time < '999999999999999999999';
+update pi_history set update_time = '2024-08-08 00:00:00.000' where update_time < '999999999999999999999';
+
+update pi_history_log set create_time = '2024-08-08 00:00:00.000' where create_time < '999999999999999999999';
+update pi_history_log set update_time = '2024-08-08 00:00:00.000' where update_time < '999999999999999999999';
+
+update pi_pipeline set create_time = '2024-08-08 00:00:00.000' where create_time < '999999999999999999999';
+update pi_pipeline set update_time = '2024-08-08 00:00:00.000' where update_time < '999999999999999999999';
+
+update sys_permission set create_time = '2024-08-08 00:00:00.000' where create_time < '999999999999999999999';
+update sys_permission set update_time = '2024-08-08 00:00:00.000' where update_time < '999999999999999999999';
+
+update sys_role set create_time = '2024-08-08 00:00:00.000' where create_time < '999999999999999999999';
+update sys_role set update_time = '2024-08-08 00:00:00.000' where update_time < '999999999999999999999';
+
+update sys_user set create_time = '2024-08-08 00:00:00.000' where create_time < '999999999999999999999';
+update sys_user set update_time = '2024-08-08 00:00:00.000' where update_time < '999999999999999999999';
diff --git a/packages/ui/certd-server/src/plugins/plugin-west/access.ts b/packages/ui/certd-server/src/plugins/plugin-west/access.ts
index cbfb59300..41cbc8b3d 100644
--- a/packages/ui/certd-server/src/plugins/plugin-west/access.ts
+++ b/packages/ui/certd-server/src/plugins/plugin-west/access.ts
@@ -158,6 +158,9 @@ export class WestAccess extends BaseAccess {
},
});
if (res.msg !== 'success') {
+ if(res.msg.includes('500 already exists')){
+ return res;
+ }
throw new Error(`${JSON.stringify(res.msg)}`);
}
return res;
@@ -253,6 +256,9 @@ token=md5(zhangsan + 5dh232kfg!* + 1554691950854)=cfcd208495d565ef66e7dff9f98764
});
this.ctx.logger.info(`request ${url} ${method} res:${JSON.stringify(res)}`);
if (res.msg !== 'success' && res.result!= 200) {
+ if(res.msg.includes('500 already exists')){
+ return res;
+ }
throw new Error(`${JSON.stringify(res.msg)}`);
}
return res;
diff --git a/packages/ui/certd-server/src/plugins/plugin-west/dns-provider-domain.ts b/packages/ui/certd-server/src/plugins/plugin-west/dns-provider-domain.ts
index 9d922e898..5f99e10cb 100644
--- a/packages/ui/certd-server/src/plugins/plugin-west/dns-provider-domain.ts
+++ b/packages/ui/certd-server/src/plugins/plugin-west/dns-provider-domain.ts
@@ -73,11 +73,16 @@ export class WestDnsProviderDomain extends AbstractDnsProvider {
}
//这里调用删除txt dns解析记录接口
+ const record_id = record?.body?.record_id;
+ if (!record_id) {
+ this.logger.info('record_id不存在');
+ return;
+ }
// 准备要发送到API的请求体
const requestBody = {
act: 'dnsrec.remove', // API动作类型
domain: domain, // 域名
- record_id: record.body.record_id,
+ record_id: record_id,
hostname: fullRecord, // 完整的记录名
record_type: 'TXT', // DNS记录类型
record_line: '', // 记录线路
diff --git a/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts
index 1d2ab6abc..86d59aa85 100644
--- a/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts
+++ b/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts
@@ -107,12 +107,16 @@ export class WestDnsProvider extends AbstractDnsProvider {
return;
}
//这里调用删除txt dns解析记录接口
-
+ const record_id = record.data?.id;
+ if (!record_id) {
+ this.logger.info('record_id不存在');
+ return;
+ }
// 准备要发送到API的请求体
const requestBody = {
act: 'deldnsrecord', // API动作类型
domain: domain, // 域名
- id: record.data?.id,
+ id: record_id,
};
const url = '/v2/domain/';