@solidstarters/solid-core 1.2.191 → 1.2.192
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/iam.config.d.ts +6 -4
- package/dist/config/iam.config.d.ts.map +1 -1
- package/dist/config/iam.config.js +3 -2
- package/dist/config/iam.config.js.map +1 -1
- package/dist/constants/error-messages.d.ts +2 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +2 -0
- package/dist/constants/error-messages.js.map +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/email-template.controller.d.ts.map +1 -1
- package/dist/controllers/email-template.controller.js +8 -8
- package/dist/controllers/email-template.controller.js.map +1 -1
- package/dist/controllers/export-template.controller.d.ts +2 -1
- package/dist/controllers/export-template.controller.d.ts.map +1 -1
- package/dist/controllers/export-template.controller.js +5 -3
- package/dist/controllers/export-template.controller.js.map +1 -1
- package/dist/controllers/import-transaction.controller.d.ts +2 -1
- package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/import-transaction.controller.js +6 -3
- package/dist/controllers/import-transaction.controller.js.map +1 -1
- package/dist/controllers/sms-template.controller.d.ts.map +1 -1
- package/dist/controllers/sms-template.controller.js +7 -7
- package/dist/controllers/sms-template.controller.js.map +1 -1
- package/dist/decorators/active-user.decorator.d.ts +1 -1
- package/dist/decorators/security-rule-config-provider.decorator.d.ts +3 -0
- package/dist/decorators/security-rule-config-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/security-rule-config-provider.decorator.js +11 -0
- package/dist/decorators/security-rule-config-provider.decorator.js.map +1 -0
- package/dist/decorators/solid-password.decorator.d.ts +5 -1
- package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
- package/dist/decorators/solid-password.decorator.js +18 -6
- package/dist/decorators/solid-password.decorator.js.map +1 -1
- package/dist/dtos/change-password.dto.js +1 -1
- package/dist/dtos/change-password.dto.js.map +1 -1
- package/dist/dtos/confirm-forgot-password.dto.js +1 -1
- package/dist/dtos/confirm-forgot-password.dto.js.map +1 -1
- package/dist/dtos/create-saved-filters.dto.d.ts +1 -0
- package/dist/dtos/create-saved-filters.dto.d.ts.map +1 -1
- package/dist/dtos/create-saved-filters.dto.js +7 -1
- package/dist/dtos/create-saved-filters.dto.js.map +1 -1
- package/dist/dtos/create-security-rule.dto.d.ts +1 -0
- package/dist/dtos/create-security-rule.dto.d.ts.map +1 -1
- package/dist/dtos/create-security-rule.dto.js +7 -1
- package/dist/dtos/create-security-rule.dto.js.map +1 -1
- package/dist/dtos/update-saved-filters.dto.d.ts +1 -0
- package/dist/dtos/update-saved-filters.dto.d.ts.map +1 -1
- package/dist/dtos/update-saved-filters.dto.js +7 -1
- package/dist/dtos/update-saved-filters.dto.js.map +1 -1
- package/dist/dtos/update-security-rule.dto.d.ts +1 -0
- package/dist/dtos/update-security-rule.dto.d.ts.map +1 -1
- package/dist/dtos/update-security-rule.dto.js +7 -1
- package/dist/dtos/update-security-rule.dto.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +2 -1
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.d.ts +1 -0
- package/dist/entities/saved-filters.entity.d.ts.map +1 -1
- package/dist/entities/saved-filters.entity.js +6 -2
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/security-rule.entity.d.ts +1 -0
- package/dist/entities/security-rule.entity.d.ts.map +1 -1
- package/dist/entities/security-rule.entity.js +5 -1
- package/dist/entities/security-rule.entity.js.map +1 -1
- package/dist/helpers/model-metadata-helper.service.d.ts +2 -3
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +2 -8
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +9 -0
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +5 -1
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +16 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/helpers/user-helper.d.ts +2 -0
- package/dist/helpers/user-helper.d.ts.map +1 -0
- package/dist/helpers/user-helper.js +41 -0
- package/dist/helpers/user-helper.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +6 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts +2 -2
- package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/trigger-mcp-client-subscriber.service.js +2 -2
- package/dist/jobs/trigger-mcp-client-subscriber.service.js.map +1 -1
- package/dist/jobs/twilio-sms-subscriber.service.d.ts +2 -2
- package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/twilio-sms-subscriber.service.js +2 -2
- package/dist/jobs/twilio-sms-subscriber.service.js.map +1 -1
- package/dist/repository/action-metadata.repository.d.ts +12 -0
- package/dist/repository/action-metadata.repository.d.ts.map +1 -0
- package/dist/repository/action-metadata.repository.js +34 -0
- package/dist/repository/action-metadata.repository.js.map +1 -0
- package/dist/repository/ai-interaction.repository.d.ts +12 -0
- package/dist/repository/ai-interaction.repository.d.ts.map +1 -0
- package/dist/repository/ai-interaction.repository.js +34 -0
- package/dist/repository/ai-interaction.repository.js.map +1 -0
- package/dist/repository/chatter-message-details.repository.d.ts +1 -1
- package/dist/repository/chatter-message-details.repository.d.ts.map +1 -1
- package/dist/repository/chatter-message-details.repository.js +2 -2
- package/dist/repository/chatter-message-details.repository.js.map +1 -1
- package/dist/repository/chatter-message.repository.d.ts +1 -1
- package/dist/repository/chatter-message.repository.d.ts.map +1 -1
- package/dist/repository/chatter-message.repository.js +2 -2
- package/dist/repository/chatter-message.repository.js.map +1 -1
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +12 -0
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +1 -0
- package/dist/repository/dashboard-question-sql-dataset-config.repository.js +34 -0
- package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +1 -0
- package/dist/repository/dashboard-question.repository.d.ts +12 -0
- package/dist/repository/dashboard-question.repository.d.ts.map +1 -0
- package/dist/repository/dashboard-question.repository.js +34 -0
- package/dist/repository/dashboard-question.repository.js.map +1 -0
- package/dist/repository/dashboard-variable.repository.d.ts +12 -0
- package/dist/repository/dashboard-variable.repository.d.ts.map +1 -0
- package/dist/repository/dashboard-variable.repository.js +34 -0
- package/dist/repository/dashboard-variable.repository.js.map +1 -0
- package/dist/repository/dashboard.repository.d.ts +9 -5
- package/dist/repository/dashboard.repository.d.ts.map +1 -1
- package/dist/repository/dashboard.repository.js +11 -5
- package/dist/repository/dashboard.repository.js.map +1 -1
- package/dist/repository/email-template.repository.d.ts +12 -0
- package/dist/repository/email-template.repository.d.ts.map +1 -0
- package/dist/repository/email-template.repository.js +34 -0
- package/dist/repository/email-template.repository.js.map +1 -0
- package/dist/repository/export-template.repository.d.ts +12 -0
- package/dist/repository/export-template.repository.d.ts.map +1 -0
- package/dist/repository/export-template.repository.js +34 -0
- package/dist/repository/export-template.repository.js.map +1 -0
- package/dist/repository/export-transaction.repository.d.ts +12 -0
- package/dist/repository/export-transaction.repository.d.ts.map +1 -0
- package/dist/repository/export-transaction.repository.js +34 -0
- package/dist/repository/export-transaction.repository.js.map +1 -0
- package/dist/repository/field-metadata.repository.d.ts +4 -3
- package/dist/repository/field-metadata.repository.d.ts.map +1 -1
- package/dist/repository/field-metadata.repository.js +5 -5
- package/dist/repository/field-metadata.repository.js.map +1 -1
- package/dist/repository/import-transaction-error-log.repository.d.ts +12 -0
- package/dist/repository/import-transaction-error-log.repository.d.ts.map +1 -0
- package/dist/repository/import-transaction-error-log.repository.js +34 -0
- package/dist/repository/import-transaction-error-log.repository.js.map +1 -0
- package/dist/repository/import-transaction.repository.d.ts +12 -0
- package/dist/repository/import-transaction.repository.d.ts.map +1 -0
- package/dist/repository/import-transaction.repository.js +34 -0
- package/dist/repository/import-transaction.repository.js.map +1 -0
- package/dist/repository/list-of-values.repository.d.ts +12 -0
- package/dist/repository/list-of-values.repository.d.ts.map +1 -0
- package/dist/repository/list-of-values.repository.js +34 -0
- package/dist/repository/list-of-values.repository.js.map +1 -0
- package/dist/repository/locale.repository.d.ts +12 -0
- package/dist/repository/locale.repository.d.ts.map +1 -0
- package/dist/repository/locale.repository.js +34 -0
- package/dist/repository/locale.repository.js.map +1 -0
- package/dist/repository/media-storage-provider-metadata.repository.d.ts +8 -0
- package/dist/repository/media-storage-provider-metadata.repository.d.ts.map +1 -0
- package/dist/repository/media-storage-provider-metadata.repository.js +28 -0
- package/dist/repository/media-storage-provider-metadata.repository.js.map +1 -0
- package/dist/repository/media.repository.d.ts +13 -8
- package/dist/repository/media.repository.d.ts.map +1 -1
- package/dist/repository/media.repository.js +18 -18
- package/dist/repository/media.repository.js.map +1 -1
- package/dist/repository/menu-item-metadata.repository.d.ts +12 -0
- package/dist/repository/menu-item-metadata.repository.d.ts.map +1 -0
- package/dist/repository/menu-item-metadata.repository.js +34 -0
- package/dist/repository/menu-item-metadata.repository.js.map +1 -0
- package/dist/repository/model-metadata.repository.d.ts +8 -0
- package/dist/repository/model-metadata.repository.d.ts.map +1 -0
- package/dist/repository/model-metadata.repository.js +28 -0
- package/dist/repository/model-metadata.repository.js.map +1 -0
- package/dist/repository/module-metadata.repository.d.ts +8 -0
- package/dist/repository/module-metadata.repository.d.ts.map +1 -0
- package/dist/repository/module-metadata.repository.js +28 -0
- package/dist/repository/module-metadata.repository.js.map +1 -0
- package/dist/repository/mq-message-queue.repository.d.ts +12 -0
- package/dist/repository/mq-message-queue.repository.d.ts.map +1 -0
- package/dist/repository/mq-message-queue.repository.js +34 -0
- package/dist/repository/mq-message-queue.repository.js.map +1 -0
- package/dist/repository/mq-message.repository.d.ts +12 -0
- package/dist/repository/mq-message.repository.d.ts.map +1 -0
- package/dist/repository/mq-message.repository.js +34 -0
- package/dist/repository/mq-message.repository.js.map +1 -0
- package/dist/repository/permission-metadata.repository.d.ts +12 -0
- package/dist/repository/permission-metadata.repository.d.ts.map +1 -0
- package/dist/repository/permission-metadata.repository.js +34 -0
- package/dist/repository/permission-metadata.repository.js.map +1 -0
- package/dist/repository/role-metadata.repository.d.ts +12 -0
- package/dist/repository/role-metadata.repository.d.ts.map +1 -0
- package/dist/repository/role-metadata.repository.js +34 -0
- package/dist/repository/role-metadata.repository.js.map +1 -0
- package/dist/repository/saved-filters.repository.d.ts +12 -0
- package/dist/repository/saved-filters.repository.d.ts.map +1 -0
- package/dist/repository/saved-filters.repository.js +62 -0
- package/dist/repository/saved-filters.repository.js.map +1 -0
- package/dist/repository/scheduled-job.repository.d.ts +9 -9
- package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
- package/dist/repository/scheduled-job.repository.js +11 -12
- package/dist/repository/scheduled-job.repository.js.map +1 -1
- package/dist/repository/security-rule.repository.d.ts +7 -7
- package/dist/repository/security-rule.repository.d.ts.map +1 -1
- package/dist/repository/security-rule.repository.js +28 -17
- package/dist/repository/security-rule.repository.js.map +1 -1
- package/dist/repository/setting.repository.d.ts +12 -0
- package/dist/repository/setting.repository.d.ts.map +1 -0
- package/dist/repository/setting.repository.js +34 -0
- package/dist/repository/setting.repository.js.map +1 -0
- package/dist/repository/sms-template.repository.d.ts +12 -0
- package/dist/repository/sms-template.repository.d.ts.map +1 -0
- package/dist/repository/sms-template.repository.js +34 -0
- package/dist/repository/sms-template.repository.js.map +1 -0
- package/dist/repository/solid-base.repository.d.ts +4 -3
- package/dist/repository/solid-base.repository.d.ts.map +1 -1
- package/dist/repository/solid-base.repository.js +12 -5
- package/dist/repository/solid-base.repository.js.map +1 -1
- package/dist/repository/user-activity-history.repository.d.ts +12 -0
- package/dist/repository/user-activity-history.repository.d.ts.map +1 -0
- package/dist/repository/user-activity-history.repository.js +34 -0
- package/dist/repository/user-activity-history.repository.js.map +1 -0
- package/dist/repository/user-view-metadata.repository.d.ts +12 -0
- package/dist/repository/user-view-metadata.repository.d.ts.map +1 -0
- package/dist/repository/user-view-metadata.repository.js +34 -0
- package/dist/repository/user-view-metadata.repository.js.map +1 -0
- package/dist/repository/view-metadata.repository.d.ts +9 -5
- package/dist/repository/view-metadata.repository.d.ts.map +1 -1
- package/dist/repository/view-metadata.repository.js +11 -5
- package/dist/repository/view-metadata.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +9 -5
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +32 -13
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.d.ts +2 -3
- package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js +2 -5
- package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +109 -62
- package/dist/seeders/system-fields-seeder.service.d.ts +2 -3
- package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
- package/dist/seeders/system-fields-seeder.service.js +4 -8
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/services/action-metadata.service.d.ts +7 -6
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +7 -8
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/ai-interaction.service.d.ts +10 -9
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +9 -10
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +3 -4
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +11 -11
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +12 -12
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +16 -18
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +5 -5
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +9 -9
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +4 -3
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.js +2 -3
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
- package/dist/services/dashboard-question.service.d.ts +4 -3
- package/dist/services/dashboard-question.service.d.ts.map +1 -1
- package/dist/services/dashboard-question.service.js +2 -2
- package/dist/services/dashboard-question.service.js.map +1 -1
- package/dist/services/dashboard-variable.service.d.ts +4 -3
- package/dist/services/dashboard-variable.service.d.ts.map +1 -1
- package/dist/services/dashboard-variable.service.js +2 -3
- package/dist/services/dashboard-variable.service.js.map +1 -1
- package/dist/services/email-template.service.d.ts +4 -3
- package/dist/services/email-template.service.d.ts.map +1 -1
- package/dist/services/email-template.service.js +2 -3
- package/dist/services/email-template.service.js.map +1 -1
- package/dist/services/export-template.service.d.ts +6 -4
- package/dist/services/export-template.service.d.ts.map +1 -1
- package/dist/services/export-template.service.js +14 -4
- package/dist/services/export-template.service.js.map +1 -1
- package/dist/services/export-transaction.service.d.ts +8 -7
- package/dist/services/export-transaction.service.d.ts.map +1 -1
- package/dist/services/export-transaction.service.js +11 -14
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.js +1 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/import-transaction-error-log.service.d.ts +4 -3
- package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
- package/dist/services/import-transaction-error-log.service.js +2 -3
- package/dist/services/import-transaction-error-log.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +8 -4
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +43 -16
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +19 -6
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +164 -9
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/locale.service.d.ts +9 -10
- package/dist/services/locale.service.d.ts.map +1 -1
- package/dist/services/locale.service.js +8 -14
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
- package/dist/services/mail/smtp-email.service.js +6 -1
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.d.ts +4 -4
- package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.js +5 -11
- package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
- package/dist/services/media.service.d.ts +7 -6
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +8 -12
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts +4 -3
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +4 -5
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +3 -2
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +45 -43
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts +3 -2
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +3 -3
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.d.ts +4 -3
- package/dist/services/mq-message-queue.service.d.ts.map +1 -1
- package/dist/services/mq-message-queue.service.js +2 -3
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +4 -3
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +2 -2
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/permission-metadata.service.d.ts +4 -3
- package/dist/services/permission-metadata.service.d.ts.map +1 -1
- package/dist/services/permission-metadata.service.js +2 -3
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-publisher.service.d.ts +8 -3
- package/dist/services/queues/rabbitmq-publisher.service.d.ts.map +1 -1
- package/dist/services/queues/rabbitmq-publisher.service.js +79 -18
- package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js +9 -3
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +10 -9
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +9 -11
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/saved-filters.service.d.ts +7 -6
- package/dist/services/saved-filters.service.d.ts.map +1 -1
- package/dist/services/saved-filters.service.js +6 -7
- package/dist/services/saved-filters.service.js.map +1 -1
- package/dist/services/scheduled-job.service.d.ts +4 -3
- package/dist/services/scheduled-job.service.d.ts.map +1 -1
- package/dist/services/scheduled-job.service.js +2 -3
- package/dist/services/scheduled-job.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.d.ts +3 -4
- package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +6 -11
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/security-rule.service.d.ts +4 -3
- package/dist/services/security-rule.service.d.ts.map +1 -1
- package/dist/services/security-rule.service.js +3 -3
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +3 -2
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +25 -9
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/sms-template.service.d.ts +4 -3
- package/dist/services/sms-template.service.d.ts.map +1 -1
- package/dist/services/sms-template.service.js +2 -3
- package/dist/services/sms-template.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +1 -0
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +14 -0
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/user-activity-history.service.d.ts +4 -3
- package/dist/services/user-activity-history.service.d.ts.map +1 -1
- package/dist/services/user-activity-history.service.js +2 -3
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user-view-metadata.service.d.ts +4 -3
- package/dist/services/user-view-metadata.service.d.ts.map +1 -1
- package/dist/services/user-view-metadata.service.js +2 -3
- package/dist/services/user-view-metadata.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 +3 -3
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +5 -6
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +5 -10
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +164 -121
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts +4 -4
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +4 -5
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/{list-of-values-metadata.subscriber.d.ts → list-of-values.subscriber.d.ts} +5 -5
- package/dist/subscribers/list-of-values.subscriber.d.ts.map +1 -0
- package/dist/subscribers/{list-of-values-metadata.subscriber.js → list-of-values.subscriber.js} +13 -13
- package/dist/subscribers/list-of-values.subscriber.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/rebuild.sh +2 -3
- package/src/config/iam.config.ts +3 -2
- package/src/constants/error-messages.ts +3 -0
- package/src/controllers/authentication.controller.ts +2 -2
- package/src/controllers/email-template.controller.ts +57 -64
- package/src/controllers/export-template.controller.ts +4 -2
- package/src/controllers/import-transaction.controller.ts +5 -2
- package/src/controllers/sms-template.controller.ts +55 -55
- package/src/decorators/security-rule-config-provider.decorator.ts +7 -0
- package/src/decorators/solid-password.decorator.ts +25 -17
- package/src/dtos/change-password.dto.ts +1 -1
- package/src/dtos/confirm-forgot-password.dto.ts +1 -1
- package/src/dtos/create-saved-filters.dto.ts +4 -0
- package/src/dtos/create-security-rule.dto.ts +5 -0
- package/src/dtos/update-saved-filters.dto.ts +4 -0
- package/src/dtos/update-security-rule.dto.ts +6 -1
- package/src/entities/field-metadata.entity.ts +2 -1
- package/src/entities/saved-filters.entity.ts +3 -1
- package/src/entities/security-rule.entity.ts +2 -0
- package/src/helpers/model-metadata-helper.service.ts +4 -5
- package/src/helpers/module-metadata-helper.service.ts +9 -0
- package/src/helpers/solid-registry.ts +21 -2
- package/src/helpers/user-helper.ts +37 -0
- package/src/index.ts +0 -1
- package/src/interfaces.ts +7 -0
- package/src/jobs/trigger-mcp-client-subscriber.service.ts +2 -2
- package/src/jobs/twilio-sms-subscriber.service.ts +2 -2
- package/src/repository/action-metadata.repository.ts +17 -0
- package/src/repository/ai-interaction.repository.ts +17 -0
- package/src/repository/chatter-message-details.repository.ts +3 -3
- package/src/repository/chatter-message.repository.ts +2 -2
- package/src/repository/dashboard-question-sql-dataset-config.repository.ts +17 -0
- package/src/repository/dashboard-question.repository.ts +17 -0
- package/src/repository/dashboard-variable.repository.ts +17 -0
- package/src/repository/dashboard.repository.ts +10 -10
- package/src/repository/email-template.repository.ts +17 -0
- package/src/repository/export-template.repository.ts +17 -0
- package/src/repository/export-transaction.repository.ts +17 -0
- package/src/repository/field-metadata.repository.ts +8 -6
- package/src/repository/import-transaction-error-log.repository.ts +17 -0
- package/src/repository/import-transaction.repository.ts +17 -0
- package/src/repository/list-of-values.repository.ts +17 -0
- package/src/repository/locale.repository.ts +17 -0
- package/src/repository/media-storage-provider-metadata.repository.ts +15 -0
- package/src/repository/media.repository.ts +21 -15
- package/src/repository/menu-item-metadata.repository.ts +17 -0
- package/src/repository/model-metadata.repository.ts +15 -0
- package/src/repository/module-metadata.repository.ts +15 -0
- package/src/repository/mq-message-queue.repository.ts +17 -0
- package/src/repository/mq-message.repository.ts +17 -0
- package/src/repository/permission-metadata.repository.ts +17 -0
- package/src/repository/role-metadata.repository.ts +17 -0
- package/src/repository/saved-filters.repository.ts +65 -0
- package/src/repository/scheduled-job.repository.ts +13 -14
- package/src/repository/security-rule.repository.ts +45 -25
- package/src/repository/setting.repository.ts +17 -0
- package/src/repository/sms-template.repository.ts +17 -0
- package/src/repository/solid-base.repository.ts +16 -8
- package/src/repository/user-activity-history.repository.ts +17 -0
- package/src/repository/user-view-metadata.repository.ts +17 -0
- package/src/repository/view-metadata.repository.ts +10 -8
- package/src/seeders/module-metadata-seeder.service.ts +35 -5
- package/src/seeders/permission-metadata-seeder.service.ts +4 -2
- package/src/seeders/seed-data/solid-core-metadata.json +111 -66
- package/src/seeders/system-fields-seeder.service.ts +6 -4
- package/src/services/action-metadata.service.ts +9 -7
- package/src/services/ai-interaction.service.ts +15 -13
- package/src/services/authentication.service.ts +26 -12
- package/src/services/chatter-message.service.ts +23 -21
- package/src/services/crud.service.ts +27 -32
- package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -2
- package/src/services/dashboard-question.service.ts +4 -2
- package/src/services/dashboard-variable.service.ts +5 -2
- package/src/services/docker exec -it mssql //" +8 -0
- package/src/services/email-template.service.ts +4 -2
- package/src/services/export-template.service.ts +22 -4
- package/src/services/export-transaction.service.ts +16 -9
- package/src/services/field-metadata.service.ts +1 -1
- package/src/services/import-transaction-error-log.service.ts +4 -2
- package/src/services/import-transaction.service.ts +109 -30
- package/src/services/list-of-values.service.ts +192 -8
- package/src/services/locale.service.ts +16 -14
- package/src/services/mail/smtp-email.service.ts +7 -1
- package/src/services/media-storage-provider-metadata.service.ts +10 -9
- package/src/services/media.service.ts +16 -8
- package/src/services/menu-item-metadata.service.ts +7 -4
- package/src/services/model-metadata.service.ts +64 -58
- package/src/services/module-metadata.service.ts +6 -3
- package/src/services/mq-message-queue.service.ts +4 -2
- package/src/services/mq-message.service.ts +4 -2
- package/src/services/permission-metadata.service.ts +5 -3
- package/src/services/queues/rabbitmq-publisher.service.ts +99 -41
- package/src/services/queues/rabbitmq-subscriber.service.ts +18 -5
- package/src/services/role-metadata.service.ts +16 -12
- package/src/services/saved-filters.service.ts +10 -8
- package/src/services/scheduled-job.service.ts +4 -2
- package/src/services/scheduled-jobs/scheduler.service.ts +9 -9
- package/src/services/security-rule.service.ts +6 -3
- package/src/services/setting.service.ts +31 -14
- package/src/services/sms-template.service.ts +4 -2
- package/src/services/solid-introspect.service.ts +23 -2
- package/src/services/user-activity-history.service.ts +4 -2
- package/src/services/user-view-metadata.service.ts +4 -2
- package/src/services/user.service.ts +5 -2
- package/src/services/view-metadata.service.ts +11 -9
- package/src/solid-core.module.ts +166 -138
- package/src/subscribers/audit.subscriber.ts +8 -7
- package/src/subscribers/{list-of-values-metadata.subscriber.ts → list-of-values.subscriber.ts} +7 -7
- package/dist/repository/field.repository.d.ts +0 -9
- package/dist/repository/field.repository.d.ts.map +0 -1
- package/dist/repository/field.repository.js +0 -46
- package/dist/repository/field.repository.js.map +0 -1
- package/dist/services/list-of-values-metadata.service.d.ts +0 -34
- package/dist/services/list-of-values-metadata.service.d.ts.map +0 -1
- package/dist/services/list-of-values-metadata.service.js +0 -213
- package/dist/services/list-of-values-metadata.service.js.map +0 -1
- package/dist/subscribers/list-of-values-metadata.subscriber.d.ts.map +0 -1
- package/dist/subscribers/list-of-values-metadata.subscriber.js.map +0 -1
- package/solid_seed_fixes.ts.txt +0 -93
- package/src/repository/field.repository.ts +0 -33
- package/src/services/list-of-values-metadata.service.ts +0 -216
|
@@ -10,6 +10,7 @@ import { FileService } from "src/services/file.service";
|
|
|
10
10
|
import { CrudHelperService } from "src/services/crud-helper.service";
|
|
11
11
|
import { MqMessage } from '../entities/mq-message.entity';
|
|
12
12
|
import { Logger } from '@nestjs/common';
|
|
13
|
+
import { MqMessageRepository } from 'src/repository/mq-message.repository';
|
|
13
14
|
|
|
14
15
|
@Injectable()
|
|
15
16
|
export class MqMessageService extends CRUDService<MqMessage> {
|
|
@@ -25,8 +26,9 @@ export class MqMessageService extends CRUDService<MqMessage> {
|
|
|
25
26
|
readonly crudHelperService: CrudHelperService,
|
|
26
27
|
@InjectEntityManager()
|
|
27
28
|
readonly entityManager: EntityManager,
|
|
28
|
-
@InjectRepository(MqMessage)
|
|
29
|
-
readonly repo: Repository<MqMessage>,
|
|
29
|
+
// @InjectRepository(MqMessage)
|
|
30
|
+
// readonly repo: Repository<MqMessage>,
|
|
31
|
+
readonly repo: MqMessageRepository,
|
|
30
32
|
readonly moduleRef: ModuleRef
|
|
31
33
|
) {
|
|
32
34
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'mqMessage', 'solid-core', moduleRef);
|
|
@@ -13,6 +13,7 @@ import { CrudHelperService } from "src/services/crud-helper.service";
|
|
|
13
13
|
import { PermissionMetadata } from '../entities/permission-metadata.entity';
|
|
14
14
|
import { ActiveUserData } from '../interfaces/active-user-data.interface';
|
|
15
15
|
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
16
|
+
import { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';
|
|
16
17
|
|
|
17
18
|
@Injectable()
|
|
18
19
|
export class PermissionMetadataService extends CRUDService<PermissionMetadata> {
|
|
@@ -25,9 +26,10 @@ export class PermissionMetadataService extends CRUDService<PermissionMetadata> {
|
|
|
25
26
|
readonly crudHelperService: CrudHelperService,
|
|
26
27
|
@InjectEntityManager()
|
|
27
28
|
readonly entityManager: EntityManager,
|
|
28
|
-
@InjectRepository(PermissionMetadata, 'default')
|
|
29
|
-
readonly repo: Repository<PermissionMetadata>,
|
|
30
|
-
|
|
29
|
+
// @InjectRepository(PermissionMetadata, 'default')
|
|
30
|
+
// readonly repo: Repository<PermissionMetadata>,
|
|
31
|
+
readonly repo: PermissionMetadataRepository,
|
|
32
|
+
readonly moduleRef: ModuleRef
|
|
31
33
|
|
|
32
34
|
) {
|
|
33
35
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'permissionMetadata', 'solid-core',moduleRef);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Logger } from '@nestjs/common';
|
|
1
|
+
import { Logger, OnModuleDestroy } from '@nestjs/common';
|
|
2
2
|
import * as amqp from 'amqplib';
|
|
3
3
|
import { v4 as uuidv4 } from 'uuid';
|
|
4
4
|
import { QueuesModuleOptions } from "../../interfaces";
|
|
@@ -6,11 +6,16 @@ import { QueueMessage, QueuePublisher } from '../../interfaces/mq';
|
|
|
6
6
|
import { MqMessageQueueService } from '../mq-message-queue.service';
|
|
7
7
|
import { MqMessageService } from '../mq-message.service';
|
|
8
8
|
|
|
9
|
-
export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> {
|
|
9
|
+
export abstract class RabbitMqPublisher<T> implements OnModuleDestroy, QueuePublisher<T> {
|
|
10
10
|
private readonly logger = new Logger(RabbitMqPublisher.name);
|
|
11
11
|
private readonly url: string;
|
|
12
12
|
private readonly serviceRole: string;
|
|
13
13
|
|
|
14
|
+
// Maintain connection...
|
|
15
|
+
private connection: amqp.Connection | null = null;
|
|
16
|
+
private channel: amqp.Channel | null = null;
|
|
17
|
+
private connectingPromise: Promise<void> | null = null;
|
|
18
|
+
|
|
14
19
|
constructor(
|
|
15
20
|
protected readonly mqMessageService: MqMessageService,
|
|
16
21
|
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
@@ -23,27 +28,106 @@ export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> {
|
|
|
23
28
|
if (!this.serviceRole) {
|
|
24
29
|
this.logger.debug('Queue service Role is not defined in the environment variables');
|
|
25
30
|
}
|
|
26
|
-
this.logger.debug(`RabbitMqPublisher instance created with options: ${JSON.stringify(this.options())} and url: ${this.url}`);
|
|
31
|
+
// this.logger.debug(`RabbitMqPublisher instance created with options: ${JSON.stringify(this.options())} and url: ${this.url}`);
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
abstract options(): QueuesModuleOptions;
|
|
30
35
|
|
|
31
|
-
async
|
|
36
|
+
private async ensureConnectionAndChannel(): Promise<amqp.Channel> {
|
|
37
|
+
if (this.channel) {
|
|
38
|
+
return this.channel;
|
|
39
|
+
}
|
|
32
40
|
|
|
33
|
-
|
|
41
|
+
// If another call is already connecting, wait for it
|
|
42
|
+
if (this.connectingPromise) {
|
|
43
|
+
await this.connectingPromise;
|
|
44
|
+
if (this.channel) return this.channel;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
this.connectingPromise = (async () => {
|
|
48
|
+
const url = new URL(this.url);
|
|
49
|
+
|
|
50
|
+
const conn = await amqp.connect({
|
|
51
|
+
protocol: url.protocol.replace(':', ''), // "amqps"
|
|
52
|
+
hostname: url.hostname,
|
|
53
|
+
port: parseInt(url.port),
|
|
54
|
+
username: url.username,
|
|
55
|
+
// Node's URL already decodes percent-encoding; decodeURIComponent is not needed
|
|
56
|
+
// But without it does not seem to be working...
|
|
57
|
+
password: decodeURIComponent(url.password),
|
|
58
|
+
frameMax: 131072,
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
conn.on('error', (err) => {
|
|
62
|
+
this.logger.error(`RabbitMQ connection error: ${err.message}`, err.stack);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
conn.on('close', () => {
|
|
66
|
+
this.logger.warn('RabbitMQ connection closed, resetting');
|
|
67
|
+
this.connection = null;
|
|
68
|
+
this.channel = null;
|
|
69
|
+
});
|
|
34
70
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
71
|
+
const channel = await conn.createChannel();
|
|
72
|
+
|
|
73
|
+
const options = this.options();
|
|
74
|
+
const queueName = options.queueName;
|
|
75
|
+
const exchangeName = `${queueName}.exchange`;
|
|
76
|
+
const routingKey = `${queueName}.routing-key`;
|
|
77
|
+
|
|
78
|
+
await channel.assertExchange(exchangeName, 'direct', {});
|
|
79
|
+
const queue = await channel.assertQueue(queueName, {});
|
|
80
|
+
await channel.bindQueue(queue.queue, exchangeName, routingKey);
|
|
81
|
+
|
|
82
|
+
this.connection = conn;
|
|
83
|
+
this.channel = channel;
|
|
84
|
+
})();
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
await this.connectingPromise;
|
|
88
|
+
} finally {
|
|
89
|
+
this.connectingPromise = null;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (!this.channel) {
|
|
93
|
+
throw new Error('Failed to initialize RabbitMQ channel');
|
|
94
|
+
}
|
|
43
95
|
|
|
44
|
-
return
|
|
96
|
+
return this.channel;
|
|
45
97
|
}
|
|
46
98
|
|
|
99
|
+
// Nest will call this for every subclass instance, because they inherit the method
|
|
100
|
+
async onModuleDestroy(): Promise<void> {
|
|
101
|
+
await this.closeConnectionAndChannel();
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
private async closeConnectionAndChannel(): Promise<void> {
|
|
105
|
+
if (this.channel) {
|
|
106
|
+
try {
|
|
107
|
+
await this.channel.close();
|
|
108
|
+
} catch (err) {
|
|
109
|
+
this.logger.warn(
|
|
110
|
+
`RabbitMqPublisher error closing channel: ${(err as Error).message}`,
|
|
111
|
+
);
|
|
112
|
+
} finally {
|
|
113
|
+
this.channel = null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (this.connection) {
|
|
118
|
+
try {
|
|
119
|
+
await this.connection.close();
|
|
120
|
+
} catch (err) {
|
|
121
|
+
this.logger.warn(
|
|
122
|
+
`RabbitMqPublisher error closing connection: ${(err as Error).message}`,
|
|
123
|
+
);
|
|
124
|
+
} finally {
|
|
125
|
+
this.connection = null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
|
|
47
131
|
async publish(message: QueueMessage<T>): Promise<string> {
|
|
48
132
|
if (!this.url) {
|
|
49
133
|
this.logger.error('RabbitMqPublisher url is not defined in the environment variables');
|
|
@@ -58,13 +142,7 @@ export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> {
|
|
|
58
142
|
throw new Error('Queue service Role is subscriber, cannot publish messages');
|
|
59
143
|
}
|
|
60
144
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
// const connection = await amqp.connect(this.url);
|
|
64
|
-
const connection = await this.establishConnection();
|
|
65
|
-
// this.logger.debug(`RabbitMqPublisher publisher connected options: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
66
|
-
|
|
67
|
-
const channel = await connection.createChannel();
|
|
145
|
+
const channel = await this.ensureConnectionAndChannel();
|
|
68
146
|
// this.logger.debug(`RabbitMqPublisher publisher channel created options: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
69
147
|
|
|
70
148
|
const options = this.options();
|
|
@@ -73,15 +151,6 @@ export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> {
|
|
|
73
151
|
const exchangeName = `${queueName}.exchange`;
|
|
74
152
|
const routingKey = `${queueName}.routing-key`;
|
|
75
153
|
|
|
76
|
-
await channel.assertExchange(exchangeName, 'direct', {});
|
|
77
|
-
// this.logger.debug(`RabbitMqPublisher channel asserted: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
78
|
-
|
|
79
|
-
const queue = await channel.assertQueue(queueName, {});
|
|
80
|
-
// this.logger.debug(`RabbitMqPublisher queue asserted: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
81
|
-
|
|
82
|
-
await channel.bindQueue(queue.queue, exchangeName, routingKey);
|
|
83
|
-
// this.logger.debug(`RabbitMqPublisher queue bound: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
84
|
-
|
|
85
154
|
// Set default values for retry.
|
|
86
155
|
// by default there are no retries.
|
|
87
156
|
if (!message.retryCount) message.retryCount = 0;
|
|
@@ -111,20 +180,9 @@ export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> {
|
|
|
111
180
|
}
|
|
112
181
|
}
|
|
113
182
|
finally {
|
|
114
|
-
// TODO: check if we want to do this or keep the connection open all the time.
|
|
115
|
-
// connection.close();
|
|
116
|
-
// setTimeout(() => {
|
|
117
|
-
// connection.close();
|
|
118
|
-
// this.logger.error('RabbitMqPublisher connection closed');
|
|
119
|
-
// }, 3000);
|
|
120
183
|
}
|
|
121
184
|
// this.logger.debug(`Sent message: ${JSON.stringify(message)}`);
|
|
122
185
|
|
|
123
|
-
// TODO: check if we want to do this or keep the connection open all the time.
|
|
124
|
-
// setTimeout(() => {
|
|
125
|
-
// connection.close();
|
|
126
|
-
// }, 500);
|
|
127
|
-
|
|
128
186
|
// return the newly created message id.
|
|
129
187
|
return message.messageId;
|
|
130
188
|
}
|
|
@@ -23,7 +23,7 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
|
|
|
23
23
|
if (!this.serviceRole) {
|
|
24
24
|
this.logger.debug('Queue service Role is not defined in the environment variables');
|
|
25
25
|
}
|
|
26
|
-
this.logger.debug(`RabbitMqSubscriber instance created with options: ${JSON.stringify(this.options())} and url: ${this.url}`);
|
|
26
|
+
// this.logger.debug(`RabbitMqSubscriber instance created with options: ${JSON.stringify(this.options())} and url: ${this.url}`);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
abstract subscribe(message: QueueMessage<T>);
|
|
@@ -34,12 +34,17 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
|
|
|
34
34
|
|
|
35
35
|
const url = new URL(this.url);
|
|
36
36
|
|
|
37
|
+
// this.logger.debug(`user: ${url.username}`);
|
|
38
|
+
// // just for local debug, don’t log in prod
|
|
39
|
+
// this.logger.debug(`pass: ${url.password}`);
|
|
40
|
+
// this.logger.debug(`path (vhost): ${url.pathname}`);
|
|
41
|
+
|
|
37
42
|
const connection = await amqp.connect({
|
|
38
43
|
protocol: url.protocol.replace(':', ''),
|
|
39
44
|
hostname: url.hostname,
|
|
40
45
|
port: parseInt(url.port),
|
|
41
46
|
username: url.username,
|
|
42
|
-
password: url.password,
|
|
47
|
+
password: decodeURIComponent(url.password),
|
|
43
48
|
frameMax: 131072,
|
|
44
49
|
});
|
|
45
50
|
|
|
@@ -50,10 +55,18 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
|
|
|
50
55
|
// we will start subscriber only if the current service role is subscriber.
|
|
51
56
|
if (this.url && ['both', 'subscriber'].includes(this.serviceRole)) {
|
|
52
57
|
|
|
53
|
-
// this.logger.debug(`RabbitMqSubscriber instance created with options: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
58
|
+
// this.logger.debug(`RabbitMqSubscriber instance created with options: ${JSON.stringify(this.options())} and url: ${this.url}`);
|
|
54
59
|
// const connection = await amqp.connect(this.url);
|
|
55
|
-
|
|
56
|
-
|
|
60
|
+
|
|
61
|
+
let connection;
|
|
62
|
+
try {
|
|
63
|
+
connection = await this.establishConnection();
|
|
64
|
+
// this.logger.debug(`RabbitMqSubscriber connection established: ${JSON.stringify(this.options())} and url: ${this.url}`);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
this.logger.error(`Failed to connect to RabbitMQ: ${(err as Error).message}`, (err as Error).stack);
|
|
68
|
+
throw err;
|
|
69
|
+
}
|
|
57
70
|
|
|
58
71
|
const channel = await connection.createChannel();
|
|
59
72
|
// this.logger.debug(`RabbitMqSubscriber channel created: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { forwardRef, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
3
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
4
|
-
import {
|
|
4
|
+
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
5
|
+
import { CrudHelperService } from "src/services/crud-helper.service";
|
|
5
6
|
import { CRUDService } from 'src/services/crud.service';
|
|
7
|
+
import { FileService } from "src/services/file.service";
|
|
6
8
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
7
9
|
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
8
|
-
import {
|
|
9
|
-
import { FileService } from "src/services/file.service";
|
|
10
|
-
import { CrudHelperService } from "src/services/crud-helper.service";
|
|
10
|
+
import { EntityManager, In } from 'typeorm';
|
|
11
11
|
|
|
12
|
-
import { RoleMetadata } from '../entities/role-metadata.entity';
|
|
13
|
-
import { PermissionMetadata } from '../entities/permission-metadata.entity';
|
|
14
|
-
import { CreateRoleMetadataDto } from '../dtos/create-role-metadata.dto';
|
|
15
12
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
13
|
+
import { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';
|
|
14
|
+
import { RoleMetadataRepository } from 'src/repository/role-metadata.repository';
|
|
15
|
+
import { CreateRoleMetadataDto } from '../dtos/create-role-metadata.dto';
|
|
16
|
+
import { PermissionMetadata } from '../entities/permission-metadata.entity';
|
|
17
|
+
import { RoleMetadata } from '../entities/role-metadata.entity';
|
|
16
18
|
|
|
17
19
|
@Injectable()
|
|
18
20
|
export class RoleMetadataService extends CRUDService<RoleMetadata> {
|
|
@@ -28,10 +30,12 @@ export class RoleMetadataService extends CRUDService<RoleMetadata> {
|
|
|
28
30
|
readonly crudHelperService: CrudHelperService,
|
|
29
31
|
@InjectEntityManager()
|
|
30
32
|
readonly entityManager: EntityManager,
|
|
31
|
-
@InjectRepository(RoleMetadata, 'default')
|
|
32
|
-
readonly repo: Repository<RoleMetadata>,
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
// @InjectRepository(RoleMetadata, 'default')
|
|
34
|
+
// readonly repo: Repository<RoleMetadata>,
|
|
35
|
+
readonly repo: RoleMetadataRepository,
|
|
36
|
+
// @InjectRepository(PermissionMetadata)
|
|
37
|
+
// private readonly permissionRepository: Repository<PermissionMetadata>,
|
|
38
|
+
readonly permissionRepository: PermissionMetadataRepository,
|
|
35
39
|
readonly moduleRef: ModuleRef
|
|
36
40
|
|
|
37
41
|
) {
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { EntityManager
|
|
2
|
+
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
3
|
+
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
|
+
import { EntityManager } from 'typeorm';
|
|
5
5
|
|
|
6
|
+
import { ConfigService } from '@nestjs/config';
|
|
7
|
+
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
6
8
|
import { CRUDService } from 'src/services/crud.service';
|
|
9
|
+
import { FileService } from 'src/services/file.service';
|
|
7
10
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
8
11
|
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
9
|
-
import { ConfigService } from '@nestjs/config';
|
|
10
|
-
import { FileService } from 'src/services/file.service';
|
|
11
|
-
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
import { SavedFiltersRepository } from 'src/repository/saved-filters.repository';
|
|
14
15
|
import { SavedFilters } from '../entities/saved-filters.entity';
|
|
15
16
|
|
|
16
17
|
@Injectable()
|
|
@@ -24,8 +25,9 @@ export class SavedFiltersService extends CRUDService<SavedFilters>{
|
|
|
24
25
|
readonly crudHelperService: CrudHelperService,
|
|
25
26
|
@InjectEntityManager()
|
|
26
27
|
readonly entityManager: EntityManager,
|
|
27
|
-
@InjectRepository(SavedFilters, 'default')
|
|
28
|
-
readonly repo: Repository<SavedFilters>,
|
|
28
|
+
// @InjectRepository(SavedFilters, 'default')
|
|
29
|
+
// readonly repo: Repository<SavedFilters>,
|
|
30
|
+
readonly repo: SavedFiltersRepository,
|
|
29
31
|
readonly moduleRef: ModuleRef
|
|
30
32
|
|
|
31
33
|
) {
|
|
@@ -10,6 +10,7 @@ import { FileService } from './file.service';
|
|
|
10
10
|
import { CrudHelperService } from './crud-helper.service';
|
|
11
11
|
import { CRUDService } from './crud.service';
|
|
12
12
|
import { Logger } from '@nestjs/common';
|
|
13
|
+
import { ScheduledJobRepository } from 'src/repository/scheduled-job.repository';
|
|
13
14
|
|
|
14
15
|
@Injectable()
|
|
15
16
|
export class ScheduledJobService extends CRUDService<ScheduledJob> {
|
|
@@ -24,8 +25,9 @@ export class ScheduledJobService extends CRUDService<ScheduledJob> {
|
|
|
24
25
|
readonly crudHelperService: CrudHelperService,
|
|
25
26
|
@InjectEntityManager()
|
|
26
27
|
readonly entityManager: EntityManager,
|
|
27
|
-
@InjectRepository(ScheduledJob)
|
|
28
|
-
readonly repo: Repository<ScheduledJob>,
|
|
28
|
+
// @InjectRepository(ScheduledJob)
|
|
29
|
+
// readonly repo: Repository<ScheduledJob>,
|
|
30
|
+
readonly repo: ScheduledJobRepository,
|
|
29
31
|
readonly moduleRef: ModuleRef
|
|
30
32
|
|
|
31
33
|
) {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { Injectable, Logger
|
|
2
|
-
import {
|
|
3
|
-
import { IsNull, LessThanOrEqual, Repository } from 'typeorm';
|
|
1
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
import { IsNull, LessThanOrEqual } from 'typeorm';
|
|
4
3
|
|
|
5
|
-
import { ISchedulerService } from './scheduler.interface';
|
|
6
|
-
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
7
|
-
import { ScheduledJob } from 'src/entities/scheduled-job.entity';
|
|
8
|
-
import { IScheduledJob } from './scheduled-job.interface';
|
|
9
4
|
import { Cron, CronExpression } from '@nestjs/schedule';
|
|
5
|
+
import { ScheduledJob } from 'src/entities/scheduled-job.entity';
|
|
6
|
+
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
7
|
+
import { ScheduledJobRepository } from 'src/repository/scheduled-job.repository';
|
|
8
|
+
import { ISchedulerService } from './scheduler.interface';
|
|
10
9
|
|
|
11
10
|
@Injectable()
|
|
12
11
|
export class SchedulerServiceImpl implements ISchedulerService {
|
|
13
12
|
private readonly logger = new Logger(SchedulerServiceImpl.name);
|
|
14
13
|
|
|
15
14
|
constructor(
|
|
16
|
-
@InjectRepository(ScheduledJob)
|
|
17
|
-
private readonly scheduledJobRepo: Repository<ScheduledJob>,
|
|
15
|
+
// @InjectRepository(ScheduledJob)
|
|
16
|
+
// private readonly scheduledJobRepo: Repository<ScheduledJob>,
|
|
17
|
+
private readonly scheduledJobRepo: ScheduledJobRepository,
|
|
18
18
|
private readonly solidRegistry: SolidRegistry,
|
|
19
19
|
) { }
|
|
20
20
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injectable, OnApplicationBootstrap } from '@nestjs/common';
|
|
1
|
+
import { forwardRef, Inject, Injectable, OnApplicationBootstrap } from '@nestjs/common';
|
|
2
2
|
import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
|
|
3
3
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
4
4
|
import { EntityManager, Repository } from 'typeorm';
|
|
@@ -13,6 +13,7 @@ import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
|
13
13
|
|
|
14
14
|
import { SecurityRule } from '../entities/security-rule.entity';
|
|
15
15
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
16
|
+
import { SecurityRuleRepository } from 'src';
|
|
16
17
|
|
|
17
18
|
@Injectable()
|
|
18
19
|
export class SecurityRuleService extends CRUDService<SecurityRule> implements OnApplicationBootstrap {
|
|
@@ -25,8 +26,10 @@ export class SecurityRuleService extends CRUDService<SecurityRule> implements On
|
|
|
25
26
|
readonly crudHelperService: CrudHelperService,
|
|
26
27
|
@InjectEntityManager()
|
|
27
28
|
readonly entityManager: EntityManager,
|
|
28
|
-
@InjectRepository(SecurityRule, 'default')
|
|
29
|
-
readonly repo: Repository<SecurityRule>,
|
|
29
|
+
// @InjectRepository(SecurityRule, 'default')
|
|
30
|
+
// readonly repo: Repository<SecurityRule>,
|
|
31
|
+
@Inject(forwardRef(() => SecurityRuleRepository))
|
|
32
|
+
readonly repo: SecurityRuleRepository,
|
|
30
33
|
readonly moduleRef: ModuleRef,
|
|
31
34
|
readonly solidRegistry: SolidRegistry,
|
|
32
35
|
|
|
@@ -15,6 +15,7 @@ import { Setting } from '../entities/setting.entity';
|
|
|
15
15
|
import { RequestContextService } from './request-context.service';
|
|
16
16
|
import { User } from 'src/entities/user.entity';
|
|
17
17
|
import { CreateSettingDto } from 'src/dtos/create-setting.dto';
|
|
18
|
+
import { SettingRepository } from 'src/repository/setting.repository';
|
|
18
19
|
|
|
19
20
|
@Injectable()
|
|
20
21
|
export class SettingService extends CRUDService<Setting> {
|
|
@@ -30,8 +31,9 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
30
31
|
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
31
32
|
@InjectEntityManager()
|
|
32
33
|
readonly entityManager: EntityManager,
|
|
33
|
-
@InjectRepository(Setting, 'default')
|
|
34
|
-
readonly repo: Repository<Setting>,
|
|
34
|
+
// @InjectRepository(Setting, 'default')
|
|
35
|
+
// readonly repo: Repository<Setting>,
|
|
36
|
+
readonly repo: SettingRepository,
|
|
35
37
|
readonly moduleRef: ModuleRef,
|
|
36
38
|
private readonly requestContextService: RequestContextService,
|
|
37
39
|
@InjectRepository(User) private readonly userRepository: Repository<User>,
|
|
@@ -43,8 +45,8 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
43
45
|
async seedDefaultSettings(): Promise<void> {
|
|
44
46
|
const settingsSeederData = {
|
|
45
47
|
allowPublicRegistration: this.iamConfiguration.allowPublicRegistration,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
passwordBasedAuth: this.iamConfiguration.passwordBasedAuth,
|
|
49
|
+
passwordLessAuth: this.iamConfiguration.passwordLessAuth,
|
|
48
50
|
activateUserOnRegistration: this.iamConfiguration.activateUserOnRegistration,
|
|
49
51
|
iamGoogleOAuthEnabled: false,
|
|
50
52
|
authPagesLayout: "center",
|
|
@@ -67,12 +69,15 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
67
69
|
copyright: null,
|
|
68
70
|
enableUsername: true,
|
|
69
71
|
enabledNotification: true,
|
|
70
|
-
contactSupportEmail
|
|
72
|
+
contactSupportEmail: null,
|
|
71
73
|
contactSupportDisplayName: null,
|
|
72
74
|
contactSupportIcon: null,
|
|
73
75
|
authScreenRightBackgroundImage: null,
|
|
74
76
|
authScreenLeftBackgroundImage: null,
|
|
75
77
|
authScreenCenterBackgroundImage: null,
|
|
78
|
+
authenticationPasswordRegex: this.iamConfiguration.PASSWORD_REGEX,
|
|
79
|
+
authenticationPasswordRegexErrorMessage: this.iamConfiguration.PASSWORD_REGEX_ERROR_MESSAGE,
|
|
80
|
+
authenticationPasswordComplexityDescription: this.iamConfiguration.PASSWORD_COMPLEXITY_DESC,
|
|
76
81
|
solidXGenAiCodeBuilderConfig: JSON.stringify({
|
|
77
82
|
defaultProvider: "",
|
|
78
83
|
availableProviders: []
|
|
@@ -91,7 +96,7 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
91
96
|
setting.key = key;
|
|
92
97
|
setting.value = typeof value === 'boolean' ? value.toString() :
|
|
93
98
|
Array.isArray(value) ? value.join(',') :
|
|
94
|
-
value === null || value === undefined ?
|
|
99
|
+
value === null || value === undefined ? null : String(value);
|
|
95
100
|
settingsToInsert.push(setting);
|
|
96
101
|
}
|
|
97
102
|
}
|
|
@@ -109,17 +114,22 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
109
114
|
}
|
|
110
115
|
|
|
111
116
|
const settingsMap: Record<string, any> = {};
|
|
117
|
+
const arrayKeysToSkip = [
|
|
118
|
+
'authenticationPasswordRegex',
|
|
119
|
+
'authenticationPasswordRegexErrorMessage',
|
|
120
|
+
'authenticationPasswordComplexityDescription',
|
|
121
|
+
];
|
|
112
122
|
for (const setting of settingsArray) {
|
|
113
123
|
if (setting.key && setting.value !== undefined && setting.value !== null) {
|
|
114
124
|
let value = setting.value;
|
|
115
|
-
|
|
125
|
+
try {
|
|
116
126
|
settingsMap[setting.key] = JSON.parse(value);
|
|
117
127
|
} catch {
|
|
118
128
|
if (value === 'true' || value === 'false') {
|
|
119
129
|
settingsMap[setting.key] = value === 'true';
|
|
120
130
|
} else if (!isNaN(Number(value)) && value.trim() !== '') {
|
|
121
131
|
settingsMap[setting.key] = Number(value);
|
|
122
|
-
} else if (value.includes(',')) {
|
|
132
|
+
} else if (!arrayKeysToSkip.includes(setting.key) && value.includes(',')) {
|
|
123
133
|
settingsMap[setting.key] = value.split(',').map(item => item.trim());
|
|
124
134
|
} else {
|
|
125
135
|
settingsMap[setting.key] = value;
|
|
@@ -139,7 +149,7 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
139
149
|
// settingsMap[setting.key] = value;
|
|
140
150
|
// }
|
|
141
151
|
}
|
|
142
|
-
}
|
|
152
|
+
}
|
|
143
153
|
|
|
144
154
|
const defaultSettings = this.getDefaultSettings();
|
|
145
155
|
|
|
@@ -154,8 +164,8 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
154
164
|
private getDefaultSettings(): Record<string, any> {
|
|
155
165
|
return {
|
|
156
166
|
allowPublicRegistration: this.iamConfiguration.allowPublicRegistration,
|
|
157
|
-
|
|
158
|
-
|
|
167
|
+
passwordBasedAuth: this.iamConfiguration.passwordBasedAuth,
|
|
168
|
+
passwordLessAuth: this.iamConfiguration.passwordLessAuth,
|
|
159
169
|
activateUserOnRegistration: this.iamConfiguration.activateUserOnRegistration,
|
|
160
170
|
iamGoogleOAuthEnabled: false,
|
|
161
171
|
authPagesLayout: "center",
|
|
@@ -179,12 +189,15 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
179
189
|
forceChangePasswordOnFirstLogin: this.iamConfiguration.forceChangePasswordOnFirstLogin,
|
|
180
190
|
enableUsername: true,
|
|
181
191
|
enabledNotification: true,
|
|
182
|
-
contactSupportEmail
|
|
192
|
+
contactSupportEmail: null,
|
|
183
193
|
contactSupportDisplayName: null,
|
|
184
194
|
contactSupportIcon: null,
|
|
185
195
|
authScreenRightBackgroundImage: null,
|
|
186
196
|
authScreenLeftBackgroundImage: null,
|
|
187
197
|
authScreenCenterBackgroundImage: null,
|
|
198
|
+
authenticationPasswordRegex: this.iamConfiguration.PASSWORD_REGEX,
|
|
199
|
+
authenticationPasswordRegexErrorMessage: this.iamConfiguration.PASSWORD_REGEX_ERROR_MESSAGE,
|
|
200
|
+
authenticationPasswordComplexityDescription: this.iamConfiguration.PASSWORD_COMPLEXITY_DESC,
|
|
188
201
|
solidXGenAiCodeBuilderConfig: JSON.stringify({
|
|
189
202
|
defaultProvider: "",
|
|
190
203
|
availableProviders: []
|
|
@@ -322,7 +335,11 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
322
335
|
|
|
323
336
|
const system: Record<string, any> = {};
|
|
324
337
|
const user: Record<string, any> = {};
|
|
325
|
-
|
|
338
|
+
const arrayKeysToSkip = [
|
|
339
|
+
'authenticationPasswordRegex',
|
|
340
|
+
'authenticationPasswordRegexErrorMessage',
|
|
341
|
+
'authenticationPasswordComplexityDescription',
|
|
342
|
+
];
|
|
326
343
|
for (const setting of settingsArray) {
|
|
327
344
|
if (setting.key && setting.value !== undefined && setting.value !== null) {
|
|
328
345
|
const value = setting.value;
|
|
@@ -335,7 +352,7 @@ export class SettingService extends CRUDService<Setting> {
|
|
|
335
352
|
parsedValue = value === 'true';
|
|
336
353
|
} else if (!isNaN(Number(value)) && value.trim() !== '') {
|
|
337
354
|
parsedValue = Number(value);
|
|
338
|
-
} else if (value.includes(',')) {
|
|
355
|
+
} else if (!arrayKeysToSkip.includes(setting.key) && value.includes(',')) {
|
|
339
356
|
parsedValue = value.split(',').map(item => item.trim());
|
|
340
357
|
} else {
|
|
341
358
|
parsedValue = value;
|
|
@@ -15,6 +15,7 @@ import { FileService } from './file.service';
|
|
|
15
15
|
import { MediaService } from './media.service';
|
|
16
16
|
import { DiscoveryService, ModuleRef } from '@nestjs/core';
|
|
17
17
|
import { CrudHelperService } from './crud-helper.service';
|
|
18
|
+
import { SmsTemplateRepository } from 'src/repository/sms-template.repository';
|
|
18
19
|
|
|
19
20
|
@Injectable()
|
|
20
21
|
export class SmsTemplateService extends CRUDService<SmsTemplate>{
|
|
@@ -29,8 +30,9 @@ export class SmsTemplateService extends CRUDService<SmsTemplate>{
|
|
|
29
30
|
readonly crudHelperService: CrudHelperService,
|
|
30
31
|
@InjectEntityManager()
|
|
31
32
|
readonly entityManager: EntityManager,
|
|
32
|
-
@InjectRepository(SmsTemplate, 'default')
|
|
33
|
-
readonly repo: Repository<SmsTemplate>,
|
|
33
|
+
// @InjectRepository(SmsTemplate, 'default')
|
|
34
|
+
// readonly repo: Repository<SmsTemplate>,
|
|
35
|
+
readonly repo: SmsTemplateRepository,
|
|
34
36
|
readonly moduleRef: ModuleRef,
|
|
35
37
|
) {
|
|
36
38
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'smsTemplate', 'app-builder', moduleRef);
|