pgkiln 0.57.0 → 0.58.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.
@@ -1046,4 +1046,344 @@ export const en = {
1046
1046
  'te.failed_stmt': 'Failed statement',
1047
1047
  'te.title_table': 'Table {table}',
1048
1048
  'te.title_create': 'Create table',
1049
+ // ------------------------------------------------------------ Shared Components (sprint 124)
1050
+ 'comp.nav_entry': 'Navigation entry',
1051
+ 'comp.nav_entry.plural': 'Navigation menu',
1052
+ 'comp.authz_scheme': 'Authorization scheme',
1053
+ 'comp.authz_scheme.plural': 'Authorization schemes',
1054
+ 'comp.build_option': 'Build option',
1055
+ 'comp.build_option.plural': 'Build options',
1056
+ 'comp.page_group': 'Page group',
1057
+ 'comp.page_group.plural': 'Page groups',
1058
+ 'comp.lov': 'List of values',
1059
+ 'comp.lov.plural': 'Lists of values',
1060
+ 'comp.app_item': 'Application item',
1061
+ 'comp.app_item.plural': 'Application items',
1062
+ 'comp.app_process': 'Application process',
1063
+ 'comp.app_process.plural': 'Application processes',
1064
+ 'comp.app_computation': 'Application computation',
1065
+ 'comp.app_computation.plural': 'Application computations',
1066
+ 'comp.shortcut': 'Shortcut',
1067
+ 'comp.shortcut.plural': 'Shortcuts',
1068
+ 'comp.report_query': 'Report query',
1069
+ 'comp.report_query.plural': 'Report queries',
1070
+ 'comp.component_group': 'Component group',
1071
+ 'comp.component_group.plural': 'Component groups',
1072
+ 'comp.automation': 'Automation',
1073
+ 'comp.automation.plural': 'Automations',
1074
+ 'comp.automation_action': 'Automation action',
1075
+ 'comp.automation_action.plural': 'Automation actions',
1076
+ 'comp.report_layout': 'Report layout',
1077
+ 'comp.report_layout.plural': 'Report layouts',
1078
+ 'comp.document_template': 'Document template',
1079
+ 'comp.document_template.plural': 'Document templates',
1080
+ 'comp.task_definition': 'Task definition',
1081
+ 'comp.task_definition.plural': 'Task definitions',
1082
+ 'comp.workflow_definition': 'Workflow',
1083
+ 'comp.workflow_definition.plural': 'Workflows',
1084
+ 'comp.rest_module': 'REST module',
1085
+ 'comp.rest_module.plural': 'REST modules',
1086
+ 'comp.template_component': 'Template component',
1087
+ 'comp.template_component.plural': 'Template components',
1088
+ 'comp.web_credential': 'Web credential',
1089
+ 'comp.web_credential.plural': 'Web credentials',
1090
+ 'comp.rest_source': 'REST data source',
1091
+ 'comp.rest_source.plural': 'REST data sources',
1092
+ 'comp.data_load_def': 'Data load definition',
1093
+ 'comp.data_load_def.plural': 'Data load definitions',
1094
+ 'comp.list': 'List',
1095
+ 'comp.list.plural': 'Lists',
1096
+ 'comp.list_entry': 'List entry',
1097
+ 'comp.list_entry.plural': 'List entries',
1098
+ 'comp.supporting_script': 'Supporting script',
1099
+ 'comp.supporting_script.plural': 'Supporting objects',
1100
+ 'comp.search_config': 'Search configuration',
1101
+ 'comp.search_config.plural': 'Search configurations',
1102
+ 'comp.email_template': 'E-mail template',
1103
+ 'comp.email_template.plural': 'E-mail templates',
1104
+ 'comp.app_setting': 'Application setting',
1105
+ 'comp.app_setting.plural': 'Application settings',
1106
+ 'comp.dynamic_translation': 'Dynamic translation',
1107
+ 'comp.dynamic_translation.plural': 'Dynamic translations',
1108
+ 'sc.group.logic': 'Application Logic',
1109
+ 'sc.group.security': 'Security',
1110
+ 'sc.group.other': 'Other Components',
1111
+ 'sc.group.navigation': 'Navigation and Search',
1112
+ 'sc.group.ui': 'User Interface',
1113
+ 'sc.group.files': 'Files and Reports',
1114
+ 'sc.group.data': 'Data Sources',
1115
+ 'sc.group.workflows': 'Workflows and Automations',
1116
+ 'sc.group.globalization': 'Globalization',
1117
+ 'sc.group.ai': 'Generative AI',
1118
+ 'sc.item.application_items': 'Application Items',
1119
+ 'sc.item.application_processes': 'Application Processes',
1120
+ 'sc.item.application_computations': 'Application Computations',
1121
+ 'sc.item.application_settings': 'Application Settings',
1122
+ 'sc.item.build_options': 'Build Options',
1123
+ 'sc.item.application_definition': 'Application Definition',
1124
+ 'sc.item.access_control': 'Access Control',
1125
+ 'sc.item.authentication': 'Authentication',
1126
+ 'sc.item.authorization_schemes': 'Authorization Schemes',
1127
+ 'sc.item.security_attributes': 'Security Attributes',
1128
+ 'sc.item.sign_in_and_session_management': 'Sign-in and Session Management',
1129
+ 'sc.item.lists_of_values': 'Lists of Values',
1130
+ 'sc.item.lists': 'Lists',
1131
+ 'sc.item.list_entries': 'List Entries',
1132
+ 'sc.item.email_templates': 'Email Templates',
1133
+ 'sc.item.shortcuts': 'Shortcuts',
1134
+ 'sc.item.component_groups': 'Component Groups',
1135
+ 'sc.item.supporting_objects': 'Supporting Objects',
1136
+ 'sc.item.subscriptions': 'Subscriptions',
1137
+ 'sc.item.navigation_menu': 'Navigation Menu',
1138
+ 'sc.item.navigation_bar_list': 'Navigation Bar List',
1139
+ 'sc.item.breadcrumbs': 'Breadcrumbs',
1140
+ 'sc.item.page_groups': 'Page Groups',
1141
+ 'sc.item.search_configurations': 'Search Configurations',
1142
+ 'sc.item.themes_and_theme_roller': 'Themes and Theme Roller',
1143
+ 'sc.item.user_interface_attributes': 'User Interface Attributes',
1144
+ 'sc.item.template_components': 'Template Components',
1145
+ 'sc.item.plug_ins': 'Plug-ins',
1146
+ 'sc.item.component_settings': 'Component Settings',
1147
+ 'sc.item.progressive_web_app': 'Progressive Web App',
1148
+ 'sc.item.static_application_files': 'Static Application Files',
1149
+ 'sc.item.report_layouts': 'Report Layouts',
1150
+ 'sc.item.report_queries': 'Report Queries',
1151
+ 'sc.item.document_templates': 'Document Templates',
1152
+ 'sc.item.rest_data_sources': 'REST Data Sources',
1153
+ 'sc.item.web_credentials': 'Web Credentials',
1154
+ 'sc.item.restful_services': 'RESTful Services',
1155
+ 'sc.item.data_load_definitions': 'Data Load Definitions',
1156
+ 'sc.item.workflows': 'Workflows',
1157
+ 'sc.item.task_definitions': 'Task Definitions',
1158
+ 'sc.item.automations': 'Automations',
1159
+ 'sc.item.translations_and_text_messages': 'Translations and Text Messages',
1160
+ 'sc.item.dynamic_translations': 'Dynamic Translations',
1161
+ 'sc.item.globalization_attributes': 'Globalization Attributes',
1162
+ 'sc.item.ai_services': 'AI Services',
1163
+ 'sc.item.ai_agents': 'AI Agents',
1164
+ 'sc.entries': 'Entries',
1165
+ 'sc.list_sql': 'This list shows the rows of its query; entries below are not used.',
1166
+ 'sc.no_entries': 'No entries yet.',
1167
+ 'sc.add_entry': '+ Add entry',
1168
+ 'sc.breadcrumbs_help': "A page's breadcrumb lists the pages above it: each page names its breadcrumb parent (Page Designer → page → Breadcrumb parent). Pages without one show Home.",
1169
+ 'sc.cs_help': "Defaults for the application's built-in component types, used where a component sets nothing itself. Empty: pgkiln's default.",
1170
+ 'sc.cs_now': '{help} {min}–{max}; now {now}.',
1171
+ 'sc.cs_saved': 'Component settings saved.',
1172
+ 'sc.intro': 'The components the pages of {app} share.',
1173
+ 'sc.tree_view': 'Tree view',
1174
+ 'sc.create': 'Create',
1175
+ 'sc.search': 'Search',
1176
+ 'sc.name': 'Name',
1177
+ 'sc.details': 'Details',
1178
+ 'sc.nothing_matches': 'Nothing matches.',
1179
+ 'sc.none_yet': 'No {what} yet.',
1180
+ 'sc.count': '{n} of {total}',
1181
+ 'sc.new': 'New {what}',
1182
+ 'sc.save': 'Save',
1183
+ 'sc.run_supporting': 'Run supporting objects…',
1184
+ 'sc.delete_confirm': 'Delete this {what}?',
1185
+ 'sc.delete': 'Delete',
1186
+ 'sc.not_found': 'Not found.',
1187
+ 'sc.groups_title': 'Identity-provider groups → roles',
1188
+ 'sc.groups_help': 'With single sign-on, members of these groups get the role in this app, and may sign in even without being listed above.',
1189
+ 'sc.remove_mapping': 'Remove mapping {group} to {role}',
1190
+ 'sc.no_groups': 'No group mappings.',
1191
+ 'sc.group_label': 'Group (as in the token)',
1192
+ 'sc.group_ph': 'e.g. hr-managers',
1193
+ 'sc.role_label': 'Role in this app',
1194
+ 'sc.role_ph': 'e.g. manager',
1195
+ 'sc.add_mapping': 'Add mapping',
1196
+ 'sc.access': 'Access control',
1197
+ 'sc.who': 'Who may sign in',
1198
+ 'sc.who.assigned': 'Only accounts listed below (role-based access)',
1199
+ 'sc.who.any': 'Any active account in the directory',
1200
+ 'sc.access_help': "Accounts live in the {directory}; here you grant them access to {app} and assign roles, which authorization schemes and {fn} check. Role changes apply at the user's next sign-in (their sessions in this app end).",
1201
+ 'sc.directory': 'user directory',
1202
+ 'sc.account': 'Account',
1203
+ 'sc.roles_in_app': 'Roles in this app',
1204
+ 'sc.last_signin': 'Last sign-in',
1205
+ 'sc.roles': 'Roles',
1206
+ 'sc.inactive': '(inactive)',
1207
+ 'sc.roles_of': 'Roles of {user}',
1208
+ 'sc.no_roles': 'no roles',
1209
+ 'sc.revoke_confirm': "Revoke {user}'s access to {app}?",
1210
+ 'sc.revoke': 'Revoke',
1211
+ 'sc.no_access': 'No accounts have access yet.',
1212
+ 'sc.grant': 'Grant access',
1213
+ 'sc.username_ph': 'username',
1214
+ 'sc.existing': 'An existing account.',
1215
+ 'sc.create_in_users': 'Create accounts in Users.',
1216
+ 'sc.roles_ph': 'comma separated, or pick below',
1217
+ 'sc.tree.security': 'Security',
1218
+ 'sc.tree.globalization': 'Globalization',
1219
+ 'sc.tree.translations': 'Translations and text messages',
1220
+ 'sc.tree.files': 'Files and plug-ins',
1221
+ 'sc.tree.static': 'Static application files',
1222
+ 'sc.tree.subscriptions': 'Subscriptions',
1223
+ 'sc.tree.subscribers': 'Subscriptions and subscribers',
1224
+ 'sc.add_kind': 'Add {what}',
1225
+ 'sc.add': '+ Add',
1226
+ 'sc.review_run': 'Review and run…',
1227
+ 'sc.edit': 'Edit',
1228
+ 'sc.saved': '{what} saved.',
1229
+ 'sc.deleted': '{what} deleted.',
1230
+ 'sc.access_saved': 'Access control saved.',
1231
+ 'sc.no_account': 'There is no account "{user}". Create it under Users first.',
1232
+ 'sc.granted': 'Access granted to {user}.',
1233
+ 'sc.mapping_added': 'Group mapping added. It applies at the next sign-in.',
1234
+ 'sc.mapping_removed': 'Group mapping removed. It applies at the next sign-in.',
1235
+ 'sc.roles_saved': 'Roles saved. They apply at the next sign-in.',
1236
+ 'sc.revoked': 'Access revoked.',
1237
+ // ------------------------------------------------------------ Application settings (sprint 124)
1238
+ 'st.tab.definition': 'Definition',
1239
+ 'st.tab.security': 'Security',
1240
+ 'st.tab.signin': 'Sign-in',
1241
+ 'st.tab.ui': 'User Interface',
1242
+ 'st.tab.globalization': 'Globalization',
1243
+ 'st.tab.errors': 'Errors and Sessions',
1244
+ 'st.tab.pwa': 'Progressive Web App',
1245
+ 'st.settings': 'Settings',
1246
+ 'st.name': 'Name',
1247
+ 'st.alias': 'Alias',
1248
+ 'st.version': 'Version',
1249
+ 'st.version_ph': 'Release 1.0',
1250
+ 'st.version_help': "Shown in the footer of the application's pages; empty: none.",
1251
+ 'st.home_page': 'Home page',
1252
+ 'st.app_type': 'Application type',
1253
+ 'st.app_type_help': 'Theme and library applications offer their theme or shared components to other applications (Shared Components → Subscriptions); Create application can start from a boilerplate application.',
1254
+ 'st.type.standard': 'Standard',
1255
+ 'st.type.theme': 'Theme application',
1256
+ 'st.type.library': 'Library application',
1257
+ 'st.type.boilerplate': 'Boilerplate application',
1258
+ 'st.authentication': 'Authentication',
1259
+ 'st.auth.app_users': 'App users (login page)',
1260
+ 'st.auth.header': 'HTTP header (reverse proxy)',
1261
+ 'st.auth.database': 'Database accounts (PostgreSQL roles)',
1262
+ 'st.auth.custom': 'Custom (a PL/pgSQL function)',
1263
+ 'st.auth.none': 'None (public)',
1264
+ 'st.db_role': 'Database role (parsing schema)',
1265
+ 'st.db_role_help': 'All application SQL runs as this role (SET LOCAL ROLE), so grants and row level security apply. Leave empty only for trusted internal apps.',
1266
+ 'st.debug': 'Debug mode',
1267
+ 'st.debug_help': 'Shows database error details to end users. Development only.',
1268
+ 'st.debug_msgs': 'Debug messages',
1269
+ 'st.debug_on': 'on, level {level}',
1270
+ 'st.off': 'off',
1271
+ 'st.debug_msgs_help': "Records every request's steps with timings and the messages of {fn}, kept {days} days.",
1272
+ 'st.header_title': 'HTTP header authentication',
1273
+ 'st.header_intro': 'Only used when Authentication is "HTTP header". A reverse proxy or single sign-on gateway signs users in and passes the user name in a header; pgkiln trusts it only from the proxy addresses in {env}',
1274
+ 'st.header_unset': 'not set on this server: header sign-in is refused',
1275
+ 'st.header_name': 'User name header',
1276
+ 'st.header_name_help': 'The request header with the user name (APEX: HTTP Header Variable). Empty: X-Remote-User. A changed or missing header ends the session.',
1277
+ 'st.logout_url': 'Sign-out URL',
1278
+ 'st.logout_url_ph': 'e.g. https://sso.example.com/logout',
1279
+ 'st.logout_url_help': "Where \"Sign out\" goes after the session ends, usually the proxy's own sign-out page. Empty: a \"signed out\" page.",
1280
+ 'st.header_auto': 'Create accounts automatically',
1281
+ 'st.header_auto_help': 'An unknown user name gets a new account with access to this app. Otherwise the account must exist and have access.',
1282
+ 'st.db_title': 'Database accounts',
1283
+ 'st.db_intro': "Only used when Authentication is \"Database accounts\". Users sign in with a PostgreSQL login role and its password, checked by a short connection to this database as that role. Superusers and pgkiln's own roles are always refused; with neither field set nobody can sign in.",
1284
+ 'st.db_roles': 'Allowed roles',
1285
+ 'st.db_roles_ph': 'e.g. alice, bob',
1286
+ 'st.db_roles_help': 'Login roles that may sign in, comma separated (exact names).',
1287
+ 'st.db_member': 'Or members of role',
1288
+ 'st.db_member_ph': 'e.g. app_users_group',
1289
+ 'st.db_member_help': 'Every member of this role may sign in too.',
1290
+ 'st.custom_title': 'Custom authentication',
1291
+ 'st.custom_intro': "Only used when Authentication is \"Custom\". Your own PL/pgSQL checks the user name and password on the sign-in form, as the application's database role; the password is passed as a parameter and never logged. Failed attempts are throttled like other sign-ins. With neither field set nobody can sign in.",
1292
+ 'st.custom_fn': 'Function name',
1293
+ 'st.custom_fn_ph': 'e.g. app.check_login',
1294
+ 'st.custom_fn_help': "A function (p_username text, p_password text) returns boolean, in lower case, optionally with its schema. The app's role needs EXECUTE on it. Takes precedence over the body below.",
1295
+ 'st.custom_body': 'Or function body',
1296
+ 'st.custom_body_help': 'PL/pgSQL with p_username and p_password, returning true for a valid sign-in, e.g. {example}',
1297
+ 'st.custom_post': 'Post-authentication code',
1298
+ 'st.custom_post_help': 'Optional PL/pgSQL run after a successful check, with p_username (and meta.app_user()), e.g. to record the last sign-in. Raising an exception refuses the sign-in. Application processes "after login" run afterwards as usual.',
1299
+ 'st.signin': 'Sign-in',
1300
+ 'st.methods': 'Sign-in methods',
1301
+ 'st.local': 'Username and password',
1302
+ 'st.ldap': 'Passwords from LDAP: {name}',
1303
+ 'st.disabled': '(disabled)',
1304
+ 'st.no_ldap': 'No LDAP directories configured. {add} to check passwords against LDAP or Active Directory.',
1305
+ 'st.add_one': 'Add one',
1306
+ 'st.ldap_help': 'LDAP passwords are checked by the username and password form, after local accounts, so keep that method on.',
1307
+ 'st.session_group': 'Session sharing group',
1308
+ 'st.session_group_ph': 'empty: not shared',
1309
+ 'st.session_group_help': 'Applications with the same group (and the user directory as authentication) share a sign-in: after signing in to one, the others open without a new sign-in, each with its own access check and roles; signing out of one signs out of all (APEX: session sharing). Lower case letters, digits and _.',
1310
+ 'st.remember': '"Keep me signed in" for (days)',
1311
+ 'st.remember_ph': 'empty: not offered',
1312
+ 'st.remember_help': 'Offers a checkbox on the sign-in form (APEX: persistent authentication). The browser stays signed in for this many days after the sign-in, also when the session ends; signing out, a new password, deactivation or removed access ends it. 1 to 365.',
1313
+ 'st.sso': 'Sign in with {name}',
1314
+ 'st.no_sso': 'No identity providers configured. {add} for single sign-on.',
1315
+ 'st.theme': 'Theme',
1316
+ 'st.base': 'Base style',
1317
+ 'st.base.iris': 'Iris (the default for new applications)',
1318
+ 'st.base.lavender': 'Lavender (Iris until pgkiln 0.41)',
1319
+ 'st.base.standard': 'Standard (pgkiln until 0.28)',
1320
+ 'st.base_help': 'Colours, corners, font and shadows of the whole application, light and dark. The colours below override its accent and header.',
1321
+ 'st.accent': 'Accent colour',
1322
+ 'st.header_colour': 'Header colour',
1323
+ 'st.accent_dark': 'Accent colour in dark mode',
1324
+ 'st.header_dark': 'Header colour in dark mode',
1325
+ 'st.own_colour': "Use this colour (else the base style's dark palette)",
1326
+ 'st.nav': 'Navigation menu',
1327
+ 'st.nav.side': 'Side (collapsible)',
1328
+ 'st.nav.top': 'Top bar',
1329
+ 'st.nav_help': 'On tablets and phones the menu is always a drawer.',
1330
+ 'st.nav_list': 'Navigation menu list',
1331
+ 'st.nav_entries': '- the navigation entries -',
1332
+ 'st.nav_list_help': 'A list (Shared Components → Lists) shown as the navigation menu instead of the navigation entries.',
1333
+ 'st.navbar_list': 'Navigation bar list',
1334
+ 'st.none_option': '- none -',
1335
+ 'st.navbar_help': 'A list shown as links in the header, next to the user menu.',
1336
+ 'st.missing': '{name} (missing!)',
1337
+ 'st.mode': 'Theme style',
1338
+ 'st.mode.auto': 'Automatic (light or dark, following the device)',
1339
+ 'st.mode.light': 'Light',
1340
+ 'st.mode.dark': 'Dark',
1341
+ 'st.user_choice': 'Users may choose light or dark',
1342
+ 'st.user_choice_help': 'Adds a switch to the user menu and My account; the choice is saved on the account (APEX: "Enable End Users to Choose Theme Style").',
1343
+ 'st.roller': 'Theme Roller: style variants…',
1344
+ 'st.styles_one': '{n} style',
1345
+ 'st.styles': '{n} styles',
1346
+ 'st.no_styles': 'no styles yet',
1347
+ 'st.language': 'Primary language',
1348
+ 'st.language_help': 'The language the app is built in, e.g. en, nl, de, en-GB.',
1349
+ 'st.languages': 'Translated languages',
1350
+ 'st.languages_ph': 'e.g. nl, de',
1351
+ 'st.languages_help': 'Comma separated. Translate texts under Shared Components → Globalization.',
1352
+ 'st.language_from': 'Language derived from',
1353
+ 'st.from.browser': 'Browser (Accept-Language)',
1354
+ 'st.from.user': 'User preference, then browser',
1355
+ 'st.from.primary': 'Always the primary language',
1356
+ 'st.language_from_help': 'Users can also switch with ?lang=xx or the picker on the login page.',
1357
+ 'st.date_format': 'Date format',
1358
+ 'st.date_format_ph': 'e.g. DD-MM-YYYY (empty: per language)',
1359
+ 'st.date_format_help': 'Masks: YYYY YY MM MON MONTH DD DY DAY HH24 HH MI SS AM',
1360
+ 'st.ts_format': 'Date and time format',
1361
+ 'st.ts_format_ph': 'e.g. DD-MM-YYYY HH24:MI',
1362
+ 'st.save_settings': 'Save settings',
1363
+ 'st.delete_confirm': 'Delete application {app} and all its pages?',
1364
+ 'st.delete': 'Delete application',
1365
+ 'st.error_fn': 'Error handling function',
1366
+ 'st.error_fn_ph': 'e.g. sales.error_message',
1367
+ 'st.error_fn_help': "schema.function(jsonb) returns jsonb, run as the application's role: it receives the message and what is known of an error (code, constraint, table, column, component, page, user, internal, reference) and may return {\"message\": \"…\"} to show instead. Empty: none.",
1368
+ 'st.warning': 'Session timeout warning (seconds)',
1369
+ 'st.warning_help': 'Signed-in users are warned this long before their session ends and can stay signed in (0: no warning).',
1370
+ 'st.save': 'Save',
1371
+ 'st.checklist': 'Security checklist',
1372
+ 'st.ck.role': 'Runs as a dedicated database role',
1373
+ 'st.ck.runtime': '(runs as the runtime connection)',
1374
+ 'st.ck.signin': 'Users must sign in',
1375
+ 'st.ck.public': 'Public application',
1376
+ 'st.ck.debug_on': 'Debug mode is on: error details are shown to users',
1377
+ 'st.ck.debug_off': 'Debug mode is off',
1378
+ 'st.ck.msgs_on': 'Debug messages are on (level {level}): every request is recorded',
1379
+ 'st.ck.msgs_off': 'Debug messages are off',
1380
+ 'st.ck.unprotected': 'Pages without checksum protection: {n}',
1381
+ 'st.ck.public_pages': 'Public pages: {n}',
1382
+ 'st.title': '{app} settings',
1383
+ 'st.err.fn_shape': 'The error handling function is schema.function, e.g. sales.error_message.',
1384
+ 'st.err.no_fn': 'There is no function {fn}(jsonb) returning jsonb.',
1385
+ 'st.err.warning': 'The session timeout warning is 0 to 3600 seconds.',
1386
+ 'st.saved': 'Saved.',
1387
+ 'st.settings_saved': 'Settings saved.',
1388
+ 'st.app_deleted': 'Application deleted.',
1049
1389
  } as const;