@solidstarters/solid-core 1.2.189 → 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/file.service.d.ts.map +1 -1
- package/dist/services/file.service.js +1 -17
- package/dist/services/file.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/file.service.ts +1 -24
- 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
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { RoleMetadata } from 'src';
|
|
3
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
4
|
+
import { DataSource } from 'typeorm';
|
|
5
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
6
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
7
|
+
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class RoleMetadataRepository extends SolidBaseRepository<RoleMetadata> {
|
|
10
|
+
constructor(
|
|
11
|
+
readonly dataSource: DataSource,
|
|
12
|
+
readonly requestContextService: RequestContextService,
|
|
13
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
14
|
+
) {
|
|
15
|
+
super(RoleMetadata, dataSource, requestContextService, securityRuleRepository);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Injectable, Logger } from "@nestjs/common";
|
|
2
|
+
import { CreateSavedFiltersDto } from "src/dtos/create-saved-filters.dto";
|
|
3
|
+
import { ModelMetadata } from "src/entities/model-metadata.entity";
|
|
4
|
+
import { SavedFilters } from "src/entities/saved-filters.entity";
|
|
5
|
+
import { User } from "src/entities/user.entity";
|
|
6
|
+
import { ViewMetadata } from "src/entities/view-metadata.entity";
|
|
7
|
+
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
8
|
+
import { CrudHelperService } from "src/services/crud-helper.service";
|
|
9
|
+
import { DataSource, Repository } from "typeorm";
|
|
10
|
+
import { SolidBaseRepository } from "./solid-base.repository";
|
|
11
|
+
|
|
12
|
+
@Injectable()
|
|
13
|
+
export class SavedFiltersRepository extends SolidBaseRepository<SavedFilters> {
|
|
14
|
+
readonly logger = new Logger(SavedFiltersRepository.name);
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
private dataSource: DataSource,
|
|
18
|
+
) {
|
|
19
|
+
super(SavedFilters, dataSource, null , null);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Converts an entity to a plain DTO object.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
async upsertWithDto(dto: CreateSavedFiltersDto): Promise<SavedFilters> {
|
|
27
|
+
const modelRepo = this.dataSource.getRepository(ModelMetadata);
|
|
28
|
+
const viewRepo = this.dataSource.getRepository(ViewMetadata);
|
|
29
|
+
|
|
30
|
+
// Find related entities based on keys from DTO
|
|
31
|
+
const [modelEntity, viewEntity] = await Promise.all([
|
|
32
|
+
modelRepo.findOne({ where: { singularName: dto.modelUserKey } }),
|
|
33
|
+
viewRepo.findOne({ where: { name: dto.viewUserKey } }),
|
|
34
|
+
]);
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
if (!modelEntity || !viewEntity) {
|
|
38
|
+
throw new Error(
|
|
39
|
+
`Missing related entity for SavedFilter: model=${dto.modelUserKey}, view=${dto.viewUserKey}`
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const filterData:Partial<SavedFilters> = {
|
|
44
|
+
...dto,
|
|
45
|
+
isPrivate: false,
|
|
46
|
+
user: null,
|
|
47
|
+
model: modelEntity,
|
|
48
|
+
view: viewEntity,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const existing = await this.findOne({
|
|
52
|
+
where: { name: dto.name },
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
if (existing) {
|
|
56
|
+
const merged = this.merge(existing, filterData);
|
|
57
|
+
this.logger.debug(`Updating saved filter: ${dto.name}`);
|
|
58
|
+
return this.save(merged);
|
|
59
|
+
} else {
|
|
60
|
+
this.logger.debug(`Creating saved filter: ${dto.name}`);
|
|
61
|
+
return this.save(this.create(filterData));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Injectable
|
|
1
|
+
import { Injectable } from "@nestjs/common";
|
|
2
2
|
import { CreateScheduledJobDto } from "src/dtos/create-scheduled-job.dto";
|
|
3
3
|
import { ModuleMetadata } from "src/entities/module-metadata.entity";
|
|
4
4
|
import { ScheduledJob } from "src/entities/scheduled-job.entity";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { RequestContextService } from "src/services/request-context.service";
|
|
6
|
+
import { DataSource } from "typeorm";
|
|
7
|
+
import { SecurityRuleRepository } from "./security-rule.repository";
|
|
8
|
+
import { SolidBaseRepository } from "./solid-base.repository";
|
|
8
9
|
|
|
9
10
|
// This should match whatever DTO structure you’re using in your seeding logic
|
|
10
11
|
// export type CreateScheduledJobDto = {
|
|
@@ -24,16 +25,14 @@ import { DataSource, Repository } from "typeorm";
|
|
|
24
25
|
// };
|
|
25
26
|
|
|
26
27
|
@Injectable()
|
|
27
|
-
export class ScheduledJobRepository extends
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
super(ScheduledJob, dataSource.createEntityManager());
|
|
36
|
-
}
|
|
28
|
+
export class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {
|
|
29
|
+
constructor(
|
|
30
|
+
readonly dataSource: DataSource,
|
|
31
|
+
readonly requestContextService: RequestContextService,
|
|
32
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
33
|
+
) {
|
|
34
|
+
super(ScheduledJob, dataSource, requestContextService, securityRuleRepository);
|
|
35
|
+
}
|
|
37
36
|
|
|
38
37
|
/**
|
|
39
38
|
* Converts an entity to a plain DTO object.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injectable
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
2
|
import { CreateSecurityRuleDto } from 'src/dtos/create-security-rule.dto';
|
|
3
3
|
import { SecurityRuleConfig } from 'src/dtos/security-rule-config.dto';
|
|
4
4
|
import { UpdateSecurityRuleDto } from 'src/dtos/update-security-rule.dto';
|
|
@@ -8,21 +8,22 @@ import { RoleMetadata } from 'src/entities/role-metadata.entity';
|
|
|
8
8
|
import { SecurityRule } from 'src/entities/security-rule.entity';
|
|
9
9
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
10
10
|
import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
|
|
11
|
-
import { CrudHelperService
|
|
12
|
-
import { Brackets, DataSource,
|
|
11
|
+
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
12
|
+
import { Brackets, DataSource, SelectQueryBuilder } from 'typeorm';
|
|
13
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
13
14
|
|
|
14
15
|
@Injectable()
|
|
15
|
-
export class SecurityRuleRepository extends
|
|
16
|
-
private readonly logger = new Logger(SecurityRuleRepository.name);
|
|
16
|
+
export class SecurityRuleRepository extends SolidBaseRepository<SecurityRule> {
|
|
17
17
|
constructor(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
readonly dataSource: DataSource,
|
|
19
|
+
// readonly requestContextService: RequestContextService,
|
|
20
|
+
readonly solidRegistry: SolidRegistry,
|
|
21
|
+
readonly crudHelperService: CrudHelperService,
|
|
21
22
|
) {
|
|
22
|
-
super(SecurityRule, dataSource
|
|
23
|
+
super(SecurityRule, dataSource, null, null);
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
applySecurityRules<T extends CommonEntity>(qb: SelectQueryBuilder<T>, modelSingularName: string, activeUser: ActiveUserData, securityRuleAlias: string = qb.alias): SelectQueryBuilder<T
|
|
26
|
+
async applySecurityRules<T extends CommonEntity>(qb: SelectQueryBuilder<T>, modelSingularName: string, activeUser: ActiveUserData, securityRuleAlias: string = qb.alias): Promise<SelectQueryBuilder<T>> {
|
|
26
27
|
// Fetch the security rules for the model and roles
|
|
27
28
|
const securityRules = this.solidRegistry.getSecurityRules(modelSingularName, activeUser.roles);
|
|
28
29
|
|
|
@@ -31,23 +32,42 @@ export class SecurityRuleRepository extends Repository<SecurityRule> {
|
|
|
31
32
|
return qb;
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const evaluatedRules = [];
|
|
36
|
+
|
|
37
|
+
for (const rule of securityRules) {
|
|
38
|
+
|
|
39
|
+
let evaluatedRule = null;
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
// First check if the rule has a "dynamic" security rule config provider.
|
|
43
|
+
if (rule.securityRuleConfigProvider) {
|
|
44
|
+
// TODO: Evaluation of the securityRuleConfig Provider should happen outside first...
|
|
45
|
+
const securityRuleConfigProviderInstance = this.solidRegistry.getSecurityRuleConfigProviderInstance(rule.securityRuleConfigProvider);
|
|
46
|
+
evaluatedRule = await securityRuleConfigProviderInstance.securityRuleConfig(activeUser, rule);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
evaluatedRule = JSON.parse(
|
|
39
50
|
this.resolveSecurityRuleConfig(rule.securityRuleConfig, activeUser)
|
|
40
51
|
) as SecurityRuleConfig;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
evaluatedRules.push(evaluatedRule);
|
|
41
55
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
} catch (error) {
|
|
57
|
+
this.logger.warn(`Error parsing security rule: ${rule.securityRuleConfig}`, error);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
// Apply each security rule to the query builder. The rules are combined with OR logic at the top level.
|
|
63
|
+
qb.andWhere(new Brackets(async (outerQb) => {
|
|
64
|
+
for (const evaluatedRule of evaluatedRules) {
|
|
65
|
+
if (evaluatedRule && evaluatedRule.filters) {
|
|
66
|
+
outerQb.orWhere( // combine each rule-group with OR at the outer level
|
|
67
|
+
new Brackets((innerQb) => {
|
|
68
|
+
this.crudHelperService.applyFilters(innerQb, evaluatedRule.filters, securityRuleAlias, qb); // AND within a rule
|
|
69
|
+
})
|
|
70
|
+
);
|
|
51
71
|
}
|
|
52
72
|
}
|
|
53
73
|
}));
|
|
@@ -55,7 +75,6 @@ export class SecurityRuleRepository extends Repository<SecurityRule> {
|
|
|
55
75
|
return qb;
|
|
56
76
|
}
|
|
57
77
|
|
|
58
|
-
|
|
59
78
|
private resolveSecurityRuleConfig(configString: string, activeUser: ActiveUserData) {
|
|
60
79
|
return configString.replace('$activeUserId', activeUser.sub.toString());
|
|
61
80
|
}
|
|
@@ -85,6 +104,7 @@ export class SecurityRuleRepository extends Repository<SecurityRule> {
|
|
|
85
104
|
modelMetadataId: populatedSecurityRule.modelMetadata.id,
|
|
86
105
|
modelMetadataUserKey: populatedSecurityRule.modelMetadata.singularName,
|
|
87
106
|
securityRuleConfig: populatedSecurityRule.securityRuleConfig,
|
|
107
|
+
securityRuleConfigProvider: ""
|
|
88
108
|
};
|
|
89
109
|
}
|
|
90
110
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { Setting } from 'src';
|
|
3
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
4
|
+
import { DataSource } from 'typeorm';
|
|
5
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
6
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
7
|
+
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class SettingRepository extends SolidBaseRepository<Setting> {
|
|
10
|
+
constructor(
|
|
11
|
+
readonly dataSource: DataSource,
|
|
12
|
+
readonly requestContextService: RequestContextService,
|
|
13
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
14
|
+
) {
|
|
15
|
+
super(Setting, dataSource, requestContextService, securityRuleRepository);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { SmsTemplate } from 'src';
|
|
3
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
4
|
+
import { DataSource } from 'typeorm';
|
|
5
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
6
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
7
|
+
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class SmsTemplateRepository extends SolidBaseRepository<SmsTemplate> {
|
|
10
|
+
constructor(
|
|
11
|
+
readonly dataSource: DataSource,
|
|
12
|
+
readonly requestContextService: RequestContextService,
|
|
13
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
14
|
+
) {
|
|
15
|
+
super(SmsTemplate, dataSource, requestContextService, securityRuleRepository);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -22,8 +22,8 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
|
|
|
22
22
|
constructor(
|
|
23
23
|
entity: EntityTarget<T>,
|
|
24
24
|
dataSource: DataSource,
|
|
25
|
-
protected readonly requestContextService: RequestContextService,
|
|
26
|
-
protected readonly securityRuleRepository: SecurityRuleRepository
|
|
25
|
+
protected readonly requestContextService: RequestContextService | null,
|
|
26
|
+
protected readonly securityRuleRepository: SecurityRuleRepository | null,
|
|
27
27
|
) {
|
|
28
28
|
super(entity, dataSource.createEntityManager());
|
|
29
29
|
this.logger = new Logger(this.constructor.name);
|
|
@@ -33,12 +33,20 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
|
|
|
33
33
|
return camelize(this.metadata.name);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
createQueryBuilder(alias?: string, queryRunner?: QueryRunner): SelectQueryBuilder<T> {
|
|
37
|
-
|
|
36
|
+
override createQueryBuilder(alias?: string, queryRunner?: QueryRunner): SelectQueryBuilder<T> {
|
|
37
|
+
throw new Error('createQueryBuilder() is disabled. Use createSecurityRuleAwareQueryBuilder instead');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async createSecurityRuleAwareQueryBuilder(alias?: string, queryRunner?: QueryRunner): Promise<SelectQueryBuilder<T>> {
|
|
38
41
|
const qb = super.createQueryBuilder(alias, queryRunner);
|
|
42
|
+
|
|
43
|
+
if (!this.securityRuleRepository) return qb;
|
|
44
|
+
if (!this.requestContextService) return qb;
|
|
45
|
+
|
|
46
|
+
const activeUserOrUndefined = this.requestContextService.getActiveUser();
|
|
39
47
|
if (!activeUserOrUndefined) return qb;
|
|
40
48
|
|
|
41
|
-
return this.securityRuleRepository.applySecurityRules(
|
|
49
|
+
return await this.securityRuleRepository.applySecurityRules(
|
|
42
50
|
qb,
|
|
43
51
|
this.modelSingularName(),
|
|
44
52
|
activeUserOrUndefined as ActiveUserData
|
|
@@ -51,7 +59,7 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
|
|
|
51
59
|
*/
|
|
52
60
|
override async findOne(options?: FindOneOptions<T>): Promise<T | null> {
|
|
53
61
|
const alias = this.modelSingularName();
|
|
54
|
-
const qb = this.
|
|
62
|
+
const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
|
|
55
63
|
|
|
56
64
|
if (options) {
|
|
57
65
|
// Apply all standard find options (relations, selects, order, where, etc.)
|
|
@@ -85,7 +93,7 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
|
|
|
85
93
|
*/
|
|
86
94
|
override async find(options?: FindManyOptions<T>): Promise<T[]> {
|
|
87
95
|
const alias = this.modelSingularName();
|
|
88
|
-
const qb = this.
|
|
96
|
+
const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
|
|
89
97
|
|
|
90
98
|
if (options) {
|
|
91
99
|
qb.setFindOptions(options);
|
|
@@ -100,7 +108,7 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
|
|
|
100
108
|
*/
|
|
101
109
|
override async findAndCount(options?: FindManyOptions<T>): Promise<[T[], number]> {
|
|
102
110
|
const alias = this.modelSingularName();
|
|
103
|
-
const qb = this.
|
|
111
|
+
const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
|
|
104
112
|
|
|
105
113
|
if (options) {
|
|
106
114
|
qb.setFindOptions(options);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { UserActivityHistory } from 'src';
|
|
3
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
4
|
+
import { DataSource } from 'typeorm';
|
|
5
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
6
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
7
|
+
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class UserActivityHistoryRepository extends SolidBaseRepository<UserActivityHistory> {
|
|
10
|
+
constructor(
|
|
11
|
+
readonly dataSource: DataSource,
|
|
12
|
+
readonly requestContextService: RequestContextService,
|
|
13
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
14
|
+
) {
|
|
15
|
+
super(UserActivityHistory, dataSource, requestContextService, securityRuleRepository);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { UserViewMetadata } from 'src';
|
|
3
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
4
|
+
import { DataSource } from 'typeorm';
|
|
5
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
6
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
7
|
+
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class UserViewMetadataRepository extends SolidBaseRepository<UserViewMetadata> {
|
|
10
|
+
constructor(
|
|
11
|
+
readonly dataSource: DataSource,
|
|
12
|
+
readonly requestContextService: RequestContextService,
|
|
13
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
14
|
+
) {
|
|
15
|
+
super(UserViewMetadata, dataSource, requestContextService, securityRuleRepository);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { Injectable
|
|
2
|
-
import { Dashboard } from "src/entities/dashboard.entity";
|
|
1
|
+
import { Injectable } from "@nestjs/common";
|
|
3
2
|
import { ViewMetadata } from "src/entities/view-metadata.entity";
|
|
4
|
-
import {
|
|
3
|
+
import { RequestContextService } from "src/services/request-context.service";
|
|
4
|
+
import { DataSource } from "typeorm";
|
|
5
|
+
import { SecurityRuleRepository } from "./security-rule.repository";
|
|
6
|
+
import { SolidBaseRepository } from "./solid-base.repository";
|
|
5
7
|
|
|
6
8
|
@Injectable()
|
|
7
|
-
export class ViewMetadataRepository extends
|
|
8
|
-
private readonly logger = new Logger(this.constructor.name);
|
|
9
|
-
|
|
9
|
+
export class ViewMetadataRepository extends SolidBaseRepository<ViewMetadata> {
|
|
10
10
|
constructor(
|
|
11
|
-
|
|
11
|
+
readonly dataSource: DataSource,
|
|
12
|
+
readonly requestContextService: RequestContextService,
|
|
13
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
12
14
|
) {
|
|
13
|
-
super(ViewMetadata, dataSource
|
|
15
|
+
super(ViewMetadata, dataSource, requestContextService, securityRuleRepository);
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
// Custom repository methods can be added here if needed
|
|
@@ -40,10 +40,14 @@ import { ViewMetadataService } from '../services/view-metadata.service';
|
|
|
40
40
|
import solidCoreMetadata from './seed-data/solid-core-metadata.json';
|
|
41
41
|
import { SystemFieldsSeederService } from './system-fields-seeder.service';
|
|
42
42
|
// import { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';
|
|
43
|
+
import { ActionMetadata, MENU_ROLE_JOIN_TABLE_NAME, MENU_ROLE_JOIN_TABLE_NAME_MENU_COL, MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL, MenuItemMetadata, ModuleMetadata, RoleMetadata } from 'src';
|
|
43
44
|
import { ADMIN_ROLE_NAME, INTERNAL_ROLE_NAME, INTERNAL_ROLE_PERMISSIONS, PUBLIC_ROLE_NAME } from 'src/dtos/create-role-metadata.dto';
|
|
44
45
|
import { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';
|
|
45
46
|
import { ScheduledJobRepository } from 'src/repository/scheduled-job.repository';
|
|
46
|
-
import {
|
|
47
|
+
import { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';
|
|
48
|
+
import { SettingRepository } from 'src/repository/setting.repository';
|
|
49
|
+
import { CreateSavedFiltersDto } from 'src/dtos/create-saved-filters.dto';
|
|
50
|
+
import { SavedFiltersRepository } from 'src/repository/saved-filters.repository';
|
|
47
51
|
|
|
48
52
|
|
|
49
53
|
@Injectable()
|
|
@@ -66,8 +70,9 @@ export class ModuleMetadataSeederService {
|
|
|
66
70
|
private readonly emailTemplateService: EmailTemplateService,
|
|
67
71
|
private readonly smsTemplateService: SmsTemplateService,
|
|
68
72
|
private readonly listOfValuesService: ListOfValuesService,
|
|
69
|
-
@InjectRepository(PermissionMetadata)
|
|
70
|
-
private readonly permissionRepo: Repository<PermissionMetadata>,
|
|
73
|
+
// @InjectRepository(PermissionMetadata)
|
|
74
|
+
// private readonly permissionRepo: Repository<PermissionMetadata>,
|
|
75
|
+
private readonly permissionRepo: PermissionMetadataRepository,
|
|
71
76
|
private readonly solidRegistry: SolidRegistry,
|
|
72
77
|
@Inject(appBuilderConfig.KEY)
|
|
73
78
|
private readonly appBuilderConfiguration: ConfigType<typeof appBuilderConfig>,
|
|
@@ -75,12 +80,14 @@ export class ModuleMetadataSeederService {
|
|
|
75
80
|
@Inject(commonConfig.KEY)
|
|
76
81
|
private readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
77
82
|
private readonly settingService: SettingService,
|
|
78
|
-
@InjectRepository(Setting, 'default')
|
|
79
|
-
readonly settingsRepo: Repository<Setting>,
|
|
83
|
+
// @InjectRepository(Setting, 'default')
|
|
84
|
+
// readonly settingsRepo: Repository<Setting>,
|
|
85
|
+
private readonly settingsRepo: SettingRepository,
|
|
80
86
|
readonly securityRuleRepo: SecurityRuleRepository,
|
|
81
87
|
readonly systemFieldsSeederService: SystemFieldsSeederService,
|
|
82
88
|
readonly dashboardRepo: DashboardRepository,
|
|
83
89
|
readonly scheduledJobRepository: ScheduledJobRepository,
|
|
90
|
+
readonly savedFiltersRepo : SavedFiltersRepository,
|
|
84
91
|
readonly dataSource: DataSource,
|
|
85
92
|
) { }
|
|
86
93
|
|
|
@@ -155,6 +162,10 @@ export class ModuleMetadataSeederService {
|
|
|
155
162
|
this.logger.log(`Seeding Scheduled Jobs`);
|
|
156
163
|
await this.seedScheduledJobs(moduleMetadata, overallMetadata);
|
|
157
164
|
|
|
165
|
+
// Saved Filters
|
|
166
|
+
this.logger.log(`Seeding Saved Filters`);
|
|
167
|
+
await this.seedSavedFilters(moduleMetadata, overallMetadata);
|
|
168
|
+
|
|
158
169
|
this.logger.debug(`[End] module seed data: ${overallMetadata}`);
|
|
159
170
|
}
|
|
160
171
|
|
|
@@ -176,6 +187,15 @@ export class ModuleMetadataSeederService {
|
|
|
176
187
|
this.logger.debug(`[End] Processing scheduled jobs for ${moduleMetadata.name}`);
|
|
177
188
|
}
|
|
178
189
|
|
|
190
|
+
private async seedSavedFilters(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {
|
|
191
|
+
this.logger.debug(`[Start] Processing saved filters for ${moduleMetadata.name}`);
|
|
192
|
+
const savedFilters: CreateSavedFiltersDto[] = overallMetadata.savedFilters;
|
|
193
|
+
if (savedFilters?.length > 0) {
|
|
194
|
+
await this.handleSeedSavedFilters(savedFilters);
|
|
195
|
+
}
|
|
196
|
+
this.logger.debug(`[End] Processing saved filters for ${moduleMetadata.name}`);
|
|
197
|
+
}
|
|
198
|
+
|
|
179
199
|
private async seedDashboards(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {
|
|
180
200
|
this.logger.debug(`[Start] Processing dashboards for ${moduleMetadata.name}`);
|
|
181
201
|
const dashboards: CreateDashboardDto[] = overallMetadata.dashboards;
|
|
@@ -709,4 +729,14 @@ export class ModuleMetadataSeederService {
|
|
|
709
729
|
}
|
|
710
730
|
}
|
|
711
731
|
|
|
732
|
+
private async handleSeedSavedFilters(createSavedFilterDto: CreateSavedFiltersDto[]) {
|
|
733
|
+
if (!createSavedFilterDto || createSavedFilterDto.length === 0) {
|
|
734
|
+
this.logger.debug(`No saved filters found to seed`);
|
|
735
|
+
return;
|
|
736
|
+
}
|
|
737
|
+
for (const dto of createSavedFilterDto) {
|
|
738
|
+
await this.savedFiltersRepo.upsertWithDto({ ...dto, filterQueryJson: JSON.stringify(dto.filterQueryJson) });
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
|
|
712
742
|
}
|
|
@@ -4,14 +4,16 @@ import { Repository } from 'typeorm';
|
|
|
4
4
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
5
5
|
import { PermissionMetadata } from '../entities/permission-metadata.entity';
|
|
6
6
|
import { RoleMetadataService } from '../services/role-metadata.service';
|
|
7
|
+
import { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';
|
|
7
8
|
|
|
8
9
|
@Injectable()
|
|
9
10
|
export class PermissionMetadataSeederService {
|
|
10
11
|
private readonly logger = new Logger(PermissionMetadataSeederService.name);
|
|
11
12
|
|
|
12
13
|
constructor(
|
|
13
|
-
@InjectRepository(PermissionMetadata)
|
|
14
|
-
private readonly permissionRepo: Repository<PermissionMetadata>,
|
|
14
|
+
// @InjectRepository(PermissionMetadata)
|
|
15
|
+
// private readonly permissionRepo: Repository<PermissionMetadata>,
|
|
16
|
+
private readonly permissionRepo: PermissionMetadataRepository,
|
|
15
17
|
private readonly solidRegistry: SolidRegistry,
|
|
16
18
|
@Inject(forwardRef(() => RoleMetadataService))
|
|
17
19
|
private readonly roleService: RoleMetadataService,
|