@solidstarters/solid-core 1.2.192 → 1.2.200
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/commands/mcp.command.d.ts +20 -0
- package/dist/commands/mcp.command.d.ts.map +1 -0
- package/dist/commands/mcp.command.js +208 -0
- package/dist/commands/mcp.command.js.map +1 -0
- package/dist/commands/refresh-model.command.d.ts +8 -5
- package/dist/commands/refresh-model.command.d.ts.map +1 -1
- package/dist/commands/refresh-model.command.js +32 -0
- package/dist/commands/refresh-model.command.js.map +1 -1
- package/dist/commands/remove-fields.command.js +1 -1
- package/dist/commands/remove-fields.command.js.map +1 -1
- package/dist/commands/seed.command.d.ts +2 -0
- package/dist/commands/seed.command.d.ts.map +1 -1
- package/dist/commands/seed.command.js +28 -1
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/controllers/authentication.controller.js +1 -1
- package/dist/controllers/authentication.controller.js.map +1 -1
- package/dist/controllers/email-template.controller.js +1 -1
- package/dist/controllers/email-template.controller.js.map +1 -1
- package/dist/controllers/field-metadata.controller.d.ts +136 -4
- package/dist/controllers/field-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/field-metadata.controller.js +14 -1
- package/dist/controllers/field-metadata.controller.js.map +1 -1
- package/dist/controllers/media-storage-provider-metadata.controller.js +1 -1
- package/dist/controllers/media-storage-provider-metadata.controller.js.map +1 -1
- package/dist/controllers/model-metadata.controller.js +1 -1
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/module-metadata.controller.js +1 -1
- package/dist/controllers/module-metadata.controller.js.map +1 -1
- package/dist/controllers/otp-authentication.controller.js +1 -1
- package/dist/controllers/otp-authentication.controller.js.map +1 -1
- package/dist/controllers/service.controller.js +1 -1
- package/dist/controllers/service.controller.js.map +1 -1
- package/dist/controllers/sms-template.controller.js +1 -1
- package/dist/controllers/sms-template.controller.js.map +1 -1
- package/dist/controllers/test-queue.controller.js +1 -1
- package/dist/controllers/test-queue.controller.js.map +1 -1
- package/dist/controllers/test.controller.js +1 -1
- package/dist/controllers/test.controller.js.map +1 -1
- package/dist/dtos/create-ai-interaction.dto.d.ts +2 -0
- package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -1
- package/dist/dtos/create-ai-interaction.dto.js +14 -1
- package/dist/dtos/create-ai-interaction.dto.js.map +1 -1
- package/dist/dtos/create-field-metadata.dto.d.ts +22 -5
- package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-field-metadata.dto.js +33 -7
- package/dist/dtos/create-field-metadata.dto.js.map +1 -1
- package/dist/dtos/create-import-transaction.dto.d.ts +0 -1
- package/dist/dtos/create-import-transaction.dto.d.ts.map +1 -1
- package/dist/dtos/create-import-transaction.dto.js +1 -7
- package/dist/dtos/create-import-transaction.dto.js.map +1 -1
- package/dist/dtos/create-model-metadata.dto.d.ts +2 -0
- package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-metadata.dto.js +13 -1
- package/dist/dtos/create-model-metadata.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +5 -1
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/resolve-s3-url.dto.d.ts +10 -0
- package/dist/dtos/resolve-s3-url.dto.d.ts.map +1 -0
- package/dist/dtos/resolve-s3-url.dto.js +49 -0
- package/dist/dtos/resolve-s3-url.dto.js.map +1 -0
- package/dist/dtos/update-ai-interaction.dto.d.ts +2 -0
- package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -1
- package/dist/dtos/update-ai-interaction.dto.js +13 -1
- package/dist/dtos/update-ai-interaction.dto.js.map +1 -1
- package/dist/dtos/update-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-field-metadata.dto.js.map +1 -1
- package/dist/dtos/update-import-transaction.dto.d.ts +0 -1
- package/dist/dtos/update-import-transaction.dto.d.ts.map +1 -1
- package/dist/dtos/update-import-transaction.dto.js +1 -7
- package/dist/dtos/update-import-transaction.dto.js.map +1 -1
- package/dist/entities/action-metadata.entity.js +4 -4
- package/dist/entities/action-metadata.entity.js.map +1 -1
- package/dist/entities/ai-interaction.entity.d.ts +2 -0
- package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
- package/dist/entities/ai-interaction.entity.js +15 -6
- package/dist/entities/ai-interaction.entity.js.map +1 -1
- package/dist/entities/chatter-message-details.entity.d.ts.map +1 -1
- package/dist/entities/chatter-message-details.entity.js +1 -1
- package/dist/entities/chatter-message-details.entity.js.map +1 -1
- package/dist/entities/chatter-message.entity.js +1 -1
- package/dist/entities/chatter-message.entity.js.map +1 -1
- package/dist/entities/common.entity.d.ts +2 -3
- package/dist/entities/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +9 -11
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js +2 -2
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -1
- package/dist/entities/dashboard-question.entity.js +3 -3
- package/dist/entities/dashboard-question.entity.js.map +1 -1
- package/dist/entities/dashboard-variable.entity.js +3 -3
- package/dist/entities/dashboard-variable.entity.js.map +1 -1
- package/dist/entities/dashboard.entity.js +1 -1
- package/dist/entities/dashboard.entity.js.map +1 -1
- package/dist/entities/email-template.entity.d.ts.map +1 -1
- package/dist/entities/email-template.entity.js +4 -3
- package/dist/entities/email-template.entity.js.map +1 -1
- package/dist/entities/export-template.entity.js +2 -2
- package/dist/entities/export-template.entity.js.map +1 -1
- package/dist/entities/export-transaction.entity.js +2 -2
- package/dist/entities/export-transaction.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts +1 -0
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +8 -4
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/import-transaction-error-log.entity.js +1 -1
- package/dist/entities/import-transaction-error-log.entity.js.map +1 -1
- package/dist/entities/import-transaction.entity.d.ts +0 -1
- package/dist/entities/import-transaction.entity.d.ts.map +1 -1
- package/dist/entities/import-transaction.entity.js +2 -7
- package/dist/entities/import-transaction.entity.js.map +1 -1
- package/dist/entities/legacy-common-with-id.entity.d.ts +5 -0
- package/dist/entities/legacy-common-with-id.entity.d.ts.map +1 -0
- package/dist/entities/legacy-common-with-id.entity.js +32 -0
- package/dist/entities/legacy-common-with-id.entity.js.map +1 -0
- package/dist/entities/legacy-common.entity.d.ts +13 -0
- package/dist/entities/legacy-common.entity.d.ts.map +1 -0
- package/dist/entities/legacy-common.entity.js +67 -0
- package/dist/entities/legacy-common.entity.js.map +1 -0
- package/dist/entities/list-of-values.entity.js +2 -2
- package/dist/entities/list-of-values.entity.js.map +1 -1
- package/dist/entities/locale.entity.js +1 -1
- package/dist/entities/locale.entity.js.map +1 -1
- package/dist/entities/media.entity.d.ts.map +1 -1
- package/dist/entities/media.entity.js +3 -3
- package/dist/entities/media.entity.js.map +1 -1
- package/dist/entities/menu-item-metadata.entity.js +4 -4
- package/dist/entities/menu-item-metadata.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.d.ts +2 -0
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +11 -3
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/entities/mq-message-queue.entity.js +1 -1
- package/dist/entities/mq-message-queue.entity.js.map +1 -1
- package/dist/entities/mq-message.entity.d.ts +3 -3
- package/dist/entities/mq-message.entity.d.ts.map +1 -1
- package/dist/entities/mq-message.entity.js +10 -10
- package/dist/entities/mq-message.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.js +4 -4
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/scheduled-job.entity.js +4 -4
- package/dist/entities/scheduled-job.entity.js.map +1 -1
- package/dist/entities/security-rule.entity.js +2 -2
- package/dist/entities/security-rule.entity.js.map +1 -1
- package/dist/entities/setting.entity.js +2 -2
- package/dist/entities/setting.entity.js.map +1 -1
- package/dist/entities/sms-template.entity.js +2 -2
- package/dist/entities/sms-template.entity.js.map +1 -1
- package/dist/entities/user-activity-history.entity.d.ts.map +1 -1
- package/dist/entities/user-activity-history.entity.js +1 -1
- package/dist/entities/user-activity-history.entity.js.map +1 -1
- package/dist/entities/user-view-metadata.entity.js +2 -2
- package/dist/entities/user-view-metadata.entity.js.map +1 -1
- package/dist/entities/user.entity.js +13 -15
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/view-metadata.entity.js +3 -3
- package/dist/entities/view-metadata.entity.js.map +1 -1
- package/dist/helpers/date.helper.d.ts +1 -1
- package/dist/helpers/date.helper.d.ts.map +1 -1
- package/dist/helpers/date.helper.js +24 -2
- package/dist/helpers/date.helper.js.map +1 -1
- package/dist/helpers/model-metadata-helper.service.d.ts +4 -1
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +48 -30
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module.helper.d.ts.map +1 -1
- package/dist/helpers/module.helper.js +1 -3
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/schematic.service.d.ts +9 -3
- package/dist/helpers/schematic.service.d.ts.map +1 -1
- package/dist/helpers/schematic.service.js +49 -32
- package/dist/helpers/schematic.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +3 -2
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +10 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/helpers/typeorm-db-helper.d.ts +3 -0
- package/dist/helpers/typeorm-db-helper.d.ts.map +1 -0
- package/dist/helpers/typeorm-db-helper.js +24 -0
- package/dist/helpers/typeorm-db-helper.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +3 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +6 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +39 -17
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +53 -468
- package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
- package/dist/seeders/system-fields-seeder.service.js +1 -1
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/services/ai-interaction.service.js +1 -1
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +6 -4
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts +8 -0
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +28 -5
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +4 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +87 -7
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +143 -6
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +211 -56
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts +3 -1
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +31 -11
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +14 -3
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +3 -4
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/queues/publisher-factory.service.d.ts.map +1 -1
- package/dist/services/queues/publisher-factory.service.js +4 -0
- package/dist/services/queues/publisher-factory.service.js.map +1 -1
- package/dist/{providers → services/selection-providers}/list-of-values-selection-providers.service.d.ts +2 -2
- package/dist/services/selection-providers/list-of-values-selection-providers.service.d.ts.map +1 -0
- package/dist/{providers → services/selection-providers}/list-of-values-selection-providers.service.js +3 -3
- package/dist/services/selection-providers/list-of-values-selection-providers.service.js.map +1 -0
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.d.ts +20 -0
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js +87 -0
- package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js.map +1 -0
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +2 -1
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +19 -3
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +83 -11
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +3 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +31 -5
- 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 +5 -1
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts +3 -2
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +6 -12
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +3 -2
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +7 -9
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.d.ts +4 -2
- package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.js +10 -8
- package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.js +0 -1
- package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.js +3 -2
- package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/soft-delete-aware-event.subscriber.d.ts +3 -2
- package/dist/subscribers/soft-delete-aware-event.subscriber.d.ts.map +1 -1
- package/dist/subscribers/soft-delete-aware-event.subscriber.js +6 -11
- package/dist/subscribers/soft-delete-aware-event.subscriber.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/sql/mssql/proc_CleanupModelMetadata.sql +175 -0
- package/sql/mssql/proc_CleanupModuleMetadata.sql +78 -0
- package/sql/mssql/scratchpad.sql +10 -0
- package/sql/postgres/proc_CleanupModelMetadata.sql +148 -0
- package/sql/postgres/proc_CleanupModuleMetadata.sql +50 -0
- package/sql/postgres/scratchpad.sql +12 -0
- package/sql-server-changes.txt +88 -0
- package/src/commands/mcp.command.ts +215 -0
- package/src/commands/refresh-model.command.ts +37 -5
- package/src/commands/remove-fields.command.ts +1 -1
- package/src/commands/seed.command.ts +34 -15
- package/src/controllers/authentication.controller.ts +1 -1
- package/src/controllers/email-template.controller.ts +1 -1
- package/src/controllers/field-metadata.controller.ts +7 -1
- package/src/controllers/media-storage-provider-metadata.controller.ts +1 -1
- package/src/controllers/model-metadata.controller.ts +1 -1
- package/src/controllers/module-metadata.controller.ts +1 -1
- package/src/controllers/otp-authentication.controller.ts +1 -1
- package/src/controllers/service.controller.ts +1 -1
- package/src/controllers/sms-template.controller.ts +1 -1
- package/src/controllers/test-queue.controller.ts +1 -1
- package/src/controllers/test.controller.ts +1 -1
- package/src/dtos/create-ai-interaction.dto.ts +16 -9
- package/src/dtos/create-field-metadata.dto.ts +42 -12
- package/src/dtos/create-import-transaction.dto.ts +0 -4
- package/src/dtos/create-model-metadata.dto.ts +10 -0
- package/src/dtos/create-role-metadata.dto.ts +8 -2
- package/src/dtos/resolve-s3-url.dto.ts +33 -0
- package/src/dtos/update-ai-interaction.dto.ts +16 -9
- package/src/dtos/update-field-metadata.dto.ts +1 -2
- package/src/dtos/update-import-transaction.dto.ts +0 -4
- package/src/entities/action-metadata.entity.ts +4 -4
- package/src/entities/ai-interaction.entity.ts +16 -12
- package/src/entities/chatter-message-details.entity.ts +18 -18
- package/src/entities/chatter-message.entity.ts +2 -2
- package/src/entities/common.entity.ts +19 -10
- package/src/entities/dashboard-question-sql-dataset-config.entity.ts +2 -2
- package/src/entities/dashboard-question.entity.ts +3 -3
- package/src/entities/dashboard-variable.entity.ts +3 -3
- package/src/entities/dashboard.entity.ts +1 -1
- package/src/entities/email-template.entity.ts +4 -3
- package/src/entities/export-template.entity.ts +2 -2
- package/src/entities/export-transaction.entity.ts +2 -2
- package/src/entities/field-metadata.entity.ts +6 -3
- package/src/entities/import-transaction-error-log.entity.ts +2 -2
- package/src/entities/import-transaction.entity.ts +2 -5
- package/src/entities/legacy-common-with-id.entity.ts +11 -0
- package/src/entities/legacy-common.entity.ts +57 -0
- package/src/entities/list-of-values.entity.ts +2 -2
- package/src/entities/locale.entity.ts +1 -1
- package/src/entities/media.entity.ts +25 -25
- package/src/entities/menu-item-metadata.entity.ts +4 -4
- package/src/entities/model-metadata.entity.ts +9 -2
- package/src/entities/mq-message-queue.entity.ts +1 -1
- package/src/entities/mq-message.entity.ts +34 -34
- package/src/entities/saved-filters.entity.ts +5 -5
- package/src/entities/scheduled-job.entity.ts +4 -4
- package/src/entities/security-rule.entity.ts +2 -2
- package/src/entities/setting.entity.ts +2 -2
- package/src/entities/sms-template.entity.ts +2 -2
- package/src/entities/user-activity-history.entity.ts +14 -14
- package/src/entities/user-view-metadata.entity.ts +2 -2
- package/src/entities/user.entity.ts +15 -15
- package/src/entities/view-metadata.entity.ts +3 -3
- package/src/helpers/date.helper.ts +31 -10
- package/src/helpers/model-metadata-helper.service.ts +63 -32
- package/src/helpers/module.helper.ts +4 -3
- package/src/helpers/schematic.service.ts +72 -46
- package/src/helpers/solid-registry.ts +14 -2
- package/src/helpers/typeorm-db-helper.ts +26 -0
- package/src/index.ts +5 -1
- package/src/interfaces.ts +3 -0
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +17 -21
- package/src/seeders/module-metadata-seeder.service.ts +73 -29
- package/src/seeders/seed-data/solid-core-metadata.json +55 -470
- package/src/seeders/system-fields-seeder.service.ts +34 -35
- package/src/services/ai-interaction.service.ts +1 -1
- package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +13 -9
- package/src/services/crud-helper.service.ts +32 -4
- package/src/services/crud.service.ts +158 -10
- package/src/services/field-metadata.service.ts +272 -67
- package/src/services/menu-item-metadata.service.ts +81 -50
- package/src/services/model-metadata.service.ts +18 -3
- package/src/services/mq-message.service.ts +16 -15
- package/src/services/queues/publisher-factory.service.ts +2 -1
- package/src/{providers → services/selection-providers}/list-of-values-selection-providers.service.ts +2 -2
- package/src/services/selection-providers/pseudo-foreign-key-selection-provider.service.ts +94 -0
- package/src/services/setting.service.ts +13 -10
- package/src/services/solid-introspect.service.ts +110 -10
- package/src/services/view-metadata.service.ts +48 -18
- package/src/solid-core.module.ts +5 -1
- package/src/subscribers/audit.subscriber.ts +12 -8
- package/src/subscribers/computed-entity-field.subscriber.ts +13 -7
- package/src/subscribers/created-by-updated-by.subscriber.ts +14 -8
- package/src/subscribers/field-metadata.subscriber.ts +1 -1
- package/src/subscribers/model-metadata.subscriber.ts +4 -2
- package/src/subscribers/soft-delete-aware-event.subscriber.ts +12 -6
- package/dist/providers/list-of-values-selection-providers.service.d.ts.map +0 -1
- package/dist/providers/list-of-values-selection-providers.service.js.map +0 -1
- package/src/commands/ingest-rag-chunking-strategy-for.md +0 -224
- package/src/entities/user.entity.ts.bkp +0 -144
- package/src/services/docker exec -it mssql //" +0 -8
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { Command, CommandRunner, Option } from 'nest-commander';
|
|
2
|
+
import { Logger } from '@nestjs/common';
|
|
3
|
+
import { spawn } from 'child_process';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
7
|
+
import { ISolidDatabaseModule } from 'src/interfaces';
|
|
8
|
+
import { DatasourceType } from 'src/dtos/create-model-metadata.dto';
|
|
9
|
+
|
|
10
|
+
interface McpCommandOptions {
|
|
11
|
+
repoPath?: string;
|
|
12
|
+
detached?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@Command({
|
|
16
|
+
name: 'mcp',
|
|
17
|
+
description: 'Manage the SolidX MCP server and Celery worker docker containers (start/stop)',
|
|
18
|
+
})
|
|
19
|
+
export class McpCommand extends CommandRunner {
|
|
20
|
+
private readonly logger = new Logger(McpCommand.name);
|
|
21
|
+
|
|
22
|
+
constructor(
|
|
23
|
+
private readonly solidRegistry: SolidRegistry
|
|
24
|
+
) {
|
|
25
|
+
super();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async run(passedParams: string[], options?: McpCommandOptions): Promise<void> {
|
|
29
|
+
const mode = (passedParams[0] || 'start').toLowerCase();
|
|
30
|
+
|
|
31
|
+
if (mode === 'stop') {
|
|
32
|
+
await this.stopContainers(options);
|
|
33
|
+
} else if (mode === 'start') {
|
|
34
|
+
await this.startContainers(options);
|
|
35
|
+
} else {
|
|
36
|
+
this.logger.error(
|
|
37
|
+
`Unknown mode "${mode}". Supported modes are: start, stop.\n` +
|
|
38
|
+
'Examples:\n' +
|
|
39
|
+
' solid mcp start -p ~/mcp/servers/solidx_mcp_server\n' +
|
|
40
|
+
' solid mcp stop -p ~/mcp/servers/solidx_mcp_server\n'
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// ---------------------------------------------------------------
|
|
46
|
+
// START
|
|
47
|
+
// ---------------------------------------------------------------
|
|
48
|
+
private async startContainers(options?: McpCommandOptions): Promise<void> {
|
|
49
|
+
// 1. Validate license key
|
|
50
|
+
const apiKey = process.env.MCP_API_KEY;
|
|
51
|
+
|
|
52
|
+
// Form the Database url to be used by the MCP server based on the consuming projects details.
|
|
53
|
+
const defaultDatabaseUser = process.env.DEFAULT_DATABASE_USER;
|
|
54
|
+
const defaultDatabasePwd = process.env.DEFAULT_DATABASE_PASSWORD
|
|
55
|
+
? encodeURIComponent(process.env.DEFAULT_DATABASE_PASSWORD)
|
|
56
|
+
: '';
|
|
57
|
+
const defaultDatabaseHost = process.env.DEFAULT_DATABASE_HOST === 'localhost' ? 'host.docker.internal' : process.env.DEFAULT_DATABASE_HOST;
|
|
58
|
+
const defaultDatabaseName = process.env.DEFAULT_DATABASE_NAME;
|
|
59
|
+
const databaseDialect = process.env.DEFAULT_DATABASE_TYPE?.toLowerCase() === 'mssql' ? 'mssql+pyodbc' : 'postgresql';
|
|
60
|
+
// const databaseUrl = `${databaseDialect}://${defaultDatabaseUser}:${defaultDatabasePwd}@${defaultDatabaseHost}/${defaultDatabaseName}`;
|
|
61
|
+
|
|
62
|
+
const defaultDatasource: ISolidDatabaseModule = this.solidRegistry.getDefaultSolidDatabaseModule()
|
|
63
|
+
|
|
64
|
+
let databaseUrl: string;
|
|
65
|
+
if (defaultDatasource.type() === DatasourceType.mssql) {
|
|
66
|
+
const base = `mssql+pyodbc://${defaultDatabaseUser}:${defaultDatabasePwd}@${defaultDatabaseHost}/${defaultDatabaseName}`;
|
|
67
|
+
const driver = encodeURIComponent('ODBC Driver 18 for SQL Server');
|
|
68
|
+
databaseUrl = `${base}?driver=${driver}&TrustServerCertificate=yes`;
|
|
69
|
+
}
|
|
70
|
+
if (defaultDatasource.type() === DatasourceType.postgres) {
|
|
71
|
+
databaseUrl = `postgresql://${defaultDatabaseUser}:${defaultDatabasePwd}@${defaultDatabaseHost}/${defaultDatabaseName}`;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!apiKey || apiKey.trim() === '') {
|
|
75
|
+
this.logger.error(
|
|
76
|
+
'❌ MCP_API_KEY environment variable is missing.\n' +
|
|
77
|
+
'Set it before running:\n' +
|
|
78
|
+
' export MCP_API_KEY="your_license_key"\n'
|
|
79
|
+
);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
this.logger.log('✔ MCP_API_KEY found.');
|
|
84
|
+
|
|
85
|
+
// 2. Resolve paths
|
|
86
|
+
const repoPath = options?.repoPath ? this.resolvePath(options.repoPath) : process.cwd();
|
|
87
|
+
const consumingProjectPath = path.resolve(process.cwd(), '..');
|
|
88
|
+
const composeFile = path.join(repoPath, 'docker-compose.yml');
|
|
89
|
+
|
|
90
|
+
if (!fs.existsSync(composeFile)) {
|
|
91
|
+
this.logger.error(`docker-compose.yml not found at ${composeFile}`);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const detached = options?.detached ?? false;
|
|
96
|
+
|
|
97
|
+
this.logger.log(`Mode: start`);
|
|
98
|
+
this.logger.log(`Using repo path: ${repoPath}`);
|
|
99
|
+
this.logger.log(`Detached mode: ${detached}`);
|
|
100
|
+
this.logger.log(`Consuming project root: ${consumingProjectPath}`);
|
|
101
|
+
|
|
102
|
+
// 3. Build docker compose args
|
|
103
|
+
const cmd = 'docker';
|
|
104
|
+
const args = ['compose', '-f', composeFile, 'up'];
|
|
105
|
+
|
|
106
|
+
if (detached) {
|
|
107
|
+
args.push('-d');
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Service names as defined in docker-compose.yml
|
|
111
|
+
args.push('mcp_redis', 'mcp_server', 'mcp_celery_worker');
|
|
112
|
+
|
|
113
|
+
const env: NodeJS.ProcessEnv = {
|
|
114
|
+
...process.env,
|
|
115
|
+
MCP_API_KEY: apiKey,
|
|
116
|
+
HOST_SOLIDX_CONSUMING_PROJECT_ROOT: consumingProjectPath,
|
|
117
|
+
DATABASE_URL: databaseUrl,
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
this.logger.log(`Running: ${cmd} ${args.join(' ')}`);
|
|
121
|
+
// const envLog = Object.entries(env)
|
|
122
|
+
// .map(([key, value]) => `${key}=${value ?? ''}`)
|
|
123
|
+
// .join('\n');
|
|
124
|
+
// this.logger.log(`Using env overrides:\n${envLog}`);
|
|
125
|
+
|
|
126
|
+
await this.runDockerCommand(cmd, args, repoPath, env);
|
|
127
|
+
|
|
128
|
+
this.logger.log(
|
|
129
|
+
detached
|
|
130
|
+
? 'MCP containers started in detached mode.'
|
|
131
|
+
: 'MCP containers started in foreground.'
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// ---------------------------------------------------------------
|
|
136
|
+
// STOP
|
|
137
|
+
// ---------------------------------------------------------------
|
|
138
|
+
private async stopContainers(options?: McpCommandOptions): Promise<void> {
|
|
139
|
+
const repoPath = options?.repoPath ? this.resolvePath(options.repoPath) : process.cwd();
|
|
140
|
+
const composeFile = path.join(repoPath, 'docker-compose.yml');
|
|
141
|
+
|
|
142
|
+
if (!fs.existsSync(composeFile)) {
|
|
143
|
+
this.logger.error(`docker-compose.yml not found at ${composeFile}`);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
this.logger.log(`Mode: stop`);
|
|
148
|
+
this.logger.log(`Using repo path: ${repoPath}`);
|
|
149
|
+
|
|
150
|
+
const cmd = 'docker';
|
|
151
|
+
const args = ['compose', '-f', composeFile, 'down'];
|
|
152
|
+
|
|
153
|
+
this.logger.log(`Running: ${cmd} ${args.join(' ')}`);
|
|
154
|
+
|
|
155
|
+
await this.runDockerCommand(cmd, args, repoPath, process.env);
|
|
156
|
+
|
|
157
|
+
this.logger.log('MCP containers stopped (docker compose down).');
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// ---------------------------------------------------------------
|
|
161
|
+
// Helpers
|
|
162
|
+
// ---------------------------------------------------------------
|
|
163
|
+
private resolvePath(inputPath: string): string {
|
|
164
|
+
if (inputPath.startsWith('~')) {
|
|
165
|
+
return path.join(process.env.HOME!, inputPath.slice(1));
|
|
166
|
+
}
|
|
167
|
+
return path.resolve(inputPath);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
private runDockerCommand(
|
|
171
|
+
cmd: string,
|
|
172
|
+
args: string[],
|
|
173
|
+
cwd: string,
|
|
174
|
+
env: NodeJS.ProcessEnv,
|
|
175
|
+
): Promise<void> {
|
|
176
|
+
return new Promise((resolve, reject) => {
|
|
177
|
+
const child = spawn(cmd, args, {
|
|
178
|
+
cwd,
|
|
179
|
+
env,
|
|
180
|
+
stdio: 'inherit',
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
child.on('error', (err) => {
|
|
184
|
+
this.logger.error(`Docker error: ${err.message}`);
|
|
185
|
+
reject(err);
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
child.on('close', (code) => {
|
|
189
|
+
if (code === 0) resolve();
|
|
190
|
+
else reject(new Error(`Docker exited with code ${code}`));
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Flags
|
|
196
|
+
|
|
197
|
+
@Option({
|
|
198
|
+
flags: '-d, --detached [boolean]',
|
|
199
|
+
description: 'Run containers in detached mode (only for start, default: false)',
|
|
200
|
+
required: false,
|
|
201
|
+
})
|
|
202
|
+
parseDetached(val: string): boolean {
|
|
203
|
+
if (val === undefined) return false;
|
|
204
|
+
return val === 'true' || val === '1';
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@Option({
|
|
208
|
+
flags: '-p, --repo-path [path]',
|
|
209
|
+
description: 'Path to the SolidX MCP Server repo containing docker-compose.yml',
|
|
210
|
+
required: false,
|
|
211
|
+
})
|
|
212
|
+
parseRepoPath(val: string): string {
|
|
213
|
+
return val;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { Logger } from '@nestjs/common';
|
|
1
|
+
import { BadRequestException, Logger } from '@nestjs/common';
|
|
2
2
|
import { Command, CommandRunner, Option } from 'nest-commander';
|
|
3
3
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
4
4
|
import { CommandError } from './helper';
|
|
5
5
|
|
|
6
6
|
interface CommandOptions {
|
|
7
|
-
name
|
|
8
|
-
id
|
|
9
|
-
|
|
7
|
+
name?: string;
|
|
8
|
+
id?: number;
|
|
9
|
+
fieldIds?: number[];
|
|
10
|
+
fieldNames?: string[];
|
|
11
|
+
dryRun?: boolean;
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
@Command({
|
|
@@ -32,10 +34,13 @@ export class RefreshModelCommand extends CommandRunner {
|
|
|
32
34
|
modelId: options.id,
|
|
33
35
|
modelUserKey: options.name,
|
|
34
36
|
dryRun: options.dryRun,
|
|
37
|
+
fieldIdsForRefresh: options.fieldIds,
|
|
38
|
+
fieldNamesForRefresh: options.fieldNames,
|
|
35
39
|
};
|
|
36
40
|
await this.modelMetadataService.handleGenerateCode(codeGenerationOptions);
|
|
37
41
|
}
|
|
38
42
|
|
|
43
|
+
// Accept the model ID as an argument
|
|
39
44
|
@Option({
|
|
40
45
|
flags: '-i, --id [model ID]',
|
|
41
46
|
description: 'Model ID from the ss_model_metadata table',
|
|
@@ -53,6 +58,7 @@ export class RefreshModelCommand extends CommandRunner {
|
|
|
53
58
|
return val;
|
|
54
59
|
}
|
|
55
60
|
|
|
61
|
+
// Accept dry run as an argument
|
|
56
62
|
@Option({
|
|
57
63
|
flags: '-d, --dryRun [dry run]',
|
|
58
64
|
description: 'Dry run the command',
|
|
@@ -62,8 +68,34 @@ export class RefreshModelCommand extends CommandRunner {
|
|
|
62
68
|
return (val === 'false') ? false : true;
|
|
63
69
|
}
|
|
64
70
|
|
|
71
|
+
// Accept field IDs as an argument
|
|
72
|
+
@Option({
|
|
73
|
+
flags: '-fids, --fieldIds [Array of field IDs]',
|
|
74
|
+
description: 'Json array of Field IDs from the ss_field_metadata table',
|
|
75
|
+
})
|
|
76
|
+
parseFieldIds(val: string): number[] {
|
|
77
|
+
//Check if the value is a json array
|
|
78
|
+
if (!val.startsWith('[') || !val.endsWith(']')) {
|
|
79
|
+
throw new BadRequestException('Field IDs should be a json array');
|
|
80
|
+
}
|
|
81
|
+
return JSON.parse(val).map((id: string) => parseInt(id));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Accept field Names as an argument
|
|
85
|
+
@Option({
|
|
86
|
+
flags: '-fnames, --fieldNames [Array of field Names]',
|
|
87
|
+
description: 'Json array of Field Names from the ss_field_metadata table',
|
|
88
|
+
})
|
|
89
|
+
parseFieldNames(val: string): string[] {
|
|
90
|
+
//Check if the value is a json array
|
|
91
|
+
if (!val.startsWith('[') || !val.endsWith(']')) {
|
|
92
|
+
throw new BadRequestException('Field Names should be a json array');
|
|
93
|
+
}
|
|
94
|
+
return JSON.parse(val).map((name: string) => name.toString());
|
|
95
|
+
}
|
|
96
|
+
|
|
65
97
|
// Validate the options passed
|
|
66
|
-
validate(options: CommandOptions): CommandError[] {
|
|
98
|
+
private validate(options: CommandOptions): CommandError[] {
|
|
67
99
|
if (!options.id && !options.name) {
|
|
68
100
|
return [new CommandError('Model ID or Model Name is required')];
|
|
69
101
|
}
|
|
@@ -3,7 +3,7 @@ import { Command, CommandRunner, Option } from 'nest-commander';
|
|
|
3
3
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
4
4
|
|
|
5
5
|
interface SeedCommandOptions {
|
|
6
|
-
|
|
6
|
+
conf?: string;
|
|
7
7
|
seeder?: string;
|
|
8
8
|
}
|
|
9
9
|
|
|
@@ -16,6 +16,25 @@ export class SeedCommand extends CommandRunner {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
async run(passedParam: string[], options?: SeedCommandOptions): Promise<void> {
|
|
19
|
+
// TODO: check if options.conf is non empty and a valid json string only is -c flag is passed.
|
|
20
|
+
// TODO: convert to json object JSON.parse
|
|
21
|
+
let parsedConf: any = null;
|
|
22
|
+
|
|
23
|
+
// Parse conf only if provided
|
|
24
|
+
if (options?.conf !== undefined) {
|
|
25
|
+
try {
|
|
26
|
+
parsedConf = JSON.parse(options.conf);
|
|
27
|
+
this.logger.log(`Parsed conf: ${JSON.stringify(parsedConf, null, 2)}`);
|
|
28
|
+
} catch (err) {
|
|
29
|
+
this.logger.error('Failed to parse --conf. Please provide valid JSON.');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
} else {
|
|
33
|
+
this.logger.log('No --conf flag provided. Running with default seeder behavior.');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
19
38
|
const seeder = this.solidRegistry
|
|
20
39
|
.getSeeders()
|
|
21
40
|
.filter((seeder) => seeder.name === options.seeder)
|
|
@@ -26,22 +45,22 @@ export class SeedCommand extends CommandRunner {
|
|
|
26
45
|
return;
|
|
27
46
|
}
|
|
28
47
|
this.logger.log(`Running the seed() method for seeder :${seeder.constructor.name}`);
|
|
29
|
-
await seeder.seed();
|
|
48
|
+
await seeder.seed(parsedConf);
|
|
30
49
|
}
|
|
31
50
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
@Option({
|
|
52
|
+
flags: '-c, --conf [configuration json]',
|
|
53
|
+
description: 'A configuration json, pass a valid json string.',
|
|
54
|
+
required: false
|
|
55
|
+
})
|
|
56
|
+
/**
|
|
57
|
+
* TODO
|
|
58
|
+
* This parameter will be useful, to support seeders with the same name in different modules
|
|
59
|
+
* Currently the seeder service won't support seeder with same classname within a module
|
|
60
|
+
**/
|
|
61
|
+
parseConf(val: string): string {
|
|
62
|
+
return val;
|
|
63
|
+
}
|
|
45
64
|
|
|
46
65
|
@Option({
|
|
47
66
|
flags: '-s, --seeder [seeder name]',
|
|
@@ -15,7 +15,7 @@ import { AuthenticationService } from '../services/authentication.service';
|
|
|
15
15
|
|
|
16
16
|
// @Auth(AuthType.None)
|
|
17
17
|
@Controller('iam')
|
|
18
|
-
@ApiTags("
|
|
18
|
+
@ApiTags("Solid Core")
|
|
19
19
|
// @UseGuards(ThrottlerGuard)
|
|
20
20
|
// @SkipThrottle({login: true, short: true, burst: true, sustained: true}) // disable all sets by default for this controller
|
|
21
21
|
export class AuthenticationController {
|
|
@@ -6,9 +6,10 @@ import { FieldMetadataService } from '../services/field-metadata.service';
|
|
|
6
6
|
import { Public } from 'src/decorators/public.decorator';
|
|
7
7
|
import { BasicFilterDto } from '../dtos/basic-filters.dto';
|
|
8
8
|
import { SelectionDynamicQueryDto } from '../dtos/selection-dynamic-query.dto';
|
|
9
|
+
import { ResolveS3UrlDto } from 'src/dtos/resolve-s3-url.dto';
|
|
9
10
|
|
|
10
11
|
@Controller('field-metadata')
|
|
11
|
-
@ApiTags("
|
|
12
|
+
@ApiTags("Solid Core")
|
|
12
13
|
export class FieldMetadataController {
|
|
13
14
|
|
|
14
15
|
constructor(
|
|
@@ -67,6 +68,11 @@ export class FieldMetadataController {
|
|
|
67
68
|
return this.fieldMetadataService.delete(id);
|
|
68
69
|
}
|
|
69
70
|
|
|
71
|
+
@ApiBearerAuth("jwt")
|
|
72
|
+
@Post('/resolve-s3-url')
|
|
73
|
+
resolveS3Url(@Body() resolveS3UrlDto: ResolveS3UrlDto) {
|
|
74
|
+
return this.fieldMetadataService.resolveS3Url(resolveS3UrlDto);
|
|
70
75
|
|
|
76
|
+
}
|
|
71
77
|
|
|
72
78
|
}
|
|
@@ -8,7 +8,7 @@ import { UpdateMediaStorageProviderMetadataDto } from '../dtos/update-media-stor
|
|
|
8
8
|
import { AnyFilesInterceptor } from '@nestjs/platform-express';
|
|
9
9
|
|
|
10
10
|
@Controller('media-storage-provider-metadata')
|
|
11
|
-
@ApiTags("
|
|
11
|
+
@ApiTags("Solid Core")
|
|
12
12
|
export class MediaStorageProviderMetadataController {
|
|
13
13
|
private logger = new Logger(MediaStorageProviderMetadataController.name);
|
|
14
14
|
|
|
@@ -7,7 +7,7 @@ import { UpdateModelMetaDataDto } from '../dtos/update-model-metadata.dto';
|
|
|
7
7
|
import { ModelMetadataService } from '../services/model-metadata.service';
|
|
8
8
|
|
|
9
9
|
@Controller('model-metadata')
|
|
10
|
-
@ApiTags("
|
|
10
|
+
@ApiTags("Solid Core")
|
|
11
11
|
// @UseGuards(ThrottlerGuard)
|
|
12
12
|
// @SkipThrottle({ short: true, login: true, burst: true, sustained: true }) //Skip all
|
|
13
13
|
export class ModelMetadataController {
|
|
@@ -19,7 +19,7 @@ import { ModuleMetadataService } from '../services/module-metadata.service';
|
|
|
19
19
|
import { AnyFilesInterceptor } from '@nestjs/platform-express';
|
|
20
20
|
|
|
21
21
|
@Controller('module-metadata')
|
|
22
|
-
@ApiTags("
|
|
22
|
+
@ApiTags("Solid Core")
|
|
23
23
|
export class ModuleMetadataController {
|
|
24
24
|
constructor(private readonly moduleMetadataService: ModuleMetadataService) { }
|
|
25
25
|
|
|
@@ -13,7 +13,7 @@ import { AuthenticationService } from '../services/authentication.service';
|
|
|
13
13
|
|
|
14
14
|
@Auth(AuthType.None)
|
|
15
15
|
@Controller('iam/otp')
|
|
16
|
-
@ApiTags("
|
|
16
|
+
@ApiTags("Solid Core")
|
|
17
17
|
// @UseGuards(ThrottlerGuard)
|
|
18
18
|
// @SkipThrottle({ login: false, short: true, burst: true, sustained: true }) //Enable the login throttle only
|
|
19
19
|
export class OTPAuthenticationController {
|
|
@@ -14,7 +14,7 @@ export interface PostProcessCodeGenConfig {
|
|
|
14
14
|
runSolidIngestion?: boolean; // If true, run solid ingestion command
|
|
15
15
|
}
|
|
16
16
|
@Controller('')
|
|
17
|
-
@ApiTags("
|
|
17
|
+
@ApiTags("Solid Core")
|
|
18
18
|
// @UseGuards(ThrottlerGuard)
|
|
19
19
|
// @SkipThrottle({ short: true, login: true, burst: true, sustained: true }) // Skip all
|
|
20
20
|
export class ServiceController {
|
|
@@ -7,7 +7,7 @@ import { SmsTemplateService } from '../services/sms-template.service';
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
@Controller('sms-template')
|
|
10
|
-
@ApiTags("
|
|
10
|
+
@ApiTags("Solid Core")
|
|
11
11
|
// @UseGuards(ThrottlerGuard)
|
|
12
12
|
// @SkipThrottle({ short: false, login: true, burst: true, sustained: true }) //Enable the short throttle only
|
|
13
13
|
export class SmsTemplateController {
|
|
@@ -64,19 +64,26 @@ export class CreateAiInteractionDto {
|
|
|
64
64
|
@IsBoolean()
|
|
65
65
|
@ApiProperty()
|
|
66
66
|
isAutoApply: boolean = false;
|
|
67
|
+
@IsOptional()
|
|
68
|
+
@IsInt()
|
|
69
|
+
@ApiProperty()
|
|
70
|
+
inputTokens: number;
|
|
71
|
+
@IsOptional()
|
|
72
|
+
@IsInt()
|
|
73
|
+
@ApiProperty()
|
|
74
|
+
outputTokens: number;
|
|
75
|
+
@IsOptional()
|
|
76
|
+
@IsInt()
|
|
77
|
+
@ApiProperty()
|
|
78
|
+
totalTokens: number;
|
|
67
79
|
|
|
68
80
|
@IsOptional()
|
|
69
|
-
@
|
|
70
|
-
@ApiProperty()
|
|
71
|
-
inputTokens: number;
|
|
72
|
-
|
|
73
|
-
@IsOptional()
|
|
74
|
-
@IsInt()
|
|
81
|
+
@IsString()
|
|
75
82
|
@ApiProperty()
|
|
76
|
-
|
|
83
|
+
originalMessage: string;
|
|
77
84
|
|
|
78
85
|
@IsOptional()
|
|
79
|
-
@
|
|
86
|
+
@IsBoolean()
|
|
80
87
|
@ApiProperty()
|
|
81
|
-
|
|
88
|
+
isEdited: boolean = false;
|
|
82
89
|
}
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
IsArray,
|
|
6
6
|
IsBoolean,
|
|
7
7
|
IsEnum,
|
|
8
|
+
IsIn,
|
|
8
9
|
IsInt,
|
|
9
10
|
IsOptional,
|
|
10
11
|
IsString,
|
|
@@ -62,10 +63,6 @@ export enum SolidFieldType {
|
|
|
62
63
|
uuid = 'uuid'
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
export enum OrmType {
|
|
66
|
-
MySQLType,
|
|
67
|
-
}
|
|
68
|
-
|
|
69
66
|
export enum MySQLType { //FIXME Currently this type is being used in the definition, Need to use OrmType instead
|
|
70
67
|
// Numeric types
|
|
71
68
|
int = 'int',
|
|
@@ -118,8 +115,35 @@ export enum PSQLType { //FIXME Currently this type is being used in the definiti
|
|
|
118
115
|
// Other types
|
|
119
116
|
json = 'json',
|
|
120
117
|
jsonb = 'jsonb',
|
|
118
|
+
simplejson = 'simple-json'
|
|
121
119
|
}
|
|
122
120
|
|
|
121
|
+
export enum MSSQLType {
|
|
122
|
+
int = "int",
|
|
123
|
+
bigint = "bigint",
|
|
124
|
+
decimal = "decimal",
|
|
125
|
+
numeric = "numeric",
|
|
126
|
+
varchar = "varchar",
|
|
127
|
+
nvarchar = "nvarchar",
|
|
128
|
+
simplejson = "simple-json",
|
|
129
|
+
text = "text",
|
|
130
|
+
bit = "bit",
|
|
131
|
+
date = "date",
|
|
132
|
+
datetime = "datetime",
|
|
133
|
+
datetime2 = "datetime2",
|
|
134
|
+
time = "time",
|
|
135
|
+
uniqueidentifier = "uniqueidentifier"
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export const ALL_ORM_TYPES = [
|
|
139
|
+
...Object.values(PSQLType),
|
|
140
|
+
...Object.values(MSSQLType),
|
|
141
|
+
...Object.values(MySQLType),
|
|
142
|
+
] as const;
|
|
143
|
+
|
|
144
|
+
export type OrmType = typeof ALL_ORM_TYPES[number];
|
|
145
|
+
|
|
146
|
+
// export type OrmType = PSQLType | MySQLType | MSSQLType;
|
|
123
147
|
|
|
124
148
|
export enum EncryptionType {
|
|
125
149
|
aes128 = 'aes-128',
|
|
@@ -172,12 +196,12 @@ export enum ComputedFieldValueType {
|
|
|
172
196
|
}
|
|
173
197
|
|
|
174
198
|
export enum ComputedFieldTriggerOperation {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
199
|
+
beforeInsert = "before-insert",
|
|
200
|
+
afterInsert = "after-insert",
|
|
201
|
+
beforeUpdate = "before-update",
|
|
202
|
+
afterUpdate = "after-update",
|
|
203
|
+
beforeRemove = "before-delete",
|
|
204
|
+
afterRemove = "after-delete",
|
|
181
205
|
}
|
|
182
206
|
|
|
183
207
|
export class ComputedFieldTriggerConfig {
|
|
@@ -217,9 +241,9 @@ export class CreateFieldMetadataDto {
|
|
|
217
241
|
|
|
218
242
|
//For all types of fields
|
|
219
243
|
@ApiProperty({ description: 'Field can have orm types specific to your database', })
|
|
220
|
-
@
|
|
244
|
+
@IsIn(ALL_ORM_TYPES)
|
|
221
245
|
@IsOptional()
|
|
222
|
-
readonly ormType:
|
|
246
|
+
readonly ormType: OrmType;
|
|
223
247
|
|
|
224
248
|
@ApiProperty({ description: 'Length of the field. Only for type=text' })
|
|
225
249
|
@IsInt()
|
|
@@ -426,6 +450,7 @@ export class CreateFieldMetadataDto {
|
|
|
426
450
|
@IsOptional()
|
|
427
451
|
relationJoinTableName: string
|
|
428
452
|
|
|
453
|
+
@ApiProperty({ description: 'Enable Audit Tracking for this field', })
|
|
429
454
|
@IsOptional()
|
|
430
455
|
@IsBoolean()
|
|
431
456
|
enableAuditTracking?: boolean;
|
|
@@ -434,4 +459,9 @@ export class CreateFieldMetadataDto {
|
|
|
434
459
|
@ApiProperty({ description: 'Is MultiSelect Field', })
|
|
435
460
|
@IsBoolean()
|
|
436
461
|
isMultiSelect: boolean;
|
|
462
|
+
|
|
463
|
+
@IsOptional()
|
|
464
|
+
@ApiProperty({ description: 'Is Primary Key Field', })
|
|
465
|
+
@IsBoolean()
|
|
466
|
+
isPrimaryKey?: boolean;
|
|
437
467
|
}
|
|
@@ -112,4 +112,14 @@ export class CreateModelMetadataDto {
|
|
|
112
112
|
@IsString()
|
|
113
113
|
@IsOptional()
|
|
114
114
|
parentModelUserKey: string;
|
|
115
|
+
|
|
116
|
+
@ApiProperty({ description: 'Is legacy table' })
|
|
117
|
+
@IsBoolean()
|
|
118
|
+
@IsOptional()
|
|
119
|
+
isLegacyTable?: boolean;
|
|
120
|
+
|
|
121
|
+
@ApiProperty({ description: 'Is legacy table with id' })
|
|
122
|
+
@IsBoolean()
|
|
123
|
+
@IsOptional()
|
|
124
|
+
isLegacyTableWithId?: boolean;
|
|
115
125
|
}
|