@tachybase/client 1.6.24 → 1.6.26

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.
Files changed (52) hide show
  1. package/es/api-client/APIClient.d.ts +3 -0
  2. package/es/api-client/APIClient.mjs +11 -2
  3. package/es/api-client/constants.d.ts +1 -0
  4. package/es/api-client/constants.mjs +2 -0
  5. package/es/api-client/index.d.ts +1 -0
  6. package/es/api-client/index.mjs +1 -0
  7. package/es/built-in/acl/Configuration/ConfigureCenter.d.ts +6 -0
  8. package/es/built-in/acl/Configuration/ConfigureCenter.mjs +4 -22
  9. package/es/built-in/acl/acl-snippet.d.ts +18 -0
  10. package/es/built-in/acl/acl-snippet.mjs +40 -0
  11. package/es/built-in/acl/index.d.ts +1 -0
  12. package/es/built-in/acl/index.mjs +1 -0
  13. package/es/built-in/admin-layout/CurrentNavigationMenuProvider.d.ts +19 -0
  14. package/es/built-in/admin-layout/CurrentNavigationMenuProvider.mjs +58 -0
  15. package/es/built-in/admin-layout/InternalAdminLayout.d.ts +3 -0
  16. package/es/built-in/admin-layout/InternalAdminLayout.mjs +20 -2
  17. package/es/built-in/admin-layout/index.d.ts +1 -0
  18. package/es/built-in/admin-layout/index.mjs +1 -0
  19. package/es/built-in/admin-layout/style.d.ts +1 -0
  20. package/es/built-in/admin-layout/style.mjs +22 -10
  21. package/es/built-in/index.d.ts +7 -1
  22. package/es/built-in/index.mjs +4 -2
  23. package/es/built-in/setting-layout/SettingsCenterDropdown.d.ts +3 -0
  24. package/es/built-in/setting-layout/SettingsCenterDropdown.mjs +7 -6
  25. package/es/collection-manager/Configuration/components/index.d.ts +24 -0
  26. package/es/collection-manager/templates/sql.d.ts +13 -0
  27. package/es/collection-manager/templates/view.d.ts +12 -0
  28. package/lib/api-client/APIClient.js +11 -2
  29. package/lib/api-client/constants.js +36 -0
  30. package/lib/api-client/index.js +12 -3
  31. package/lib/block-provider/hooks/index.js +2 -2
  32. package/lib/built-in/acl/Configuration/ConfigureCenter.js +4 -22
  33. package/lib/built-in/acl/acl-snippet.js +83 -0
  34. package/lib/built-in/acl/index.js +15 -6
  35. package/lib/built-in/admin-layout/CurrentNavigationMenuProvider.js +95 -0
  36. package/lib/built-in/admin-layout/InternalAdminLayout.js +28 -0
  37. package/lib/built-in/admin-layout/index.js +24 -15
  38. package/lib/built-in/admin-layout/style.js +22 -10
  39. package/lib/built-in/index.js +56 -41
  40. package/lib/built-in/setting-layout/SettingsCenterDropdown.js +7 -6
  41. package/lib/locale/en_US.js +9 -0
  42. package/lib/locale/es_ES.js +9 -0
  43. package/lib/locale/fr_FR.js +9 -0
  44. package/lib/locale/ja_JP.js +9 -0
  45. package/lib/locale/ko_KR.js +9 -0
  46. package/lib/locale/pt_BR.js +9 -0
  47. package/lib/locale/ru_RU.js +9 -0
  48. package/lib/locale/tr_TR.js +9 -0
  49. package/lib/locale/uk_UA.js +9 -0
  50. package/lib/locale/zh-CN.js +9 -0
  51. package/lib/locale/zh-TW.js +9 -0
  52. package/package.json +1 -1
@@ -45,6 +45,9 @@ var __webpack_modules__ = {
45
45
  "./admin-layout/AdminLayoutPlugin": function(module) {
46
46
  module.exports = require("./admin-layout/AdminLayoutPlugin.js");
47
47
  },
48
+ "./admin-layout/CurrentNavigationMenuProvider": function(module) {
49
+ module.exports = require("./admin-layout/CurrentNavigationMenuProvider.js");
50
+ },
48
51
  "./admin-layout/components/WelcomeCard": function(module) {
49
52
  module.exports = require("./admin-layout/components/WelcomeCard.js");
50
53
  },
@@ -174,13 +177,15 @@ var __webpack_exports__ = {};
174
177
  (()=>{
175
178
  __webpack_require__.r(__webpack_exports__);
176
179
  __webpack_require__.d(__webpack_exports__, {
177
- AdminLayout: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_40__.AdminLayout,
178
- AdminProvider: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_40__.AdminProvider,
179
- AdminTabs: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_40__.AdminTabs,
180
+ AdminLayout: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_41__.AdminLayout,
181
+ AdminProvider: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_41__.AdminProvider,
182
+ AdminTabs: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_41__.AdminTabs,
180
183
  AppNotFound: ()=>AppNotFound,
181
184
  BuiltInPlugin: ()=>BuiltInPlugin,
182
- MenuEditor: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_40__.MenuEditor,
183
- NoticeArea: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_40__.NoticeArea
185
+ CurrentNavigationMenuProvider: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_41__.CurrentNavigationMenuProvider,
186
+ MenuEditor: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_41__.MenuEditor,
187
+ NoticeArea: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_41__.NoticeArea,
188
+ useCurrentNavigationMenu: ()=>_admin_layout__WEBPACK_IMPORTED_MODULE_41__.useCurrentNavigationMenu
184
189
  });
185
190
  var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("react/jsx-runtime");
186
191
  var _tachybase_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("@tachybase/schema");
@@ -208,49 +213,54 @@ var __webpack_exports__ = {};
208
213
  var _acl_ACLPlugin__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__("./acl/ACLPlugin");
209
214
  var _admin_layout_AdminLayoutPlugin__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__("./admin-layout/AdminLayoutPlugin");
210
215
  var _admin_layout_components_WelcomeCard__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__("./admin-layout/components/WelcomeCard");
211
- var _attachment_preview__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__("./attachment-preview");
212
- var _block_schema_component__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__("./block-schema-component");
213
- var _context_menu__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__("./context-menu");
214
- var _document_title__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__("./document-title");
215
- var _dynamic_page__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__("./dynamic-page");
216
- var _locale_LocalePlugin__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__("./locale/LocalePlugin");
217
- var _page_style__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__("./page-style");
218
- var _pinned_list_PluginPinnedList__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__("./pinned-list/PluginPinnedList");
219
- var _pm__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__("./pm");
220
- var _quick_access__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__("./quick-access");
221
- var _scroll_assistant__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__("./scroll-assistant");
222
- var _system_settings__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__("./system-settings");
223
- var _system_version__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__("./system-version");
224
- var _user_settings__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__("./user-settings");
225
- var _admin_layout__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__("./admin-layout");
226
- var _pinned_list__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__("./pinned-list");
216
+ var _admin_layout_CurrentNavigationMenuProvider__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__("./admin-layout/CurrentNavigationMenuProvider");
217
+ var _attachment_preview__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__("./attachment-preview");
218
+ var _block_schema_component__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__("./block-schema-component");
219
+ var _context_menu__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__("./context-menu");
220
+ var _document_title__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__("./document-title");
221
+ var _dynamic_page__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__("./dynamic-page");
222
+ var _locale_LocalePlugin__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__("./locale/LocalePlugin");
223
+ var _page_style__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__("./page-style");
224
+ var _pinned_list_PluginPinnedList__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__("./pinned-list/PluginPinnedList");
225
+ var _pm__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__("./pm");
226
+ var _quick_access__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__("./quick-access");
227
+ var _scroll_assistant__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__("./scroll-assistant");
228
+ var _system_settings__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__("./system-settings");
229
+ var _system_version__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__("./system-version");
230
+ var _user_settings__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__("./user-settings");
231
+ var _admin_layout__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__("./admin-layout");
232
+ var _pinned_list__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__("./pinned-list");
227
233
  var __WEBPACK_REEXPORT_OBJECT__ = {};
228
- for(var __WEBPACK_IMPORT_KEY__ in _pinned_list__WEBPACK_IMPORTED_MODULE_41__)if ([
234
+ for(var __WEBPACK_IMPORT_KEY__ in _pinned_list__WEBPACK_IMPORTED_MODULE_42__)if ([
229
235
  "default",
236
+ "CurrentNavigationMenuProvider",
230
237
  "AdminTabs",
231
238
  "MenuEditor",
232
239
  "NoticeArea",
233
240
  "BuiltInPlugin",
234
241
  "AppNotFound",
242
+ "useCurrentNavigationMenu",
235
243
  "AdminProvider",
236
244
  "AdminLayout"
237
245
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
238
- return _pinned_list__WEBPACK_IMPORTED_MODULE_41__[key];
246
+ return _pinned_list__WEBPACK_IMPORTED_MODULE_42__[key];
239
247
  }).bind(0, __WEBPACK_IMPORT_KEY__);
240
248
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
241
- var _context_menu_useContextMenu__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__("./context-menu/useContextMenu");
249
+ var _context_menu_useContextMenu__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__("./context-menu/useContextMenu");
242
250
  var __WEBPACK_REEXPORT_OBJECT__ = {};
243
- for(var __WEBPACK_IMPORT_KEY__ in _context_menu_useContextMenu__WEBPACK_IMPORTED_MODULE_42__)if ([
251
+ for(var __WEBPACK_IMPORT_KEY__ in _context_menu_useContextMenu__WEBPACK_IMPORTED_MODULE_43__)if ([
244
252
  "default",
253
+ "CurrentNavigationMenuProvider",
245
254
  "AdminTabs",
246
255
  "MenuEditor",
247
256
  "NoticeArea",
248
257
  "BuiltInPlugin",
249
258
  "AppNotFound",
259
+ "useCurrentNavigationMenu",
250
260
  "AdminProvider",
251
261
  "AdminLayout"
252
262
  ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
253
- return _context_menu_useContextMenu__WEBPACK_IMPORTED_MODULE_42__[key];
263
+ return _context_menu_useContextMenu__WEBPACK_IMPORTED_MODULE_43__[key];
254
264
  }).bind(0, __WEBPACK_IMPORT_KEY__);
255
265
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
256
266
  function _tagged_template_literal(strings, raw) {
@@ -509,6 +519,7 @@ var __webpack_exports__ = {};
509
519
  this.addRoutes();
510
520
  this.app.use(_user__WEBPACK_IMPORTED_MODULE_22__.CurrentUserProvider);
511
521
  this.app.use(_user__WEBPACK_IMPORTED_MODULE_22__.CurrentUserSettingsMenuProvider);
522
+ this.app.use(_admin_layout_CurrentNavigationMenuProvider__WEBPACK_IMPORTED_MODULE_26__.CurrentNavigationMenuProvider);
512
523
  this.addSystemSettingGroups();
513
524
  }
514
525
  addSystemSettingGroups() {
@@ -575,16 +586,16 @@ var __webpack_exports__ = {};
575
586
  }
576
587
  async addPlugins() {
577
588
  await this.app.pm.add(_schema_initializer__WEBPACK_IMPORTED_MODULE_18__.AssociationFilterPlugin);
578
- await this.app.pm.add(_locale_LocalePlugin__WEBPACK_IMPORTED_MODULE_31__.LocalePlugin, {
589
+ await this.app.pm.add(_locale_LocalePlugin__WEBPACK_IMPORTED_MODULE_32__.LocalePlugin, {
579
590
  name: 'builtin-locale'
580
591
  });
581
592
  await this.app.pm.add(_admin_layout_AdminLayoutPlugin__WEBPACK_IMPORTED_MODULE_24__.AdminLayoutPlugin, {
582
593
  name: 'admin-layout'
583
594
  });
584
- await this.app.pm.add(_system_settings__WEBPACK_IMPORTED_MODULE_37__.SystemSettingsPlugin, {
595
+ await this.app.pm.add(_system_settings__WEBPACK_IMPORTED_MODULE_38__.SystemSettingsPlugin, {
585
596
  name: 'system-setting'
586
597
  });
587
- await this.app.pm.add(_pinned_list_PluginPinnedList__WEBPACK_IMPORTED_MODULE_33__.PluginPinnedList, {
598
+ await this.app.pm.add(_pinned_list_PluginPinnedList__WEBPACK_IMPORTED_MODULE_34__.PluginPinnedList, {
588
599
  name: 'pinned-list',
589
600
  config: {
590
601
  items: {
@@ -664,7 +675,7 @@ var __webpack_exports__ = {};
664
675
  await this.app.pm.add(_schema_settings__WEBPACK_IMPORTED_MODULE_20__.SchemaSettingsPlugin, {
665
676
  name: 'schema-settings'
666
677
  });
667
- await this.app.pm.add(_block_schema_component__WEBPACK_IMPORTED_MODULE_27__.PluginBlockSchemaComponent, {
678
+ await this.app.pm.add(_block_schema_component__WEBPACK_IMPORTED_MODULE_28__.PluginBlockSchemaComponent, {
668
679
  name: 'block-schema-component'
669
680
  });
670
681
  await this.app.pm.add(_schema_component__WEBPACK_IMPORTED_MODULE_16__.AntdSchemaComponentPlugin, {
@@ -673,37 +684,37 @@ var __webpack_exports__ = {};
673
684
  await this.app.pm.add(_acl_ACLPlugin__WEBPACK_IMPORTED_MODULE_23__.ACLPlugin, {
674
685
  name: 'builtin-acl'
675
686
  });
676
- await this.app.pm.add(_document_title__WEBPACK_IMPORTED_MODULE_29__.RemoteDocumentTitlePlugin, {
687
+ await this.app.pm.add(_document_title__WEBPACK_IMPORTED_MODULE_30__.RemoteDocumentTitlePlugin, {
677
688
  name: 'remote-document-title'
678
689
  });
679
- await this.app.pm.add(_pm__WEBPACK_IMPORTED_MODULE_34__.PMPlugin, {
690
+ await this.app.pm.add(_pm__WEBPACK_IMPORTED_MODULE_35__.PMPlugin, {
680
691
  name: 'builtin-pm'
681
692
  });
682
693
  await this.app.pm.add(_collection_manager__WEBPACK_IMPORTED_MODULE_14__.CollectionPlugin, {
683
694
  name: 'builtin-collection'
684
695
  });
685
- await this.app.pm.add(_context_menu__WEBPACK_IMPORTED_MODULE_28__.PluginContextMenu, {
696
+ await this.app.pm.add(_context_menu__WEBPACK_IMPORTED_MODULE_29__.PluginContextMenu, {
686
697
  name: 'context-menu'
687
698
  });
688
- await this.app.pm.add(_user_settings__WEBPACK_IMPORTED_MODULE_39__.UserSettingsPlugin, {
699
+ await this.app.pm.add(_user_settings__WEBPACK_IMPORTED_MODULE_40__.UserSettingsPlugin, {
689
700
  name: 'user-settings'
690
701
  });
691
- await this.app.pm.add(_attachment_preview__WEBPACK_IMPORTED_MODULE_26__.AttachmentPreviewPlugin, {
702
+ await this.app.pm.add(_attachment_preview__WEBPACK_IMPORTED_MODULE_27__.AttachmentPreviewPlugin, {
692
703
  name: 'attachment-preview'
693
704
  });
694
- await this.app.pm.add(_page_style__WEBPACK_IMPORTED_MODULE_32__.PluginPageStyle, {
705
+ await this.app.pm.add(_page_style__WEBPACK_IMPORTED_MODULE_33__.PluginPageStyle, {
695
706
  name: 'page-style'
696
707
  });
697
- await this.app.pm.add(_quick_access__WEBPACK_IMPORTED_MODULE_35__.QuickAccessPlugin, {
708
+ await this.app.pm.add(_quick_access__WEBPACK_IMPORTED_MODULE_36__.QuickAccessPlugin, {
698
709
  name: 'quick-access'
699
710
  });
700
- await this.app.pm.add(_scroll_assistant__WEBPACK_IMPORTED_MODULE_36__.ScrollAssistantPlugin, {
711
+ await this.app.pm.add(_scroll_assistant__WEBPACK_IMPORTED_MODULE_37__.ScrollAssistantPlugin, {
701
712
  name: 'scroll-assistant'
702
713
  });
703
- await this.app.pm.add(_dynamic_page__WEBPACK_IMPORTED_MODULE_30__.PluginDynamicPage, {
714
+ await this.app.pm.add(_dynamic_page__WEBPACK_IMPORTED_MODULE_31__.PluginDynamicPage, {
704
715
  name: 'dynamic-page'
705
716
  });
706
- await this.app.pm.add(_system_version__WEBPACK_IMPORTED_MODULE_38__.PluginSystemVersion, {
717
+ await this.app.pm.add(_system_version__WEBPACK_IMPORTED_MODULE_39__.PluginSystemVersion, {
707
718
  name: 'system-version'
708
719
  });
709
720
  }
@@ -714,16 +725,20 @@ exports.AdminProvider = __webpack_exports__.AdminProvider;
714
725
  exports.AdminTabs = __webpack_exports__.AdminTabs;
715
726
  exports.AppNotFound = __webpack_exports__.AppNotFound;
716
727
  exports.BuiltInPlugin = __webpack_exports__.BuiltInPlugin;
728
+ exports.CurrentNavigationMenuProvider = __webpack_exports__.CurrentNavigationMenuProvider;
717
729
  exports.MenuEditor = __webpack_exports__.MenuEditor;
718
730
  exports.NoticeArea = __webpack_exports__.NoticeArea;
731
+ exports.useCurrentNavigationMenu = __webpack_exports__.useCurrentNavigationMenu;
719
732
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
720
733
  "AdminLayout",
721
734
  "AdminProvider",
722
735
  "AdminTabs",
723
736
  "AppNotFound",
724
737
  "BuiltInPlugin",
738
+ "CurrentNavigationMenuProvider",
725
739
  "MenuEditor",
726
- "NoticeArea"
740
+ "NoticeArea",
741
+ "useCurrentNavigationMenu"
727
742
  ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
728
743
  Object.defineProperty(exports, '__esModule', {
729
744
  value: true
@@ -56,23 +56,24 @@ const SettingsCenterDropdown = ()=>{
56
56
  const menuItems = (0, external_react_namespaceObject.useMemo)(()=>{
57
57
  const list = app.systemSettingsManager.getList();
58
58
  function traverse(settings) {
59
- return settings.filter((item)=>!item.path.includes(':')).map((item)=>{
59
+ return settings.filter((item)=>!item.hideInMenu && !item.path.includes(':')).map((item)=>{
60
60
  var _item_children;
61
- item.title = compile(item.title);
61
+ const title = compile(item.title);
62
+ var _item_key;
62
63
  item.label = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_router_dom_namespaceObject.Link, {
63
64
  to: item.path,
64
- children: compile(item.title)
65
- });
65
+ children: title
66
+ }, null != (_item_key = item.key) ? _item_key : item.path);
66
67
  if (null == (_item_children = item.children) ? void 0 : _item_children.length) {
67
68
  item.children = traverse(item.children);
68
- item.label = compile(item.title);
69
+ item.label = title;
69
70
  }
70
71
  return {
71
72
  key: item.key,
72
73
  label: item.label,
73
74
  path: item.path,
74
75
  children: item.children,
75
- name: item.title
76
+ name: title
76
77
  };
77
78
  });
78
79
  }
@@ -85,6 +85,7 @@ module.exports = {
85
85
  "Allow to manage plugins": "Allow to manage plugins",
86
86
  "Allow uploading multiple files": "Allow uploading multiple files",
87
87
  "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Allows configuration of the whole system, including UI, collections, permissions, etc.",
88
+ "Allows selected tenants to read records that do not have a tenant marker.": "Allows selected tenants to read records that do not have a tenant marker.",
88
89
  "Allows to configure interface": "Allows to configure interface",
89
90
  "Allows to configure plugins": "Allows to configure plugins",
90
91
  "Allows to install, activate, disable plugins": "Allows to install, activate, disable plugins",
@@ -186,6 +187,7 @@ module.exports = {
186
187
  "Connect data blocks": "Connect data blocks",
187
188
  "Connect to database view": "Connect to database view",
188
189
  "Constant value": "Constant value",
190
+ "Controls whether records are isolated by the current tenant.": "Controls whether records are isolated by the current tenant.",
189
191
  "Convert reference to duplicate": "Convert reference to duplicate",
190
192
  "Core Version": "Core Version",
191
193
  Create: "Create",
@@ -462,6 +464,7 @@ module.exports = {
462
464
  "Last week": "Last week",
463
465
  "Last year": "Last year",
464
466
  "Leave it blank, unless you need a custom intermediate table": "Leave it blank, unless you need a custom intermediate table",
467
+ "Legacy data visible to tenants": "Legacy data visible to tenants",
465
468
  Length: "Length",
466
469
  License: "License",
467
470
  Lime: "Lime",
@@ -721,6 +724,7 @@ module.exports = {
721
724
  Setting: "Setting",
722
725
  "Setting Down Title": "Setting Down Title",
723
726
  Settings: "Settings",
727
+ "Shared collection": "Shared collection",
724
728
  "Show Data": "Show Data",
725
729
  "Show lunar": "Show lunar",
726
730
  "Show scroll area": "Show scroll area",
@@ -789,6 +793,9 @@ module.exports = {
789
793
  "Template mode": "Template mode",
790
794
  "Template name": "Template name",
791
795
  Templates: "Templates",
796
+ "Tenancy mode": "Tenancy mode",
797
+ "Tenant inherited": "Tenant inherited",
798
+ "Tenant scoped": "Tenant scoped",
792
799
  "Test Data": "Test Data",
793
800
  "Text fields": "Text fields",
794
801
  "The current operation was not successful. You can wait a moment or contact technical support.": "The operation failed. Please wait a moment or contact technical support",
@@ -911,6 +918,8 @@ module.exports = {
911
918
  "\u2260": "\u2260",
912
919
  "\u2264": "\u2264",
913
920
  "\u2265": "\u2265",
921
+ "\u26A0 Tenant isolation warning: SQL collections do not support tenant isolation. The SQL statement is executed as-is with no automatic tenantId filtering. If tenant-scoped data access is needed, manually include tenantId conditions in your SQL, or use a general collection with proper tenancy configuration.": "\u26A0 Tenant isolation warning: SQL collections do not support tenant isolation. The SQL statement is executed as-is with no automatic tenantId filtering. If tenant-scoped data access is needed, manually include tenantId conditions in your SQL, or use a general collection with proper tenancy configuration.",
922
+ "\u26A0 Tenant isolation warning: View collections do not support tenant isolation. Queries are executed as raw SQL with no automatic tenantId filtering. If tenant-level data isolation is required, implement row-level security policies (e.g. PostgreSQL RLS) on the underlying database view.": "\u26A0 Tenant isolation warning: View collections do not support tenant isolation. Queries are executed as raw SQL with no automatic tenantId filtering. If tenant-level data isolation is required, implement row-level security policies (e.g. PostgreSQL RLS) on the underlying database view.",
914
923
  "12 hour": "12 hour",
915
924
  "24 hour": "24 hour"
916
925
  };
@@ -79,6 +79,7 @@ module.exports = {
79
79
  "Allow to manage plugins": "Permitir gestionar plugins",
80
80
  "Allow uploading multiple files": "Permitir la carga de varios archivos",
81
81
  "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Permite configurar todo el sistema, incluyendo UI, colecciones, permisos, etc.",
82
+ "Allows selected tenants to read records that do not have a tenant marker.": "Permite que los tenants seleccionados lean registros que no tienen una marca de tenant.",
82
83
  "Allows to configure interface": "Permite configurar la interfaz",
83
84
  "Allows to configure plugins": "Permite configurar plugins",
84
85
  "Allows to install, activate, disable plugins": "Permitir instalar, activar, desactivar plugins",
@@ -164,6 +165,7 @@ module.exports = {
164
165
  "Connect data blocks": "Conectar bloques de datos",
165
166
  "Connect to database view": "Conectarse a la vista de la base de datos",
166
167
  "Constant value": "Valor constante",
168
+ "Controls whether records are isolated by the current tenant.": "Controla si los registros se a\xEDslan por el tenant actual.",
167
169
  "Convert reference to duplicate": "Convertir referencia a duplicado",
168
170
  "Core Version": "Versi\xF3n del n\xFAcleo",
169
171
  "Create an account": "Crear una cuenta",
@@ -389,6 +391,7 @@ module.exports = {
389
391
  "Last week": "Semana pasada",
390
392
  "Last year": "A\xF1o pasado",
391
393
  "Leave it blank, unless you need a custom intermediate table": "D\xE9jelo en blanco, a menos que necesite una tabla intermedia personalizada",
394
+ "Legacy data visible to tenants": "Datos heredados visibles para tenants",
392
395
  Length: "Longitud",
393
396
  License: "Licencia",
394
397
  Lime: "Lima",
@@ -600,6 +603,7 @@ module.exports = {
600
603
  "Set default value": "Establecer valor por defecto",
601
604
  "Set the data scope": "Establecer el \xE1mbito de los datos",
602
605
  "Set validation rules": "Establecer reglas de validaci\xF3n",
606
+ "Shared collection": "Colecci\xF3n compartida",
603
607
  "Show lunar": "Mostrar lunar",
604
608
  "Show time": "Mostrar hora",
605
609
  "Sign in": "Iniciar sesi\xF3n",
@@ -653,6 +657,9 @@ module.exports = {
653
657
  "Target position": "Posici\xF3n de destino",
654
658
  "Template name": "Nombre de plantilla",
655
659
  Templates: "Plantillas",
660
+ "Tenancy mode": "Modo de tenancy",
661
+ "Tenant inherited": "Tenant actual y descendientes",
662
+ "Tenant scoped": "Solo tenant actual",
656
663
  "Tencent COS": "Tencent COS",
657
664
  "The deletion was successful.": "Eliminaci\xF3n correcta",
658
665
  "The field value cannot be greater than ": "El valor del campo no puede ser mayor que ",
@@ -755,6 +762,8 @@ module.exports = {
755
762
  "\u2260": "\u2260",
756
763
  "\u2264": "\u2264",
757
764
  "\u2265": "\u2265",
765
+ "\u26A0 Tenant isolation warning: SQL collections do not support tenant isolation. The SQL statement is executed as-is with no automatic tenantId filtering. If tenant-scoped data access is needed, manually include tenantId conditions in your SQL, or use a general collection with proper tenancy configuration.": "\u26A0 Advertencia de aislamiento de tenants: las colecciones SQL no admiten aislamiento de tenants. La sentencia SQL se ejecuta tal cual, sin filtrado autom\xE1tico por tenantId. Si necesita acceder a datos aislados por tenant, incluya manualmente condiciones tenantId en el SQL o use una colecci\xF3n general con la configuraci\xF3n de tenancy adecuada.",
766
+ "\u26A0 Tenant isolation warning: View collections do not support tenant isolation. Queries are executed as raw SQL with no automatic tenantId filtering. If tenant-level data isolation is required, implement row-level security policies (e.g. PostgreSQL RLS) on the underlying database view.": "\u26A0 Advertencia de aislamiento de tenants: las colecciones de vista no admiten aislamiento de tenants. Las consultas se ejecutan como SQL sin procesar, sin filtrado autom\xE1tico por tenantId. Si se requiere aislamiento de datos por tenant, implemente pol\xEDticas de seguridad a nivel de fila (por ejemplo, PostgreSQL RLS) en la vista de base de datos subyacente.",
758
767
  "12 hour": "12 horas",
759
768
  "24 hour": "24 horas"
760
769
  };
@@ -82,6 +82,7 @@ module.exports = {
82
82
  "Allow to manage plugins": "Autoriser la gestion des plugins",
83
83
  "Allow uploading multiple files": "Autoriser le t\xE9l\xE9chargement de plusieurs fichiers",
84
84
  "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Permet de configurer l'ensemble du syst\xE8me, y compris l'interface utilisateur, les collections, les permissions, etc.",
85
+ "Allows selected tenants to read records that do not have a tenant marker.": "Permet aux tenants s\xE9lectionn\xE9s de lire les enregistrements qui ne poss\xE8dent pas de marqueur de tenant.",
85
86
  "Allows to configure interface": "Permet de configurer l'interface",
86
87
  "Allows to configure plugins": "Permet de configurer des plugins",
87
88
  "Allows to install, activate, disable plugins": "Permet d'installer, d'activer, de d\xE9sactiver des plugins",
@@ -167,6 +168,7 @@ module.exports = {
167
168
  "Connect data blocks": "Connecter les blocs de donn\xE9es",
168
169
  "Connect to database view": "Connexion \xE0 la vue de la base de donn\xE9es",
169
170
  "Constant value": "Valeur constante",
171
+ "Controls whether records are isolated by the current tenant.": "Contr\xF4le si les enregistrements sont isol\xE9s par le tenant actuel.",
170
172
  "Convert reference to duplicate": "Convertir la r\xE9f\xE9rence en doublon",
171
173
  "Core Version": "Version du noyau",
172
174
  Create: "Cr\xE9er",
@@ -403,6 +405,7 @@ module.exports = {
403
405
  "Last week": "La semaine derni\xE8re",
404
406
  "Last year": "L'ann\xE9e derni\xE8re",
405
407
  "Leave it blank, unless you need a custom intermediate table": "Laissez-le vide, sauf si vous avez besoin d'une table interm\xE9diaire personnalis\xE9e",
408
+ "Legacy data visible to tenants": "Donn\xE9es h\xE9rit\xE9es visibles par les tenants",
406
409
  Length: "Longueur",
407
410
  License: "Licence",
408
411
  Lime: "Citron vert",
@@ -622,6 +625,7 @@ module.exports = {
622
625
  "Set the count of columns displayed in a row": "D\xE9finir le nombre de colonnes affich\xE9es par ligne",
623
626
  "Set the data scope": "D\xE9finir la port\xE9e des donn\xE9es",
624
627
  "Set validation rules": "D\xE9finir les r\xE8gles de validation",
628
+ "Shared collection": "Collection partag\xE9e",
625
629
  "Show lunar": "Afficher le calendrier lunaire",
626
630
  "Show time": "Afficher l'heure",
627
631
  "Sign in": "Se connecter",
@@ -673,6 +677,9 @@ module.exports = {
673
677
  "Target position": "Position cible",
674
678
  "Template name": "Nom du mod\xE8le",
675
679
  Templates: "Mod\xE8les",
680
+ "Tenancy mode": "Mode de tenancy",
681
+ "Tenant inherited": "Tenant actuel et descendants",
682
+ "Tenant scoped": "Tenant actuel uniquement",
676
683
  "The deletion was successful.": "La suppression a r\xE9ussi.",
677
684
  "The field has been deleted": "Le champ a \xE9t\xE9 supprim\xE9",
678
685
  "The field value cannot be greater than ": "La valeur du champ ne peut pas \xEAtre sup\xE9rieure \xE0 ",
@@ -775,6 +782,8 @@ module.exports = {
775
782
  "\u2260": "\u2260",
776
783
  "\u2264": "\u2264",
777
784
  "\u2265": "\u2265",
785
+ "\u26A0 Tenant isolation warning: SQL collections do not support tenant isolation. The SQL statement is executed as-is with no automatic tenantId filtering. If tenant-scoped data access is needed, manually include tenantId conditions in your SQL, or use a general collection with proper tenancy configuration.": "\u26A0 Avertissement d'isolation des tenants : les collections SQL ne prennent pas en charge l'isolation des tenants. L'instruction SQL est ex\xE9cut\xE9e telle quelle, sans filtrage automatique par tenantId. Si vous devez acc\xE9der \xE0 des donn\xE9es isol\xE9es par tenant, ajoutez manuellement des conditions tenantId dans votre SQL ou utilisez une collection standard avec une configuration de tenancy appropri\xE9e.",
786
+ "\u26A0 Tenant isolation warning: View collections do not support tenant isolation. Queries are executed as raw SQL with no automatic tenantId filtering. If tenant-level data isolation is required, implement row-level security policies (e.g. PostgreSQL RLS) on the underlying database view.": "\u26A0 Avertissement d'isolation des tenants : les collections de vues ne prennent pas en charge l'isolation des tenants. Les requ\xEAtes sont ex\xE9cut\xE9es comme du SQL brut, sans filtrage automatique par tenantId. Si une isolation des donn\xE9es par tenant est n\xE9cessaire, impl\xE9mentez des politiques de s\xE9curit\xE9 au niveau des lignes (par exemple PostgreSQL RLS) sur la vue de base de donn\xE9es sous-jacente.",
778
787
  "12 hour": "12 heures",
779
788
  "24 hour": "24 heures"
780
789
  };
@@ -75,6 +75,7 @@ module.exports = {
75
75
  "Allow to desgin pages": "\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u69CB\u6210\u306E\u8A31\u53EF",
76
76
  "Allow to manage plugins": "\u7BA1\u7406\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u8A31\u53EF",
77
77
  "Allows configuration of the whole system, including UI, collections, permissions, etc.": "UI\u8A2D\u5B9A\u3001\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u8A2D\u5B9A\u3001\u6A29\u9650\u8A2D\u5B9A\u3001\u30B7\u30B9\u30C6\u30E0\u8A2D\u5B9A\u7B49\u3001\u30B7\u30B9\u30C6\u30E0\u5168\u4F53\u306E\u8A2D\u5B9A\u3092\u8A31\u53EF\u3059\u308B",
78
+ "Allows selected tenants to read records that do not have a tenant marker.": "\u9078\u629E\u3057\u305F\u30C6\u30CA\u30F3\u30C8\u304C\u30C6\u30CA\u30F3\u30C8\u30DE\u30FC\u30AB\u30FC\u306E\u306A\u3044\u30EC\u30B3\u30FC\u30C9\u3092\u8AAD\u307F\u53D6\u308C\u308B\u3088\u3046\u306B\u3057\u307E\u3059\u3002",
78
79
  "Any succeeded or failed": "\u3044\u305A\u308C\u304B\u304C\u6210\u529F\u3082\u3057\u304F\u306F\u5931\u6557",
79
80
  "App Version": "\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u7248",
80
81
  "Are you sure to delete this plugin": "\u672C\u5F53\u306B\u3053\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\u304B\uFF1F",
@@ -152,6 +153,7 @@ module.exports = {
152
153
  "Connect to database view": "\u30D3\u30E5\u30FC\u306B\u63A5\u7D9A",
153
154
  "Constant value": "\u5B9A\u6570\u5024",
154
155
  "Continue after any branch succeeded, or exit after any branch failed": "\u3044\u305A\u308C\u304B\u306E\u5206\u5C90\u3067\u6210\u529F\u3057\u7D9A\u884C\u3059\u308B\u304B\u3001\u5206\u5C90\u304C\u5931\u6557\u3057\u305F\u5F8C\u7D42\u4E86\u3057\u307E\u3059",
156
+ "Controls whether records are isolated by the current tenant.": "\u73FE\u5728\u306E\u30C6\u30CA\u30F3\u30C8\u3067\u30EC\u30B3\u30FC\u30C9\u3092\u5206\u96E2\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u5236\u5FA1\u3057\u307E\u3059\u3002",
155
157
  "Convert reference to duplicate": "\u53C2\u7167\u3092\u8907\u88FD\u306B\u5909\u63DB",
156
158
  "Core Version": "\u30B3\u30A2\u7248",
157
159
  Create: "\u65B0\u898F\u306E\u307F",
@@ -368,6 +370,7 @@ module.exports = {
368
370
  "Last week": "\u5148\u9031",
369
371
  "Last year": "\u53BB\u5E74",
370
372
  "Leave it blank, unless you need a custom intermediate table": "\u30AB\u30B9\u30BF\u30E0\u4E2D\u9593\u30C6\u30FC\u30D6\u30EB\u304C\u5FC5\u8981\u3067\u306A\u3044\u9650\u308A\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u7A7A\u767D\u306E\u307E\u307E\u306B\u3057\u307E\u3059",
373
+ "Legacy data visible to tenants": "\u30C6\u30CA\u30F3\u30C8\u306B\u8868\u793A\u3059\u308B\u30EC\u30AC\u30B7\u30FC\u30C7\u30FC\u30BF",
371
374
  License: "\u30E9\u30A4\u30BB\u30F3\u30B9",
372
375
  Lime: "\u30E9\u30A4\u30E0",
373
376
  "Line chart": "\u6298\u308C\u7DDA\u30B0\u30E9\u30D5",
@@ -558,6 +561,7 @@ module.exports = {
558
561
  "Set default value": "\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u8A2D\u5B9A",
559
562
  "Set the data scope": "\u30C7\u30FC\u30BF\u7BC4\u56F2\u306E\u8A2D\u5B9A",
560
563
  "Set validation rules": "\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u30EB\u30FC\u30EB\u306E\u8A2D\u5B9A",
564
+ "Shared collection": "\u5171\u6709\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3",
561
565
  "Show time": "\u6642\u523B\u3092\u8868\u793A",
562
566
  "Sign in": "\u30B5\u30A4\u30F3\u30A4\u30F3",
563
567
  "Sign out": "\u30B5\u30A4\u30F3\u30A2\u30A6\u30C8",
@@ -603,6 +607,9 @@ module.exports = {
603
607
  "Template Data": "\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30C7\u30FC\u30BF",
604
608
  "Template name": "\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D",
605
609
  Templates: "\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",
610
+ "Tenancy mode": "\u30C6\u30CA\u30F3\u30C8\u5206\u96E2\u30E2\u30FC\u30C9",
611
+ "Tenant inherited": "\u73FE\u5728\u306E\u30C6\u30CA\u30F3\u30C8\u3068\u5B50\u5B6B\u30C6\u30CA\u30F3\u30C8",
612
+ "Tenant scoped": "\u73FE\u5728\u306E\u30C6\u30CA\u30F3\u30C8\u306E\u307F",
606
613
  "The deletion was successful.": "\u524A\u9664\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002",
607
614
  "The field has been deleted": "\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F",
608
615
  'The {{type}} "{{name}}" may have been deleted. Please remove this {{blockType}}.': '{{type}} "{{name}}" \u306F\u524A\u9664\u3055\u308C\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E {{blockType}} \u3092\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002',
@@ -693,6 +700,8 @@ module.exports = {
693
700
  "\u2260": "\u2260",
694
701
  "\u2264": "\u2264",
695
702
  "\u2265": "\u2265",
703
+ "\u26A0 Tenant isolation warning: SQL collections do not support tenant isolation. The SQL statement is executed as-is with no automatic tenantId filtering. If tenant-scoped data access is needed, manually include tenantId conditions in your SQL, or use a general collection with proper tenancy configuration.": "\u26A0 \u30C6\u30CA\u30F3\u30C8\u5206\u96E2\u306E\u8B66\u544A: SQL \u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u306F\u30C6\u30CA\u30F3\u30C8\u5206\u96E2\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002SQL \u6587\u306F\u305D\u306E\u307E\u307E\u5B9F\u884C\u3055\u308C\u3001tenantId \u30D5\u30A3\u30EB\u30BF\u30FC\u306F\u81EA\u52D5\u7684\u306B\u8FFD\u52A0\u3055\u308C\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u30B9\u30B3\u30FC\u30D7\u306E\u30C7\u30FC\u30BF\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u5834\u5408\u306F\u3001SQL \u306B tenantId \u6761\u4EF6\u3092\u624B\u52D5\u3067\u8FFD\u52A0\u3059\u308B\u304B\u3001\u9069\u5207\u306A tenancy \u8A2D\u5B9A\u3092\u6301\u3064\u901A\u5E38\u306E\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
704
+ "\u26A0 Tenant isolation warning: View collections do not support tenant isolation. Queries are executed as raw SQL with no automatic tenantId filtering. If tenant-level data isolation is required, implement row-level security policies (e.g. PostgreSQL RLS) on the underlying database view.": "\u26A0 \u30C6\u30CA\u30F3\u30C8\u5206\u96E2\u306E\u8B66\u544A: \u30D3\u30E5\u30FC\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u306F\u30C6\u30CA\u30F3\u30C8\u5206\u96E2\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u30AF\u30A8\u30EA\u306F\u751F\u306E SQL \u3068\u3057\u3066\u5B9F\u884C\u3055\u308C\u3001tenantId \u30D5\u30A3\u30EB\u30BF\u30FC\u306F\u81EA\u52D5\u7684\u306B\u8FFD\u52A0\u3055\u308C\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u5358\u4F4D\u306E\u30C7\u30FC\u30BF\u5206\u96E2\u304C\u5FC5\u8981\u306A\u5834\u5408\u306F\u3001\u57FA\u306B\u306A\u308B\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D3\u30E5\u30FC\u3067\u884C\u30EC\u30D9\u30EB\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30DD\u30EA\u30B7\u30FC\uFF08\u4F8B: PostgreSQL RLS\uFF09\u3092\u5B9F\u88C5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
696
705
  "12 hour": "12 \u6642\u9593\u5236",
697
706
  "24 hour": "24 \u6642\u9593\u5236"
698
707
  };
@@ -84,6 +84,7 @@ module.exports = {
84
84
  "Allow to design pages": "\uD398\uC774\uC9C0 \uB514\uC790\uC778 \uD5C8\uC6A9",
85
85
  "Allow to manage plugins": "\uD50C\uB7EC\uADF8\uC778 \uAD00\uB9AC \uD5C8\uC6A9",
86
86
  "Allows configuration of the whole system, including UI, collections, permissions, etc.": "\uC804\uCCB4 \uC2DC\uC2A4\uD15C\uC744 \uAD6C\uC131\uD558\uB294 \uAC83\uC744 \uD5C8\uC6A9\uD569\uB2C8\uB2E4. UI, \uB370\uC774\uD130 \uD14C\uC774\uBE14, \uAD8C\uD55C \uB4F1\uC744 \uD3EC\uD568\uD569\uB2C8\uB2E4.",
87
+ "Allows selected tenants to read records that do not have a tenant marker.": "\uC120\uD0DD\uD55C \uD14C\uB10C\uD2B8\uAC00 \uD14C\uB10C\uD2B8 \uD45C\uC2DC\uAC00 \uC5C6\uB294 \uB808\uCF54\uB4DC\uB97C \uC77D\uC744 \uC218 \uC788\uB3C4\uB85D \uD5C8\uC6A9\uD569\uB2C8\uB2E4.",
87
88
  "Allows to clear cache, reboot application": "\uCE90\uC2DC \uC9C0\uC6B0\uAE30, \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC7AC\uC2DC\uC791 \uD5C8\uC6A9",
88
89
  "Allows to configure interface": "\uC778\uD130\uD398\uC774\uC2A4 \uAD6C\uC131\uC744 \uD5C8\uC6A9\uD569\uB2C8\uB2E4",
89
90
  "Allows to configure plugins": "\uD50C\uB7EC\uADF8\uC778 \uAD6C\uC131\uC744 \uD5C8\uC6A9\uD569\uB2C8\uB2E4",
@@ -188,6 +189,7 @@ module.exports = {
188
189
  "Connect to database view": "\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uBDF0\uC5D0 \uC5F0\uACB0",
189
190
  Constant: "\uC0C1\uC218",
190
191
  "Constant value": "\uC0C1\uC218 \uAC12",
192
+ "Controls whether records are isolated by the current tenant.": "\uB808\uCF54\uB4DC\uAC00 \uD604\uC7AC \uD14C\uB10C\uD2B8\uBCC4\uB85C \uACA9\uB9AC\uB418\uB294\uC9C0 \uC81C\uC5B4\uD569\uB2C8\uB2E4.",
191
193
  "Convert reference to duplicate": "\uCC38\uC870\uB97C \uBCF5\uC81C\uB85C \uBCC0\uD658",
192
194
  "Copy into the form and continue to fill in": "\uD3FC\uC5D0 \uBCF5\uC0AC\uD558\uACE0 \uACC4\uC18D \uCC44\uC6B0\uAE30",
193
195
  "Core Version": "\uD575\uC2EC \uBC84\uC804",
@@ -456,6 +458,7 @@ module.exports = {
456
458
  "Last week": "\uC9C0\uB09C \uC8FC",
457
459
  "Last year": "\uC791\uB144",
458
460
  "Leave it blank, unless you need a custom intermediate table": "\uC0AC\uC6A9\uC790 \uC815\uC758 \uC911\uAC04 \uD14C\uC774\uBE14\uC774 \uD544\uC694\uD558\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uBE44\uC6CC \uB450\uC138\uC694",
461
+ "Legacy data visible to tenants": "\uD14C\uB10C\uD2B8\uC5D0 \uD45C\uC2DC\uD560 \uB808\uAC70\uC2DC \uB370\uC774\uD130",
459
462
  Length: "\uAE38\uC774",
460
463
  License: "\uB77C\uC774\uC120\uC2A4",
461
464
  Lime: "\uB77C\uC784",
@@ -715,6 +718,7 @@ module.exports = {
715
718
  "Set validation rules": "\uC720\uD6A8\uC131 \uAC80\uC0AC \uADDC\uCE59 \uC124\uC815",
716
719
  Setting: "\uC124\uC815",
717
720
  Settings: "\uC124\uC815",
721
+ "Shared collection": "\uACF5\uC720 \uCEEC\uB809\uC158",
718
722
  "Show lunar": "\uC74C\uB825 \uD45C\uC2DC",
719
723
  "Show time": "\uC2DC\uAC04 \uD45C\uC2DC",
720
724
  "Sign in": "\uB85C\uADF8\uC778",
@@ -779,6 +783,9 @@ module.exports = {
779
783
  "Template mode": "\uD15C\uD50C\uB9BF \uBAA8\uB4DC",
780
784
  "Template name": "\uD15C\uD50C\uB9BF \uC774\uB984",
781
785
  Templates: "\uD15C\uD50C\uB9BF",
786
+ "Tenancy mode": "\uD14C\uB10C\uC2DC \uBAA8\uB4DC",
787
+ "Tenant inherited": "\uD604\uC7AC \uD14C\uB10C\uD2B8 \uBC0F \uD558\uC704 \uD14C\uB10C\uD2B8",
788
+ "Tenant scoped": "\uD604\uC7AC \uD14C\uB10C\uD2B8\uB9CC",
782
789
  "The application is reloading, please do not close the page.": "\uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC774 \uB2E4\uC2DC \uB85C\uB4DC\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uD398\uC774\uC9C0\uB97C \uB2EB\uC9C0 \uB9C8\uC2ED\uC2DC\uC624.",
783
790
  "The deletion was successful.": "\uC0AD\uC81C\uAC00 \uC131\uACF5\uD588\uC2B5\uB2C8\uB2E4.",
784
791
  "The field has been deleted": "\uD544\uB4DC\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",
@@ -890,6 +897,8 @@ module.exports = {
890
897
  "\u2260": "\u2260",
891
898
  "\u2264": "\u2264",
892
899
  "\u2265": "\u2265",
900
+ "\u26A0 Tenant isolation warning: SQL collections do not support tenant isolation. The SQL statement is executed as-is with no automatic tenantId filtering. If tenant-scoped data access is needed, manually include tenantId conditions in your SQL, or use a general collection with proper tenancy configuration.": "\u26A0 \uD14C\uB10C\uD2B8 \uACA9\uB9AC \uACBD\uACE0: SQL \uCEEC\uB809\uC158\uC740 \uD14C\uB10C\uD2B8 \uACA9\uB9AC\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. SQL \uBB38\uC740 \uADF8\uB300\uB85C \uC2E4\uD589\uB418\uBA70 tenantId \uD544\uD130\uAC00 \uC790\uB3D9\uC73C\uB85C \uCD94\uAC00\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD14C\uB10C\uD2B8 \uBC94\uC704 \uB370\uC774\uD130\uC5D0 \uC811\uADFC\uD574\uC57C \uD558\uB294 \uACBD\uC6B0 SQL\uC5D0 tenantId \uC870\uAC74\uC744 \uC9C1\uC811 \uCD94\uAC00\uD558\uAC70\uB098 \uC801\uC808\uD55C tenancy \uC124\uC815\uC774 \uC788\uB294 \uC77C\uBC18 \uCEEC\uB809\uC158\uC744 \uC0AC\uC6A9\uD558\uC138\uC694.",
901
+ "\u26A0 Tenant isolation warning: View collections do not support tenant isolation. Queries are executed as raw SQL with no automatic tenantId filtering. If tenant-level data isolation is required, implement row-level security policies (e.g. PostgreSQL RLS) on the underlying database view.": "\u26A0 \uD14C\uB10C\uD2B8 \uACA9\uB9AC \uACBD\uACE0: \uBDF0 \uCEEC\uB809\uC158\uC740 \uD14C\uB10C\uD2B8 \uACA9\uB9AC\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uCFFC\uB9AC\uB294 \uC6D0\uC2DC SQL\uB85C \uC2E4\uD589\uB418\uBA70 tenantId \uD544\uD130\uAC00 \uC790\uB3D9\uC73C\uB85C \uCD94\uAC00\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD14C\uB10C\uD2B8 \uC218\uC900 \uB370\uC774\uD130 \uACA9\uB9AC\uAC00 \uD544\uC694\uD55C \uACBD\uC6B0 \uAE30\uBCF8 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uBDF0\uC5D0 \uD589 \uC218\uC900 \uBCF4\uC548 \uC815\uCC45(\uC608: PostgreSQL RLS)\uC744 \uAD6C\uD604\uD558\uC138\uC694.",
893
902
  "12 hour": "12 \uC2DC\uAC04",
894
903
  "24 hour": "24 \uC2DC\uAC04"
895
904
  };
@@ -77,6 +77,7 @@ module.exports = {
77
77
  "Allow to manage plugins": "Permitir gerenciar plugins",
78
78
  "Allow uploading multiple files": "Permitir upload de v\xE1rios arquivos",
79
79
  "Allows configuration of the whole system, including UI, collections, permissions, etc.": "Permite a configura\xE7\xE3o de todo o sistema, incluindo UI, cole\xE7\xF5es, permiss\xF5es, etc.",
80
+ "Allows selected tenants to read records that do not have a tenant marker.": "Permite que os tenants selecionados leiam registros que n\xE3o t\xEAm uma marca de tenant.",
80
81
  "Allows to configure interface": "Permite configurar a interface",
81
82
  "Allows to configure plugins": "Permite configurar plugins",
82
83
  "Allows to install, activate, disable plugins": "Permite instalar, ativar, desativar plugins",
@@ -172,6 +173,7 @@ module.exports = {
172
173
  "Configure permissions": "Configurar permiss\xF5es",
173
174
  "Confirm password": "Confirmar senha",
174
175
  "Connect data blocks": "Conectar blocos de dados",
176
+ "Controls whether records are isolated by the current tenant.": "Controla se os registros s\xE3o isolados pelo tenant atual.",
175
177
  "Convert reference to duplicate": "Converter refer\xEAncia em duplicado",
176
178
  "Cor de fundo do bot\xE3o": "Cor de fundo do bot\xE3o",
177
179
  "Core Version": "Vers\xE3o do n\xFAcleo",
@@ -385,6 +387,7 @@ module.exports = {
385
387
  "Last updated at": "\xDAltima atualiza\xE7\xE3o em",
386
388
  "Last updated by": "\xDAltima atualiza\xE7\xE3o por",
387
389
  "Leave it blank, unless you need a custom intermediate table": "Deixe em branco, a menos que precise de uma tabela intermedi\xE1ria personalizada",
390
+ "Legacy data visible to tenants": "Dados legados vis\xEDveis para tenants",
388
391
  Length: "Comprimento",
389
392
  License: "Licen\xE7a",
390
393
  Lime: "Lima",
@@ -579,6 +582,7 @@ module.exports = {
579
582
  "Set default value": "Definir valor padr\xE3o",
580
583
  "Set the data scope": "Definir o escopo de dados",
581
584
  "Set validation rules": "Definir regras de valida\xE7\xE3o",
585
+ "Shared collection": "Cole\xE7\xE3o compartilhada",
582
586
  "Show lunar": "Mostrar calend\xE1rio lunar",
583
587
  "Show time": "Exibir hora",
584
588
  "Sign in": "Entrar",
@@ -632,6 +636,9 @@ module.exports = {
632
636
  "Template Data": "Dados do modelo",
633
637
  "Template name": "Nome do modelo",
634
638
  Templates: "Modelos",
639
+ "Tenancy mode": "Modo de tenancy",
640
+ "Tenant inherited": "Tenant atual e descendentes",
641
+ "Tenant scoped": "Apenas tenant atual",
635
642
  "Tencent COS": "Tencent COS",
636
643
  "The deletion was successful.": "A exclus\xE3o foi bem sucedida.",
637
644
  "The field has been deleted": "O campo foi exclu\xEDdo",
@@ -734,6 +741,8 @@ module.exports = {
734
741
  "\u2260": "\u2260",
735
742
  "\u2264": "\u2264",
736
743
  "\u2265": "\u2265",
744
+ "\u26A0 Tenant isolation warning: SQL collections do not support tenant isolation. The SQL statement is executed as-is with no automatic tenantId filtering. If tenant-scoped data access is needed, manually include tenantId conditions in your SQL, or use a general collection with proper tenancy configuration.": "\u26A0 Aviso de isolamento de tenants: cole\xE7\xF5es SQL n\xE3o oferecem suporte a isolamento de tenants. A instru\xE7\xE3o SQL \xE9 executada como est\xE1, sem filtro tenantId autom\xE1tico. Se for necess\xE1rio acessar dados isolados por tenant, inclua manualmente condi\xE7\xF5es tenantId no SQL ou use uma cole\xE7\xE3o geral com a configura\xE7\xE3o de tenancy adequada.",
745
+ "\u26A0 Tenant isolation warning: View collections do not support tenant isolation. Queries are executed as raw SQL with no automatic tenantId filtering. If tenant-level data isolation is required, implement row-level security policies (e.g. PostgreSQL RLS) on the underlying database view.": "\u26A0 Aviso de isolamento de tenants: cole\xE7\xF5es de visualiza\xE7\xE3o n\xE3o oferecem suporte a isolamento de tenants. As consultas s\xE3o executadas como SQL bruto, sem filtro tenantId autom\xE1tico. Se for necess\xE1rio isolamento de dados por tenant, implemente pol\xEDticas de seguran\xE7a em n\xEDvel de linha (por exemplo, PostgreSQL RLS) na visualiza\xE7\xE3o de banco de dados subjacente.",
737
746
  "12 hour": "12 horas",
738
747
  "24 hour": "24 horas"
739
748
  };