@jeffusion/bungee-core 5.26.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config-storage-worker.js +376 -223
- package/dist/main.js +799 -437
- package/dist/observability-worker.js +0 -10
- package/dist/plugins/anthropic-request-sanitizer/index.js.map +2 -2
- package/dist/plugins/anthropic-request-sanitizer/manifest.json +1 -1
- package/dist/plugins/anthropic-tool-name-transformer/index.js.map +2 -2
- package/dist/plugins/anthropic-tool-name-transformer/manifest.json +1 -1
- package/dist/plugins/chatgpt-oauth/control.js.map +1 -1
- package/dist/plugins/chatgpt-oauth/index.js.map +2 -2
- package/dist/plugins/chatgpt-oauth/manifest.json +1 -1
- package/dist/plugins/codex-router/control.js.map +1 -1
- package/dist/plugins/codex-router/index.js +2 -2
- package/dist/plugins/codex-router/index.js.map +3 -3
- package/dist/plugins/codex-router/manifest.json +1 -1
- package/dist/plugins/deepseek-reasoning-fix/index.js.map +2 -2
- package/dist/plugins/deepseek-reasoning-fix/manifest.json +1 -1
- package/dist/plugins/key-access/control.js.map +1 -1
- package/dist/plugins/key-access/index.js.map +2 -2
- package/dist/plugins/key-access/ingress.js.map +1 -1
- package/dist/plugins/key-access/manifest.json +1 -1
- package/dist/plugins/key-rate-limit/index.js.map +2 -2
- package/dist/plugins/key-rate-limit/manifest.json +1 -1
- package/dist/plugins/llm-protocol-adapter/control.js +2 -2
- package/dist/plugins/llm-protocol-adapter/control.js.map +4 -4
- package/dist/plugins/llm-protocol-adapter/index.js +2 -2
- package/dist/plugins/llm-protocol-adapter/index.js.map +3 -3
- package/dist/plugins/llm-protocol-adapter/manifest.json +1 -1
- package/dist/plugins/model-mapping/index.js.map +2 -2
- package/dist/plugins/model-mapping/manifest.json +1 -1
- package/dist/plugins/models-dev/index.js.map +2 -2
- package/dist/plugins/models-dev/manifest.json +1 -1
- package/dist/plugins/signature-repair/index.js.map +2 -2
- package/dist/plugins/signature-repair/manifest.json +1 -1
- package/dist/plugins/token-budget/control.js.map +1 -1
- package/dist/plugins/token-budget/index.js.map +2 -2
- package/dist/plugins/token-budget/manifest.json +1 -1
- package/dist/plugins/token-metering/index.js.map +2 -2
- package/dist/plugins/token-metering/manifest.json +1 -1
- package/dist/plugins/token-stats/control.js.map +1 -1
- package/dist/plugins/token-stats/index.js.map +2 -2
- package/dist/plugins/token-stats/manifest.json +1 -1
- package/dist/plugins/user-auth/control.js +3911 -0
- package/dist/plugins/{local-accounts → user-auth}/control.js.map +8 -5
- package/dist/plugins/{local-accounts → user-auth}/index.js +6 -6
- package/dist/plugins/{local-accounts → user-auth}/index.js.map +6 -6
- package/dist/plugins/user-auth/manifest.json +735 -0
- package/dist/plugins/user-auth/ui/ConnectionEditor.svelte +137 -0
- package/dist/plugins/user-auth/ui/Login.svelte +87 -0
- package/dist/plugins/user-auth/ui/LoginProviderIcon.svelte +19 -0
- package/dist/plugins/user-auth/ui/LoginSettings.svelte +141 -0
- package/dist/plugins/user-auth/ui/Profile.svelte +185 -0
- package/dist/plugins/{local-accounts → user-auth}/ui/RecoveryHelp.svelte +3 -3
- package/dist/plugins/user-auth/ui/SessionPolicy.svelte +104 -0
- package/dist/plugins/user-auth/ui/Settings.svelte +14 -0
- package/dist/plugins/user-auth/ui/SettingsSection.svelte +32 -0
- package/dist/plugins/user-auth/ui/Setup.svelte +38 -0
- package/dist/plugins/user-auth/ui/TurnstileChallenge.svelte +26 -0
- package/dist/plugins/user-auth/ui/TurnstileSettings.svelte +81 -0
- package/dist/plugins/user-auth/ui/Users.svelte +95 -0
- package/dist/plugins/user-auth/ui/assets/LICENSE.txt +30 -0
- package/dist/plugins/user-auth/ui/assets/github.svg +1 -0
- package/dist/plugins/user-auth/ui/assets/google.svg +1 -0
- package/dist/plugins/user-auth/ui/assets/microsoft.svg +1 -0
- package/dist/plugins/user-auth/ui/contracts.ts +16 -0
- package/dist/plugins/{local-accounts → user-auth}/ui/login-errors.ts +4 -1
- package/dist/plugins/user-auth/ui/turnstile.ts +21 -0
- package/package.json +2 -2
- package/dist/plugins/local-accounts/control.js +0 -715
- package/dist/plugins/local-accounts/manifest.json +0 -223
- package/dist/plugins/local-accounts/ui/Login.svelte +0 -47
- package/dist/plugins/local-accounts/ui/Settings.svelte +0 -117
|
@@ -0,0 +1,735 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "user-auth",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"schemaVersion": 3,
|
|
5
|
+
"artifactKind": "runtime-plugin",
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"capabilities": [
|
|
8
|
+
"hooks",
|
|
9
|
+
"api",
|
|
10
|
+
"dynamicRuntimeLoad",
|
|
11
|
+
"controlPlane",
|
|
12
|
+
"nativeWidgetsStatic"
|
|
13
|
+
],
|
|
14
|
+
"uiExtensionMode": "native-static",
|
|
15
|
+
"engines": {
|
|
16
|
+
"bungee": "^6.0.0"
|
|
17
|
+
},
|
|
18
|
+
"runtimeScope": "global",
|
|
19
|
+
"control": {
|
|
20
|
+
"entry": "control.js",
|
|
21
|
+
"rpc": []
|
|
22
|
+
},
|
|
23
|
+
"management": {
|
|
24
|
+
"loginComponent": "UserAuthLogin",
|
|
25
|
+
"setupComponent": "UserAuthSetup"
|
|
26
|
+
},
|
|
27
|
+
"builtin": true,
|
|
28
|
+
"ui": {
|
|
29
|
+
"components": [
|
|
30
|
+
{
|
|
31
|
+
"name": "UserAuthSettings",
|
|
32
|
+
"entry": "ui/Settings.svelte"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "UserAuthUsers",
|
|
36
|
+
"entry": "ui/Users.svelte"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "UserAuthProfile",
|
|
40
|
+
"entry": "ui/Profile.svelte"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "UserAuthLogin",
|
|
44
|
+
"entry": "ui/Login.svelte"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "UserAuthSetup",
|
|
48
|
+
"entry": "ui/Setup.svelte"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"contributes": {
|
|
53
|
+
"api": [
|
|
54
|
+
{
|
|
55
|
+
"path": "/password",
|
|
56
|
+
"methods": [
|
|
57
|
+
"POST"
|
|
58
|
+
],
|
|
59
|
+
"handler": "changePassword",
|
|
60
|
+
"execution": "control",
|
|
61
|
+
"capability": "self.password"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"path": "/session-policy",
|
|
65
|
+
"methods": [
|
|
66
|
+
"GET",
|
|
67
|
+
"PUT"
|
|
68
|
+
],
|
|
69
|
+
"handler": "sessionPolicy",
|
|
70
|
+
"execution": "control",
|
|
71
|
+
"capability": "config.write"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"path": "/logout",
|
|
75
|
+
"methods": [
|
|
76
|
+
"POST"
|
|
77
|
+
],
|
|
78
|
+
"handler": "logout",
|
|
79
|
+
"execution": "control",
|
|
80
|
+
"capability": "self.logout"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"path": "/self",
|
|
84
|
+
"methods": [
|
|
85
|
+
"GET"
|
|
86
|
+
],
|
|
87
|
+
"handler": "self",
|
|
88
|
+
"execution": "control",
|
|
89
|
+
"capability": "self.password"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"path": "/users",
|
|
93
|
+
"methods": [
|
|
94
|
+
"GET",
|
|
95
|
+
"POST"
|
|
96
|
+
],
|
|
97
|
+
"handler": "users",
|
|
98
|
+
"execution": "control",
|
|
99
|
+
"capability": "config.write"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"path": "/users/update",
|
|
103
|
+
"methods": [
|
|
104
|
+
"PUT"
|
|
105
|
+
],
|
|
106
|
+
"handler": "updateUser",
|
|
107
|
+
"execution": "control",
|
|
108
|
+
"capability": "config.write"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"path": "/users/password",
|
|
112
|
+
"methods": [
|
|
113
|
+
"POST"
|
|
114
|
+
],
|
|
115
|
+
"handler": "resetUserPassword",
|
|
116
|
+
"execution": "control",
|
|
117
|
+
"capability": "config.write"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"path": "/identities",
|
|
121
|
+
"methods": [
|
|
122
|
+
"GET",
|
|
123
|
+
"POST",
|
|
124
|
+
"DELETE"
|
|
125
|
+
],
|
|
126
|
+
"handler": "identities",
|
|
127
|
+
"execution": "control",
|
|
128
|
+
"capability": "config.write"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"path": "/login-connections",
|
|
132
|
+
"methods": [
|
|
133
|
+
"GET",
|
|
134
|
+
"POST",
|
|
135
|
+
"PUT",
|
|
136
|
+
"DELETE"
|
|
137
|
+
],
|
|
138
|
+
"handler": "loginConnections",
|
|
139
|
+
"execution": "control",
|
|
140
|
+
"capability": "config.write"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"path": "/login-connections/discover",
|
|
144
|
+
"methods": [
|
|
145
|
+
"POST"
|
|
146
|
+
],
|
|
147
|
+
"handler": "discoverLoginConnection",
|
|
148
|
+
"execution": "control",
|
|
149
|
+
"capability": "config.write"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"path": "/login-settings",
|
|
153
|
+
"methods": [
|
|
154
|
+
"GET",
|
|
155
|
+
"PUT"
|
|
156
|
+
],
|
|
157
|
+
"handler": "loginSettings",
|
|
158
|
+
"execution": "control",
|
|
159
|
+
"capability": "config.write"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"path": "/turnstile",
|
|
163
|
+
"methods": [
|
|
164
|
+
"GET",
|
|
165
|
+
"PUT"
|
|
166
|
+
],
|
|
167
|
+
"handler": "turnstile",
|
|
168
|
+
"execution": "control",
|
|
169
|
+
"capability": "config.write"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"path": "/identities/link/start",
|
|
173
|
+
"methods": [
|
|
174
|
+
"POST"
|
|
175
|
+
],
|
|
176
|
+
"handler": "beginIdentityLink",
|
|
177
|
+
"execution": "control",
|
|
178
|
+
"capability": "config.write"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"path": "/identities/link/finish",
|
|
182
|
+
"methods": [
|
|
183
|
+
"POST"
|
|
184
|
+
],
|
|
185
|
+
"handler": "finishIdentityLink",
|
|
186
|
+
"execution": "control",
|
|
187
|
+
"capability": "config.write"
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"navigation": [
|
|
191
|
+
{
|
|
192
|
+
"label": "users.title",
|
|
193
|
+
"path": "/users",
|
|
194
|
+
"component": "UserAuthUsers",
|
|
195
|
+
"icon": "group",
|
|
196
|
+
"target": "header"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"label": "profile.title",
|
|
200
|
+
"path": "/profile",
|
|
201
|
+
"component": "UserAuthProfile",
|
|
202
|
+
"icon": "person",
|
|
203
|
+
"target": "header"
|
|
204
|
+
}
|
|
205
|
+
],
|
|
206
|
+
"settings": "/settings",
|
|
207
|
+
"nativeSettingsComponent": "UserAuthSettings"
|
|
208
|
+
},
|
|
209
|
+
"metadata": {
|
|
210
|
+
"name": "metadata.name",
|
|
211
|
+
"description": "metadata.description",
|
|
212
|
+
"icon": "manage_accounts"
|
|
213
|
+
},
|
|
214
|
+
"configSchema": [],
|
|
215
|
+
"translations": {
|
|
216
|
+
"zh-CN": {
|
|
217
|
+
"metadata.name": "用户认证",
|
|
218
|
+
"metadata.description": "本地密码、第三方登录与人机验证",
|
|
219
|
+
"login.title": "账号登录",
|
|
220
|
+
"login.username": "账号",
|
|
221
|
+
"login.password": "密码",
|
|
222
|
+
"login.busy": "正在登录…",
|
|
223
|
+
"login.submit": "登录",
|
|
224
|
+
"login.technicalDetails": "技术详情",
|
|
225
|
+
"login.correctAddress": "使用正确地址:{origin}",
|
|
226
|
+
"login.errors.invalid_credentials": "账号或密码不正确。请重新输入。",
|
|
227
|
+
"login.errors.invalid_input": "账号格式不正确。账号名只允许字母、数字及 _ . @ -,长度为 1–64。",
|
|
228
|
+
"login.errors.forbidden": "当前登录请求无法完成。请刷新后重试。",
|
|
229
|
+
"login.errors.unauthorized": "登录会话未建立。请重新登录。",
|
|
230
|
+
"login.errors.invalid_origin": "当前访问地址与服务配置不匹配。请使用配置的公开地址登录,或请部署管理员调整公开地址。",
|
|
231
|
+
"login.errors.invalid_csrf": "当前会话或访问地址校验失败。请从配置的公开地址重新登录。",
|
|
232
|
+
"login.errors.login_limited": "登录尝试过多。请等待 15 分钟后重试。",
|
|
233
|
+
"login.errors.session_limit": "登录会话已达到上限。请退出不再使用的会话后重试。",
|
|
234
|
+
"login.errors.management_provider_unavailable": "账号服务暂时不可用。请检查服务状态,恢复后重试。",
|
|
235
|
+
"login.errors.provider_unavailable": "账号服务暂时不可用。请检查服务状态,恢复后重试。",
|
|
236
|
+
"login.errors.control_recovering": "账号服务正在恢复。请稍候重试。",
|
|
237
|
+
"login.errors.session_unavailable": "登录尚未完成。请检查连接后重试,或刷新管理访问状态。",
|
|
238
|
+
"login.errors.unknown": "登录未完成。请检查连接后重试。",
|
|
239
|
+
"recovery.summary": "忘记账号或密码?",
|
|
240
|
+
"recovery.intro": "请在部署服务器上恢复账号。",
|
|
241
|
+
"recovery.step1": "确认目标实例的配置数据库路径,停止该实例的全部进程并备份数据。",
|
|
242
|
+
"recovery.step2": "在原部署目录、使用原数据位置和环境变量执行下面的命令。",
|
|
243
|
+
"recovery.step3": "按提示设置账号和新密码,然后重新启动实例。",
|
|
244
|
+
"recovery.docker": "停止原容器,使用同一镜像、原数据卷和环境变量启动临时交互容器,在 /usr/app 中执行下方命令。数据库路径须指向原实例,必要时覆盖 entrypoint,并保持终端交互(TTY)。完成后删除临时容器,启动原容器。",
|
|
245
|
+
"settings.accountTitle": "当前账号",
|
|
246
|
+
"settings.accountTag": "账号",
|
|
247
|
+
"settings.passwordTag": "密码",
|
|
248
|
+
"settings.loading": "正在加载…",
|
|
249
|
+
"settings.passwordTitle": "修改登录密码",
|
|
250
|
+
"settings.passwordDescription": "修改密码会退出该账号的所有会话。",
|
|
251
|
+
"settings.currentPassword": "当前密码",
|
|
252
|
+
"settings.newPassword": "新密码(5–32 个字符)",
|
|
253
|
+
"settings.confirmation": "确认新密码",
|
|
254
|
+
"settings.updating": "正在更新…",
|
|
255
|
+
"settings.submit": "修改并重新登录",
|
|
256
|
+
"settings.logout": "退出当前会话",
|
|
257
|
+
"session.title": "登录会话",
|
|
258
|
+
"session.tag": "有效期",
|
|
259
|
+
"session.noIdleTimeout": "不限制",
|
|
260
|
+
"session.description": "仅对新登录生效。空闲超时设为 0 可关闭,最长有效期不超过 30 天。",
|
|
261
|
+
"session.idle": "空闲超时",
|
|
262
|
+
"session.absolute": "登录最长有效期",
|
|
263
|
+
"session.minutes": "分钟",
|
|
264
|
+
"session.hours": "小时",
|
|
265
|
+
"session.days": "天",
|
|
266
|
+
"session.unit": "时长单位",
|
|
267
|
+
"session.loading": "正在读取会话设置",
|
|
268
|
+
"session.save": "保存会话设置",
|
|
269
|
+
"session.saving": "正在保存…",
|
|
270
|
+
"session.saved": "已保存,下次登录生效。",
|
|
271
|
+
"session.invalid": "请输入整数时长,最长 30 天;登录最长有效期至少为 1 分钟。",
|
|
272
|
+
"session.conflict": "设置已被其他页面修改。请重新读取后再保存。",
|
|
273
|
+
"session.failed": "会话设置读取或保存失败。",
|
|
274
|
+
"session.reload": "重新读取",
|
|
275
|
+
"setup.title": "初始化认证",
|
|
276
|
+
"setup.description": "初始化码由部署服务器签发,30 分钟内有效。",
|
|
277
|
+
"setup.code": "一次性初始化码",
|
|
278
|
+
"setup.password": "密码(5–32 个字符)",
|
|
279
|
+
"setup.confirmation": "确认密码",
|
|
280
|
+
"setup.submit": "初始化账号",
|
|
281
|
+
"setup.busy": "正在初始化…",
|
|
282
|
+
"setup.failed": "未能确认初始化结果。请检查连接后重试。",
|
|
283
|
+
"setup.invalid_setup_code": "初始化码无效或已过期,请在部署服务器重新签发。",
|
|
284
|
+
"setup.password_confirmation": "两次输入的密码不一致。",
|
|
285
|
+
"setup.invalid_password": "密码须为 5–32 个字符。",
|
|
286
|
+
"setup.already_initialized": "认证已初始化,请前往登录。",
|
|
287
|
+
"settings.errors.invalid_password": "密码须为 5–32 个字符。",
|
|
288
|
+
"settings.errors.password_confirmation": "两次输入的密码不一致。",
|
|
289
|
+
"settings.errors.password_unchanged": "新密码须与当前密码不同。",
|
|
290
|
+
"settings.errors.failed": "账号操作失败。",
|
|
291
|
+
"session.increase": "增加时长",
|
|
292
|
+
"session.decrease": "减少时长",
|
|
293
|
+
"login.retryChallenge": "重试验证",
|
|
294
|
+
"login.challengeFailed": "人机验证不可用,请重试。",
|
|
295
|
+
"login.errors.turnstile_required": "请完成人机验证。",
|
|
296
|
+
"login.errors.turnstile_failed": "人机验证未通过,请重新验证。",
|
|
297
|
+
"login.errors.unknown_identity": "该外部身份尚未绑定用户,请联系管理员。",
|
|
298
|
+
"login.errors.disabled_user": "该用户已被禁用。",
|
|
299
|
+
"login.errors.invalid_oidc_flow": "外部登录流程无效或已过期,请重新登录。",
|
|
300
|
+
"login.errors.oauth_client_rejected": "GitHub 拒绝应用凭据,请检查该连接的 Client ID 和 Client Secret。",
|
|
301
|
+
"login.errors.oauth_callback_mismatch": "GitHub 回调地址不匹配,请核对应用中登记的回调地址。",
|
|
302
|
+
"login.errors.oauth_code_rejected": "GitHub 授权码无效或已过期,请重新发起授权。",
|
|
303
|
+
"login.errors.oauth_email_unverified": "请先在 GitHub 验证主邮箱,再重新发起授权。",
|
|
304
|
+
"login.errors.oauth_token_failed": "未能验证 GitHub 授权响应,请重新授权或检查连接配置。",
|
|
305
|
+
"login.errors.oidc_failed": "外部登录失败,请重新登录。",
|
|
306
|
+
"login.errors.identity_connection_mismatch": "外部身份所属连接不匹配,请联系管理员。",
|
|
307
|
+
"admin.edit": "编辑",
|
|
308
|
+
"admin.save": "保存",
|
|
309
|
+
"admin.saved": "已保存。",
|
|
310
|
+
"admin.secretRetained": "已配置,留空保留",
|
|
311
|
+
"users.title": "用户管理",
|
|
312
|
+
"users.access": "所有已登录用户拥有完整管理能力。",
|
|
313
|
+
"users.enabled": "启用",
|
|
314
|
+
"users.disabled": "停用",
|
|
315
|
+
"users.local": "有本地密码",
|
|
316
|
+
"users.sso": "仅外部身份",
|
|
317
|
+
"users.reset": "重设密码",
|
|
318
|
+
"users.toggle": "启用用户",
|
|
319
|
+
"users.new": "创建用户",
|
|
320
|
+
"users.edit": "编辑用户",
|
|
321
|
+
"users.displayName": "显示名称",
|
|
322
|
+
"users.password": "用户密码(5–32 个字符)",
|
|
323
|
+
"users.confirmation": "确认用户密码",
|
|
324
|
+
"users.optionalPassword": "留空则不设置本地密码。",
|
|
325
|
+
"users.revokes": "重设密码会退出该用户的所有会话。",
|
|
326
|
+
"users.identities": "第三方登录绑定",
|
|
327
|
+
"users.bindingNote": "绑定或解绑会退出该账号的所有会话。",
|
|
328
|
+
"users.unbind": "解除绑定",
|
|
329
|
+
"turnstile.title": "Turnstile 人机验证",
|
|
330
|
+
"turnstile.description": "启用后,本地密码登录需完成人机验证。",
|
|
331
|
+
"turnstile.enabled": "启用 Turnstile",
|
|
332
|
+
"turnstile.siteKey": "Site key",
|
|
333
|
+
"turnstile.secret": "Turnstile secret",
|
|
334
|
+
"turnstile.hostnames": "允许的 hostname(每行一个)",
|
|
335
|
+
"turnstile.save": "保存配置",
|
|
336
|
+
"turnstile.configure": "配置",
|
|
337
|
+
"turnstile.saveEnable": "保存并启用",
|
|
338
|
+
"turnstile.saveDisable": "保存并停用",
|
|
339
|
+
"turnstile.pending": "更改未保存",
|
|
340
|
+
"turnstile.configuredDisabled": "已配置,未启用",
|
|
341
|
+
"turnstile.active": "已启用",
|
|
342
|
+
"turnstile.inactive": "未启用",
|
|
343
|
+
"admin.errors.version_conflict": "设置已被其他页面修改,已重新读取。请重新编辑后保存。",
|
|
344
|
+
"admin.errors.invalid_input": "输入格式无效,请检查各字段。",
|
|
345
|
+
"admin.errors.last_local_user": "不能禁用最后一个启用的本地密码用户。",
|
|
346
|
+
"admin.errors.username_exists": "用户名已存在。",
|
|
347
|
+
"admin.errors.identity_exists": "该外部身份已经绑定。",
|
|
348
|
+
"admin.errors.invalid_password": "密码须为 5–32 个字符。",
|
|
349
|
+
"admin.errors.password_confirmation": "两次输入的密码不一致。",
|
|
350
|
+
"admin.errors.turnstile_incomplete": "开启前请完整配置 site key、secret 和允许的 hostname。",
|
|
351
|
+
"admin.errors.oidc_secret_required": "请配置 Client secret。",
|
|
352
|
+
"admin.errors.invalid_origin": "公开管理地址不可用,请检查 BUNGEE_PUBLIC_ORIGIN。",
|
|
353
|
+
"admin.errors.management_origin_required": "请配置固定回调地址 BUNGEE_PUBLIC_ORIGIN 后重启服务。",
|
|
354
|
+
"admin.errors.oidc_unavailable": "该登录连接不可用,请检查是否已启用并配置凭据。",
|
|
355
|
+
"settings.title": "登录管理",
|
|
356
|
+
"profile.title": "用户信息",
|
|
357
|
+
"profile.noPassword": "尚未设置本地密码,可在用户管理中设置。",
|
|
358
|
+
"profile.noConnections": "暂无可绑定的登录方式。",
|
|
359
|
+
"users.empty": "暂无用户。",
|
|
360
|
+
"users.editDescription": "账号以英文字母或数字开头,可包含 _ . @ -。",
|
|
361
|
+
"admin.close": "关闭",
|
|
362
|
+
"admin.cancel": "取消",
|
|
363
|
+
"connections.title": "第三方登录",
|
|
364
|
+
"connections.connection": "身份连接",
|
|
365
|
+
"connections.autoCreate": "自动创建第三方登录用户",
|
|
366
|
+
"connections.autoCreateWarning": "开启后,所有已启用连接的新用户均可自动创建账号,并获得完整管理权限。",
|
|
367
|
+
"connections.new": "添加第三方登录",
|
|
368
|
+
"connections.edit": "编辑第三方登录",
|
|
369
|
+
"connections.editor": "第三方登录表单",
|
|
370
|
+
"connections.enabled": "启用连接",
|
|
371
|
+
"connections.label": "连接显示名称",
|
|
372
|
+
"connections.issuer": "Issuer URL",
|
|
373
|
+
"connections.clientId": "Client ID",
|
|
374
|
+
"connections.secret": "Client secret",
|
|
375
|
+
"connections.scopes": "Scopes(空格分隔)",
|
|
376
|
+
"connections.callback": "回调地址",
|
|
377
|
+
"connections.missingOrigin": "请先配置公开管理地址 BUNGEE_PUBLIC_ORIGIN。",
|
|
378
|
+
"connections.empty": "尚未添加第三方登录。",
|
|
379
|
+
"connections.description": "选择提供商并配置应用凭据。",
|
|
380
|
+
"connections.delete": "删除第三方登录",
|
|
381
|
+
"connections.deleteWarning": "删除后将清理该连接的外部身份绑定,退出受影响用户的所有会话,并取消未完成的登录。平台用户保留。",
|
|
382
|
+
"connections.search": "搜索连接",
|
|
383
|
+
"connections.status": "状态",
|
|
384
|
+
"connections.all": "全部状态",
|
|
385
|
+
"connections.actions": "操作",
|
|
386
|
+
"connections.enable": "启用",
|
|
387
|
+
"connections.disable": "停用",
|
|
388
|
+
"connections.remove": "删除",
|
|
389
|
+
"connections.noMatches": "没有匹配的连接。",
|
|
390
|
+
"login.methods": "外部身份登录",
|
|
391
|
+
"connections.provider": "提供商",
|
|
392
|
+
"connections.providerFixed": "提供商不可修改;如需更换,请删除后重新添加。",
|
|
393
|
+
"connections.saveNote": "新连接默认停用。保存仅记录配置,不代表登录已验证成功。",
|
|
394
|
+
"connections.saved": "配置已保存,尚未验证实际登录。",
|
|
395
|
+
"connections.copy": "复制回调地址",
|
|
396
|
+
"connections.copied": "已复制",
|
|
397
|
+
"connections.copyFailed": "复制失败,请手动复制回调地址。",
|
|
398
|
+
"connections.createApp": "创建应用 ↗",
|
|
399
|
+
"connections.oidcGuide": "OIDC 配置指南 ↗",
|
|
400
|
+
"connections.accountType": "账号范围",
|
|
401
|
+
"connections.mode": "配置方式",
|
|
402
|
+
"connections.modeIssuer": "Issuer 自动发现",
|
|
403
|
+
"connections.modeDiscovery": "Discovery URL",
|
|
404
|
+
"connections.modeManual": "手动配置",
|
|
405
|
+
"connections.discoveryUrl": "Discovery URL",
|
|
406
|
+
"connections.authorizationEndpoint": "授权端点",
|
|
407
|
+
"connections.tokenEndpoint": "令牌端点",
|
|
408
|
+
"connections.jwksUri": "JWKS URL",
|
|
409
|
+
"connections.authMethod": "客户端认证方式",
|
|
410
|
+
"connections.signingAlg": "ID Token 签名算法",
|
|
411
|
+
"connections.advanced": "高级设置",
|
|
412
|
+
"connections.discovering": "正在读取提供商配置…",
|
|
413
|
+
"connections.discoveryFailed": "无法读取提供商配置。请检查地址并重新移出输入框重试。",
|
|
414
|
+
"connections.invalidUrl": "请输入有效的 HTTPS 地址;本机地址可使用 HTTP。",
|
|
415
|
+
"providers.google": "Google",
|
|
416
|
+
"providers.microsoft": "Microsoft",
|
|
417
|
+
"providers.github": "GitHub",
|
|
418
|
+
"providers.oidc": "自定义 OIDC",
|
|
419
|
+
"accounts.tenant": "仅此组织(单租户)",
|
|
420
|
+
"accounts.organizations": "任何组织(多租户)",
|
|
421
|
+
"accounts.consumers": "个人 Microsoft 账号",
|
|
422
|
+
"accounts.common": "组织和个人 Microsoft 账号",
|
|
423
|
+
"guides.google": "创建 Web 应用客户端,将上方地址添加为授权重定向 URI,并复制 Client ID 和密钥。",
|
|
424
|
+
"guides.microsoft": "注册 Web 应用,账号范围须与此处一致。添加上方重定向 URI,复制应用 ID 和客户端密码的值。",
|
|
425
|
+
"guides.github": "创建 OAuth App,将上方地址填入 Authorization callback URL,并生成客户端密钥。",
|
|
426
|
+
"guides.oidc": "在身份提供商创建机密客户端,登记上方回调地址,并使用授权码流程。",
|
|
427
|
+
"admin.errors.invalid_provider": "请选择支持的登录提供商。",
|
|
428
|
+
"login.errors.invalid_provider": "请选择支持的登录提供商。",
|
|
429
|
+
"admin.errors.invalid_microsoft_configuration": "Microsoft 配置无效,请检查账号范围。",
|
|
430
|
+
"login.errors.invalid_microsoft_configuration": "Microsoft 配置无效,请检查账号范围。",
|
|
431
|
+
"admin.errors.invalid_microsoft_tenant": "Tenant ID 必须是有效的租户 GUID。",
|
|
432
|
+
"login.errors.invalid_microsoft_tenant": "Tenant ID 必须是有效的租户 GUID。",
|
|
433
|
+
"admin.errors.microsoft_account_scope": "Microsoft 账号不在允许的范围内。",
|
|
434
|
+
"login.errors.microsoft_account_scope": "Microsoft 账号不在允许的范围内。",
|
|
435
|
+
"admin.errors.microsoft_signing_key_issuer": "无法验证 Microsoft 身份,请重新登录。",
|
|
436
|
+
"login.errors.microsoft_signing_key_issuer": "无法验证 Microsoft 身份,请重新登录。",
|
|
437
|
+
"admin.errors.invalid_oidc_configuration": "OIDC 配置不完整或格式无效。",
|
|
438
|
+
"login.errors.invalid_oidc_configuration": "OIDC 配置不完整或格式无效。",
|
|
439
|
+
"admin.errors.invalid_oauth_identity": "无法确认外部身份,请重新登录。",
|
|
440
|
+
"login.errors.invalid_oauth_identity": "无法确认外部身份,请重新登录。",
|
|
441
|
+
"admin.errors.oidc_metadata_failed": "无法读取提供商配置,请检查地址。",
|
|
442
|
+
"login.errors.oidc_metadata_failed": "无法读取提供商配置,请检查地址。",
|
|
443
|
+
"admin.errors.oidc_metadata_invalid": "提供商返回的配置无效,请检查地址或使用手动配置。",
|
|
444
|
+
"login.errors.oidc_metadata_invalid": "提供商返回的配置无效,请检查地址或使用手动配置。",
|
|
445
|
+
"admin.errors.oidc_metadata_limit": "提供商配置超过大小限制。",
|
|
446
|
+
"login.errors.oidc_metadata_limit": "提供商配置超过大小限制。",
|
|
447
|
+
"admin.errors.oidc_network_failed": "无法连接身份提供商,请稍后重试。",
|
|
448
|
+
"login.errors.oidc_network_failed": "无法连接身份提供商,请稍后重试。",
|
|
449
|
+
"admin.errors.oidc_pkce_unsupported": "身份提供商不支持所需的 S256 PKCE。",
|
|
450
|
+
"login.errors.oidc_pkce_unsupported": "身份提供商不支持所需的 S256 PKCE。",
|
|
451
|
+
"admin.errors.oidc_signing_alg_unsupported": "身份提供商不支持所选 ID Token 签名算法。",
|
|
452
|
+
"login.errors.oidc_signing_alg_unsupported": "身份提供商不支持所选 ID Token 签名算法。",
|
|
453
|
+
"admin.errors.preset_scopes_fixed": "此提供商的权限范围固定,请重新打开连接。",
|
|
454
|
+
"login.errors.preset_scopes_fixed": "此提供商的权限范围固定,请重新打开连接。",
|
|
455
|
+
"admin.errors.verified_identity_required": "请先登录已有账号,在用户信息中验证并绑定此身份。",
|
|
456
|
+
"login.errors.verified_identity_required": "请先登录已有账号,在用户信息中验证并绑定此身份。",
|
|
457
|
+
"admin.errors.invalid_oidc_url": "请输入有效的 HTTPS 地址;本机地址可使用 HTTP。",
|
|
458
|
+
"login.errors.invalid_oidc_url": "请输入有效的 HTTPS 地址;本机地址可使用 HTTP。",
|
|
459
|
+
"admin.errors.oidc_issuer_mismatch": "提供商返回的 Issuer 与配置不一致。",
|
|
460
|
+
"login.errors.oidc_issuer_mismatch": "提供商返回的 Issuer 与配置不一致。",
|
|
461
|
+
"admin.errors.oidc_auth_method_unsupported": "身份提供商不支持所选客户端认证方式。",
|
|
462
|
+
"login.errors.oidc_auth_method_unsupported": "身份提供商不支持所选客户端认证方式。",
|
|
463
|
+
"login.errors.oidc_secret_required": "请配置 Client secret。",
|
|
464
|
+
"profile.bindingDescription": "使用已绑定的第三方账号登录。",
|
|
465
|
+
"profile.bind": "绑定",
|
|
466
|
+
"profile.bound": "已绑定",
|
|
467
|
+
"profile.notBound": "未绑定",
|
|
468
|
+
"profile.identityId": "身份 ID",
|
|
469
|
+
"profile.unbindTitle": "解除第三方账号绑定",
|
|
470
|
+
"profile.unbindWarning": "解除后将无法使用此身份登录,当前账号的所有会话也将退出。",
|
|
471
|
+
"profile.changePassword": "修改密码",
|
|
472
|
+
"connections.add": "添加连接",
|
|
473
|
+
"connections.searchPlaceholder": "搜索连接…"
|
|
474
|
+
},
|
|
475
|
+
"en": {
|
|
476
|
+
"metadata.name": "User Authentication",
|
|
477
|
+
"metadata.description": "Local passwords, third-party sign-in and human verification",
|
|
478
|
+
"login.title": "Account sign-in",
|
|
479
|
+
"login.username": "Username",
|
|
480
|
+
"login.password": "Password",
|
|
481
|
+
"login.busy": "Signing in…",
|
|
482
|
+
"login.submit": "Sign in",
|
|
483
|
+
"login.technicalDetails": "Technical details",
|
|
484
|
+
"login.correctAddress": "Use the correct address: {origin}",
|
|
485
|
+
"login.errors.invalid_credentials": "Incorrect username or password. Enter your credentials again.",
|
|
486
|
+
"login.errors.invalid_input": "Invalid username. Use 1–64 characters containing letters, numbers, and _ . @ - only.",
|
|
487
|
+
"login.errors.forbidden": "This sign-in request could not be completed. Refresh and try again.",
|
|
488
|
+
"login.errors.unauthorized": "A sign-in session was not established. Sign in again.",
|
|
489
|
+
"login.errors.invalid_origin": "This address does not match the service configuration. Sign in at the configured public address, or ask the deployment administrator to update it.",
|
|
490
|
+
"login.errors.invalid_csrf": "Session or address verification failed. Sign in again at the configured public address.",
|
|
491
|
+
"login.errors.login_limited": "Too many sign-in attempts. Wait 15 minutes before trying again.",
|
|
492
|
+
"login.errors.session_limit": "The sign-in session limit has been reached. Sign out of unused sessions and try again.",
|
|
493
|
+
"login.errors.management_provider_unavailable": "The account service is temporarily unavailable. Check its status and try again after recovery.",
|
|
494
|
+
"login.errors.provider_unavailable": "The account service is temporarily unavailable. Check its status and try again after recovery.",
|
|
495
|
+
"login.errors.control_recovering": "The account service is recovering. Try again shortly.",
|
|
496
|
+
"login.errors.session_unavailable": "Sign-in has not completed. Check your connection and retry, or refresh management access status.",
|
|
497
|
+
"login.errors.unknown": "Sign-in did not complete. Check your connection and try again.",
|
|
498
|
+
"recovery.summary": "Forgot your username or password?",
|
|
499
|
+
"recovery.intro": "Recover your account on the deployment server.",
|
|
500
|
+
"recovery.step1": "Confirm the target instance’s configuration database path, stop all its processes, and back up the data.",
|
|
501
|
+
"recovery.step2": "Run the command below in the original deployment directory, with the original data location and environment variables.",
|
|
502
|
+
"recovery.step3": "Set the username and new password when prompted, then restart the instance.",
|
|
503
|
+
"recovery.docker": "Stop the original container. Start a temporary interactive container with the same image, original data volume and environment, then run the command below from /usr/app. Use the original instance’s database path, override the entrypoint if needed, and keep the terminal attached (TTY). Remove the temporary container afterwards and restart the original one.",
|
|
504
|
+
"settings.accountTitle": "Current account",
|
|
505
|
+
"settings.accountTag": "Account",
|
|
506
|
+
"settings.passwordTag": "Password",
|
|
507
|
+
"settings.loading": "Loading…",
|
|
508
|
+
"settings.passwordTitle": "Change sign-in password",
|
|
509
|
+
"settings.passwordDescription": "Changing the password signs this account out of all sessions.",
|
|
510
|
+
"settings.currentPassword": "Current password",
|
|
511
|
+
"settings.newPassword": "New password (5–32 characters)",
|
|
512
|
+
"settings.confirmation": "Confirm new password",
|
|
513
|
+
"settings.updating": "Updating…",
|
|
514
|
+
"settings.submit": "Change and sign in again",
|
|
515
|
+
"settings.logout": "Sign out of current session",
|
|
516
|
+
"session.title": "Sign-in sessions",
|
|
517
|
+
"session.tag": "LIFETIME",
|
|
518
|
+
"session.noIdleTimeout": "Disabled",
|
|
519
|
+
"session.description": "Applies only to new sign-ins. Set idle timeout to 0 to disable it. Maximum lifetime is 30 days.",
|
|
520
|
+
"session.idle": "Idle timeout",
|
|
521
|
+
"session.absolute": "Maximum sign-in lifetime",
|
|
522
|
+
"session.minutes": "Minutes",
|
|
523
|
+
"session.hours": "Hours",
|
|
524
|
+
"session.days": "Days",
|
|
525
|
+
"session.unit": "Duration unit",
|
|
526
|
+
"session.loading": "Loading session settings",
|
|
527
|
+
"session.save": "Save session settings",
|
|
528
|
+
"session.saving": "Saving…",
|
|
529
|
+
"session.saved": "Saved. Applies to your next sign-in.",
|
|
530
|
+
"session.invalid": "Enter a whole-number duration up to 30 days. Maximum lifetime must be at least 1 minute.",
|
|
531
|
+
"session.conflict": "Another page changed these settings. Reload before saving.",
|
|
532
|
+
"session.failed": "Could not read or save session settings.",
|
|
533
|
+
"session.reload": "Reload settings",
|
|
534
|
+
"setup.title": "Initialize authentication",
|
|
535
|
+
"setup.description": "The setup code is issued on the deployment server and expires after 30 minutes.",
|
|
536
|
+
"setup.code": "One-time setup code",
|
|
537
|
+
"setup.password": "Password (5–32 characters)",
|
|
538
|
+
"setup.confirmation": "Confirm password",
|
|
539
|
+
"setup.submit": "Initialize account",
|
|
540
|
+
"setup.busy": "Initializing…",
|
|
541
|
+
"setup.failed": "Could not confirm initialization. Check your connection and try again.",
|
|
542
|
+
"setup.invalid_setup_code": "The code is invalid or expired. Issue another code on the deployment server.",
|
|
543
|
+
"setup.password_confirmation": "Passwords do not match.",
|
|
544
|
+
"setup.invalid_password": "Use 5–32 characters.",
|
|
545
|
+
"setup.already_initialized": "Authentication is already initialized. Sign in.",
|
|
546
|
+
"settings.errors.invalid_password": "Use 5–32 characters.",
|
|
547
|
+
"settings.errors.password_confirmation": "Passwords do not match.",
|
|
548
|
+
"settings.errors.password_unchanged": "Choose a different password.",
|
|
549
|
+
"settings.errors.failed": "The account request failed.",
|
|
550
|
+
"session.increase": "Increase duration",
|
|
551
|
+
"session.decrease": "Decrease duration",
|
|
552
|
+
"login.retryChallenge": "Retry challenge",
|
|
553
|
+
"login.challengeFailed": "Challenge unavailable. Please retry.",
|
|
554
|
+
"login.errors.turnstile_required": "Complete the sign-in challenge.",
|
|
555
|
+
"login.errors.turnstile_failed": "Challenge verification failed. Try again.",
|
|
556
|
+
"login.errors.unknown_identity": "This identity is not linked to a user. Contact an administrator.",
|
|
557
|
+
"login.errors.disabled_user": "This user is disabled.",
|
|
558
|
+
"login.errors.invalid_oidc_flow": "The external sign-in has expired or is invalid. Start again.",
|
|
559
|
+
"login.errors.oauth_client_rejected": "GitHub rejected the application credentials. Check the connection’s Client ID and Client Secret.",
|
|
560
|
+
"login.errors.oauth_callback_mismatch": "The GitHub callback URL does not match. Check the callback registered with the application.",
|
|
561
|
+
"login.errors.oauth_code_rejected": "The GitHub authorization code is invalid or expired. Start authorization again.",
|
|
562
|
+
"login.errors.oauth_email_unverified": "Verify your primary email address on GitHub, then start authorization again.",
|
|
563
|
+
"login.errors.oauth_token_failed": "Could not validate the GitHub authorization response. Authorize again or check the connection configuration.",
|
|
564
|
+
"login.errors.oidc_failed": "External sign-in failed. Try again.",
|
|
565
|
+
"login.errors.identity_connection_mismatch": "The identity belongs to a different connection. Contact an administrator.",
|
|
566
|
+
"admin.edit": "Edit",
|
|
567
|
+
"admin.save": "Save",
|
|
568
|
+
"admin.saved": "Saved.",
|
|
569
|
+
"admin.secretRetained": "Configured; leave blank to retain",
|
|
570
|
+
"users.title": "Users",
|
|
571
|
+
"users.access": "Every signed-in user has full management access.",
|
|
572
|
+
"users.enabled": "Enabled",
|
|
573
|
+
"users.disabled": "Disabled",
|
|
574
|
+
"users.local": "Local password set",
|
|
575
|
+
"users.sso": "External identity only",
|
|
576
|
+
"users.reset": "Reset password",
|
|
577
|
+
"users.toggle": "Enable user",
|
|
578
|
+
"users.new": "Create user",
|
|
579
|
+
"users.edit": "Edit user",
|
|
580
|
+
"users.displayName": "Display name",
|
|
581
|
+
"users.password": "User password (5–32 characters)",
|
|
582
|
+
"users.confirmation": "Confirm user password",
|
|
583
|
+
"users.optionalPassword": "Leave blank to create the user without a local password.",
|
|
584
|
+
"users.revokes": "Resetting the password signs this user out of all sessions.",
|
|
585
|
+
"users.identities": "Linked sign-in accounts",
|
|
586
|
+
"users.bindingNote": "Binding or unbinding signs this account out of all sessions.",
|
|
587
|
+
"users.unbind": "Unlink",
|
|
588
|
+
"turnstile.title": "Turnstile challenge",
|
|
589
|
+
"turnstile.description": "When enabled, local password sign-in requires human verification.",
|
|
590
|
+
"turnstile.enabled": "Enable Turnstile",
|
|
591
|
+
"turnstile.siteKey": "Site key",
|
|
592
|
+
"turnstile.secret": "Turnstile secret",
|
|
593
|
+
"turnstile.hostnames": "Allowed hostnames (one per line)",
|
|
594
|
+
"turnstile.save": "Save configuration",
|
|
595
|
+
"turnstile.configure": "Configure",
|
|
596
|
+
"turnstile.saveEnable": "Save and enable",
|
|
597
|
+
"turnstile.saveDisable": "Save and disable",
|
|
598
|
+
"turnstile.pending": "Changes not saved",
|
|
599
|
+
"turnstile.configuredDisabled": "Configured, disabled",
|
|
600
|
+
"turnstile.active": "Enabled",
|
|
601
|
+
"turnstile.inactive": "Disabled",
|
|
602
|
+
"admin.errors.version_conflict": "Settings changed elsewhere and have been reloaded. Edit again before saving.",
|
|
603
|
+
"admin.errors.invalid_input": "Invalid input. Check the fields.",
|
|
604
|
+
"admin.errors.last_local_user": "Cannot disable the last enabled user with a local password.",
|
|
605
|
+
"admin.errors.username_exists": "Username already exists.",
|
|
606
|
+
"admin.errors.identity_exists": "This external identity is already bound.",
|
|
607
|
+
"admin.errors.invalid_password": "Use 5–32 characters.",
|
|
608
|
+
"admin.errors.password_confirmation": "Passwords do not match.",
|
|
609
|
+
"admin.errors.turnstile_incomplete": "Configure site key, secret and allowed hostnames before enabling.",
|
|
610
|
+
"admin.errors.oidc_secret_required": "Configure a client secret.",
|
|
611
|
+
"admin.errors.invalid_origin": "The public management address is unavailable. Check BUNGEE_PUBLIC_ORIGIN.",
|
|
612
|
+
"admin.errors.management_origin_required": "Configure the callback origin with BUNGEE_PUBLIC_ORIGIN and restart the service.",
|
|
613
|
+
"admin.errors.oidc_unavailable": "This sign-in connection is unavailable. Check that it is enabled and has credentials.",
|
|
614
|
+
"settings.title": "Sign-in management",
|
|
615
|
+
"profile.title": "User profile",
|
|
616
|
+
"profile.noPassword": "No local password is set. Set one in user management.",
|
|
617
|
+
"profile.noConnections": "No sign-in methods are available to link.",
|
|
618
|
+
"users.empty": "No users.",
|
|
619
|
+
"users.editDescription": "Start the username with an English letter or digit. It may also contain _ . @ -.",
|
|
620
|
+
"admin.close": "Close",
|
|
621
|
+
"admin.cancel": "Cancel",
|
|
622
|
+
"connections.title": "Third-party sign-in",
|
|
623
|
+
"connections.connection": "Identity connection",
|
|
624
|
+
"connections.autoCreate": "Automatically create external users",
|
|
625
|
+
"connections.autoCreateWarning": "When enabled, new users from every enabled connection can create accounts with full management access.",
|
|
626
|
+
"connections.new": "Add sign-in connection",
|
|
627
|
+
"connections.edit": "Edit sign-in connection",
|
|
628
|
+
"connections.editor": "Sign-in connection form",
|
|
629
|
+
"connections.enabled": "Enable connection",
|
|
630
|
+
"connections.label": "Connection label",
|
|
631
|
+
"connections.issuer": "Issuer URL",
|
|
632
|
+
"connections.clientId": "Client ID",
|
|
633
|
+
"connections.secret": "Client secret",
|
|
634
|
+
"connections.scopes": "Scopes (space separated)",
|
|
635
|
+
"connections.callback": "Callback URL",
|
|
636
|
+
"connections.missingOrigin": "Configure the public management address with BUNGEE_PUBLIC_ORIGIN first.",
|
|
637
|
+
"connections.empty": "No Third-party sign-in configured.",
|
|
638
|
+
"connections.description": "Choose a provider and configure your application credentials.",
|
|
639
|
+
"connections.delete": "Delete sign-in connection",
|
|
640
|
+
"connections.deleteWarning": "Deleting removes this connection’s external identity bindings, signs affected users out of all sessions, and cancels pending sign-ins. Platform users remain.",
|
|
641
|
+
"connections.search": "Search connections",
|
|
642
|
+
"connections.status": "Status",
|
|
643
|
+
"connections.all": "All statuses",
|
|
644
|
+
"connections.actions": "Actions",
|
|
645
|
+
"connections.enable": "Enable",
|
|
646
|
+
"connections.disable": "Disable",
|
|
647
|
+
"connections.remove": "Delete",
|
|
648
|
+
"connections.noMatches": "No matching connections.",
|
|
649
|
+
"login.methods": "External sign-in",
|
|
650
|
+
"connections.provider": "Provider",
|
|
651
|
+
"connections.providerFixed": "To change provider, delete this connection and add another.",
|
|
652
|
+
"connections.saveNote": "New connections are disabled. Saving configuration does not verify sign-in.",
|
|
653
|
+
"connections.saved": "Configuration saved. Sign-in has not been verified.",
|
|
654
|
+
"connections.copy": "Copy callback URL",
|
|
655
|
+
"connections.copied": "Copied",
|
|
656
|
+
"connections.copyFailed": "Could not copy. Copy the callback URL manually.",
|
|
657
|
+
"connections.createApp": "Create application ↗",
|
|
658
|
+
"connections.oidcGuide": "OIDC configuration guide ↗",
|
|
659
|
+
"connections.accountType": "Supported accounts",
|
|
660
|
+
"connections.mode": "Configuration method",
|
|
661
|
+
"connections.modeIssuer": "Discover by issuer",
|
|
662
|
+
"connections.modeDiscovery": "Discovery URL",
|
|
663
|
+
"connections.modeManual": "Manual configuration",
|
|
664
|
+
"connections.discoveryUrl": "Discovery URL",
|
|
665
|
+
"connections.authorizationEndpoint": "Authorization endpoint",
|
|
666
|
+
"connections.tokenEndpoint": "Token endpoint",
|
|
667
|
+
"connections.jwksUri": "JWKS URL",
|
|
668
|
+
"connections.authMethod": "Client authentication",
|
|
669
|
+
"connections.signingAlg": "ID Token signing algorithm",
|
|
670
|
+
"connections.advanced": "Advanced settings",
|
|
671
|
+
"connections.discovering": "Reading provider configuration…",
|
|
672
|
+
"connections.discoveryFailed": "Could not read provider configuration. Check the URL and leave the field to retry.",
|
|
673
|
+
"connections.invalidUrl": "Enter a valid HTTPS URL. HTTP is allowed for loopback hosts.",
|
|
674
|
+
"providers.google": "Google",
|
|
675
|
+
"providers.microsoft": "Microsoft",
|
|
676
|
+
"providers.github": "GitHub",
|
|
677
|
+
"providers.oidc": "Custom OIDC",
|
|
678
|
+
"accounts.tenant": "This organization only (single tenant)",
|
|
679
|
+
"accounts.organizations": "Any organization (multiple tenants)",
|
|
680
|
+
"accounts.consumers": "Personal Microsoft accounts",
|
|
681
|
+
"accounts.common": "Organizational and personal Microsoft accounts",
|
|
682
|
+
"guides.google": "Create a Web application client, add the callback URL as an authorized redirect URI, and copy its client ID and secret.",
|
|
683
|
+
"guides.microsoft": "Register a Web application with matching supported accounts. Add the redirect URI, then copy the application ID and client secret value.",
|
|
684
|
+
"guides.github": "Create an OAuth App, enter the callback URL under Authorization callback URL, and generate a client secret.",
|
|
685
|
+
"guides.oidc": "Create a confidential client at your identity provider, register the callback URL, and enable the authorization code flow.",
|
|
686
|
+
"admin.errors.invalid_provider": "Choose a supported sign-in provider.",
|
|
687
|
+
"login.errors.invalid_provider": "Choose a supported sign-in provider.",
|
|
688
|
+
"admin.errors.invalid_microsoft_configuration": "Check the Microsoft account configuration.",
|
|
689
|
+
"login.errors.invalid_microsoft_configuration": "Check the Microsoft account configuration.",
|
|
690
|
+
"admin.errors.invalid_microsoft_tenant": "Enter a valid tenant GUID.",
|
|
691
|
+
"login.errors.invalid_microsoft_tenant": "Enter a valid tenant GUID.",
|
|
692
|
+
"admin.errors.microsoft_account_scope": "This Microsoft account is outside the allowed account scope.",
|
|
693
|
+
"login.errors.microsoft_account_scope": "This Microsoft account is outside the allowed account scope.",
|
|
694
|
+
"admin.errors.microsoft_signing_key_issuer": "Could not verify the Microsoft identity. Sign in again.",
|
|
695
|
+
"login.errors.microsoft_signing_key_issuer": "Could not verify the Microsoft identity. Sign in again.",
|
|
696
|
+
"admin.errors.invalid_oidc_configuration": "The OIDC configuration is incomplete or invalid.",
|
|
697
|
+
"login.errors.invalid_oidc_configuration": "The OIDC configuration is incomplete or invalid.",
|
|
698
|
+
"admin.errors.invalid_oauth_identity": "Could not verify the external identity. Sign in again.",
|
|
699
|
+
"login.errors.invalid_oauth_identity": "Could not verify the external identity. Sign in again.",
|
|
700
|
+
"admin.errors.oidc_metadata_failed": "Could not read provider configuration. Check the URL.",
|
|
701
|
+
"login.errors.oidc_metadata_failed": "Could not read provider configuration. Check the URL.",
|
|
702
|
+
"admin.errors.oidc_metadata_invalid": "Provider metadata is invalid. Check the URL or configure it manually.",
|
|
703
|
+
"login.errors.oidc_metadata_invalid": "Provider metadata is invalid. Check the URL or configure it manually.",
|
|
704
|
+
"admin.errors.oidc_metadata_limit": "Provider metadata exceeds the size limit.",
|
|
705
|
+
"login.errors.oidc_metadata_limit": "Provider metadata exceeds the size limit.",
|
|
706
|
+
"admin.errors.oidc_network_failed": "Could not reach the identity provider. Try again later.",
|
|
707
|
+
"login.errors.oidc_network_failed": "Could not reach the identity provider. Try again later.",
|
|
708
|
+
"admin.errors.oidc_pkce_unsupported": "The identity provider does not support required S256 PKCE.",
|
|
709
|
+
"login.errors.oidc_pkce_unsupported": "The identity provider does not support required S256 PKCE.",
|
|
710
|
+
"admin.errors.oidc_signing_alg_unsupported": "The identity provider does not support the selected ID Token signing algorithm.",
|
|
711
|
+
"login.errors.oidc_signing_alg_unsupported": "The identity provider does not support the selected ID Token signing algorithm.",
|
|
712
|
+
"admin.errors.preset_scopes_fixed": "This provider uses fixed scopes. Reopen the connection.",
|
|
713
|
+
"login.errors.preset_scopes_fixed": "This provider uses fixed scopes. Reopen the connection.",
|
|
714
|
+
"admin.errors.verified_identity_required": "Sign in to an existing account, then verify and link this identity in your profile.",
|
|
715
|
+
"login.errors.verified_identity_required": "Sign in to an existing account, then verify and link this identity in your profile.",
|
|
716
|
+
"admin.errors.invalid_oidc_url": "Enter a valid HTTPS URL. HTTP is allowed for loopback hosts.",
|
|
717
|
+
"login.errors.invalid_oidc_url": "Enter a valid HTTPS URL. HTTP is allowed for loopback hosts.",
|
|
718
|
+
"admin.errors.oidc_issuer_mismatch": "The provider issuer does not match the configuration.",
|
|
719
|
+
"login.errors.oidc_issuer_mismatch": "The provider issuer does not match the configuration.",
|
|
720
|
+
"admin.errors.oidc_auth_method_unsupported": "The identity provider does not support the selected client authentication method.",
|
|
721
|
+
"login.errors.oidc_auth_method_unsupported": "The identity provider does not support the selected client authentication method.",
|
|
722
|
+
"login.errors.oidc_secret_required": "Configure a client secret.",
|
|
723
|
+
"profile.bindingDescription": "Sign in with your linked third-party accounts.",
|
|
724
|
+
"profile.bind": "Link",
|
|
725
|
+
"profile.bound": "Linked",
|
|
726
|
+
"profile.notBound": "Not linked",
|
|
727
|
+
"profile.identityId": "Identity ID",
|
|
728
|
+
"profile.unbindTitle": "Unlink sign-in account",
|
|
729
|
+
"profile.unbindWarning": "This identity can no longer be used to sign in. All sessions for this account will also end.",
|
|
730
|
+
"profile.changePassword": "Change password",
|
|
731
|
+
"connections.add": "Add connection",
|
|
732
|
+
"connections.searchPlaceholder": "Search connections…"
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
}
|