@objectstack/service-settings 8.0.1 → 9.0.0
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/README.md +7 -4
- package/dist/index.cjs +410 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +410 -16
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.d.cts
CHANGED
|
@@ -206,8 +206,8 @@ interface SettingsServiceOptions {
|
|
|
206
206
|
objectName?: string;
|
|
207
207
|
}
|
|
208
208
|
/**
|
|
209
|
-
* Convert `(namespace, key)` to the env var convention
|
|
210
|
-
*
|
|
209
|
+
* Convert `(namespace, key)` to the ObjectStack-owned env var convention:
|
|
210
|
+
* `OS_` prefix, uppercase, dots → underscores, hyphens → underscores.
|
|
211
211
|
*/
|
|
212
212
|
declare function envKeyOf(namespace: string, key: string): string;
|
|
213
213
|
/** Thrown when a caller tries to write a value pinned by env. */
|
package/dist/index.d.ts
CHANGED
|
@@ -206,8 +206,8 @@ interface SettingsServiceOptions {
|
|
|
206
206
|
objectName?: string;
|
|
207
207
|
}
|
|
208
208
|
/**
|
|
209
|
-
* Convert `(namespace, key)` to the env var convention
|
|
210
|
-
*
|
|
209
|
+
* Convert `(namespace, key)` to the ObjectStack-owned env var convention:
|
|
210
|
+
* `OS_` prefix, uppercase, dots → underscores, hyphens → underscores.
|
|
211
211
|
*/
|
|
212
212
|
declare function envKeyOf(namespace: string, key: string): string;
|
|
213
213
|
/** Thrown when a caller tries to write a value pinned by env. */
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ var NoopCryptoAdapter = class {
|
|
|
22
22
|
// src/settings-service.types.ts
|
|
23
23
|
function envKeyOf(namespace, key) {
|
|
24
24
|
const slug = `${namespace}_${key}`.replace(/[.-]/g, "_").toUpperCase();
|
|
25
|
-
return slug
|
|
25
|
+
return `OS_${slug}`;
|
|
26
26
|
}
|
|
27
27
|
var SettingsLockedError = class extends Error {
|
|
28
28
|
constructor(namespace, key, reason = "locked-by-env") {
|
|
@@ -150,20 +150,20 @@ var SettingsService = class {
|
|
|
150
150
|
// Manifest registry
|
|
151
151
|
// ---------------------------------------------------------------------
|
|
152
152
|
/** Register (or replace) a manifest. Idempotent. */
|
|
153
|
-
registerManifest(
|
|
153
|
+
registerManifest(manifest6) {
|
|
154
154
|
const scopes = /* @__PURE__ */ new Map();
|
|
155
155
|
const encryptedKeys = /* @__PURE__ */ new Set();
|
|
156
156
|
const defaults = /* @__PURE__ */ new Map();
|
|
157
|
-
const defaultScope =
|
|
158
|
-
for (const spec of
|
|
157
|
+
const defaultScope = manifest6.scope ?? "tenant";
|
|
158
|
+
for (const spec of manifest6.specifiers) {
|
|
159
159
|
if (!spec.key || LAYOUT_ONLY_TYPES.has(spec.type)) continue;
|
|
160
160
|
scopes.set(spec.key, spec.scope ?? defaultScope);
|
|
161
161
|
if (spec.encrypted || spec.type === "password") encryptedKeys.add(spec.key);
|
|
162
162
|
if (typeof spec.default !== "undefined") defaults.set(spec.key, spec.default);
|
|
163
163
|
}
|
|
164
|
-
const prev = this.registry.get(
|
|
164
|
+
const prev = this.registry.get(manifest6.namespace);
|
|
165
165
|
const actions = prev?.actions ?? /* @__PURE__ */ new Map();
|
|
166
|
-
this.registry.set(
|
|
166
|
+
this.registry.set(manifest6.namespace, { manifest: manifest6, scopes, encryptedKeys, defaults, actions });
|
|
167
167
|
}
|
|
168
168
|
/** Look up a manifest, or throw `UnknownNamespaceError`. */
|
|
169
169
|
getManifest(namespace) {
|
|
@@ -890,11 +890,90 @@ var settingsPluginManifestHeader = {
|
|
|
890
890
|
type: "plugin",
|
|
891
891
|
scope: "system",
|
|
892
892
|
name: "Settings Service",
|
|
893
|
-
description: "Generic settings registry + K/V resolver with
|
|
893
|
+
description: "Generic settings registry + K/V resolver with OS_* env > Tenant > User > Default precedence. ADR-0007."
|
|
894
894
|
};
|
|
895
895
|
|
|
896
|
-
// src/manifests/
|
|
896
|
+
// src/manifests/auth.manifest.ts
|
|
897
897
|
var manifest = {
|
|
898
|
+
namespace: "auth",
|
|
899
|
+
version: 1,
|
|
900
|
+
label: "Authentication",
|
|
901
|
+
icon: "LockKeyhole",
|
|
902
|
+
description: "Sign-in, registration, and built-in auth feature controls.",
|
|
903
|
+
scope: "global",
|
|
904
|
+
readPermission: "manage_platform_settings",
|
|
905
|
+
writePermission: "manage_platform_settings",
|
|
906
|
+
category: "Security",
|
|
907
|
+
order: 15,
|
|
908
|
+
specifiers: [
|
|
909
|
+
{
|
|
910
|
+
type: "group",
|
|
911
|
+
id: "email_password",
|
|
912
|
+
label: "Email and password",
|
|
913
|
+
required: false,
|
|
914
|
+
description: "Control local email/password sign-in and self-service registration."
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
type: "toggle",
|
|
918
|
+
key: "email_password_enabled",
|
|
919
|
+
label: "Enable email/password login",
|
|
920
|
+
required: false,
|
|
921
|
+
default: true
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
type: "toggle",
|
|
925
|
+
key: "signup_enabled",
|
|
926
|
+
label: "Allow self-service registration",
|
|
927
|
+
required: false,
|
|
928
|
+
default: true,
|
|
929
|
+
visible: "${data.email_password_enabled !== false}"
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
type: "toggle",
|
|
933
|
+
key: "require_email_verification",
|
|
934
|
+
label: "Require email verification",
|
|
935
|
+
required: false,
|
|
936
|
+
default: false,
|
|
937
|
+
visible: "${data.email_password_enabled !== false}"
|
|
938
|
+
},
|
|
939
|
+
{
|
|
940
|
+
type: "group",
|
|
941
|
+
id: "social",
|
|
942
|
+
label: "Social sign-in",
|
|
943
|
+
required: false,
|
|
944
|
+
description: "Configure the built-in Google sign-in provider. Deployment env vars still win."
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
type: "toggle",
|
|
948
|
+
key: "google_enabled",
|
|
949
|
+
label: "Enable Google login",
|
|
950
|
+
required: false,
|
|
951
|
+
default: true,
|
|
952
|
+
description: "Requires a Google OAuth client ID and secret from Google Cloud Console."
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
type: "text",
|
|
956
|
+
key: "google_client_id",
|
|
957
|
+
label: "Google client ID",
|
|
958
|
+
required: true,
|
|
959
|
+
description: "OAuth client ID from Google Cloud Console. GOOGLE_CLIENT_ID can also be set on the server.",
|
|
960
|
+
visible: "${data.google_enabled !== false}"
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
type: "password",
|
|
964
|
+
key: "google_client_secret",
|
|
965
|
+
label: "Google client secret",
|
|
966
|
+
required: true,
|
|
967
|
+
encrypted: true,
|
|
968
|
+
description: "Stored encrypted at rest. GOOGLE_CLIENT_SECRET can also be set on the server.",
|
|
969
|
+
visible: "${data.google_enabled !== false}"
|
|
970
|
+
}
|
|
971
|
+
]
|
|
972
|
+
};
|
|
973
|
+
var authSettingsManifest = manifest;
|
|
974
|
+
|
|
975
|
+
// src/manifests/mail.manifest.ts
|
|
976
|
+
var manifest2 = {
|
|
898
977
|
namespace: "mail",
|
|
899
978
|
version: 1,
|
|
900
979
|
label: "Mail Delivery",
|
|
@@ -995,7 +1074,7 @@ var manifest = {
|
|
|
995
1074
|
}
|
|
996
1075
|
]
|
|
997
1076
|
};
|
|
998
|
-
var mailSettingsManifest =
|
|
1077
|
+
var mailSettingsManifest = manifest2;
|
|
999
1078
|
var mailTestActionHandler = async ({ values }) => {
|
|
1000
1079
|
const provider = String(values.provider ?? "smtp");
|
|
1001
1080
|
const fromEmail = values.from_email;
|
|
@@ -1088,7 +1167,7 @@ var featureFlagsSettingsManifest = {
|
|
|
1088
1167
|
id: "beta_notice",
|
|
1089
1168
|
label: "Heads up",
|
|
1090
1169
|
required: false,
|
|
1091
|
-
bannerText: "Beta features may change without notice. Pin via env vars (e.g. `
|
|
1170
|
+
bannerText: "Beta features may change without notice. Pin via env vars (e.g. `OS_FEATURE_FLAGS_AI_ENABLED=true`) to lock for the whole deployment.",
|
|
1092
1171
|
bannerSeverity: "warning"
|
|
1093
1172
|
},
|
|
1094
1173
|
{ type: "group", id: "productivity", label: "Productivity", required: false },
|
|
@@ -1108,7 +1187,7 @@ var featureFlagsSettingsManifest = {
|
|
|
1108
1187
|
};
|
|
1109
1188
|
|
|
1110
1189
|
// src/manifests/storage.manifest.ts
|
|
1111
|
-
var
|
|
1190
|
+
var manifest3 = {
|
|
1112
1191
|
namespace: "storage",
|
|
1113
1192
|
version: 1,
|
|
1114
1193
|
label: "File Storage",
|
|
@@ -1248,7 +1327,7 @@ var manifest2 = {
|
|
|
1248
1327
|
}
|
|
1249
1328
|
]
|
|
1250
1329
|
};
|
|
1251
|
-
var storageSettingsManifest =
|
|
1330
|
+
var storageSettingsManifest = manifest3;
|
|
1252
1331
|
var storageTestActionHandler = async ({ values }) => {
|
|
1253
1332
|
const adapter = String(values.adapter ?? "local");
|
|
1254
1333
|
if (adapter === "local") {
|
|
@@ -1281,7 +1360,7 @@ var storageTestActionHandler = async ({ values }) => {
|
|
|
1281
1360
|
};
|
|
1282
1361
|
|
|
1283
1362
|
// src/manifests/ai.manifest.ts
|
|
1284
|
-
var
|
|
1363
|
+
var manifest4 = {
|
|
1285
1364
|
namespace: "ai",
|
|
1286
1365
|
version: 1,
|
|
1287
1366
|
label: "AI",
|
|
@@ -1782,7 +1861,7 @@ var manifest3 = {
|
|
|
1782
1861
|
}
|
|
1783
1862
|
]
|
|
1784
1863
|
};
|
|
1785
|
-
var aiSettingsManifest =
|
|
1864
|
+
var aiSettingsManifest = manifest4;
|
|
1786
1865
|
var aiTestActionHandler = async ({ values, payload }) => {
|
|
1787
1866
|
const overrides = extractOverrides(payload);
|
|
1788
1867
|
const merged = { ...values, ...overrides };
|
|
@@ -1841,7 +1920,7 @@ function extractOverrides(payload) {
|
|
|
1841
1920
|
}
|
|
1842
1921
|
|
|
1843
1922
|
// src/manifests/knowledge.manifest.ts
|
|
1844
|
-
var
|
|
1923
|
+
var manifest5 = {
|
|
1845
1924
|
namespace: "knowledge",
|
|
1846
1925
|
version: 1,
|
|
1847
1926
|
label: "Knowledge",
|
|
@@ -1995,11 +2074,12 @@ var manifest4 = {
|
|
|
1995
2074
|
}
|
|
1996
2075
|
]
|
|
1997
2076
|
};
|
|
1998
|
-
var knowledgeSettingsManifest =
|
|
2077
|
+
var knowledgeSettingsManifest = manifest5;
|
|
1999
2078
|
|
|
2000
2079
|
// src/manifests/index.ts
|
|
2001
2080
|
var builtinSettingsManifests = [
|
|
2002
2081
|
brandingSettingsManifest,
|
|
2082
|
+
authSettingsManifest,
|
|
2003
2083
|
mailSettingsManifest,
|
|
2004
2084
|
storageSettingsManifest,
|
|
2005
2085
|
aiSettingsManifest,
|
|
@@ -2069,6 +2149,37 @@ var en = {
|
|
|
2069
2149
|
logo_url: { label: "Logo URL", help: "Example: https://\u2026/logo.svg" }
|
|
2070
2150
|
}
|
|
2071
2151
|
},
|
|
2152
|
+
auth: {
|
|
2153
|
+
title: "Authentication",
|
|
2154
|
+
description: "Sign-in, registration, and built-in auth feature controls.",
|
|
2155
|
+
groups: {
|
|
2156
|
+
email_password: {
|
|
2157
|
+
title: "Email and password",
|
|
2158
|
+
description: "Control local email/password sign-in and self-service registration."
|
|
2159
|
+
},
|
|
2160
|
+
social: {
|
|
2161
|
+
title: "Social sign-in",
|
|
2162
|
+
description: "Configure the built-in Google sign-in provider. Deployment env vars still win."
|
|
2163
|
+
}
|
|
2164
|
+
},
|
|
2165
|
+
keys: {
|
|
2166
|
+
email_password_enabled: { label: "Enable email/password login" },
|
|
2167
|
+
signup_enabled: { label: "Allow self-service registration" },
|
|
2168
|
+
require_email_verification: { label: "Require email verification" },
|
|
2169
|
+
google_enabled: {
|
|
2170
|
+
label: "Enable Google login",
|
|
2171
|
+
help: "Requires a Google OAuth client ID and secret from Google Cloud Console."
|
|
2172
|
+
},
|
|
2173
|
+
google_client_id: {
|
|
2174
|
+
label: "Google client ID",
|
|
2175
|
+
help: "OAuth client ID from Google Cloud Console. GOOGLE_CLIENT_ID can also be set on the server."
|
|
2176
|
+
},
|
|
2177
|
+
google_client_secret: {
|
|
2178
|
+
label: "Google client secret",
|
|
2179
|
+
help: "Stored encrypted at rest. GOOGLE_CLIENT_SECRET can also be set on the server."
|
|
2180
|
+
}
|
|
2181
|
+
}
|
|
2182
|
+
},
|
|
2072
2183
|
feature_flags: {
|
|
2073
2184
|
title: "Feature Flags",
|
|
2074
2185
|
description: "Toggle experimental and beta features for this workspace.",
|
|
@@ -2385,6 +2496,37 @@ var zhCN = {
|
|
|
2385
2496
|
logo_url: { label: "Logo \u94FE\u63A5", help: "\u793A\u4F8B:https://\u2026/logo.svg" }
|
|
2386
2497
|
}
|
|
2387
2498
|
},
|
|
2499
|
+
auth: {
|
|
2500
|
+
title: "\u8BA4\u8BC1",
|
|
2501
|
+
description: "\u767B\u5F55\u3001\u6CE8\u518C\u4EE5\u53CA\u5185\u7F6E\u8BA4\u8BC1\u529F\u80FD\u7684\u63A7\u5236\u9879\u3002",
|
|
2502
|
+
groups: {
|
|
2503
|
+
email_password: {
|
|
2504
|
+
title: "\u90AE\u7BB1\u4E0E\u5BC6\u7801",
|
|
2505
|
+
description: "\u63A7\u5236\u672C\u5730\u90AE\u7BB1/\u5BC6\u7801\u767B\u5F55\u4E0E\u81EA\u52A9\u6CE8\u518C\u3002"
|
|
2506
|
+
},
|
|
2507
|
+
social: {
|
|
2508
|
+
title: "\u793E\u4EA4\u767B\u5F55",
|
|
2509
|
+
description: "\u914D\u7F6E\u5185\u7F6E\u7684 Google \u767B\u5F55\u63D0\u4F9B\u5546\u3002\u90E8\u7F72\u73AF\u5883\u53D8\u91CF\u4ECD\u4F18\u5148\u751F\u6548\u3002"
|
|
2510
|
+
}
|
|
2511
|
+
},
|
|
2512
|
+
keys: {
|
|
2513
|
+
email_password_enabled: { label: "\u542F\u7528\u90AE\u7BB1/\u5BC6\u7801\u767B\u5F55" },
|
|
2514
|
+
signup_enabled: { label: "\u5141\u8BB8\u81EA\u52A9\u6CE8\u518C" },
|
|
2515
|
+
require_email_verification: { label: "\u8981\u6C42\u90AE\u7BB1\u9A8C\u8BC1" },
|
|
2516
|
+
google_enabled: {
|
|
2517
|
+
label: "\u542F\u7528 Google \u767B\u5F55",
|
|
2518
|
+
help: "\u9700\u8981\u5728 Google Cloud Console \u4E2D\u521B\u5EFA\u7684 Google OAuth \u5BA2\u6237\u7AEF ID \u4E0E\u5BC6\u94A5\u3002"
|
|
2519
|
+
},
|
|
2520
|
+
google_client_id: {
|
|
2521
|
+
label: "Google \u5BA2\u6237\u7AEF ID",
|
|
2522
|
+
help: "\u6765\u81EA Google Cloud Console \u7684 OAuth \u5BA2\u6237\u7AEF ID\u3002\u4E5F\u53EF\u5728\u670D\u52A1\u5668\u4E0A\u8BBE\u7F6E GOOGLE_CLIENT_ID\u3002"
|
|
2523
|
+
},
|
|
2524
|
+
google_client_secret: {
|
|
2525
|
+
label: "Google \u5BA2\u6237\u7AEF\u5BC6\u94A5",
|
|
2526
|
+
help: "\u52A0\u5BC6\u5B58\u50A8\u3002\u4E5F\u53EF\u5728\u670D\u52A1\u5668\u4E0A\u8BBE\u7F6E GOOGLE_CLIENT_SECRET\u3002"
|
|
2527
|
+
}
|
|
2528
|
+
}
|
|
2529
|
+
},
|
|
2388
2530
|
feature_flags: {
|
|
2389
2531
|
title: "\u529F\u80FD\u5F00\u5173",
|
|
2390
2532
|
description: "\u4E3A\u5F53\u524D\u5DE5\u4F5C\u533A\u5F00\u542F\u5B9E\u9A8C\u6027\u4E0E\u6D4B\u8BD5\u529F\u80FD\u3002",
|
|
@@ -2608,6 +2750,37 @@ var jaJP = {
|
|
|
2608
2750
|
logo_url: { label: "\u30ED\u30B4 URL", help: "\u4F8B: https://\u2026/logo.svg" }
|
|
2609
2751
|
}
|
|
2610
2752
|
},
|
|
2753
|
+
auth: {
|
|
2754
|
+
title: "\u8A8D\u8A3C",
|
|
2755
|
+
description: "\u30B5\u30A4\u30F3\u30A4\u30F3\u3001\u767B\u9332\u3001\u7D44\u307F\u8FBC\u307F\u8A8D\u8A3C\u6A5F\u80FD\u306E\u5236\u5FA1\u3002",
|
|
2756
|
+
groups: {
|
|
2757
|
+
email_password: {
|
|
2758
|
+
title: "\u30E1\u30FC\u30EB\u3068\u30D1\u30B9\u30EF\u30FC\u30C9",
|
|
2759
|
+
description: "\u30ED\u30FC\u30AB\u30EB\u306E\u30E1\u30FC\u30EB/\u30D1\u30B9\u30EF\u30FC\u30C9\u30B5\u30A4\u30F3\u30A4\u30F3\u3068\u30BB\u30EB\u30D5\u30B5\u30FC\u30D3\u30B9\u767B\u9332\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002"
|
|
2760
|
+
},
|
|
2761
|
+
social: {
|
|
2762
|
+
title: "\u30BD\u30FC\u30B7\u30E3\u30EB\u30B5\u30A4\u30F3\u30A4\u30F3",
|
|
2763
|
+
description: "\u7D44\u307F\u8FBC\u307F\u306E Google \u30B5\u30A4\u30F3\u30A4\u30F3\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\u30C7\u30D7\u30ED\u30A4\u306E\u74B0\u5883\u5909\u6570\u304C\u512A\u5148\u3055\u308C\u307E\u3059\u3002"
|
|
2764
|
+
}
|
|
2765
|
+
},
|
|
2766
|
+
keys: {
|
|
2767
|
+
email_password_enabled: { label: "\u30E1\u30FC\u30EB/\u30D1\u30B9\u30EF\u30FC\u30C9\u30ED\u30B0\u30A4\u30F3\u3092\u6709\u52B9\u5316" },
|
|
2768
|
+
signup_enabled: { label: "\u30BB\u30EB\u30D5\u30B5\u30FC\u30D3\u30B9\u767B\u9332\u3092\u8A31\u53EF" },
|
|
2769
|
+
require_email_verification: { label: "\u30E1\u30FC\u30EB\u78BA\u8A8D\u3092\u5FC5\u9808\u306B\u3059\u308B" },
|
|
2770
|
+
google_enabled: {
|
|
2771
|
+
label: "Google \u30ED\u30B0\u30A4\u30F3\u3092\u6709\u52B9\u5316",
|
|
2772
|
+
help: "Google Cloud Console \u306E Google OAuth \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 ID \u3068\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u304C\u5FC5\u8981\u3067\u3059\u3002"
|
|
2773
|
+
},
|
|
2774
|
+
google_client_id: {
|
|
2775
|
+
label: "Google \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 ID",
|
|
2776
|
+
help: "Google Cloud Console \u306E OAuth \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 ID\u3002\u30B5\u30FC\u30D0\u30FC\u5074\u3067 GOOGLE_CLIENT_ID \u3092\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002"
|
|
2777
|
+
},
|
|
2778
|
+
google_client_secret: {
|
|
2779
|
+
label: "Google \u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8",
|
|
2780
|
+
help: "\u4FDD\u5B58\u6642\u306B\u6697\u53F7\u5316\u3055\u308C\u307E\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u5074\u3067 GOOGLE_CLIENT_SECRET \u3092\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002"
|
|
2781
|
+
}
|
|
2782
|
+
}
|
|
2783
|
+
},
|
|
2611
2784
|
feature_flags: {
|
|
2612
2785
|
title: "\u6A5F\u80FD\u30D5\u30E9\u30B0",
|
|
2613
2786
|
description: "\u3053\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3067\u5B9F\u9A13\u7684\u30FB\u30D9\u30FC\u30BF\u6A5F\u80FD\u3092\u5207\u66FF\u3048\u307E\u3059\u3002",
|
|
@@ -2668,6 +2841,196 @@ var jaJP = {
|
|
|
2668
2841
|
actions: {
|
|
2669
2842
|
test: { label: "\u63A5\u7D9A\u30C6\u30B9\u30C8" }
|
|
2670
2843
|
}
|
|
2844
|
+
},
|
|
2845
|
+
ai: {
|
|
2846
|
+
title: "AI \u3068 Embedder",
|
|
2847
|
+
description: "\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306E AI \u304A\u3088\u3073\u30CA\u30EC\u30C3\u30B8\u30B5\u30FC\u30D3\u30B9\u304C\u4F7F\u7528\u3059\u308B LLM \u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3001\u30E2\u30C7\u30EB\u3001\u8A8D\u8A3C\u60C5\u5831\u3001Embedder \u8A2D\u5B9A\u3002",
|
|
2848
|
+
groups: {
|
|
2849
|
+
provider: {
|
|
2850
|
+
title: "\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC",
|
|
2851
|
+
description: "LLM \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u3092\u9078\u629E\u3057\u307E\u3059\u3002Memory \u30E2\u30FC\u30C9\u306F\u5165\u529B\u3092\u305D\u306E\u307E\u307E\u8FD4\u3057\u307E\u3059\u3002\u30C6\u30B9\u30C8\u7528\u3067\u3042\u308A\u3001\u672C\u756A\u3067\u306F\u4F7F\u7528\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002"
|
|
2852
|
+
},
|
|
2853
|
+
gateway: {
|
|
2854
|
+
title: "Vercel AI Gateway",
|
|
2855
|
+
description: "\u30DE\u30EB\u30C1\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u30EB\u30FC\u30BF\u30FC\u3002\u30E2\u30C7\u30EB\u6307\u5B9A\u306F `provider/model` \u5F62\u5F0F\u306B\u5F93\u3044\u307E\u3059\uFF08\u4F8B: `openai/gpt-4o`\uFF09\u3002"
|
|
2856
|
+
},
|
|
2857
|
+
openai: { title: "OpenAI" },
|
|
2858
|
+
anthropic: { title: "Anthropic" },
|
|
2859
|
+
google: { title: "Google" },
|
|
2860
|
+
defaults: {
|
|
2861
|
+
title: "\u751F\u6210\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u5024",
|
|
2862
|
+
description: "\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u307E\u305F\u306F\u30C1\u30E3\u30C3\u30C8\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u72EC\u81EA\u306E\u5024\u3092\u6307\u5B9A\u3057\u306A\u3044\u5834\u5408\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002"
|
|
2863
|
+
},
|
|
2864
|
+
observability: { title: "\u53EF\u89B3\u6E2C\u6027" },
|
|
2865
|
+
embedder: {
|
|
2866
|
+
title: "Embedder",
|
|
2867
|
+
description: "\u30CA\u30EC\u30C3\u30B8\u30BD\u30FC\u30B9\u3068 RAG \u304C\u4F7F\u7528\u3059\u308B\u30C6\u30AD\u30B9\u30C8 \u2192 \u30D9\u30AF\u30C8\u30EB\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3002\u4E0A\u8A18\u306E\u30C1\u30E3\u30C3\u30C8\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3068\u306F\u72EC\u7ACB\u3057\u3066\u3044\u307E\u3059\u3002"
|
|
2868
|
+
}
|
|
2869
|
+
},
|
|
2870
|
+
keys: {
|
|
2871
|
+
provider: {
|
|
2872
|
+
label: "\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC",
|
|
2873
|
+
options: {
|
|
2874
|
+
memory: "Memory\uFF08\u30A8\u30B3\u30FC \u2014 \u30C6\u30B9\u30C8\u5C02\u7528\uFF09",
|
|
2875
|
+
gateway: "Vercel AI Gateway",
|
|
2876
|
+
openai: "OpenAI",
|
|
2877
|
+
anthropic: "Anthropic",
|
|
2878
|
+
google: "Google Generative AI"
|
|
2879
|
+
}
|
|
2880
|
+
},
|
|
2881
|
+
gateway_model: {
|
|
2882
|
+
label: "Gateway \u30E2\u30C7\u30EB",
|
|
2883
|
+
help: "AI_GATEWAY_MODEL \u3068\u3057\u3066\u8EE2\u9001\u3055\u308C\u307E\u3059\u3002\u4F8B: openai/gpt-4o"
|
|
2884
|
+
},
|
|
2885
|
+
gateway_api_key: {
|
|
2886
|
+
label: "Gateway API \u30AD\u30FC",
|
|
2887
|
+
help: "\u4EFB\u610F \u2014 Gateway \u304C\u8A8D\u8A3C\u3092\u8981\u6C42\u3059\u308B\u5834\u5408\u306E\u307F\u5FC5\u8981\u3067\u3059\u3002"
|
|
2888
|
+
},
|
|
2889
|
+
openai_api_key: {
|
|
2890
|
+
label: "OpenAI API \u30AD\u30FC",
|
|
2891
|
+
help: "OPENAI_API_KEY \u3068\u3057\u3066\u8EE2\u9001\u3055\u308C\u307E\u3059\u3002\u4FDD\u5B58\u6642\u306B\u6697\u53F7\u5316\u3055\u308C\u307E\u3059\u3002"
|
|
2892
|
+
},
|
|
2893
|
+
openai_model: {
|
|
2894
|
+
label: "\u30E2\u30C7\u30EB",
|
|
2895
|
+
help: "\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30E2\u30C7\u30EB ID\u3002\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u5358\u4F4D\u306E\u4E0A\u66F8\u304D\u304C\u512A\u5148\u3055\u308C\u307E\u3059\u3002"
|
|
2896
|
+
},
|
|
2897
|
+
openai_base_url: {
|
|
2898
|
+
label: "Base URL",
|
|
2899
|
+
help: "Azure OpenAI \u3084\u81EA\u5DF1\u30DB\u30B9\u30C8\u578B\u30B2\u30FC\u30C8\u30A6\u30A7\u30A4\u7528\u306E\u4E0A\u66F8\u304D\u3002api.openai.com \u306E\u5834\u5408\u306F\u7A7A\u6B04\u306B\u3057\u307E\u3059\u3002"
|
|
2900
|
+
},
|
|
2901
|
+
anthropic_api_key: {
|
|
2902
|
+
label: "Anthropic API \u30AD\u30FC",
|
|
2903
|
+
help: "ANTHROPIC_API_KEY \u3068\u3057\u3066\u8EE2\u9001\u3055\u308C\u307E\u3059\u3002\u4FDD\u5B58\u6642\u306B\u6697\u53F7\u5316\u3055\u308C\u307E\u3059\u3002"
|
|
2904
|
+
},
|
|
2905
|
+
anthropic_model: { label: "\u30E2\u30C7\u30EB" },
|
|
2906
|
+
google_api_key: {
|
|
2907
|
+
label: "Google API \u30AD\u30FC",
|
|
2908
|
+
help: "GOOGLE_GENERATIVE_AI_API_KEY \u3068\u3057\u3066\u8EE2\u9001\u3055\u308C\u307E\u3059\u3002\u4FDD\u5B58\u6642\u306B\u6697\u53F7\u5316\u3055\u308C\u307E\u3059\u3002"
|
|
2909
|
+
},
|
|
2910
|
+
google_model: { label: "\u30E2\u30C7\u30EB" },
|
|
2911
|
+
temperature: {
|
|
2912
|
+
label: "Temperature",
|
|
2913
|
+
help: "0 = \u6C7A\u5B9A\u7684\u30012 = \u975E\u5E38\u306B\u5275\u9020\u7684\u3002"
|
|
2914
|
+
},
|
|
2915
|
+
max_tokens: {
|
|
2916
|
+
label: "\u6700\u5927\u51FA\u529B\u30C8\u30FC\u30AF\u30F3\u6570",
|
|
2917
|
+
help: "\u30EC\u30B9\u30DD\u30F3\u30B9\u3054\u3068\u306B\u751F\u6210\u3055\u308C\u308B\u30C8\u30FC\u30AF\u30F3\u306E\u4E0A\u9650\u3002"
|
|
2918
|
+
},
|
|
2919
|
+
request_timeout_ms: { label: "\u30EA\u30AF\u30A8\u30B9\u30C8\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 (ms)" },
|
|
2920
|
+
trace_enabled: {
|
|
2921
|
+
label: "\u30C8\u30EC\u30FC\u30B9\u3092\u8A18\u9332",
|
|
2922
|
+
help: "\u30C7\u30D0\u30C3\u30B0\u3068\u518D\u751F\u306E\u305F\u3081 prompt/response \u30C8\u30EC\u30FC\u30B9\u3092 sys_ai_trace \u306B\u4FDD\u5B58\u3057\u307E\u3059\u3002"
|
|
2923
|
+
},
|
|
2924
|
+
log_prompts: {
|
|
2925
|
+
label: "\u5B8C\u5168\u306A\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8A18\u9332",
|
|
2926
|
+
help: "\u30E1\u30BF\u30C7\u30FC\u30BF\u3060\u3051\u3067\u306A\u304F\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u3055\u308C\u305F\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u30C8\u30EC\u30FC\u30B9\u884C\u306B\u542B\u3081\u307E\u3059\u3002\u26A0 PII \u304C\u6F0F\u3048\u3044\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u898F\u5236\u74B0\u5883\u3067\u306F\u7121\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"
|
|
2927
|
+
},
|
|
2928
|
+
embedder_provider: {
|
|
2929
|
+
label: "\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC",
|
|
2930
|
+
options: {
|
|
2931
|
+
none: "\u7121\u52B9\uFF08\u57CB\u3081\u8FBC\u307F\u306A\u3057\uFF09",
|
|
2932
|
+
openai: "OpenAI",
|
|
2933
|
+
azure: "Azure OpenAI",
|
|
2934
|
+
dashscope: "\u963F\u91CC\u901A\u4E49 DashScope",
|
|
2935
|
+
zhipu: "\u667A\u8C31 BigModel",
|
|
2936
|
+
siliconflow: "\u7845\u57FA\u6D41\u52A8 SiliconFlow",
|
|
2937
|
+
doubao: "\u706B\u5C71\u5F15\u64CE Doubao",
|
|
2938
|
+
minimax: "MiniMax",
|
|
2939
|
+
ollama: "Ollama\uFF08\u30ED\u30FC\u30AB\u30EB\uFF09",
|
|
2940
|
+
custom: "\u30AB\u30B9\u30BF\u30E0\uFF08OpenAI \u4E92\u63DB\uFF09"
|
|
2941
|
+
}
|
|
2942
|
+
},
|
|
2943
|
+
embedder_api_key: {
|
|
2944
|
+
label: "Embedder API \u30AD\u30FC",
|
|
2945
|
+
help: "Authorization \u30D8\u30C3\u30C0\u30FC\u3068\u3057\u3066\u9001\u4FE1\u3055\u308C\u308B Bearer \u30C8\u30FC\u30AF\u30F3\u3002Ollama \u3067\u306F\u7A7A\u3067\u306A\u3044\u4EFB\u610F\u306E\u5024\u3067\u52D5\u4F5C\u3057\u307E\u3059\u3002"
|
|
2946
|
+
},
|
|
2947
|
+
embedder_model: {
|
|
2948
|
+
label: "\u30E2\u30C7\u30EB",
|
|
2949
|
+
help: "\u4F8B \u2014 OpenAI: text-embedding-3-small \xB7 \u963F\u91CC\u901A\u4E49: text-embedding-v3 \xB7 \u667A\u8C31: embedding-3 \xB7 \u7845\u57FA\u6D41\u52A8: BAAI/bge-m3 \xB7 Ollama: bge-m3"
|
|
2950
|
+
},
|
|
2951
|
+
embedder_base_url: {
|
|
2952
|
+
label: "Base URL",
|
|
2953
|
+
help: "\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306E\u30EB\u30FC\u30C8\uFF08/embeddings \u3092\u542B\u307E\u306A\u3044\uFF09\u3002\u30D7\u30EA\u30BB\u30C3\u30C8\u304B\u3089\u81EA\u52D5\u5165\u529B\u3055\u308C\u307E\u3059\u3002\u30D7\u30ED\u30AD\u30B7\u3084\u81EA\u5DF1\u30DB\u30B9\u30C8\u578B\u30B2\u30FC\u30C8\u30A6\u30A7\u30A4\u7528\u306B\u4E0A\u66F8\u304D\u3067\u304D\u307E\u3059\u3002"
|
|
2954
|
+
},
|
|
2955
|
+
embedder_dimensions: {
|
|
2956
|
+
label: "\u6B21\u5143\u6570",
|
|
2957
|
+
help: "\u51FA\u529B\u6B21\u5143\u6570\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\uFF08Matryoshka \u30E2\u30C7\u30EB\u306E\u307F\uFF09\u3002\u7A7A\u6B04\u306E\u5834\u5408\u306F\u30E2\u30C7\u30EB\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002"
|
|
2958
|
+
},
|
|
2959
|
+
embedder_batch_size: {
|
|
2960
|
+
label: "\u30D0\u30C3\u30C1\u30B5\u30A4\u30BA",
|
|
2961
|
+
help: "embed() \u547C\u3073\u51FA\u3057\u3054\u3068\u306E\u30C1\u30E3\u30F3\u30AF\u6570\u3002\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u306E\u30EC\u30FC\u30C8/\u30B5\u30A4\u30BA\u5236\u9650\u306B\u9054\u3059\u308B\u5834\u5408\u306F\u6E1B\u3089\u3057\u307E\u3059\u3002"
|
|
2962
|
+
}
|
|
2963
|
+
},
|
|
2964
|
+
actions: {
|
|
2965
|
+
test: { label: "\u63A5\u7D9A\u30C6\u30B9\u30C8" },
|
|
2966
|
+
test_embedder: { label: "Embedder \u3092\u30C6\u30B9\u30C8" }
|
|
2967
|
+
}
|
|
2968
|
+
},
|
|
2969
|
+
knowledge: {
|
|
2970
|
+
title: "\u30CA\u30EC\u30C3\u30B8",
|
|
2971
|
+
description: "RAG / \u30CA\u30EC\u30C3\u30B8\u30BD\u30FC\u30B9\u7528\u306E\u30D9\u30AF\u30C8\u30EB\u30B9\u30C8\u30A2\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u3002\u26A0 \u30A2\u30C0\u30D7\u30BF\u30FC\u3092\u5207\u66FF\u3048\u3066\u3082\u65E2\u5B58\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306F\u79FB\u884C\u3055\u308C\u307E\u305B\u3093\u3002",
|
|
2972
|
+
groups: {
|
|
2973
|
+
adapter: {
|
|
2974
|
+
title: "\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9",
|
|
2975
|
+
description: "\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30C1\u30E3\u30F3\u30AF\u3068\u305D\u306E\u30D9\u30AF\u30C8\u30EB\u306E\u4FDD\u5B58\u5148\u3092\u9078\u629E\u3057\u307E\u3059\u3002"
|
|
2976
|
+
},
|
|
2977
|
+
turso: {
|
|
2978
|
+
title: "Turso / libSQL",
|
|
2979
|
+
description: "\u30DE\u30CD\u30FC\u30B8\u30C9 Turso\u3001\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u3001\u30A4\u30F3\u30E1\u30E2\u30EA\u306E\u3044\u305A\u308C\u3067\u3082\u52D5\u4F5C\u3057\u307E\u3059\u3002"
|
|
2980
|
+
},
|
|
2981
|
+
ragflow: {
|
|
2982
|
+
title: "RAGFlow",
|
|
2983
|
+
description: "\u5916\u90E8 RAGFlow \u30C7\u30D7\u30ED\u30A4\u3002\u30BB\u30EB\u30D5\u30DB\u30B9\u30C8\u306E\u624B\u9806\u306F https://ragflow.io \u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002"
|
|
2984
|
+
},
|
|
2985
|
+
indexing: {
|
|
2986
|
+
title: "\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u5024",
|
|
2987
|
+
description: "KnowledgeSource.adapterConfig \u306E\u30BD\u30FC\u30B9\u5358\u4F4D\u306E\u5024\u304C\u512A\u5148\u3055\u308C\u307E\u3059\u3002"
|
|
2988
|
+
},
|
|
2989
|
+
permissions: { title: "\u6A29\u9650" }
|
|
2990
|
+
},
|
|
2991
|
+
keys: {
|
|
2992
|
+
adapter: {
|
|
2993
|
+
label: "\u30A2\u30C0\u30D7\u30BF\u30FC",
|
|
2994
|
+
options: {
|
|
2995
|
+
memory: "\u30A4\u30F3\u30E1\u30E2\u30EA\uFF08\u958B\u767A/\u30C6\u30B9\u30C8\u5C02\u7528\uFF09",
|
|
2996
|
+
turso: "Turso / libSQL\uFF08\u30AF\u30E9\u30A6\u30C9\u307E\u305F\u306F\u30ED\u30FC\u30AB\u30EB\uFF09",
|
|
2997
|
+
ragflow: "RAGFlow\uFF08\u5916\u90E8\uFF09"
|
|
2998
|
+
}
|
|
2999
|
+
},
|
|
3000
|
+
turso_url: {
|
|
3001
|
+
label: "\u63A5\u7D9A URL",
|
|
3002
|
+
help: "\u4F8B: libsql://your-tenant.turso.io \xB7 file:./.objectstack/knowledge.db \xB7 :memory:"
|
|
3003
|
+
},
|
|
3004
|
+
turso_auth_token: {
|
|
3005
|
+
label: "\u8A8D\u8A3C\u30C8\u30FC\u30AF\u30F3",
|
|
3006
|
+
help: "\u30DE\u30CD\u30FC\u30B8\u30C9 Turso URL \u306E\u5834\u5408\u306E\u307F\u5FC5\u8981\u3067\u3059\u3002"
|
|
3007
|
+
},
|
|
3008
|
+
ragflow_base_url: { label: "Base URL", help: "\u4F8B: http://localhost:9380" },
|
|
3009
|
+
ragflow_api_key: { label: "API \u30AD\u30FC" },
|
|
3010
|
+
ragflow_default_dataset: {
|
|
3011
|
+
label: "\u30C7\u30D5\u30A9\u30EB\u30C8\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 ID",
|
|
3012
|
+
help: "KnowledgeSource \u304C\u72EC\u81EA\u306E RAGFlow \u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u6307\u5B9A\u3057\u306A\u3044\u5834\u5408\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002"
|
|
3013
|
+
},
|
|
3014
|
+
chunk_target: {
|
|
3015
|
+
label: "\u76EE\u6A19\u30C1\u30E3\u30F3\u30AF\u30B5\u30A4\u30BA\uFF08\u6587\u5B57\u6570\uFF09",
|
|
3016
|
+
help: "\u30C8\u30FC\u30AF\u30F3\u5358\u4F4D\u306E\u5206\u5272\u304C\u884C\u308F\u308C\u308B\u524D\u306E\u30C1\u30E3\u30F3\u30AF\u30B5\u30A4\u30BA\u306E\u30BD\u30D5\u30C8\u4E0A\u9650\u3002"
|
|
3017
|
+
},
|
|
3018
|
+
chunk_overlap: {
|
|
3019
|
+
label: "\u30C1\u30E3\u30F3\u30AF\u306E\u91CD\u306A\u308A\uFF08\u6587\u5B57\u6570\uFF09",
|
|
3020
|
+
help: "\u5883\u754C\u3092\u8D8A\u3048\u3066\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u7DAD\u6301\u3059\u308B\u305F\u3081\u3001\u524D\u306E\u30C1\u30E3\u30F3\u30AF\u304B\u3089\u4FDD\u6301\u3059\u308B\u6587\u5B57\u6570\u3002"
|
|
3021
|
+
},
|
|
3022
|
+
over_fetch: {
|
|
3023
|
+
label: "\u30AA\u30FC\u30D0\u30FC\u30D5\u30A7\u30C3\u30C1\u500D\u7387",
|
|
3024
|
+
help: "JS \u5074\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u3067\u3082\u884C\u304C\u6B8B\u308B\u3088\u3046\u3001\u5185\u90E8\u3067 topK \xD7 overFetch \u4EF6\u306E\u5019\u88DC\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002"
|
|
3025
|
+
},
|
|
3026
|
+
enforce_rls: {
|
|
3027
|
+
label: "\u691C\u7D22\u6642\u306B RLS \u3092\u5F37\u5236",
|
|
3028
|
+
help: "\u5404\u30D2\u30C3\u30C8\u3092\u547C\u3073\u51FA\u3057\u5143\u306E\u30EC\u30B3\u30FC\u30C9\u30EC\u30D9\u30EB\u6A29\u9650\u306B\u5BFE\u3057\u3066\u518D\u78BA\u8A8D\u3057\u307E\u3059\u3002\u26A0 \u7121\u52B9\u5316\u3059\u308B\u3068\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u56FA\u6709\u306E\u30BB\u30FC\u30D5\u30AC\u30FC\u30C9\u304C\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u307E\u3059\u3002"
|
|
3029
|
+
}
|
|
3030
|
+
},
|
|
3031
|
+
actions: {
|
|
3032
|
+
test: { label: "\u63A5\u7D9A\u30C6\u30B9\u30C8" }
|
|
3033
|
+
}
|
|
2671
3034
|
}
|
|
2672
3035
|
}
|
|
2673
3036
|
};
|
|
@@ -2734,6 +3097,37 @@ var esES = {
|
|
|
2734
3097
|
logo_url: { label: "URL del logotipo", help: "Ejemplo: https://\u2026/logo.svg" }
|
|
2735
3098
|
}
|
|
2736
3099
|
},
|
|
3100
|
+
auth: {
|
|
3101
|
+
title: "Autenticaci\xF3n",
|
|
3102
|
+
description: "Inicio de sesi\xF3n, registro y controles de las funciones de autenticaci\xF3n integradas.",
|
|
3103
|
+
groups: {
|
|
3104
|
+
email_password: {
|
|
3105
|
+
title: "Correo y contrase\xF1a",
|
|
3106
|
+
description: "Controla el inicio de sesi\xF3n local con correo/contrase\xF1a y el registro de autoservicio."
|
|
3107
|
+
},
|
|
3108
|
+
social: {
|
|
3109
|
+
title: "Inicio de sesi\xF3n social",
|
|
3110
|
+
description: "Configura el proveedor de inicio de sesi\xF3n de Google integrado. Las variables de entorno del despliegue siguen teniendo prioridad."
|
|
3111
|
+
}
|
|
3112
|
+
},
|
|
3113
|
+
keys: {
|
|
3114
|
+
email_password_enabled: { label: "Habilitar inicio de sesi\xF3n con correo/contrase\xF1a" },
|
|
3115
|
+
signup_enabled: { label: "Permitir registro de autoservicio" },
|
|
3116
|
+
require_email_verification: { label: "Requerir verificaci\xF3n de correo" },
|
|
3117
|
+
google_enabled: {
|
|
3118
|
+
label: "Habilitar inicio de sesi\xF3n con Google",
|
|
3119
|
+
help: "Requiere un ID de cliente y un secreto de OAuth de Google desde Google Cloud Console."
|
|
3120
|
+
},
|
|
3121
|
+
google_client_id: {
|
|
3122
|
+
label: "ID de cliente de Google",
|
|
3123
|
+
help: "ID de cliente de OAuth desde Google Cloud Console. Tambi\xE9n se puede definir GOOGLE_CLIENT_ID en el servidor."
|
|
3124
|
+
},
|
|
3125
|
+
google_client_secret: {
|
|
3126
|
+
label: "Secreto de cliente de Google",
|
|
3127
|
+
help: "Se almacena cifrado en reposo. Tambi\xE9n se puede definir GOOGLE_CLIENT_SECRET en el servidor."
|
|
3128
|
+
}
|
|
3129
|
+
}
|
|
3130
|
+
},
|
|
2737
3131
|
feature_flags: {
|
|
2738
3132
|
title: "Indicadores de funci\xF3n",
|
|
2739
3133
|
description: "Activa funciones experimentales y en beta para este espacio de trabajo.",
|