Skip to content

Commit 7bf59aa

Browse files
authored
feat: add option to allow self-signed certificates (#509)
* feat: add option to allow self-signed certificates * docs: update changelog
1 parent 4aa377e commit 7bf59aa

6 files changed

Lines changed: 52 additions & 2 deletions

File tree

docs/content.en/docs/release-notes/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Information about release notes of Coco Server is provided here.
2323
- feat: the chat content has added a button to return to the bottom #495
2424
- feat: the search input box supports multi-line input #501
2525
- feat: websocket support self-signed TLS #504
26+
- feat: add option to allow self-signed certificates #509
2627

2728
### 🐛 Bug fix
2829

src/components/Settings/Advanced/index.tsx

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
import { useTranslation } from "react-i18next";
22
import Shortcuts from "./components/Shortcuts";
33
import SettingsItem from "../SettingsItem";
4-
import { AppWindowMac, MessageSquareMore, Search, Unplug } from "lucide-react";
4+
import {
5+
AppWindowMac,
6+
MessageSquareMore,
7+
Search,
8+
ShieldCheck,
9+
Unplug,
10+
} from "lucide-react";
511
import { useStartupStore } from "@/stores/startupStore";
612
import { useEffect } from "react";
713
import { useConnectStore } from "@/stores/connectStore";
814
import Appearance from "./components/Appearance";
915
import SettingsInput from "../SettingsInput";
1016
import platformAdapter from "@/utils/platformAdapter";
1117
import UpdateSettings from "./components/UpdateSettings";
18+
import SettingsToggle from "../SettingsToggle";
1219

1320
const Advanced = () => {
1421
const { t } = useTranslation();
@@ -42,6 +49,12 @@ const Advanced = () => {
4249
const setQueryTimeout = useConnectStore((state) => {
4350
return state.setQuerySourceTimeout;
4451
});
52+
const allowSelfSignature = useConnectStore((state) => {
53+
return state.allowSelfSignature;
54+
});
55+
const setAllowSelfSignature = useConnectStore((state) => {
56+
return state.setAllowSelfSignature;
57+
});
4558

4659
useEffect(() => {
4760
const unsubscribeStartup = useStartupStore.subscribe((state) => {
@@ -192,6 +205,22 @@ const Advanced = () => {
192205
}}
193206
/>
194207
</SettingsItem>
208+
209+
<SettingsItem
210+
icon={ShieldCheck}
211+
title={t("settings.advanced.connect.allowSelfSignature.title")}
212+
description={t(
213+
"settings.advanced.connect.allowSelfSignature.description"
214+
)}
215+
>
216+
<SettingsToggle
217+
label={t("settings.advanced.connect.allowSelfSignature.title")}
218+
checked={allowSelfSignature}
219+
onChange={(value) => {
220+
setAllowSelfSignature(value);
221+
}}
222+
/>
223+
</SettingsItem>
195224
</div>
196225

197226
<Appearance />

src/hooks/useSyncStore.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ export const useSyncStore = () => {
8383
const setSnapshotUpdate = useAppearanceStore((state) => {
8484
return state.setSnapshotUpdate;
8585
});
86+
const setAllowSelfSignature = useConnectStore((state) => {
87+
return state.setAllowSelfSignature;
88+
});
8689

8790
useEffect(() => {
8891
if (!resetFixedWindow) {
@@ -143,13 +146,15 @@ export const useSyncStore = () => {
143146
}),
144147

145148
platformAdapter.listenEvent("change-connect-store", ({ payload }) => {
146-
const { connectionTimeout, querySourceTimeout } = payload;
149+
const { connectionTimeout, querySourceTimeout, allowSelfSignature } =
150+
payload;
147151
if (isNumber(connectionTimeout)) {
148152
setConnectionTimeout(connectionTimeout);
149153
}
150154
if (isNumber(querySourceTimeout)) {
151155
setQueryTimeout(querySourceTimeout);
152156
}
157+
setAllowSelfSignature(allowSelfSignature);
153158
}),
154159

155160
platformAdapter.listenEvent("change-appearance-store", ({ payload }) => {

src/locales/en/translation.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,10 @@
161161
"queryTimeout": {
162162
"title": "Query Timeout",
163163
"description": "Terminates the query if no search results are returned within this time. Default: 500ms."
164+
},
165+
"allowSelfSignature": {
166+
"title": "Allow Self-Signed Certificates",
167+
"description": "Allow connections to servers using self-signed certificates. Enable only if you trust the source."
164168
}
165169
},
166170
"appearance": {

src/locales/zh/translation.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,10 @@
161161
"queryTimeout": {
162162
"title": "查询超时",
163163
"description": "在此时间内未返回搜索结果,则终止查询。默认值:500 毫秒。"
164+
},
165+
"allowSelfSignature": {
166+
"title": "允许自签名证书",
167+
"description": "允许连接使用自签名证书的服务器。仅在信任来源的情况下启用。"
164168
}
165169
},
166170
"appearance": {

src/stores/connectStore.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ export type IConnectStore = {
3232
setQuerySourceTimeout: (queryTimeout?: number) => void;
3333
visibleStartPage: boolean;
3434
setVisibleStartPage: (visibleStartPage: boolean) => void;
35+
allowSelfSignature: boolean;
36+
setAllowSelfSignature: (allowSelfSignature: boolean) => void;
3537
};
3638

3739
export const useConnectStore = create<IConnectStore>()(
@@ -119,6 +121,10 @@ export const useConnectStore = create<IConnectStore>()(
119121
setVisibleStartPage: (visibleStartPage: boolean) => {
120122
return set(() => ({ visibleStartPage }));
121123
},
124+
allowSelfSignature: false,
125+
setAllowSelfSignature: (allowSelfSignature: boolean) => {
126+
return set(() => ({ allowSelfSignature }));
127+
},
122128
}),
123129
{
124130
name: "connect-store",
@@ -129,6 +135,7 @@ export const useConnectStore = create<IConnectStore>()(
129135
connectionTimeout: state.connectionTimeout,
130136
currentAssistant: state.currentAssistant,
131137
querySourceTimeout: state.querySourceTimeout,
138+
allowSelfSignature: state.allowSelfSignature,
132139
}),
133140
}
134141
)

0 commit comments

Comments
 (0)