@solidxai/core 0.1.13-beta.2 → 0.1.13-beta.21
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/CHANGELOG.md +10107 -0
- package/CLAUDE.md +5 -6
- package/README.md +19 -0
- package/dist/commands/run-tests.command.d.ts +9 -1
- package/dist/commands/run-tests.command.d.ts.map +1 -1
- package/dist/commands/run-tests.command.js +69 -6
- package/dist/commands/run-tests.command.js.map +1 -1
- package/dist/commands/seed.command.d.ts +2 -0
- package/dist/commands/seed.command.d.ts.map +1 -1
- package/dist/commands/seed.command.js +21 -0
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/config/cache.options.d.ts.map +1 -1
- package/dist/config/cache.options.js +2 -2
- package/dist/config/cache.options.js.map +1 -1
- package/dist/constants/chatter-message.constants.d.ts +1 -0
- package/dist/constants/chatter-message.constants.d.ts.map +1 -1
- package/dist/constants/chatter-message.constants.js +3 -1
- package/dist/constants/chatter-message.constants.js.map +1 -1
- package/dist/constants/draft-publish-fields.d.ts +2 -0
- package/dist/constants/draft-publish-fields.d.ts.map +1 -0
- package/dist/constants/draft-publish-fields.js +5 -0
- package/dist/constants/draft-publish-fields.js.map +1 -0
- package/dist/constants/error-messages.d.ts +7 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +7 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/media-file-types.d.ts +12 -0
- package/dist/constants/media-file-types.d.ts.map +1 -1
- package/dist/constants/media-file-types.js +66 -1
- package/dist/constants/media-file-types.js.map +1 -1
- package/dist/constants/success-messages.d.ts +3 -0
- package/dist/constants/success-messages.d.ts.map +1 -1
- package/dist/constants/success-messages.js +3 -0
- package/dist/constants/success-messages.js.map +1 -1
- package/dist/constants/user.constants.d.ts +2 -0
- package/dist/constants/user.constants.d.ts.map +1 -0
- package/dist/constants/user.constants.js +5 -0
- package/dist/constants/user.constants.js.map +1 -0
- package/dist/controllers/action-metadata.controller.d.ts +1 -1
- package/dist/controllers/action-metadata.controller.js +1 -1
- package/dist/controllers/agent-event.controller.d.ts +1 -1
- package/dist/controllers/agent-event.controller.js +1 -1
- package/dist/controllers/agent-session.controller.d.ts +1 -1
- package/dist/controllers/agent-session.controller.js +1 -1
- package/dist/controllers/authentication.controller.d.ts +1 -1
- package/dist/controllers/authentication.controller.d.ts.map +1 -1
- package/dist/controllers/authentication.controller.js +4 -3
- package/dist/controllers/authentication.controller.js.map +1 -1
- package/dist/controllers/chatter-message.controller.d.ts +5 -0
- package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.js +14 -0
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/controllers/dashboard-user-layout.controller.d.ts +1 -1
- package/dist/controllers/dashboard-user-layout.controller.js +1 -1
- package/dist/controllers/email-template.controller.d.ts +1 -1
- package/dist/controllers/email-template.controller.js +1 -1
- package/dist/controllers/export-template.controller.d.ts +1 -1
- package/dist/controllers/export-template.controller.d.ts.map +1 -1
- package/dist/controllers/export-template.controller.js +6 -4
- package/dist/controllers/export-template.controller.js.map +1 -1
- package/dist/controllers/export-transaction.controller.d.ts +1 -1
- package/dist/controllers/export-transaction.controller.js +1 -1
- package/dist/controllers/field-metadata.controller.d.ts +2 -2
- package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -1
- package/dist/controllers/import-transaction-error-log.controller.js +1 -1
- package/dist/controllers/import-transaction.controller.d.ts +1 -1
- package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/import-transaction.controller.js +7 -7
- package/dist/controllers/import-transaction.controller.js.map +1 -1
- package/dist/controllers/list-of-values.controller.d.ts +1 -1
- package/dist/controllers/list-of-values.controller.js +1 -1
- package/dist/controllers/locale.controller.d.ts +1 -1
- package/dist/controllers/locale.controller.js +1 -1
- package/dist/controllers/mcp-audit-log.controller.d.ts +1 -1
- package/dist/controllers/mcp-audit-log.controller.js +1 -1
- package/dist/controllers/media.controller.d.ts +2 -2
- package/dist/controllers/media.controller.d.ts.map +1 -1
- package/dist/controllers/media.controller.js +13 -8
- package/dist/controllers/media.controller.js.map +1 -1
- package/dist/controllers/menu-item-metadata.controller.d.ts +1 -1
- package/dist/controllers/menu-item-metadata.controller.js +1 -1
- package/dist/controllers/model-sequence.controller.d.ts +1 -1
- package/dist/controllers/model-sequence.controller.js +1 -1
- package/dist/controllers/module-package.controller.d.ts.map +1 -1
- package/dist/controllers/module-package.controller.js +2 -3
- package/dist/controllers/module-package.controller.js.map +1 -1
- package/dist/controllers/mpin-authentication.controller.d.ts +44 -0
- package/dist/controllers/mpin-authentication.controller.d.ts.map +1 -0
- package/dist/controllers/mpin-authentication.controller.js +102 -0
- package/dist/controllers/mpin-authentication.controller.js.map +1 -0
- package/dist/controllers/mq-message-queue.controller.d.ts +1 -1
- package/dist/controllers/mq-message-queue.controller.js +1 -1
- package/dist/controllers/mq-message.controller.d.ts +1 -1
- package/dist/controllers/mq-message.controller.js +1 -1
- package/dist/controllers/permission-metadata.controller.d.ts +1 -1
- package/dist/controllers/permission-metadata.controller.js +1 -1
- package/dist/controllers/role-metadata.controller.d.ts +1 -1
- package/dist/controllers/role-metadata.controller.js +1 -1
- package/dist/controllers/saved-filters.controller.d.ts +1 -1
- package/dist/controllers/saved-filters.controller.js +1 -1
- package/dist/controllers/scheduled-job.controller.d.ts +1 -1
- package/dist/controllers/scheduled-job.controller.js +1 -1
- package/dist/controllers/security-rule.controller.d.ts +1 -1
- package/dist/controllers/security-rule.controller.js +1 -1
- package/dist/controllers/sms-template.controller.d.ts +1 -1
- package/dist/controllers/sms-template.controller.js +1 -1
- package/dist/controllers/user-activity-history.controller.d.ts +1 -1
- package/dist/controllers/user-activity-history.controller.js +1 -1
- package/dist/controllers/user-view-metadata.controller.d.ts +1 -1
- package/dist/controllers/user-view-metadata.controller.js +1 -1
- package/dist/controllers/user.controller.d.ts +2 -2
- package/dist/controllers/user.controller.js +2 -2
- package/dist/controllers/view-metadata.controller.d.ts +2 -2
- package/dist/controllers/view-metadata.controller.js +1 -1
- package/dist/controllers/workflow-definition.controller.d.ts +1 -1
- package/dist/controllers/workflow-definition.controller.js +1 -1
- package/dist/controllers/workflow-execution-artifact.controller.d.ts +1 -1
- package/dist/controllers/workflow-execution-artifact.controller.js +1 -1
- package/dist/controllers/workflow-execution-log.controller.d.ts +1 -1
- package/dist/controllers/workflow-execution-log.controller.js +1 -1
- package/dist/controllers/workflow-execution.controller.d.ts +1 -1
- package/dist/controllers/workflow-execution.controller.js +1 -1
- package/dist/controllers/workflow-secret.controller.d.ts +1 -1
- package/dist/controllers/workflow-secret.controller.js +1 -1
- package/dist/controllers/workflow-step-execution.controller.d.ts +1 -1
- package/dist/controllers/workflow-step-execution.controller.js +1 -1
- package/dist/controllers/workflow-trigger-execution.controller.d.ts +1 -1
- package/dist/controllers/workflow-trigger-execution.controller.js +1 -1
- package/dist/dtos/basic-filters.dto.d.ts +0 -1
- package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.js +1 -6
- package/dist/dtos/basic-filters.dto.js.map +1 -1
- package/dist/dtos/change-mpin.dto.d.ts +6 -0
- package/dist/dtos/change-mpin.dto.d.ts.map +1 -0
- package/dist/dtos/change-mpin.dto.js +39 -0
- package/dist/dtos/change-mpin.dto.js.map +1 -0
- package/dist/dtos/create-field-metadata.dto.d.ts +3 -6
- package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-field-metadata.dto.js +15 -10
- package/dist/dtos/create-field-metadata.dto.js.map +1 -1
- package/dist/dtos/create-model-sequence.dto.d.ts +1 -1
- package/dist/dtos/create-model-sequence.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-sequence.dto.js +1 -1
- package/dist/dtos/create-model-sequence.dto.js.map +1 -1
- package/dist/dtos/mpin-login.dto.d.ts +5 -0
- package/dist/dtos/mpin-login.dto.d.ts.map +1 -0
- package/dist/dtos/mpin-login.dto.js +33 -0
- package/dist/dtos/mpin-login.dto.js.map +1 -0
- package/dist/dtos/setup-mpin.dto.d.ts +7 -0
- package/dist/dtos/setup-mpin.dto.d.ts.map +1 -0
- package/dist/dtos/setup-mpin.dto.js +47 -0
- package/dist/dtos/setup-mpin.dto.js.map +1 -0
- package/dist/entities/common.entity.d.ts +4 -0
- package/dist/entities/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +25 -1
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/dashboard-user-layout.entity.js +2 -2
- package/dist/entities/dashboard-user-layout.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts +1 -0
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +5 -1
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.js +3 -3
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/user-device-credential.entity.d.ts +18 -0
- package/dist/entities/user-device-credential.entity.d.ts.map +1 -0
- package/dist/entities/user-device-credential.entity.js +91 -0
- package/dist/entities/user-device-credential.entity.js.map +1 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +36 -0
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/view-metadata.entity.js.map +1 -1
- package/dist/entities/workflow-execution-artifact.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution-artifact.entity.js +4 -3
- package/dist/entities/workflow-execution-artifact.entity.js.map +1 -1
- package/dist/entities/workflow-execution-log.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution-log.entity.js +4 -3
- package/dist/entities/workflow-execution-log.entity.js.map +1 -1
- package/dist/entities/workflow-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-execution.entity.js +3 -2
- package/dist/entities/workflow-execution.entity.js.map +1 -1
- package/dist/entities/workflow-secret.entity.d.ts.map +1 -1
- package/dist/entities/workflow-secret.entity.js +3 -2
- package/dist/entities/workflow-secret.entity.js.map +1 -1
- package/dist/entities/workflow-step-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-step-execution.entity.js +3 -2
- package/dist/entities/workflow-step-execution.entity.js.map +1 -1
- package/dist/entities/workflow-trigger-execution.entity.d.ts.map +1 -1
- package/dist/entities/workflow-trigger-execution.entity.js +7 -6
- package/dist/entities/workflow-trigger-execution.entity.js.map +1 -1
- package/dist/factories/mail.factory.d.ts.map +1 -1
- package/dist/factories/mail.factory.js +4 -0
- package/dist/factories/mail.factory.js.map +1 -1
- package/dist/filters/http-exception.filter.d.ts.map +1 -1
- package/dist/filters/http-exception.filter.js +5 -1
- package/dist/filters/http-exception.filter.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts +5 -2
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +7 -3
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +7 -0
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +66 -32
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
- package/dist/helpers/file-download.helper.d.ts +9 -0
- package/dist/helpers/file-download.helper.d.ts.map +1 -0
- package/dist/helpers/file-download.helper.js +19 -0
- package/dist/helpers/file-download.helper.js.map +1 -0
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +30 -1
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/security.helper.d.ts +5 -1
- package/dist/helpers/security.helper.d.ts.map +1 -1
- package/dist/helpers/security.helper.js +15 -4
- package/dist/helpers/security.helper.js.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.d.ts.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.js +45 -0
- package/dist/helpers/solid-core-error-codes-provider.service.js.map +1 -1
- package/dist/helpers/solid-microservice-adapter.service.d.ts.map +1 -1
- package/dist/helpers/solid-microservice-adapter.service.js +1 -1
- package/dist/helpers/solid-microservice-adapter.service.js.map +1 -1
- package/dist/helpers/solid-registry.js +1 -1
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/helpers/typeorm-db-helper.d.ts.map +1 -1
- package/dist/helpers/typeorm-db-helper.js +9 -0
- package/dist/helpers/typeorm-db-helper.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/active-user-data.interface.d.ts +1 -0
- package/dist/interfaces/active-user-data.interface.d.ts.map +1 -1
- package/dist/interfaces/active-user-data.interface.js.map +1 -1
- package/dist/interfaces.d.ts +1 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/repository/user-device-credential.repository.d.ts +12 -0
- package/dist/repository/user-device-credential.repository.d.ts.map +1 -0
- package/dist/repository/user-device-credential.repository.js +34 -0
- package/dist/repository/user-device-credential.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +51 -30
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/module-test-data.service.d.ts +3 -1
- package/dist/seeders/module-test-data.service.d.ts.map +1 -1
- package/dist/seeders/module-test-data.service.js +8 -2
- package/dist/seeders/module-test-data.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +290 -78
- package/dist/services/api-key.service.d.ts.map +1 -1
- package/dist/services/api-key.service.js +1 -1
- package/dist/services/api-key.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +9 -5
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +102 -23
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +16 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +100 -16
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +6 -4
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +32 -48
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +13 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +94 -68
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/datasource-introspection.service.d.ts.map +1 -1
- package/dist/services/datasource-introspection.service.js.map +1 -1
- package/dist/services/draft-publish-helper.service.d.ts +53 -0
- package/dist/services/draft-publish-helper.service.d.ts.map +1 -0
- package/dist/services/draft-publish-helper.service.js +402 -0
- package/dist/services/draft-publish-helper.service.js.map +1 -0
- package/dist/services/field-metadata.service.d.ts +2 -2
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +4 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/internationalisation-helper.service.d.ts +19 -0
- package/dist/services/internationalisation-helper.service.d.ts.map +1 -0
- package/dist/services/internationalisation-helper.service.js +107 -0
- package/dist/services/internationalisation-helper.service.js.map +1 -0
- package/dist/services/locale.service.d.ts +1 -1
- package/dist/services/media-storage.utils.d.ts +1 -0
- package/dist/services/media-storage.utils.d.ts.map +1 -1
- package/dist/services/media-storage.utils.js +12 -1
- package/dist/services/media-storage.utils.js.map +1 -1
- package/dist/services/media.service.d.ts +3 -2
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +45 -29
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/metadata-validation.service.d.ts +7 -0
- package/dist/services/metadata-validation.service.d.ts.map +1 -0
- package/dist/services/metadata-validation.service.js +42 -0
- package/dist/services/metadata-validation.service.js.map +1 -0
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +2 -1
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +9 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mpin.service.d.ts +67 -0
- package/dist/services/mpin.service.d.ts.map +1 -0
- package/dist/services/mpin.service.js +282 -0
- package/dist/services/mpin.service.js.map +1 -0
- package/dist/services/object.utils.d.ts +2 -0
- package/dist/services/object.utils.d.ts.map +1 -0
- package/dist/services/object.utils.js +11 -0
- package/dist/services/object.utils.js.map +1 -0
- package/dist/services/refresh-token-ids-storage.service.d.ts +25 -6
- package/dist/services/refresh-token-ids-storage.service.d.ts.map +1 -1
- package/dist/services/refresh-token-ids-storage.service.js +80 -42
- package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +6 -1
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +248 -12
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +143 -6
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -2
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +9 -3
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +1 -2
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +3 -55
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/services/workflow/nodes/execution-fail.node.d.ts +6 -0
- package/dist/services/workflow/nodes/execution-fail.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/execution-fail.node.js +81 -0
- package/dist/services/workflow/nodes/execution-fail.node.js.map +1 -0
- package/dist/services/workflow/nodes/for-each.node.d.ts +2 -0
- package/dist/services/workflow/nodes/for-each.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/for-each.node.js +114 -5
- package/dist/services/workflow/nodes/for-each.node.js.map +1 -1
- package/dist/services/workflow/nodes/if.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/if.node.js +7 -0
- package/dist/services/workflow/nodes/if.node.js.map +1 -1
- package/dist/services/workflow/nodes/log-write.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/log-write.node.js +2 -0
- package/dist/services/workflow/nodes/log-write.node.js.map +1 -1
- package/dist/services/workflow/nodes/loop-until.node.d.ts +12 -0
- package/dist/services/workflow/nodes/loop-until.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/loop-until.node.js +281 -0
- package/dist/services/workflow/nodes/loop-until.node.js.map +1 -0
- package/dist/services/workflow/nodes/parallel.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/parallel.node.js +7 -0
- package/dist/services/workflow/nodes/parallel.node.js.map +1 -1
- package/dist/services/workflow/nodes/sequential.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/sequential.node.js +7 -0
- package/dist/services/workflow/nodes/sequential.node.js.map +1 -1
- package/dist/services/workflow/nodes/switch.node.d.ts.map +1 -1
- package/dist/services/workflow/nodes/switch.node.js +7 -0
- package/dist/services/workflow/nodes/switch.node.js.map +1 -1
- package/dist/services/workflow/workflow-definition-validator.service.d.ts.map +1 -1
- package/dist/services/workflow/workflow-definition-validator.service.js +5 -2
- package/dist/services/workflow/workflow-definition-validator.service.js.map +1 -1
- package/dist/services/workflow/workflow-expression.service.d.ts.map +1 -1
- package/dist/services/workflow/workflow-expression.service.js +5 -0
- package/dist/services/workflow/workflow-expression.service.js.map +1 -1
- package/dist/services/workflow/workflow-node-registry.service.d.ts +2 -1
- package/dist/services/workflow/workflow-node-registry.service.d.ts.map +1 -1
- package/dist/services/workflow/workflow-node-registry.service.js +7 -0
- package/dist/services/workflow/workflow-node-registry.service.js.map +1 -1
- package/dist/services/workflow/workflow-runtime.service.d.ts +8 -0
- package/dist/services/workflow/workflow-runtime.service.d.ts.map +1 -1
- package/dist/services/workflow/workflow-runtime.service.js +197 -32
- package/dist/services/workflow/workflow-runtime.service.js.map +1 -1
- package/dist/services/workflow-definition.service.d.ts +1 -1
- package/dist/solid-core.module.d.ts +1 -3
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +28 -40
- package/dist/solid-core.module.js.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.d.ts +5 -0
- package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.js +17 -1
- package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
- package/dist/testing/adapters/ui/ui.types.d.ts +2 -0
- package/dist/testing/adapters/ui/ui.types.d.ts.map +1 -1
- package/dist/testing/adapters/ui/ui.types.js.map +1 -1
- package/dist/testing/reporter/console-reporter.d.ts +3 -0
- package/dist/testing/reporter/console-reporter.d.ts.map +1 -1
- package/dist/testing/reporter/console-reporter.js +2 -0
- package/dist/testing/reporter/console-reporter.js.map +1 -1
- package/dist/testing/reporter/progress-reporter.d.ts +64 -0
- package/dist/testing/reporter/progress-reporter.d.ts.map +1 -0
- package/dist/testing/reporter/progress-reporter.js +224 -0
- package/dist/testing/reporter/progress-reporter.js.map +1 -0
- package/dist/testing/reporter/reporter.types.d.ts +3 -0
- package/dist/testing/reporter/reporter.types.d.ts.map +1 -1
- package/dist/testing/reporter/reporter.types.js.map +1 -1
- package/dist/testing/runner/run-from-metadata.d.ts.map +1 -1
- package/dist/testing/runner/run-from-metadata.js +1 -0
- package/dist/testing/runner/run-from-metadata.js.map +1 -1
- package/dist/testing/steps/ui/actions.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/actions.step.js +6 -2
- package/dist/testing/steps/ui/actions.step.js.map +1 -1
- package/dist/testing/steps/ui/assertions.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/assertions.step.js +11 -3
- package/dist/testing/steps/ui/assertions.step.js.map +1 -1
- package/dist/testing/steps/ui/form.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/form.step.js +9 -3
- package/dist/testing/steps/ui/form.step.js.map +1 -1
- package/dist/testing/steps/ui/manual.step.js +1 -1
- package/dist/testing/steps/ui/manual.step.js.map +1 -1
- package/dist/testing/steps/ui/navigation.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/navigation.step.js +3 -1
- package/dist/testing/steps/ui/navigation.step.js.map +1 -1
- package/dist/theme/theme-registry.d.ts +14 -0
- package/dist/theme/theme-registry.d.ts.map +1 -0
- package/dist/theme/theme-registry.js +147 -0
- package/dist/theme/theme-registry.js.map +1 -0
- package/dist/types/workflow-dsl.types.d.ts +14 -0
- package/dist/types/workflow-dsl.types.d.ts.map +1 -1
- package/dist/types/workflow-dsl.types.js.map +1 -1
- package/package.json +2 -2
- package/src/commands/run-tests.command.ts +64 -4
- package/src/commands/seed.command.ts +19 -0
- package/src/config/cache.options.ts +9 -1
- package/src/constants/chatter-message.constants.ts +12 -0
- package/src/constants/draft-publish-fields.ts +5 -0
- package/src/constants/error-messages.ts +14 -0
- package/src/constants/media-file-types.ts +128 -0
- package/src/constants/success-messages.ts +5 -0
- package/src/constants/user.constants.ts +13 -0
- package/src/controllers/authentication.controller.ts +5 -2
- package/src/controllers/chatter-message.controller.ts +8 -0
- package/src/controllers/export-template.controller.ts +5 -3
- package/src/controllers/import-transaction.controller.ts +6 -6
- package/src/controllers/media.controller.ts +17 -6
- package/src/controllers/module-package.controller.ts +2 -3
- package/src/controllers/mpin-authentication.controller.ts +67 -0
- package/src/dtos/basic-filters.dto.ts +0 -4
- package/src/dtos/change-mpin.dto.ts +18 -0
- package/src/dtos/create-field-metadata.dto.ts +17 -9
- package/src/dtos/create-model-sequence.dto.ts +1 -1
- package/src/dtos/mpin-login.dto.ts +24 -0
- package/src/dtos/setup-mpin.dto.ts +51 -0
- package/src/entities/common.entity.ts +24 -0
- package/src/entities/dashboard-user-layout.entity.ts +2 -2
- package/src/entities/field-metadata.entity.ts +3 -0
- package/src/entities/saved-filters.entity.ts +3 -3
- package/src/entities/user-device-credential.entity.ts +130 -0
- package/src/entities/user.entity.ts +53 -36
- package/src/entities/view-metadata.entity.ts +2 -2
- package/src/entities/workflow-execution-artifact.entity.ts +4 -3
- package/src/entities/workflow-execution-log.entity.ts +4 -3
- package/src/entities/workflow-execution.entity.ts +3 -2
- package/src/entities/workflow-secret.entity.ts +3 -2
- package/src/entities/workflow-step-execution.entity.ts +3 -2
- package/src/entities/workflow-trigger-execution.entity.ts +7 -6
- package/src/factories/mail.factory.ts +7 -1
- package/src/filters/http-exception.filter.ts +11 -1
- package/src/helpers/bootstrap.helper.ts +43 -6
- package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +90 -37
- package/src/helpers/file-download.helper.ts +45 -0
- package/src/helpers/model-metadata-helper.service.ts +32 -1
- package/src/helpers/security.helper.ts +35 -8
- package/src/helpers/solid-core-error-codes-provider.service.ts +53 -0
- package/src/helpers/solid-microservice-adapter.service.ts +6 -1
- package/src/helpers/solid-registry.ts +1 -1
- package/src/helpers/typeorm-db-helper.ts +12 -1
- package/src/index.ts +10 -0
- package/src/interfaces/active-user-data.interface.ts +9 -0
- package/src/interfaces.ts +1 -0
- package/src/repository/user-device-credential.repository.ts +17 -0
- package/src/seeders/module-metadata-seeder.service.ts +61 -39
- package/src/seeders/module-test-data.service.ts +6 -0
- package/src/seeders/seed-data/solid-core-metadata.json +290 -78
- package/src/services/api-key.service.ts +13 -1
- package/src/services/authentication.service.ts +203 -41
- package/src/services/chatter-message.service.ts +180 -19
- package/src/services/crud-helper.service.ts +35 -50
- package/src/services/crud.service.ts +132 -105
- package/src/services/datasource-introspection.service.ts +5 -0
- package/src/services/draft-publish-helper.service.ts +581 -0
- package/src/services/field-metadata.service.ts +5 -2
- package/src/services/internationalisation-helper.service.ts +148 -0
- package/src/services/media-storage.utils.ts +26 -1
- package/src/services/media.service.ts +68 -36
- package/src/services/metadata-validation.service.ts +39 -0
- package/src/services/model-metadata.service.ts +4 -1
- package/src/services/module-metadata.service.ts +10 -1
- package/src/services/mpin.service.ts +447 -0
- package/src/services/object.utils.ts +10 -0
- package/src/services/refresh-token-ids-storage.service.ts +229 -90
- package/src/services/setting.service.ts +8 -1
- package/src/services/settings/default-settings-provider.service.ts +154 -6
- package/src/services/user.service.ts +18 -3
- package/src/services/view-metadata.service.ts +5 -145
- package/src/services/workflow/nodes/execution-fail.node.ts +82 -0
- package/src/services/workflow/nodes/for-each.node.ts +140 -6
- package/src/services/workflow/nodes/if.node.ts +7 -0
- package/src/services/workflow/nodes/log-write.node.ts +2 -0
- package/src/services/workflow/nodes/loop-until.node.ts +343 -0
- package/src/services/workflow/nodes/parallel.node.ts +7 -0
- package/src/services/workflow/nodes/sequential.node.ts +7 -0
- package/src/services/workflow/nodes/switch.node.ts +7 -0
- package/src/services/workflow/workflow-definition-validator.service.ts +5 -2
- package/src/services/workflow/workflow-expression.service.ts +5 -0
- package/src/services/workflow/workflow-node-registry.service.ts +11 -0
- package/src/services/workflow/workflow-runtime.service.ts +274 -39
- package/src/solid-core.module.ts +46 -15
- package/src/testing/README.md +75 -3
- package/src/testing/adapters/ui/playwright-adapter.ts +25 -0
- package/src/testing/adapters/ui/ui.types.ts +2 -0
- package/src/testing/reporter/console-reporter.ts +4 -0
- package/src/testing/reporter/progress-reporter.ts +251 -0
- package/src/testing/reporter/reporter.types.ts +3 -0
- package/src/testing/runner/run-from-metadata.ts +1 -0
- package/src/testing/steps/ui/actions.step.ts +8 -4
- package/src/testing/steps/ui/assertions.step.ts +18 -5
- package/src/testing/steps/ui/form.step.ts +16 -6
- package/src/testing/steps/ui/manual.step.ts +1 -1
- package/src/testing/steps/ui/navigation.step.ts +4 -2
- package/src/theme/theme-registry.ts +181 -0
- package/src/types/workflow-dsl.types.ts +43 -0
|
@@ -110,10 +110,10 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
|
|
|
110
110
|
readonly helpText: "Controls whether the app logo appears inside the authentication form or inside the image panel.";
|
|
111
111
|
}, {
|
|
112
112
|
readonly moduleName: "solid-core";
|
|
113
|
-
readonly key: "
|
|
113
|
+
readonly key: "recordClickAction";
|
|
114
114
|
readonly value: "edit";
|
|
115
115
|
readonly level: SettingLevel.SystemAdminEditable;
|
|
116
|
-
readonly label: "
|
|
116
|
+
readonly label: "Record Click Action";
|
|
117
117
|
readonly group: "app-settings";
|
|
118
118
|
readonly sortOrder: 45;
|
|
119
119
|
readonly controlType: "selectionStatic";
|
|
@@ -124,7 +124,7 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
|
|
|
124
124
|
readonly label: "View";
|
|
125
125
|
readonly value: "view";
|
|
126
126
|
}];
|
|
127
|
-
readonly helpText: "Decides whether clicking a
|
|
127
|
+
readonly helpText: "Decides whether clicking a record in List, Card, Kanban, or Tree View opens it in edit mode or view mode.";
|
|
128
128
|
}, {
|
|
129
129
|
readonly moduleName: "solid-core";
|
|
130
130
|
readonly key: "showAuthContent";
|
|
@@ -197,14 +197,42 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
|
|
|
197
197
|
readonly helpText: "Privacy policy URL shown when legal links are enabled.";
|
|
198
198
|
}, {
|
|
199
199
|
readonly moduleName: "solid-core";
|
|
200
|
-
readonly key: "
|
|
200
|
+
readonly key: "showThemeToggle";
|
|
201
201
|
readonly value: true;
|
|
202
202
|
readonly level: SettingLevel.SystemAdminEditable;
|
|
203
|
-
readonly label: "
|
|
203
|
+
readonly label: "Show Theme Toggle";
|
|
204
204
|
readonly group: "app-settings";
|
|
205
205
|
readonly sortOrder: 120;
|
|
206
206
|
readonly controlType: "boolean";
|
|
207
|
-
readonly helpText: "
|
|
207
|
+
readonly helpText: "Shows the theme toggle in the frontend so users can switch between light and dark themes.";
|
|
208
|
+
}, {
|
|
209
|
+
readonly moduleName: "solid-core";
|
|
210
|
+
readonly key: "lightTheme";
|
|
211
|
+
readonly value: string;
|
|
212
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
213
|
+
readonly label: "Light Theme";
|
|
214
|
+
readonly group: "app-settings";
|
|
215
|
+
readonly sortOrder: 125;
|
|
216
|
+
readonly controlType: "selectionStatic";
|
|
217
|
+
readonly options: {
|
|
218
|
+
label: string;
|
|
219
|
+
value: string;
|
|
220
|
+
}[];
|
|
221
|
+
readonly helpText: "Selects the theme used whenever the application is in light mode.";
|
|
222
|
+
}, {
|
|
223
|
+
readonly moduleName: "solid-core";
|
|
224
|
+
readonly key: "darkTheme";
|
|
225
|
+
readonly value: string;
|
|
226
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
227
|
+
readonly label: "Dark Theme";
|
|
228
|
+
readonly group: "app-settings";
|
|
229
|
+
readonly sortOrder: 126;
|
|
230
|
+
readonly controlType: "selectionStatic";
|
|
231
|
+
readonly options: {
|
|
232
|
+
label: string;
|
|
233
|
+
value: string;
|
|
234
|
+
}[];
|
|
235
|
+
readonly helpText: "Selects the theme used whenever the application is in dark mode.";
|
|
208
236
|
}, {
|
|
209
237
|
readonly moduleName: "solid-core";
|
|
210
238
|
readonly key: "copyright";
|
|
@@ -435,6 +463,16 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
|
|
|
435
463
|
readonly value: "s3";
|
|
436
464
|
}];
|
|
437
465
|
readonly helpText: "Default storage implementation used for file handling, such as local disk or S3.";
|
|
466
|
+
}, {
|
|
467
|
+
readonly moduleName: "solid-core";
|
|
468
|
+
readonly key: "maxMediaFileSizeMb";
|
|
469
|
+
readonly value: number;
|
|
470
|
+
readonly level: SettingLevel.SystemAdminReadonly;
|
|
471
|
+
readonly label: "Max Media File Size (MB)";
|
|
472
|
+
readonly group: "storage-settings";
|
|
473
|
+
readonly sortOrder: 45;
|
|
474
|
+
readonly controlType: "numeric";
|
|
475
|
+
readonly helpText: "Global upload size limit enforced by Multer under every per-field mediaMaxSizeKb restriction. Read-only here: it's applied once at process start, so changing AB_MEDIA_MAX_FILE_SIZE_MB requires an app restart to take effect - editing this in the admin UI would not do that.";
|
|
438
476
|
}, {
|
|
439
477
|
readonly moduleName: "solid-core";
|
|
440
478
|
readonly key: "S3_AWS_ACCESS_KEY";
|
|
@@ -1045,6 +1083,66 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
|
|
|
1045
1083
|
readonly group: "authentication-settings";
|
|
1046
1084
|
readonly sortOrder: 200;
|
|
1047
1085
|
readonly controlType: "boolean";
|
|
1086
|
+
}, {
|
|
1087
|
+
readonly moduleName: "solid-core";
|
|
1088
|
+
readonly key: "mpinEnabled";
|
|
1089
|
+
readonly value: false;
|
|
1090
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1091
|
+
readonly label: "Enable MPIN Sign-in";
|
|
1092
|
+
readonly group: "authentication-settings";
|
|
1093
|
+
readonly sortOrder: 210;
|
|
1094
|
+
readonly controlType: "boolean";
|
|
1095
|
+
readonly helpText: "Allows users to set a short device PIN for faster sign-in. Every MPIN route returns 404 while this is off.";
|
|
1096
|
+
}, {
|
|
1097
|
+
readonly moduleName: "solid-core";
|
|
1098
|
+
readonly key: "mpinRegex";
|
|
1099
|
+
readonly value: string;
|
|
1100
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1101
|
+
readonly label: "MPIN Format";
|
|
1102
|
+
readonly group: "authentication-settings";
|
|
1103
|
+
readonly sortOrder: 211;
|
|
1104
|
+
readonly controlType: "shortText";
|
|
1105
|
+
readonly helpText: "Regular expression the MPIN must match. Sole authority on MPIN length - the default allows 4 to 6 digits. Predictable PINs (repeated or sequential digits) are rejected separately.";
|
|
1106
|
+
}, {
|
|
1107
|
+
readonly moduleName: "solid-core";
|
|
1108
|
+
readonly key: "mpinMaxFailedAttempts";
|
|
1109
|
+
readonly value: number;
|
|
1110
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1111
|
+
readonly label: "MPIN Attempts Before Lockout";
|
|
1112
|
+
readonly group: "authentication-settings";
|
|
1113
|
+
readonly sortOrder: 212;
|
|
1114
|
+
readonly controlType: "numeric";
|
|
1115
|
+
readonly helpText: "Cumulative failed attempts that trigger a temporary lockout. The counter resets only on a successful MPIN sign-in, not when the lockout expires.";
|
|
1116
|
+
}, {
|
|
1117
|
+
readonly moduleName: "solid-core";
|
|
1118
|
+
readonly key: "mpinLockoutDuration";
|
|
1119
|
+
readonly value: number;
|
|
1120
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1121
|
+
readonly label: "MPIN Lockout Duration (seconds)";
|
|
1122
|
+
readonly group: "authentication-settings";
|
|
1123
|
+
readonly sortOrder: 213;
|
|
1124
|
+
readonly controlType: "numeric";
|
|
1125
|
+
readonly helpText: "How long the temporary lockout lasts.";
|
|
1126
|
+
}, {
|
|
1127
|
+
readonly moduleName: "solid-core";
|
|
1128
|
+
readonly key: "mpinMaxTotalFailedAttempts";
|
|
1129
|
+
readonly value: number;
|
|
1130
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1131
|
+
readonly label: "MPIN Attempts Before Permanent Deactivation";
|
|
1132
|
+
readonly group: "authentication-settings";
|
|
1133
|
+
readonly sortOrder: 214;
|
|
1134
|
+
readonly controlType: "numeric";
|
|
1135
|
+
readonly helpText: "Cumulative failed attempts that permanently disable MPIN on that device. Must exceed the lockout threshold. The account itself is never locked - the user signs in normally and sets MPIN up again.";
|
|
1136
|
+
}, {
|
|
1137
|
+
readonly moduleName: "solid-core";
|
|
1138
|
+
readonly key: "mpinMaxDevicesPerUser";
|
|
1139
|
+
readonly value: number;
|
|
1140
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1141
|
+
readonly label: "Max MPIN Devices Per User";
|
|
1142
|
+
readonly group: "authentication-settings";
|
|
1143
|
+
readonly sortOrder: 215;
|
|
1144
|
+
readonly controlType: "numeric";
|
|
1145
|
+
readonly helpText: "At the cap the least recently used credential is evicted rather than the setup rejected, so repeated app reinstalls cannot lock a user out of MPIN setup.";
|
|
1048
1146
|
}, {
|
|
1049
1147
|
readonly moduleName: "solid-core";
|
|
1050
1148
|
readonly key: "queuesDefaultBroker";
|
|
@@ -1277,6 +1375,26 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
|
|
|
1277
1375
|
readonly key: "metaWhatsappAppSecret";
|
|
1278
1376
|
readonly value: string;
|
|
1279
1377
|
readonly level: SettingLevel.SystemEnv;
|
|
1378
|
+
}, {
|
|
1379
|
+
readonly moduleName: "solid-core";
|
|
1380
|
+
readonly key: "uiTestDefaultTimeoutMs";
|
|
1381
|
+
readonly value: number;
|
|
1382
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1383
|
+
readonly label: "UI Test Default Timeout (ms)";
|
|
1384
|
+
readonly group: "testing-settings";
|
|
1385
|
+
readonly sortOrder: 10;
|
|
1386
|
+
readonly controlType: "numeric";
|
|
1387
|
+
readonly helpText: "How long UI test steps wait for an element before failing. Raise this if tests time out on slow screens. Overridden by the --ui-timeout-ms flag and by a per-step timeoutMs.";
|
|
1388
|
+
}, {
|
|
1389
|
+
readonly moduleName: "solid-core";
|
|
1390
|
+
readonly key: "uiTestNavigationTimeoutMs";
|
|
1391
|
+
readonly value: number;
|
|
1392
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1393
|
+
readonly label: "UI Test Navigation Timeout (ms)";
|
|
1394
|
+
readonly group: "testing-settings";
|
|
1395
|
+
readonly sortOrder: 20;
|
|
1396
|
+
readonly controlType: "numeric";
|
|
1397
|
+
readonly helpText: "How long the ui.goto step waits for a page to load before failing. Falls back to the UI test default timeout.";
|
|
1280
1398
|
}];
|
|
1281
1399
|
export type SolidCoreSetting = ReturnType<typeof getSolidCoreSettings>[number]["key"];
|
|
1282
1400
|
export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvider {
|
|
@@ -1389,10 +1507,10 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
|
|
|
1389
1507
|
readonly helpText: "Controls whether the app logo appears inside the authentication form or inside the image panel.";
|
|
1390
1508
|
}, {
|
|
1391
1509
|
readonly moduleName: "solid-core";
|
|
1392
|
-
readonly key: "
|
|
1510
|
+
readonly key: "recordClickAction";
|
|
1393
1511
|
readonly value: "edit";
|
|
1394
1512
|
readonly level: SettingLevel.SystemAdminEditable;
|
|
1395
|
-
readonly label: "
|
|
1513
|
+
readonly label: "Record Click Action";
|
|
1396
1514
|
readonly group: "app-settings";
|
|
1397
1515
|
readonly sortOrder: 45;
|
|
1398
1516
|
readonly controlType: "selectionStatic";
|
|
@@ -1403,7 +1521,7 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
|
|
|
1403
1521
|
readonly label: "View";
|
|
1404
1522
|
readonly value: "view";
|
|
1405
1523
|
}];
|
|
1406
|
-
readonly helpText: "Decides whether clicking a
|
|
1524
|
+
readonly helpText: "Decides whether clicking a record in List, Card, Kanban, or Tree View opens it in edit mode or view mode.";
|
|
1407
1525
|
}, {
|
|
1408
1526
|
readonly moduleName: "solid-core";
|
|
1409
1527
|
readonly key: "showAuthContent";
|
|
@@ -1476,14 +1594,42 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
|
|
|
1476
1594
|
readonly helpText: "Privacy policy URL shown when legal links are enabled.";
|
|
1477
1595
|
}, {
|
|
1478
1596
|
readonly moduleName: "solid-core";
|
|
1479
|
-
readonly key: "
|
|
1597
|
+
readonly key: "showThemeToggle";
|
|
1480
1598
|
readonly value: true;
|
|
1481
1599
|
readonly level: SettingLevel.SystemAdminEditable;
|
|
1482
|
-
readonly label: "
|
|
1600
|
+
readonly label: "Show Theme Toggle";
|
|
1483
1601
|
readonly group: "app-settings";
|
|
1484
1602
|
readonly sortOrder: 120;
|
|
1485
1603
|
readonly controlType: "boolean";
|
|
1486
|
-
readonly helpText: "
|
|
1604
|
+
readonly helpText: "Shows the theme toggle in the frontend so users can switch between light and dark themes.";
|
|
1605
|
+
}, {
|
|
1606
|
+
readonly moduleName: "solid-core";
|
|
1607
|
+
readonly key: "lightTheme";
|
|
1608
|
+
readonly value: string;
|
|
1609
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1610
|
+
readonly label: "Light Theme";
|
|
1611
|
+
readonly group: "app-settings";
|
|
1612
|
+
readonly sortOrder: 125;
|
|
1613
|
+
readonly controlType: "selectionStatic";
|
|
1614
|
+
readonly options: {
|
|
1615
|
+
label: string;
|
|
1616
|
+
value: string;
|
|
1617
|
+
}[];
|
|
1618
|
+
readonly helpText: "Selects the theme used whenever the application is in light mode.";
|
|
1619
|
+
}, {
|
|
1620
|
+
readonly moduleName: "solid-core";
|
|
1621
|
+
readonly key: "darkTheme";
|
|
1622
|
+
readonly value: string;
|
|
1623
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
1624
|
+
readonly label: "Dark Theme";
|
|
1625
|
+
readonly group: "app-settings";
|
|
1626
|
+
readonly sortOrder: 126;
|
|
1627
|
+
readonly controlType: "selectionStatic";
|
|
1628
|
+
readonly options: {
|
|
1629
|
+
label: string;
|
|
1630
|
+
value: string;
|
|
1631
|
+
}[];
|
|
1632
|
+
readonly helpText: "Selects the theme used whenever the application is in dark mode.";
|
|
1487
1633
|
}, {
|
|
1488
1634
|
readonly moduleName: "solid-core";
|
|
1489
1635
|
readonly key: "copyright";
|
|
@@ -1714,6 +1860,16 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
|
|
|
1714
1860
|
readonly value: "s3";
|
|
1715
1861
|
}];
|
|
1716
1862
|
readonly helpText: "Default storage implementation used for file handling, such as local disk or S3.";
|
|
1863
|
+
}, {
|
|
1864
|
+
readonly moduleName: "solid-core";
|
|
1865
|
+
readonly key: "maxMediaFileSizeMb";
|
|
1866
|
+
readonly value: number;
|
|
1867
|
+
readonly level: SettingLevel.SystemAdminReadonly;
|
|
1868
|
+
readonly label: "Max Media File Size (MB)";
|
|
1869
|
+
readonly group: "storage-settings";
|
|
1870
|
+
readonly sortOrder: 45;
|
|
1871
|
+
readonly controlType: "numeric";
|
|
1872
|
+
readonly helpText: "Global upload size limit enforced by Multer under every per-field mediaMaxSizeKb restriction. Read-only here: it's applied once at process start, so changing AB_MEDIA_MAX_FILE_SIZE_MB requires an app restart to take effect - editing this in the admin UI would not do that.";
|
|
1717
1873
|
}, {
|
|
1718
1874
|
readonly moduleName: "solid-core";
|
|
1719
1875
|
readonly key: "S3_AWS_ACCESS_KEY";
|
|
@@ -2324,6 +2480,66 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
|
|
|
2324
2480
|
readonly group: "authentication-settings";
|
|
2325
2481
|
readonly sortOrder: 200;
|
|
2326
2482
|
readonly controlType: "boolean";
|
|
2483
|
+
}, {
|
|
2484
|
+
readonly moduleName: "solid-core";
|
|
2485
|
+
readonly key: "mpinEnabled";
|
|
2486
|
+
readonly value: false;
|
|
2487
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
2488
|
+
readonly label: "Enable MPIN Sign-in";
|
|
2489
|
+
readonly group: "authentication-settings";
|
|
2490
|
+
readonly sortOrder: 210;
|
|
2491
|
+
readonly controlType: "boolean";
|
|
2492
|
+
readonly helpText: "Allows users to set a short device PIN for faster sign-in. Every MPIN route returns 404 while this is off.";
|
|
2493
|
+
}, {
|
|
2494
|
+
readonly moduleName: "solid-core";
|
|
2495
|
+
readonly key: "mpinRegex";
|
|
2496
|
+
readonly value: string;
|
|
2497
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
2498
|
+
readonly label: "MPIN Format";
|
|
2499
|
+
readonly group: "authentication-settings";
|
|
2500
|
+
readonly sortOrder: 211;
|
|
2501
|
+
readonly controlType: "shortText";
|
|
2502
|
+
readonly helpText: "Regular expression the MPIN must match. Sole authority on MPIN length - the default allows 4 to 6 digits. Predictable PINs (repeated or sequential digits) are rejected separately.";
|
|
2503
|
+
}, {
|
|
2504
|
+
readonly moduleName: "solid-core";
|
|
2505
|
+
readonly key: "mpinMaxFailedAttempts";
|
|
2506
|
+
readonly value: number;
|
|
2507
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
2508
|
+
readonly label: "MPIN Attempts Before Lockout";
|
|
2509
|
+
readonly group: "authentication-settings";
|
|
2510
|
+
readonly sortOrder: 212;
|
|
2511
|
+
readonly controlType: "numeric";
|
|
2512
|
+
readonly helpText: "Cumulative failed attempts that trigger a temporary lockout. The counter resets only on a successful MPIN sign-in, not when the lockout expires.";
|
|
2513
|
+
}, {
|
|
2514
|
+
readonly moduleName: "solid-core";
|
|
2515
|
+
readonly key: "mpinLockoutDuration";
|
|
2516
|
+
readonly value: number;
|
|
2517
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
2518
|
+
readonly label: "MPIN Lockout Duration (seconds)";
|
|
2519
|
+
readonly group: "authentication-settings";
|
|
2520
|
+
readonly sortOrder: 213;
|
|
2521
|
+
readonly controlType: "numeric";
|
|
2522
|
+
readonly helpText: "How long the temporary lockout lasts.";
|
|
2523
|
+
}, {
|
|
2524
|
+
readonly moduleName: "solid-core";
|
|
2525
|
+
readonly key: "mpinMaxTotalFailedAttempts";
|
|
2526
|
+
readonly value: number;
|
|
2527
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
2528
|
+
readonly label: "MPIN Attempts Before Permanent Deactivation";
|
|
2529
|
+
readonly group: "authentication-settings";
|
|
2530
|
+
readonly sortOrder: 214;
|
|
2531
|
+
readonly controlType: "numeric";
|
|
2532
|
+
readonly helpText: "Cumulative failed attempts that permanently disable MPIN on that device. Must exceed the lockout threshold. The account itself is never locked - the user signs in normally and sets MPIN up again.";
|
|
2533
|
+
}, {
|
|
2534
|
+
readonly moduleName: "solid-core";
|
|
2535
|
+
readonly key: "mpinMaxDevicesPerUser";
|
|
2536
|
+
readonly value: number;
|
|
2537
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
2538
|
+
readonly label: "Max MPIN Devices Per User";
|
|
2539
|
+
readonly group: "authentication-settings";
|
|
2540
|
+
readonly sortOrder: 215;
|
|
2541
|
+
readonly controlType: "numeric";
|
|
2542
|
+
readonly helpText: "At the cap the least recently used credential is evicted rather than the setup rejected, so repeated app reinstalls cannot lock a user out of MPIN setup.";
|
|
2327
2543
|
}, {
|
|
2328
2544
|
readonly moduleName: "solid-core";
|
|
2329
2545
|
readonly key: "queuesDefaultBroker";
|
|
@@ -2556,6 +2772,26 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
|
|
|
2556
2772
|
readonly key: "metaWhatsappAppSecret";
|
|
2557
2773
|
readonly value: string;
|
|
2558
2774
|
readonly level: SettingLevel.SystemEnv;
|
|
2775
|
+
}, {
|
|
2776
|
+
readonly moduleName: "solid-core";
|
|
2777
|
+
readonly key: "uiTestDefaultTimeoutMs";
|
|
2778
|
+
readonly value: number;
|
|
2779
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
2780
|
+
readonly label: "UI Test Default Timeout (ms)";
|
|
2781
|
+
readonly group: "testing-settings";
|
|
2782
|
+
readonly sortOrder: 10;
|
|
2783
|
+
readonly controlType: "numeric";
|
|
2784
|
+
readonly helpText: "How long UI test steps wait for an element before failing. Raise this if tests time out on slow screens. Overridden by the --ui-timeout-ms flag and by a per-step timeoutMs.";
|
|
2785
|
+
}, {
|
|
2786
|
+
readonly moduleName: "solid-core";
|
|
2787
|
+
readonly key: "uiTestNavigationTimeoutMs";
|
|
2788
|
+
readonly value: number;
|
|
2789
|
+
readonly level: SettingLevel.SystemAdminEditable;
|
|
2790
|
+
readonly label: "UI Test Navigation Timeout (ms)";
|
|
2791
|
+
readonly group: "testing-settings";
|
|
2792
|
+
readonly sortOrder: 20;
|
|
2793
|
+
readonly controlType: "numeric";
|
|
2794
|
+
readonly helpText: "How long the ui.goto step waits for a page to load before failing. Falls back to the UI test default timeout.";
|
|
2559
2795
|
}];
|
|
2560
2796
|
}
|
|
2561
2797
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-settings-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/settings/default-settings-provider.service.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EAEjB,YAAY,EACb,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"default-settings-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/settings/default-settings-provider.service.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EAEjB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AACxD,eAAO,MAAM,8BAA8B,wBAAwB,CAAC;AAUpE,QAAA,MAAM,oBAAoB,GAAI,QAAQ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmkDH,CAAC;AAG3C,MAAM,MAAM,gBAAgB,GAAG,UAAU,CACvC,OAAO,oBAAoB,CAC5B,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;AAGjB,qBAEa,gCAAiC,YAAW,iBAAiB;IACxE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIZ"}
|
|
@@ -11,8 +11,13 @@ const common_1 = require("@nestjs/common");
|
|
|
11
11
|
const disallow_in_production_decorator_1 = require("../../decorators/disallow-in-production.decorator");
|
|
12
12
|
const settings_provider_decorator_1 = require("../../decorators/settings-provider.decorator");
|
|
13
13
|
const interfaces_1 = require("../../interfaces");
|
|
14
|
+
const theme_registry_1 = require("../../theme/theme-registry");
|
|
14
15
|
exports.DEFAULT_MEDIA_UPLOAD_DIR = "media-uploads";
|
|
15
16
|
exports.DEFAULT_MEDIA_FILE_STORAGE_DIR = "media-files-storage";
|
|
17
|
+
const timeoutFromEnv = (value, fallback) => {
|
|
18
|
+
const parsed = Number(value);
|
|
19
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
|
|
20
|
+
};
|
|
16
21
|
const getSolidCoreSettings = (isProd) => [
|
|
17
22
|
{
|
|
18
23
|
moduleName: "solid-core",
|
|
@@ -124,10 +129,10 @@ const getSolidCoreSettings = (isProd) => [
|
|
|
124
129
|
},
|
|
125
130
|
{
|
|
126
131
|
moduleName: "solid-core",
|
|
127
|
-
key: "
|
|
132
|
+
key: "recordClickAction",
|
|
128
133
|
value: "edit",
|
|
129
134
|
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
130
|
-
label: "
|
|
135
|
+
label: "Record Click Action",
|
|
131
136
|
group: "app-settings",
|
|
132
137
|
sortOrder: 45,
|
|
133
138
|
controlType: "selectionStatic",
|
|
@@ -135,7 +140,7 @@ const getSolidCoreSettings = (isProd) => [
|
|
|
135
140
|
{ label: "Edit", value: "edit" },
|
|
136
141
|
{ label: "View", value: "view" },
|
|
137
142
|
],
|
|
138
|
-
helpText: "Decides whether clicking a
|
|
143
|
+
helpText: "Decides whether clicking a record in List, Card, Kanban, or Tree View opens it in edit mode or view mode.",
|
|
139
144
|
},
|
|
140
145
|
{
|
|
141
146
|
moduleName: "solid-core",
|
|
@@ -216,14 +221,44 @@ const getSolidCoreSettings = (isProd) => [
|
|
|
216
221
|
},
|
|
217
222
|
{
|
|
218
223
|
moduleName: "solid-core",
|
|
219
|
-
key: "
|
|
224
|
+
key: "showThemeToggle",
|
|
220
225
|
value: true,
|
|
221
226
|
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
222
|
-
label: "
|
|
227
|
+
label: "Show Theme Toggle",
|
|
223
228
|
group: "app-settings",
|
|
224
229
|
sortOrder: 120,
|
|
225
230
|
controlType: "boolean",
|
|
226
|
-
helpText: "
|
|
231
|
+
helpText: "Shows the theme toggle in the frontend so users can switch between light and dark themes.",
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
moduleName: "solid-core",
|
|
235
|
+
key: "lightTheme",
|
|
236
|
+
value: (0, theme_registry_1.getDefaultThemeKey)("light"),
|
|
237
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
238
|
+
label: "Light Theme",
|
|
239
|
+
group: "app-settings",
|
|
240
|
+
sortOrder: 125,
|
|
241
|
+
controlType: "selectionStatic",
|
|
242
|
+
options: (0, theme_registry_1.getThemesByMode)("light").map((theme) => ({
|
|
243
|
+
label: theme.label,
|
|
244
|
+
value: theme.key,
|
|
245
|
+
})),
|
|
246
|
+
helpText: "Selects the theme used whenever the application is in light mode.",
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
moduleName: "solid-core",
|
|
250
|
+
key: "darkTheme",
|
|
251
|
+
value: (0, theme_registry_1.getDefaultThemeKey)("dark"),
|
|
252
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
253
|
+
label: "Dark Theme",
|
|
254
|
+
group: "app-settings",
|
|
255
|
+
sortOrder: 126,
|
|
256
|
+
controlType: "selectionStatic",
|
|
257
|
+
options: (0, theme_registry_1.getThemesByMode)("dark").map((theme) => ({
|
|
258
|
+
label: theme.label,
|
|
259
|
+
value: theme.key,
|
|
260
|
+
})),
|
|
261
|
+
helpText: "Selects the theme used whenever the application is in dark mode.",
|
|
227
262
|
},
|
|
228
263
|
{
|
|
229
264
|
moduleName: "solid-core",
|
|
@@ -489,6 +524,20 @@ const getSolidCoreSettings = (isProd) => [
|
|
|
489
524
|
],
|
|
490
525
|
helpText: "Default storage implementation used for file handling, such as local disk or S3.",
|
|
491
526
|
},
|
|
527
|
+
{
|
|
528
|
+
moduleName: "solid-core",
|
|
529
|
+
key: "maxMediaFileSizeMb",
|
|
530
|
+
value: (() => {
|
|
531
|
+
const parsedMb = Number(process.env.AB_MEDIA_MAX_FILE_SIZE_MB);
|
|
532
|
+
return Number.isFinite(parsedMb) && parsedMb > 0 ? parsedMb : 100;
|
|
533
|
+
})(),
|
|
534
|
+
level: interfaces_1.SettingLevel.SystemAdminReadonly,
|
|
535
|
+
label: "Max Media File Size (MB)",
|
|
536
|
+
group: "storage-settings",
|
|
537
|
+
sortOrder: 45,
|
|
538
|
+
controlType: "numeric",
|
|
539
|
+
helpText: "Global upload size limit enforced by Multer under every per-field mediaMaxSizeKb restriction. Read-only here: it's applied once at process start, so changing AB_MEDIA_MAX_FILE_SIZE_MB requires an app restart to take effect - editing this in the admin UI would not do that.",
|
|
540
|
+
},
|
|
492
541
|
{
|
|
493
542
|
moduleName: "solid-core",
|
|
494
543
|
key: "S3_AWS_ACCESS_KEY",
|
|
@@ -1166,6 +1215,72 @@ const getSolidCoreSettings = (isProd) => [
|
|
|
1166
1215
|
sortOrder: 200,
|
|
1167
1216
|
controlType: "boolean",
|
|
1168
1217
|
},
|
|
1218
|
+
{
|
|
1219
|
+
moduleName: "solid-core",
|
|
1220
|
+
key: "mpinEnabled",
|
|
1221
|
+
value: false,
|
|
1222
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
1223
|
+
label: "Enable MPIN Sign-in",
|
|
1224
|
+
group: "authentication-settings",
|
|
1225
|
+
sortOrder: 210,
|
|
1226
|
+
controlType: "boolean",
|
|
1227
|
+
helpText: "Allows users to set a short device PIN for faster sign-in. Every MPIN route returns 404 while this is off.",
|
|
1228
|
+
},
|
|
1229
|
+
{
|
|
1230
|
+
moduleName: "solid-core",
|
|
1231
|
+
key: "mpinRegex",
|
|
1232
|
+
value: process.env.IAM_MPIN_REGEX ?? "^\\d{4,6}$",
|
|
1233
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
1234
|
+
label: "MPIN Format",
|
|
1235
|
+
group: "authentication-settings",
|
|
1236
|
+
sortOrder: 211,
|
|
1237
|
+
controlType: "shortText",
|
|
1238
|
+
helpText: "Regular expression the MPIN must match. Sole authority on MPIN length - the default allows 4 to 6 digits. Predictable PINs (repeated or sequential digits) are rejected separately.",
|
|
1239
|
+
},
|
|
1240
|
+
{
|
|
1241
|
+
moduleName: "solid-core",
|
|
1242
|
+
key: "mpinMaxFailedAttempts",
|
|
1243
|
+
value: parseInt(process.env.IAM_MPIN_MAX_FAILED_ATTEMPTS ?? "5", 10),
|
|
1244
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
1245
|
+
label: "MPIN Attempts Before Lockout",
|
|
1246
|
+
group: "authentication-settings",
|
|
1247
|
+
sortOrder: 212,
|
|
1248
|
+
controlType: "numeric",
|
|
1249
|
+
helpText: "Cumulative failed attempts that trigger a temporary lockout. The counter resets only on a successful MPIN sign-in, not when the lockout expires.",
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
moduleName: "solid-core",
|
|
1253
|
+
key: "mpinLockoutDuration",
|
|
1254
|
+
value: parseInt(process.env.IAM_MPIN_LOCKOUT_DURATION ?? "900", 10),
|
|
1255
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
1256
|
+
label: "MPIN Lockout Duration (seconds)",
|
|
1257
|
+
group: "authentication-settings",
|
|
1258
|
+
sortOrder: 213,
|
|
1259
|
+
controlType: "numeric",
|
|
1260
|
+
helpText: "How long the temporary lockout lasts.",
|
|
1261
|
+
},
|
|
1262
|
+
{
|
|
1263
|
+
moduleName: "solid-core",
|
|
1264
|
+
key: "mpinMaxTotalFailedAttempts",
|
|
1265
|
+
value: parseInt(process.env.IAM_MPIN_MAX_TOTAL_FAILED_ATTEMPTS ?? "10", 10),
|
|
1266
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
1267
|
+
label: "MPIN Attempts Before Permanent Deactivation",
|
|
1268
|
+
group: "authentication-settings",
|
|
1269
|
+
sortOrder: 214,
|
|
1270
|
+
controlType: "numeric",
|
|
1271
|
+
helpText: "Cumulative failed attempts that permanently disable MPIN on that device. Must exceed the lockout threshold. The account itself is never locked - the user signs in normally and sets MPIN up again.",
|
|
1272
|
+
},
|
|
1273
|
+
{
|
|
1274
|
+
moduleName: "solid-core",
|
|
1275
|
+
key: "mpinMaxDevicesPerUser",
|
|
1276
|
+
value: parseInt(process.env.IAM_MPIN_MAX_DEVICES_PER_USER ?? "5", 10),
|
|
1277
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
1278
|
+
label: "Max MPIN Devices Per User",
|
|
1279
|
+
group: "authentication-settings",
|
|
1280
|
+
sortOrder: 215,
|
|
1281
|
+
controlType: "numeric",
|
|
1282
|
+
helpText: "At the cap the least recently used credential is evicted rather than the setup rejected, so repeated app reinstalls cannot lock a user out of MPIN setup.",
|
|
1283
|
+
},
|
|
1169
1284
|
{
|
|
1170
1285
|
moduleName: "solid-core",
|
|
1171
1286
|
key: "queuesDefaultBroker",
|
|
@@ -1422,6 +1537,28 @@ const getSolidCoreSettings = (isProd) => [
|
|
|
1422
1537
|
value: process.env.COMMON_META_WHATSAPP_APP_SECRET,
|
|
1423
1538
|
level: interfaces_1.SettingLevel.SystemEnv,
|
|
1424
1539
|
},
|
|
1540
|
+
{
|
|
1541
|
+
moduleName: "solid-core",
|
|
1542
|
+
key: "uiTestDefaultTimeoutMs",
|
|
1543
|
+
value: timeoutFromEnv(process.env.COMMON_UI_TEST_DEFAULT_TIMEOUT_MS, 30000),
|
|
1544
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
1545
|
+
label: "UI Test Default Timeout (ms)",
|
|
1546
|
+
group: "testing-settings",
|
|
1547
|
+
sortOrder: 10,
|
|
1548
|
+
controlType: "numeric",
|
|
1549
|
+
helpText: "How long UI test steps wait for an element before failing. Raise this if tests time out on slow screens. Overridden by the --ui-timeout-ms flag and by a per-step timeoutMs.",
|
|
1550
|
+
},
|
|
1551
|
+
{
|
|
1552
|
+
moduleName: "solid-core",
|
|
1553
|
+
key: "uiTestNavigationTimeoutMs",
|
|
1554
|
+
value: timeoutFromEnv(process.env.COMMON_UI_TEST_NAVIGATION_TIMEOUT_MS, timeoutFromEnv(process.env.COMMON_UI_TEST_DEFAULT_TIMEOUT_MS, 30000)),
|
|
1555
|
+
level: interfaces_1.SettingLevel.SystemAdminEditable,
|
|
1556
|
+
label: "UI Test Navigation Timeout (ms)",
|
|
1557
|
+
group: "testing-settings",
|
|
1558
|
+
sortOrder: 20,
|
|
1559
|
+
controlType: "numeric",
|
|
1560
|
+
helpText: "How long the ui.goto step waits for a page to load before failing. Falls back to the UI test default timeout.",
|
|
1561
|
+
},
|
|
1425
1562
|
];
|
|
1426
1563
|
let SolidCoreDefaultSettingsProvider = class SolidCoreDefaultSettingsProvider {
|
|
1427
1564
|
getSettings() {
|