@objectstack/service-settings 9.7.0 → 9.9.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/dist/index.js CHANGED
@@ -1213,6 +1213,61 @@ var manifest = {
1213
1213
  default: false,
1214
1214
  visible: "${data.email_password_enabled !== false}"
1215
1215
  },
1216
+ {
1217
+ type: "group",
1218
+ id: "password_policy",
1219
+ label: "Password policy",
1220
+ required: false,
1221
+ description: "Length bounds enforced by the auth provider on sign-up and password reset."
1222
+ },
1223
+ {
1224
+ type: "number",
1225
+ key: "password_min_length",
1226
+ label: "Minimum password length",
1227
+ required: false,
1228
+ default: 8,
1229
+ min: 6,
1230
+ max: 64,
1231
+ visible: "${data.email_password_enabled !== false}"
1232
+ },
1233
+ {
1234
+ type: "number",
1235
+ key: "password_max_length",
1236
+ label: "Maximum password length",
1237
+ required: false,
1238
+ default: 128,
1239
+ min: 16,
1240
+ max: 256,
1241
+ description: "Upper bound guards against denial-of-service via very long password hashing.",
1242
+ visible: "${data.email_password_enabled !== false}"
1243
+ },
1244
+ {
1245
+ type: "group",
1246
+ id: "sessions",
1247
+ label: "Sessions",
1248
+ required: false,
1249
+ description: "How long a signed-in session stays valid."
1250
+ },
1251
+ {
1252
+ type: "number",
1253
+ key: "session_expiry_days",
1254
+ label: "Session lifetime (days)",
1255
+ required: false,
1256
+ default: 7,
1257
+ min: 1,
1258
+ max: 365,
1259
+ description: "A session expires this many days after sign-in."
1260
+ },
1261
+ {
1262
+ type: "number",
1263
+ key: "session_refresh_days",
1264
+ label: "Refresh threshold (days)",
1265
+ required: false,
1266
+ default: 1,
1267
+ min: 1,
1268
+ max: 90,
1269
+ description: "An active session is extended when it is older than this."
1270
+ },
1216
1271
  {
1217
1272
  type: "group",
1218
1273
  id: "social",
@@ -2367,9 +2422,262 @@ var manifest5 = {
2367
2422
  };
2368
2423
  var knowledgeSettingsManifest = manifest5;
2369
2424
 
2425
+ // src/manifests/localization.manifest.ts
2426
+ var localizationSettingsManifest = {
2427
+ namespace: "localization",
2428
+ version: 1,
2429
+ label: "Localization",
2430
+ icon: "Globe",
2431
+ description: "Default timezone, language, currency, and date/number formats.",
2432
+ scope: "tenant",
2433
+ readPermission: "setup.access",
2434
+ writePermission: "setup.write",
2435
+ category: "Workspace",
2436
+ order: 2,
2437
+ specifiers: [
2438
+ // ── Region ────────────────────────────────────────────────────────────
2439
+ { type: "group", id: "region", label: "Region", required: false },
2440
+ {
2441
+ type: "select",
2442
+ key: "timezone",
2443
+ label: "Default timezone",
2444
+ required: false,
2445
+ default: "UTC",
2446
+ description: "IANA zone used to resolve today()/daysFromNow, analytics date buckets, and rendered datetimes.",
2447
+ options: [
2448
+ { value: "UTC", label: "UTC" },
2449
+ { value: "America/Los_Angeles", label: "(UTC\u221208/\u221207) Los Angeles" },
2450
+ { value: "America/Denver", label: "(UTC\u221207/\u221206) Denver" },
2451
+ { value: "America/Chicago", label: "(UTC\u221206/\u221205) Chicago" },
2452
+ { value: "America/New_York", label: "(UTC\u221205/\u221204) New York" },
2453
+ { value: "America/Sao_Paulo", label: "(UTC\u221203) S\xE3o Paulo" },
2454
+ { value: "Europe/London", label: "(UTC\xB100/+01) London" },
2455
+ { value: "Europe/Paris", label: "(UTC+01/+02) Paris" },
2456
+ { value: "Europe/Berlin", label: "(UTC+01/+02) Berlin" },
2457
+ { value: "Europe/Moscow", label: "(UTC+03) Moscow" },
2458
+ { value: "Asia/Dubai", label: "(UTC+04) Dubai" },
2459
+ { value: "Asia/Kolkata", label: "(UTC+05:30) Kolkata" },
2460
+ { value: "Asia/Singapore", label: "(UTC+08) Singapore" },
2461
+ { value: "Asia/Shanghai", label: "(UTC+08) Shanghai" },
2462
+ { value: "Asia/Tokyo", label: "(UTC+09) Tokyo" },
2463
+ { value: "Australia/Sydney", label: "(UTC+10/+11) Sydney" },
2464
+ { value: "Pacific/Auckland", label: "(UTC+12/+13) Auckland" }
2465
+ ]
2466
+ },
2467
+ {
2468
+ type: "select",
2469
+ key: "locale",
2470
+ label: "Default language",
2471
+ required: false,
2472
+ default: "en-US",
2473
+ description: "BCP-47 locale for message catalogs and number/date formatting.",
2474
+ options: [
2475
+ { value: "en-US", label: "English (US)" },
2476
+ { value: "zh-CN", label: "\u7B80\u4F53\u4E2D\u6587" },
2477
+ { value: "ja-JP", label: "\u65E5\u672C\u8A9E" },
2478
+ { value: "es-ES", label: "Espa\xF1ol (Espa\xF1a)" }
2479
+ ]
2480
+ },
2481
+ {
2482
+ type: "text",
2483
+ key: "default_country",
2484
+ label: "Default country",
2485
+ required: false,
2486
+ default: "US",
2487
+ description: "ISO 3166-1 alpha-2 code (e.g. US, GB, CN). Used for address and phone defaults.",
2488
+ pattern: "^[A-Za-z]{2}$",
2489
+ minLength: 2,
2490
+ maxLength: 2
2491
+ },
2492
+ // ── Formats ───────────────────────────────────────────────────────────
2493
+ { type: "group", id: "formats", label: "Formats", required: false },
2494
+ {
2495
+ type: "select",
2496
+ key: "date_format",
2497
+ label: "Date format",
2498
+ required: false,
2499
+ default: "YYYY-MM-DD",
2500
+ options: [
2501
+ { value: "YYYY-MM-DD", label: "2026-06-17 (ISO)" },
2502
+ { value: "MM/DD/YYYY", label: "06/17/2026 (US)" },
2503
+ { value: "DD/MM/YYYY", label: "17/06/2026 (EU)" },
2504
+ { value: "DD.MM.YYYY", label: "17.06.2026" },
2505
+ { value: "DD-MMM-YYYY", label: "17-Jun-2026" }
2506
+ ]
2507
+ },
2508
+ {
2509
+ type: "select",
2510
+ key: "time_format",
2511
+ label: "Time format",
2512
+ required: false,
2513
+ default: "24h",
2514
+ options: [
2515
+ { value: "24h", label: "24-hour (14:30)" },
2516
+ { value: "12h", label: "12-hour (2:30 PM)" }
2517
+ ]
2518
+ },
2519
+ {
2520
+ type: "select",
2521
+ key: "number_format",
2522
+ label: "Number format",
2523
+ required: false,
2524
+ default: "1,234.56",
2525
+ description: "Grouping and decimal separators for displayed numbers.",
2526
+ options: [
2527
+ { value: "1,234.56", label: "1,234.56 (comma / dot)" },
2528
+ { value: "1.234,56", label: "1.234,56 (dot / comma)" },
2529
+ { value: "1 234,56", label: "1 234,56 (space / comma)" },
2530
+ { value: "1,23,456.78", label: "1,23,456.78 (Indian)" }
2531
+ ]
2532
+ },
2533
+ {
2534
+ type: "select",
2535
+ key: "first_day_of_week",
2536
+ label: "First day of week",
2537
+ required: false,
2538
+ default: "monday",
2539
+ description: "Anchors weekly analytics buckets and calendar grids.",
2540
+ options: [
2541
+ { value: "monday", label: "Monday (ISO)" },
2542
+ { value: "sunday", label: "Sunday" },
2543
+ { value: "saturday", label: "Saturday" }
2544
+ ]
2545
+ },
2546
+ // ── Finance ───────────────────────────────────────────────────────────
2547
+ { type: "group", id: "finance", label: "Finance", required: false },
2548
+ {
2549
+ type: "select",
2550
+ key: "currency",
2551
+ label: "Default currency",
2552
+ required: false,
2553
+ default: "USD",
2554
+ description: "ISO 4217 code applied when a currency field omits its own.",
2555
+ options: [
2556
+ { value: "USD", label: "USD \u2014 US Dollar" },
2557
+ { value: "EUR", label: "EUR \u2014 Euro" },
2558
+ { value: "GBP", label: "GBP \u2014 British Pound" },
2559
+ { value: "JPY", label: "JPY \u2014 Japanese Yen" },
2560
+ { value: "CNY", label: "CNY \u2014 Chinese Yuan" },
2561
+ { value: "INR", label: "INR \u2014 Indian Rupee" },
2562
+ { value: "AUD", label: "AUD \u2014 Australian Dollar" },
2563
+ { value: "CAD", label: "CAD \u2014 Canadian Dollar" },
2564
+ { value: "BRL", label: "BRL \u2014 Brazilian Real" }
2565
+ ]
2566
+ },
2567
+ {
2568
+ type: "select",
2569
+ key: "fiscal_year_start",
2570
+ label: "Fiscal year start",
2571
+ required: false,
2572
+ default: "january",
2573
+ description: 'First month of the fiscal year \u2014 drives "this quarter / fiscal year" in reports.',
2574
+ options: [
2575
+ { value: "january", label: "January" },
2576
+ { value: "february", label: "February" },
2577
+ { value: "march", label: "March" },
2578
+ { value: "april", label: "April" },
2579
+ { value: "may", label: "May" },
2580
+ { value: "june", label: "June" },
2581
+ { value: "july", label: "July" },
2582
+ { value: "august", label: "August" },
2583
+ { value: "september", label: "September" },
2584
+ { value: "october", label: "October" },
2585
+ { value: "november", label: "November" },
2586
+ { value: "december", label: "December" }
2587
+ ]
2588
+ }
2589
+ ]
2590
+ };
2591
+
2592
+ // src/manifests/company.manifest.ts
2593
+ var companySettingsManifest = {
2594
+ namespace: "company",
2595
+ version: 1,
2596
+ label: "Company",
2597
+ icon: "Building2",
2598
+ description: "Legal entity identity \u2014 registered name, address, tax IDs, and primary contact.",
2599
+ scope: "tenant",
2600
+ readPermission: "setup.access",
2601
+ writePermission: "setup.write",
2602
+ category: "Workspace",
2603
+ order: 3,
2604
+ specifiers: [
2605
+ // ── Identity ──────────────────────────────────────────────────────────
2606
+ { type: "group", id: "identity", label: "Identity", required: false },
2607
+ {
2608
+ type: "text",
2609
+ key: "legal_name",
2610
+ label: "Legal name",
2611
+ required: false,
2612
+ description: "Registered legal name of the organization (may differ from the workspace name).",
2613
+ maxLength: 200
2614
+ },
2615
+ {
2616
+ type: "text",
2617
+ key: "registration_number",
2618
+ label: "Registration number",
2619
+ required: false,
2620
+ description: "Company registration / incorporation number (e.g. EIN, company no.).",
2621
+ maxLength: 80
2622
+ },
2623
+ {
2624
+ type: "text",
2625
+ key: "tax_id",
2626
+ label: "Tax / VAT ID",
2627
+ required: false,
2628
+ description: "Tax identifier shown on invoices (e.g. VAT, GST, ABN).",
2629
+ maxLength: 80
2630
+ },
2631
+ // ── Registered address ────────────────────────────────────────────────
2632
+ { type: "group", id: "address", label: "Registered address", required: false },
2633
+ { type: "text", key: "address_line1", label: "Address line 1", required: false, maxLength: 200 },
2634
+ { type: "text", key: "address_line2", label: "Address line 2", required: false, maxLength: 200 },
2635
+ { type: "text", key: "city", label: "City", required: false, maxLength: 120 },
2636
+ { type: "text", key: "state", label: "State / Province", required: false, maxLength: 120 },
2637
+ { type: "text", key: "postal_code", label: "Postal code", required: false, maxLength: 32 },
2638
+ {
2639
+ type: "text",
2640
+ key: "country",
2641
+ label: "Country",
2642
+ required: false,
2643
+ description: "ISO 3166-1 alpha-2 code (e.g. US, GB, CN).",
2644
+ pattern: "^[A-Za-z]{2}$",
2645
+ minLength: 2,
2646
+ maxLength: 2
2647
+ },
2648
+ // ── Contact ───────────────────────────────────────────────────────────
2649
+ { type: "group", id: "contact", label: "Contact", required: false },
2650
+ {
2651
+ type: "text",
2652
+ key: "phone",
2653
+ label: "Phone",
2654
+ required: false,
2655
+ description: "Primary business phone (E.164 recommended, e.g. +1 415 555 0100).",
2656
+ maxLength: 40
2657
+ },
2658
+ {
2659
+ type: "url",
2660
+ key: "website",
2661
+ label: "Website",
2662
+ required: false,
2663
+ description: "Example: https://example.com"
2664
+ },
2665
+ { type: "text", key: "primary_contact_name", label: "Primary contact name", required: false, maxLength: 120 },
2666
+ {
2667
+ type: "email",
2668
+ key: "primary_contact_email",
2669
+ label: "Primary contact email",
2670
+ required: false,
2671
+ description: "Example: ops@example.com"
2672
+ }
2673
+ ]
2674
+ };
2675
+
2370
2676
  // src/manifests/index.ts
2371
2677
  var builtinSettingsManifests = [
2372
2678
  brandingSettingsManifest,
2679
+ companySettingsManifest,
2680
+ localizationSettingsManifest,
2373
2681
  authSettingsManifest,
2374
2682
  mailSettingsManifest,
2375
2683
  storageSettingsManifest,
@@ -2440,6 +2748,50 @@ var en = {
2440
2748
  logo_url: { label: "Logo URL", help: "Example: https://\u2026/logo.svg" }
2441
2749
  }
2442
2750
  },
2751
+ company: {
2752
+ title: "Company",
2753
+ description: "Legal entity identity \u2014 registered name, address, tax IDs, and primary contact.",
2754
+ groups: {
2755
+ identity: { title: "Identity" },
2756
+ address: { title: "Registered address" },
2757
+ contact: { title: "Contact" }
2758
+ },
2759
+ keys: {
2760
+ legal_name: { label: "Legal name", help: "Registered legal name (may differ from the workspace name)." },
2761
+ registration_number: { label: "Registration number", help: "Company registration / incorporation number (e.g. EIN)." },
2762
+ tax_id: { label: "Tax / VAT ID", help: "Shown on invoices (e.g. VAT, GST, ABN)." },
2763
+ address_line1: { label: "Address line 1" },
2764
+ address_line2: { label: "Address line 2" },
2765
+ city: { label: "City" },
2766
+ state: { label: "State / Province" },
2767
+ postal_code: { label: "Postal code" },
2768
+ country: { label: "Country", help: "ISO 3166-1 alpha-2 code (e.g. US, GB, CN)." },
2769
+ phone: { label: "Phone", help: "E.164 recommended, e.g. +1 415 555 0100." },
2770
+ website: { label: "Website", help: "Example: https://example.com" },
2771
+ primary_contact_name: { label: "Primary contact name" },
2772
+ primary_contact_email: { label: "Primary contact email", help: "Example: ops@example.com" }
2773
+ }
2774
+ },
2775
+ localization: {
2776
+ title: "Localization",
2777
+ description: "Default timezone, language, currency, and date/number formats.",
2778
+ groups: {
2779
+ region: { title: "Region" },
2780
+ formats: { title: "Formats" },
2781
+ finance: { title: "Finance" }
2782
+ },
2783
+ keys: {
2784
+ timezone: { label: "Default timezone", help: "IANA zone for today()/daysFromNow, analytics date buckets, and rendered datetimes." },
2785
+ locale: { label: "Default language", help: "BCP-47 locale for message catalogs and number/date formatting." },
2786
+ default_country: { label: "Default country", help: "ISO 3166-1 alpha-2 code (e.g. US, GB, CN)." },
2787
+ date_format: { label: "Date format" },
2788
+ time_format: { label: "Time format", options: { "24h": "24-hour (14:30)", "12h": "12-hour (2:30 PM)" } },
2789
+ number_format: { label: "Number format" },
2790
+ first_day_of_week: { label: "First day of week", options: { monday: "Monday (ISO)", sunday: "Sunday", saturday: "Saturday" } },
2791
+ currency: { label: "Default currency" },
2792
+ fiscal_year_start: { label: "Fiscal year start" }
2793
+ }
2794
+ },
2443
2795
  auth: {
2444
2796
  title: "Authentication",
2445
2797
  description: "Sign-in, registration, and built-in auth feature controls.",
@@ -2448,6 +2800,14 @@ var en = {
2448
2800
  title: "Email and password",
2449
2801
  description: "Control local email/password sign-in and self-service registration."
2450
2802
  },
2803
+ password_policy: {
2804
+ title: "Password policy",
2805
+ description: "Length bounds enforced by the auth provider on sign-up and password reset."
2806
+ },
2807
+ sessions: {
2808
+ title: "Sessions",
2809
+ description: "How long a signed-in session stays valid."
2810
+ },
2451
2811
  social: {
2452
2812
  title: "Social sign-in",
2453
2813
  description: "Configure the built-in Google sign-in provider. Deployment env vars still win."
@@ -2457,6 +2817,10 @@ var en = {
2457
2817
  email_password_enabled: { label: "Enable email/password login" },
2458
2818
  signup_enabled: { label: "Allow self-service registration" },
2459
2819
  require_email_verification: { label: "Require email verification" },
2820
+ password_min_length: { label: "Minimum password length" },
2821
+ password_max_length: { label: "Maximum password length", help: "Guards against denial-of-service via very long password hashing." },
2822
+ session_expiry_days: { label: "Session lifetime (days)", help: "A session expires this many days after sign-in." },
2823
+ session_refresh_days: { label: "Refresh threshold (days)", help: "An active session is extended when it is older than this." },
2460
2824
  google_enabled: {
2461
2825
  label: "Enable Google login",
2462
2826
  help: "Requires a Google OAuth client ID and secret from Google Cloud Console."
@@ -2787,6 +3151,50 @@ var zhCN = {
2787
3151
  logo_url: { label: "Logo \u94FE\u63A5", help: "\u793A\u4F8B:https://\u2026/logo.svg" }
2788
3152
  }
2789
3153
  },
3154
+ company: {
3155
+ title: "\u516C\u53F8",
3156
+ description: "\u6CD5\u5F8B\u5B9E\u4F53\u4FE1\u606F\u2014\u2014\u6CE8\u518C\u540D\u79F0\u3001\u5730\u5740\u3001\u7A0E\u53F7\u53CA\u4E3B\u8981\u8054\u7CFB\u4EBA\u3002",
3157
+ groups: {
3158
+ identity: { title: "\u4E3B\u4F53\u4FE1\u606F" },
3159
+ address: { title: "\u6CE8\u518C\u5730\u5740" },
3160
+ contact: { title: "\u8054\u7CFB\u65B9\u5F0F" }
3161
+ },
3162
+ keys: {
3163
+ legal_name: { label: "\u6CD5\u5B9A\u540D\u79F0", help: "\u6CE8\u518C\u7684\u6CD5\u5B9A\u540D\u79F0(\u53EF\u80FD\u4E0E\u5DE5\u4F5C\u533A\u540D\u79F0\u4E0D\u540C)\u3002" },
3164
+ registration_number: { label: "\u6CE8\u518C\u53F7", help: "\u516C\u53F8\u6CE8\u518C/\u5DE5\u5546\u767B\u8BB0\u53F7(\u5982 EIN\u3001\u7EDF\u4E00\u793E\u4F1A\u4FE1\u7528\u4EE3\u7801)\u3002" },
3165
+ tax_id: { label: "\u7A0E\u53F7 / VAT", help: "\u53D1\u7968\u4E0A\u663E\u793A\u7684\u7A0E\u52A1\u6807\u8BC6(\u5982 VAT\u3001GST\u3001ABN)\u3002" },
3166
+ address_line1: { label: "\u5730\u5740\u884C 1" },
3167
+ address_line2: { label: "\u5730\u5740\u884C 2" },
3168
+ city: { label: "\u57CE\u5E02" },
3169
+ state: { label: "\u7701/\u5DDE" },
3170
+ postal_code: { label: "\u90AE\u653F\u7F16\u7801" },
3171
+ country: { label: "\u56FD\u5BB6/\u5730\u533A", help: "ISO 3166-1 \u4E8C\u4F4D\u4EE3\u7801(\u5982 US\u3001GB\u3001CN)\u3002" },
3172
+ phone: { label: "\u7535\u8BDD", help: "\u5EFA\u8BAE E.164 \u683C\u5F0F,\u5982 +86 21 5555 0100\u3002" },
3173
+ website: { label: "\u7F51\u7AD9", help: "\u793A\u4F8B:https://example.com" },
3174
+ primary_contact_name: { label: "\u4E3B\u8981\u8054\u7CFB\u4EBA" },
3175
+ primary_contact_email: { label: "\u4E3B\u8981\u8054\u7CFB\u4EBA\u90AE\u7BB1", help: "\u793A\u4F8B:ops@example.com" }
3176
+ }
3177
+ },
3178
+ localization: {
3179
+ title: "\u672C\u5730\u5316",
3180
+ description: "\u9ED8\u8BA4\u65F6\u533A\u3001\u8BED\u8A00\u3001\u8D27\u5E01\u53CA\u65E5\u671F/\u6570\u5B57\u683C\u5F0F\u3002",
3181
+ groups: {
3182
+ region: { title: "\u533A\u57DF" },
3183
+ formats: { title: "\u683C\u5F0F" },
3184
+ finance: { title: "\u8D22\u52A1" }
3185
+ },
3186
+ keys: {
3187
+ timezone: { label: "\u9ED8\u8BA4\u65F6\u533A", help: "\u7528\u4E8E today()/daysFromNow\u3001\u5206\u6790\u65E5\u671F\u5206\u6876\u548C datetime \u6E32\u67D3\u7684 IANA \u65F6\u533A\u3002" },
3188
+ locale: { label: "\u9ED8\u8BA4\u8BED\u8A00", help: "\u7528\u4E8E\u6D88\u606F\u6587\u6848\u548C\u6570\u5B57/\u65E5\u671F\u683C\u5F0F\u7684 BCP-47 \u8BED\u8A00\u3002" },
3189
+ default_country: { label: "\u9ED8\u8BA4\u56FD\u5BB6/\u5730\u533A", help: "ISO 3166-1 \u4E8C\u4F4D\u4EE3\u7801(\u5982 US\u3001GB\u3001CN)\u3002" },
3190
+ date_format: { label: "\u65E5\u671F\u683C\u5F0F" },
3191
+ time_format: { label: "\u65F6\u95F4\u683C\u5F0F", options: { "24h": "24 \u5C0F\u65F6\u5236(14:30)", "12h": "12 \u5C0F\u65F6\u5236(2:30 PM)" } },
3192
+ number_format: { label: "\u6570\u5B57\u683C\u5F0F" },
3193
+ first_day_of_week: { label: "\u6BCF\u5468\u8D77\u59CB\u65E5", options: { monday: "\u5468\u4E00(ISO)", sunday: "\u5468\u65E5", saturday: "\u5468\u516D" } },
3194
+ currency: { label: "\u9ED8\u8BA4\u8D27\u5E01" },
3195
+ fiscal_year_start: { label: "\u8D22\u5E74\u8D77\u59CB\u6708" }
3196
+ }
3197
+ },
2790
3198
  auth: {
2791
3199
  title: "\u8BA4\u8BC1",
2792
3200
  description: "\u767B\u5F55\u3001\u6CE8\u518C\u4EE5\u53CA\u5185\u7F6E\u8BA4\u8BC1\u529F\u80FD\u7684\u63A7\u5236\u9879\u3002",
@@ -2795,6 +3203,14 @@ var zhCN = {
2795
3203
  title: "\u90AE\u7BB1\u4E0E\u5BC6\u7801",
2796
3204
  description: "\u63A7\u5236\u672C\u5730\u90AE\u7BB1/\u5BC6\u7801\u767B\u5F55\u4E0E\u81EA\u52A9\u6CE8\u518C\u3002"
2797
3205
  },
3206
+ password_policy: {
3207
+ title: "\u5BC6\u7801\u7B56\u7565",
3208
+ description: "\u7531\u8BA4\u8BC1\u63D0\u4F9B\u5546\u5728\u6CE8\u518C\u548C\u91CD\u7F6E\u5BC6\u7801\u65F6\u5F3A\u5236\u7684\u957F\u5EA6\u9650\u5236\u3002"
3209
+ },
3210
+ sessions: {
3211
+ title: "\u4F1A\u8BDD",
3212
+ description: "\u767B\u5F55\u4F1A\u8BDD\u7684\u6709\u6548\u65F6\u957F\u3002"
3213
+ },
2798
3214
  social: {
2799
3215
  title: "\u793E\u4EA4\u767B\u5F55",
2800
3216
  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"
@@ -2804,6 +3220,10 @@ var zhCN = {
2804
3220
  email_password_enabled: { label: "\u542F\u7528\u90AE\u7BB1/\u5BC6\u7801\u767B\u5F55" },
2805
3221
  signup_enabled: { label: "\u5141\u8BB8\u81EA\u52A9\u6CE8\u518C" },
2806
3222
  require_email_verification: { label: "\u8981\u6C42\u90AE\u7BB1\u9A8C\u8BC1" },
3223
+ password_min_length: { label: "\u5BC6\u7801\u6700\u5C0F\u957F\u5EA6" },
3224
+ password_max_length: { label: "\u5BC6\u7801\u6700\u5927\u957F\u5EA6", help: "\u9632\u6B62\u8D85\u957F\u5BC6\u7801\u54C8\u5E0C\u5BFC\u81F4\u7684\u62D2\u7EDD\u670D\u52A1\u3002" },
3225
+ session_expiry_days: { label: "\u4F1A\u8BDD\u6709\u6548\u671F(\u5929)", help: "\u767B\u5F55\u540E\u4F1A\u8BDD\u5728\u6B64\u5929\u6570\u540E\u8FC7\u671F\u3002" },
3226
+ session_refresh_days: { label: "\u5237\u65B0\u9608\u503C(\u5929)", help: "\u6D3B\u8DC3\u4F1A\u8BDD\u5728\u8D85\u8FC7\u6B64\u65F6\u957F\u540E\u81EA\u52A8\u7EED\u671F\u3002" },
2807
3227
  google_enabled: {
2808
3228
  label: "\u542F\u7528 Google \u767B\u5F55",
2809
3229
  help: "\u9700\u8981\u5728 Google Cloud Console \u4E2D\u521B\u5EFA\u7684 Google OAuth \u5BA2\u6237\u7AEF ID \u4E0E\u5BC6\u94A5\u3002"