@owox/backend 0.35.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/common/exceptions/concurrency-limit-exceeded.exception.d.ts +1 -1
- package/dist/src/common/exceptions/concurrency-limit-exceeded.exception.js +2 -2
- package/dist/src/common/markdown/markdown-parser.service.d.ts +2 -0
- package/dist/src/common/markdown/markdown-parser.service.js +15 -8
- package/dist/src/common/validators/max-byte-length.validator.d.ts +2 -0
- package/dist/src/common/validators/max-byte-length.validator.js +29 -0
- package/dist/src/config/env-validation.config.d.ts +12 -0
- package/dist/src/config/env-validation.config.js +7 -0
- package/dist/src/data-marts/ai-insights/agent/types.d.ts +6 -6
- package/dist/src/data-marts/calculated-fields/calculated-field-validator.service.js +22 -30
- package/dist/src/data-marts/calculated-fields/calculated-field.utils.d.ts +1 -0
- package/dist/src/data-marts/calculated-fields/calculated-field.utils.js +21 -0
- package/dist/src/data-marts/calculated-fields/formula-analyzer.d.ts +1 -0
- package/dist/src/data-marts/calculated-fields/formula-analyzer.js +2 -0
- package/dist/src/data-marts/calculated-fields/formula-violations.d.ts +7 -0
- package/dist/src/data-marts/calculated-fields/formula-violations.js +82 -1
- package/dist/src/data-marts/calculated-fields/join-grain.d.ts +32 -0
- package/dist/src/data-marts/calculated-fields/join-grain.js +107 -0
- package/dist/src/data-marts/calculated-fields/set-quantifier.d.ts +8 -0
- package/dist/src/data-marts/calculated-fields/set-quantifier.js +12 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/connector-message.schema.d.ts +66 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/connector-message.schema.js +13 -1
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-credentials-update.schema.d.ts +3 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-credentials-update.schema.js +1 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-error.schema.d.ts +3 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-error.schema.js +1 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-log.schema.d.ts +12 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-log.schema.js +4 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-requested-date.schema.d.ts +3 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-requested-date.schema.js +1 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-state-update.schema.d.ts +16 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-state-update.schema.js +16 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-status.schema.d.ts +3 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-status.schema.js +1 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-warning.schema.d.ts +3 -0
- package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-warning.schema.js +1 -0
- package/dist/src/data-marts/connector-types/connector-message/services/connector-event.translator.d.ts +10 -0
- package/dist/src/data-marts/connector-types/connector-message/services/connector-event.translator.js +138 -0
- package/dist/src/data-marts/connector-types/connector-message/services/connector-message-parser.service.d.ts +1 -3
- package/dist/src/data-marts/connector-types/connector-message/services/connector-message-parser.service.js +30 -34
- package/dist/src/data-marts/connector-types/connector-message/services/connector-output-capture.service.js +10 -12
- package/dist/src/data-marts/connector-types/connector-message/services/connector-state.service.js +3 -1
- package/dist/src/data-marts/connector-types/enums/connector-message-type-enum.d.ts +1 -0
- package/dist/src/data-marts/connector-types/enums/connector-message-type-enum.js +1 -0
- package/dist/src/data-marts/controllers/connector-definition.controller.d.ts +30 -0
- package/dist/src/data-marts/controllers/connector-definition.controller.js +252 -0
- package/dist/src/data-marts/controllers/data-mart-preview.controller.d.ts +10 -0
- package/dist/src/data-marts/controllers/data-mart-preview.controller.js +58 -0
- package/dist/src/data-marts/controllers/data-mart.controller.d.ts +5 -1
- package/dist/src/data-marts/controllers/data-mart.controller.js +25 -4
- package/dist/src/data-marts/controllers/insight-template.controller.js +4 -4
- package/dist/src/data-marts/controllers/insight.controller.js +5 -5
- package/dist/src/data-marts/controllers/project-data-mart-runs.controller.js +1 -1
- package/dist/src/data-marts/controllers/spec/connector-definition.api.d.ts +12 -0
- package/dist/src/data-marts/controllers/spec/connector-definition.api.js +179 -0
- package/dist/src/data-marts/controllers/spec/data-mart.api.d.ts +1 -0
- package/dist/src/data-marts/controllers/spec/data-mart.api.js +5 -0
- package/dist/src/data-marts/controllers/spec/report-openapi.d.ts +18 -0
- package/dist/src/data-marts/controllers/spec/report-openapi.js +3 -0
- package/dist/src/data-marts/data-marts.module.js +20 -2
- package/dist/src/data-marts/data-storage-types/blending/metric-sleeve.planner.js +3 -12
- package/dist/src/data-marts/data-storage-types/data-mart-schema.utils.d.ts +1 -0
- package/dist/src/data-marts/data-storage-types/data-mart-schema.utils.js +16 -0
- package/dist/src/data-marts/dto/domain/blendable-schema.dto.d.ts +10 -0
- package/dist/src/data-marts/dto/domain/blendable-schema.dto.js +71 -1
- package/dist/src/data-marts/dto/domain/create-data-mart.command.d.ts +3 -1
- package/dist/src/data-marts/dto/domain/create-data-mart.command.js +3 -1
- package/dist/src/data-marts/dto/domain/create-report.command.d.ts +3 -1
- package/dist/src/data-marts/dto/domain/create-report.command.js +3 -1
- package/dist/src/data-marts/dto/domain/data-mart-list-item.dto.d.ts +3 -1
- package/dist/src/data-marts/dto/domain/data-mart-list-item.dto.js +3 -1
- package/dist/src/data-marts/dto/domain/data-mart.dto.d.ts +4 -1
- package/dist/src/data-marts/dto/domain/data-mart.dto.js +5 -1
- package/dist/src/data-marts/dto/domain/model-canvas.dto.d.ts +4 -0
- package/dist/src/data-marts/dto/domain/report-like-read-plan.d.ts +2 -0
- package/dist/src/data-marts/dto/domain/report.dto.d.ts +3 -1
- package/dist/src/data-marts/dto/domain/report.dto.js +3 -1
- package/dist/src/data-marts/dto/domain/update-data-mart-icon.command.d.ts +9 -0
- package/dist/src/data-marts/dto/domain/update-data-mart-icon.command.js +19 -0
- package/dist/src/data-marts/dto/domain/update-report.command.d.ts +3 -1
- package/dist/src/data-marts/dto/domain/update-report.command.js +3 -1
- package/dist/src/data-marts/dto/presentation/create-data-mart-request-api.dto.d.ts +2 -0
- package/dist/src/data-marts/dto/presentation/create-data-mart-request-api.dto.js +13 -0
- package/dist/src/data-marts/dto/presentation/create-report-request-api.dto.d.ts +2 -0
- package/dist/src/data-marts/dto/presentation/create-report-request-api.dto.js +10 -0
- package/dist/src/data-marts/dto/presentation/custom-connector-response.dto.d.ts +46 -0
- package/dist/src/data-marts/dto/presentation/custom-connector-response.dto.js +216 -0
- package/dist/src/data-marts/dto/presentation/custom-connector.dto.d.ts +27 -0
- package/dist/src/data-marts/dto/presentation/custom-connector.dto.js +159 -0
- package/dist/src/data-marts/dto/presentation/data-mart-list-item-response-api.dto.d.ts +2 -0
- package/dist/src/data-marts/dto/presentation/data-mart-list-item-response-api.dto.js +10 -0
- package/dist/src/data-marts/dto/presentation/data-mart-response-api.dto.d.ts +2 -0
- package/dist/src/data-marts/dto/presentation/data-mart-response-api.dto.js +10 -0
- package/dist/src/data-marts/dto/presentation/model-canvas-response-api.dto.d.ts +4 -0
- package/dist/src/data-marts/dto/presentation/model-canvas-response-api.dto.js +20 -0
- package/dist/src/data-marts/dto/presentation/preview-data-mart-request-api.dto.d.ts +7 -0
- package/dist/src/data-marts/dto/presentation/preview-data-mart-request-api.dto.js +56 -0
- package/dist/src/data-marts/dto/presentation/preview-data-mart-response-api.dto.d.ts +12 -0
- package/dist/src/data-marts/dto/presentation/preview-data-mart-response-api.dto.js +64 -0
- package/dist/src/data-marts/dto/presentation/report-response-api.dto.d.ts +2 -0
- package/dist/src/data-marts/dto/presentation/report-response-api.dto.js +6 -0
- package/dist/src/data-marts/dto/presentation/run-data-mart-request-api.dto.js +67 -0
- package/dist/src/data-marts/dto/presentation/update-data-mart-description-api.dto.js +3 -0
- package/dist/src/data-marts/dto/presentation/update-data-mart-icon-api.dto.d.ts +4 -0
- package/dist/src/data-marts/dto/presentation/update-data-mart-icon-api.dto.js +30 -0
- package/dist/src/data-marts/dto/presentation/update-report-request-api.dto.d.ts +2 -0
- package/dist/src/data-marts/dto/presentation/update-report-request-api.dto.js +10 -0
- package/dist/src/data-marts/dto/schemas/auto-aggregation-opt-out.schema.d.ts +15 -0
- package/dist/src/data-marts/dto/schemas/auto-aggregation-opt-out.schema.js +29 -0
- package/dist/src/data-marts/dto/schemas/data-mart-run/data-mart-run.schema.d.ts +9 -0
- package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/connector-definition.schema.d.ts +15 -0
- package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/connector-definition.schema.js +1 -0
- package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/data-mart-definition.schema.d.ts +7 -0
- package/dist/src/data-marts/dto/schemas/data-quality/data-quality-run.schema.d.ts +20 -0
- package/dist/src/data-marts/entities/connector-definition-version.entity.d.ts +16 -0
- package/dist/src/data-marts/entities/connector-definition-version.entity.js +78 -0
- package/dist/src/data-marts/entities/connector-definition.entity.d.ts +14 -0
- package/dist/src/data-marts/entities/connector-definition.entity.js +82 -0
- package/dist/src/data-marts/entities/data-mart.entity.d.ts +2 -0
- package/dist/src/data-marts/entities/data-mart.entity.js +5 -0
- package/dist/src/data-marts/entities/report.entity.d.ts +2 -0
- package/dist/src/data-marts/entities/report.entity.js +11 -0
- package/dist/src/data-marts/enums/data-mart-icon.enum.d.ts +75 -0
- package/dist/src/data-marts/enums/data-mart-icon.enum.js +80 -0
- package/dist/src/data-marts/errors/connector-credential-boundary.error.d.ts +3 -0
- package/dist/src/data-marts/errors/connector-credential-boundary.error.js +14 -0
- package/dist/src/data-marts/facades/mcp-data-marts.facade.d.ts +2 -0
- package/dist/src/data-marts/facades/mcp-data-marts.facade.impl.d.ts +7 -1
- package/dist/src/data-marts/facades/mcp-data-marts.facade.impl.js +70 -5
- package/dist/src/data-marts/mappers/connector-definition.mapper.d.ts +14 -0
- package/dist/src/data-marts/mappers/connector-definition.mapper.js +57 -0
- package/dist/src/data-marts/mappers/data-mart.mapper.d.ts +9 -6
- package/dist/src/data-marts/mappers/data-mart.mapper.js +44 -19
- package/dist/src/data-marts/mappers/insight-template.mapper.d.ts +1 -1
- package/dist/src/data-marts/mappers/insight-template.mapper.js +2 -2
- package/dist/src/data-marts/mappers/insight.mapper.d.ts +1 -1
- package/dist/src/data-marts/mappers/insight.mapper.js +2 -2
- package/dist/src/data-marts/mappers/model-canvas.mapper.d.ts +10 -2
- package/dist/src/data-marts/mappers/model-canvas.mapper.js +9 -3
- package/dist/src/data-marts/mappers/report.mapper.js +4 -3
- package/dist/src/data-marts/services/auto-collapse.resolver.d.ts +1 -1
- package/dist/src/data-marts/services/auto-collapse.resolver.js +4 -0
- package/dist/src/data-marts/services/blendable-schema.service.d.ts +2 -0
- package/dist/src/data-marts/services/blendable-schema.service.js +59 -0
- package/dist/src/data-marts/services/connector/connector-credential-injector.service.d.ts +1 -1
- package/dist/src/data-marts/services/connector/connector-credential-injector.service.js +15 -1
- package/dist/src/data-marts/services/connector/connector-definition.service.d.ts +59 -0
- package/dist/src/data-marts/services/connector/connector-definition.service.js +491 -0
- package/dist/src/data-marts/services/connector/connector-executor.service.d.ts +9 -1
- package/dist/src/data-marts/services/connector/connector-executor.service.js +173 -63
- package/dist/src/data-marts/services/connector/connector-fields-preview.service.js +1 -1
- package/dist/src/data-marts/services/connector/connector-message.utils.js +2 -2
- package/dist/src/data-marts/services/connector/connector-preview-credentials.service.js +1 -1
- package/dist/src/data-marts/services/connector/connector-preview-support.d.ts +1 -1
- package/dist/src/data-marts/services/connector/connector-preview-support.js +14 -21
- package/dist/src/data-marts/services/connector/connector-process-spawner.service.d.ts +11 -2
- package/dist/src/data-marts/services/connector/connector-process-spawner.service.js +88 -60
- package/dist/src/data-marts/services/connector/connector-secret.service.d.ts +6 -3
- package/dist/src/data-marts/services/connector/connector-secret.service.js +77 -12
- package/dist/src/data-marts/services/connector/connector-source-config.service.js +1 -1
- package/dist/src/data-marts/services/connector/connector-source-credentials.service.d.ts +6 -2
- package/dist/src/data-marts/services/connector/connector-source-credentials.service.js +18 -16
- package/dist/src/data-marts/services/connector/connector-specification.mapper.d.ts +47 -0
- package/dist/src/data-marts/services/connector/connector-specification.mapper.js +46 -0
- package/dist/src/data-marts/services/connector/connector-test.service.d.ts +43 -0
- package/dist/src/data-marts/services/connector/connector-test.service.js +343 -0
- package/dist/src/data-marts/services/connector/connector.service.d.ts +8 -2
- package/dist/src/data-marts/services/connector/connector.service.js +65 -54
- package/dist/src/data-marts/services/connector/declarative-manifest-schemas.d.ts +4 -0
- package/dist/src/data-marts/services/connector/declarative-manifest-schemas.js +48 -0
- package/dist/src/data-marts/services/connector/run-log-flusher.d.ts +21 -0
- package/dist/src/data-marts/services/connector/run-log-flusher.js +67 -0
- package/dist/src/data-marts/services/data-mart.service.js +2 -0
- package/dist/src/data-marts/services/report-sql-composer.service.js +15 -1
- package/dist/src/data-marts/services/report.service.d.ts +1 -0
- package/dist/src/data-marts/services/report.service.js +13 -0
- package/dist/src/data-marts/services/scheduled-trigger.service.d.ts +1 -0
- package/dist/src/data-marts/services/scheduled-trigger.service.js +13 -0
- package/dist/src/data-marts/use-cases/create-data-mart.service.js +1 -0
- package/dist/src/data-marts/use-cases/create-report.service.js +2 -0
- package/dist/src/data-marts/use-cases/get-model-canvas-data-marts.service.d.ts +5 -1
- package/dist/src/data-marts/use-cases/get-model-canvas-data-marts.service.js +16 -3
- package/dist/src/data-marts/use-cases/list-project-scheduled-triggers.service.js +1 -1
- package/dist/src/data-marts/use-cases/preview-data-mart.service.d.ts +59 -0
- package/dist/src/data-marts/use-cases/preview-data-mart.service.js +293 -0
- package/dist/src/data-marts/use-cases/stream-http-data.service.js +1 -0
- package/dist/src/data-marts/use-cases/update-data-mart-definition.service.d.ts +1 -1
- package/dist/src/data-marts/use-cases/update-data-mart-definition.service.js +8 -6
- package/dist/src/data-marts/use-cases/update-data-mart-icon.service.d.ts +12 -0
- package/dist/src/data-marts/use-cases/update-data-mart-icon.service.js +46 -0
- package/dist/src/data-marts/use-cases/update-data-mart-schema.service.js +14 -1
- package/dist/src/data-marts/use-cases/update-report.service.js +9 -1
- package/dist/src/ee/ee.module.js +5 -8
- package/dist/src/ee/mcp/auth/mcp-auth-context.d.ts +0 -4
- package/dist/src/ee/mcp/auth/mcp-auth.middleware.d.ts +26 -0
- package/dist/src/ee/mcp/auth/mcp-auth.middleware.js +184 -0
- package/dist/src/ee/mcp/http-headers.util.d.ts +2 -0
- package/dist/src/ee/mcp/http-headers.util.js +8 -0
- package/dist/src/ee/mcp/observability/mcp-bus-wiring.js +4 -4
- package/dist/src/ee/mcp/observability/mcp-call-instrumentation.d.ts +2 -4
- package/dist/src/ee/mcp/observability/mcp-call-instrumentation.js +6 -6
- package/dist/src/ee/mcp/sdk/mcp-sdk-server.factory.d.ts +1 -1
- package/dist/src/ee/mcp/sdk/mcp-sdk-server.factory.js +5 -5
- package/dist/src/ee/mcp/tools/add-destination.tool.d.ts +20 -14
- package/dist/src/ee/mcp/tools/add-destination.tool.js +10 -10
- package/dist/src/ee/mcp/tools/add-report.tool.d.ts +88 -228
- package/dist/src/ee/mcp/tools/add-report.tool.js +28 -28
- package/dist/src/ee/mcp/tools/create-report-run-schedule.tool.d.ts +2 -12
- package/dist/src/ee/mcp/tools/create-report-run-schedule.tool.js +13 -13
- package/dist/src/ee/mcp/tools/data-mart-catalog.tool.d.ts +15 -81
- package/dist/src/ee/mcp/tools/data-mart-catalog.tool.js +11 -11
- package/dist/src/ee/mcp/tools/data-mart-details.tool.d.ts +19 -111
- package/dist/src/ee/mcp/tools/data-mart-details.tool.js +64 -48
- package/dist/src/ee/mcp/tools/delete-report-run-schedule.tool.d.ts +2 -6
- package/dist/src/ee/mcp/tools/delete-report-run-schedule.tool.js +7 -7
- package/dist/src/ee/mcp/tools/delete-report.tool.d.ts +2 -6
- package/dist/src/ee/mcp/tools/delete-report.tool.js +4 -4
- package/dist/src/ee/mcp/tools/get-data-mart-reports.tool.d.ts +30 -195
- package/dist/src/ee/mcp/tools/get-data-mart-reports.tool.js +22 -22
- package/dist/src/ee/mcp/tools/get-report-output-schema.tool.d.ts +3 -21
- package/dist/src/ee/mcp/tools/get-report-output-schema.tool.js +10 -10
- package/dist/src/ee/mcp/tools/get-report-run-status.tool.d.ts +15 -11
- package/dist/src/ee/mcp/tools/get-report-run-status.tool.js +14 -14
- package/dist/src/ee/mcp/tools/list-destinations.tool.d.ts +12 -20
- package/dist/src/ee/mcp/tools/list-destinations.tool.js +10 -10
- package/dist/src/ee/mcp/tools/list-report-run-schedules.tool.d.ts +5 -61
- package/dist/src/ee/mcp/tools/list-report-run-schedules.tool.js +14 -14
- package/dist/src/ee/mcp/tools/mcp-getting-started.util.d.ts +4 -52
- package/dist/src/ee/mcp/tools/mcp-getting-started.util.js +13 -13
- package/dist/src/ee/mcp/tools/mcp-tool.definition.d.ts +2 -2
- package/dist/src/ee/mcp/tools/project-context.tool.d.ts +3 -17
- package/dist/src/ee/mcp/tools/project-context.tool.js +10 -10
- package/dist/src/ee/mcp/tools/query-data-mart.input.d.ts +111 -152
- package/dist/src/ee/mcp/tools/query-data-mart.input.js +39 -39
- package/dist/src/ee/mcp/tools/query-data-mart.tool.d.ts +60 -130
- package/dist/src/ee/mcp/tools/query-data-mart.tool.js +35 -35
- package/dist/src/ee/mcp/tools/report-output-controls-output.d.ts +17 -60
- package/dist/src/ee/mcp/tools/report-output-controls-output.js +20 -20
- package/dist/src/ee/mcp/tools/report-run-outcome.d.ts +6 -42
- package/dist/src/ee/mcp/tools/report-run-outcome.js +20 -20
- package/dist/src/ee/mcp/tools/run-report.tool.d.ts +2 -6
- package/dist/src/ee/mcp/tools/run-report.tool.js +5 -5
- package/dist/src/ee/mcp/tools/search-data-marts.tool.d.ts +7 -79
- package/dist/src/ee/mcp/tools/search-data-marts.tool.js +11 -11
- package/dist/src/ee/mcp/tools/search-reports.tool.d.ts +15 -61
- package/dist/src/ee/mcp/tools/search-reports.tool.js +15 -15
- package/dist/src/ee/mcp/tools/summarize-data-catalog.tool.d.ts +7 -79
- package/dist/src/ee/mcp/tools/summarize-data-catalog.tool.js +15 -15
- package/dist/src/ee/mcp/tools/update-report-run-schedule.tool.d.ts +2 -12
- package/dist/src/ee/mcp/tools/update-report-run-schedule.tool.js +13 -13
- package/dist/src/ee/mcp/tools/update-report.tool.d.ts +105 -414
- package/dist/src/ee/mcp/tools/update-report.tool.js +20 -20
- package/dist/src/ee/mcp/transport/mcp-http-entry.service.d.ts +30 -0
- package/dist/src/ee/mcp/transport/mcp-http-entry.service.js +193 -0
- package/dist/src/idp/guards/idp.guard.js +2 -8
- package/dist/src/idp/oauth/controllers/oauth-authorization.controller.d.ts +4 -0
- package/dist/src/idp/oauth/controllers/oauth-authorization.controller.js +77 -1
- package/dist/src/idp/oauth/controllers/oauth-metadata.controller.d.ts +2 -1
- package/dist/src/idp/oauth/controllers/oauth-metadata.controller.js +5 -8
- package/dist/src/idp/oauth/controllers/oauth-token.controller.js +14 -1
- package/dist/src/idp/oauth/oauth-request.validator.d.ts +8 -0
- package/dist/src/idp/oauth/oauth-request.validator.js +27 -0
- package/dist/src/idp/utils/is-authentication-error.d.ts +1 -0
- package/dist/src/idp/utils/is-authentication-error.js +9 -0
- package/dist/src/idp/utils/role-hierarchy.d.ts +3 -0
- package/dist/src/idp/utils/role-hierarchy.js +14 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +3 -1
- package/dist/src/migrations/1788048000000-create-connector-definition-tables.d.ts +6 -0
- package/dist/src/migrations/1788048000000-create-connector-definition-tables.js +116 -0
- package/dist/src/migrations/1790156789783-add-auto-aggregation-opt-out-to-report.d.ts +8 -0
- package/dist/src/migrations/1790156789783-add-auto-aggregation-opt-out-to-report.js +30 -0
- package/dist/src/migrations/1790247861000-add-icon-to-data-mart.d.ts +8 -0
- package/dist/src/migrations/1790247861000-add-icon-to-data-mart.js +31 -0
- package/package.json +10 -6
- package/dist/src/ee/mcp/auth/mcp-auth.exception-filter.d.ts +0 -14
- package/dist/src/ee/mcp/auth/mcp-auth.exception-filter.js +0 -84
- package/dist/src/ee/mcp/auth/mcp-auth.guard.d.ts +0 -14
- package/dist/src/ee/mcp/auth/mcp-auth.guard.js +0 -99
- package/dist/src/ee/mcp/controllers/mcp-transport.controller.d.ts +0 -17
- package/dist/src/ee/mcp/controllers/mcp-transport.controller.js +0 -134
- package/dist/src/ee/mcp/sdk/mcp-streamable-http-transport.handler.d.ts +0 -16
- package/dist/src/ee/mcp/sdk/mcp-streamable-http-transport.handler.js +0 -133
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { TypeResolver } from '../../common/resolver/type-resolver';
|
|
2
|
+
import { FormulaFunctionDialect } from '../calculated-fields/formula-function-dialect';
|
|
3
|
+
import { DataStorageType } from '../data-storage-types/enums/data-storage-type.enum';
|
|
1
4
|
import { BlendableSchemaService } from '../services/blendable-schema.service';
|
|
2
5
|
import { DataMartRelationshipService } from '../services/data-mart-relationship.service';
|
|
3
6
|
import { DataMartService } from '../services/data-mart.service';
|
|
@@ -14,12 +17,15 @@ export declare class McpDataMartsFacadeImpl implements McpDataMartsFacade {
|
|
|
14
17
|
private readonly blendableSchemaService;
|
|
15
18
|
private readonly relationshipService;
|
|
16
19
|
private readonly summarizeMcpDataCatalogService;
|
|
20
|
+
private readonly dialects;
|
|
17
21
|
private readonly logger;
|
|
18
|
-
constructor(listDataMartsService: ListDataMartsService, getDataMartService: GetDataMartService, dataMartService: DataMartService, queryDataMartService: QueryDataMartService, blendableSchemaService: BlendableSchemaService, relationshipService: DataMartRelationshipService, summarizeMcpDataCatalogService: SummarizeMcpDataCatalogService);
|
|
22
|
+
constructor(listDataMartsService: ListDataMartsService, getDataMartService: GetDataMartService, dataMartService: DataMartService, queryDataMartService: QueryDataMartService, blendableSchemaService: BlendableSchemaService, relationshipService: DataMartRelationshipService, summarizeMcpDataCatalogService: SummarizeMcpDataCatalogService, dialects: TypeResolver<DataStorageType, FormulaFunctionDialect>);
|
|
19
23
|
listDataMarts(request: McpListDataMartsRequest): Promise<McpListDataMartsResponse>;
|
|
20
24
|
getDataMartDetails(request: McpGetDataMartDetailsRequest): Promise<McpDataMartDetailsResponse>;
|
|
25
|
+
private blendableSchemaOnce;
|
|
21
26
|
private resolveJoinedFields;
|
|
22
27
|
private resolveJoins;
|
|
28
|
+
private grainCaveats;
|
|
23
29
|
queryDataMart(request: McpQueryDataMartRequest, signal?: AbortSignal): Promise<McpQueryDataMartResponse>;
|
|
24
30
|
summarizeDataCatalog(request: McpSummarizeDataCatalogRequest): Promise<McpDataCatalogSummaryResponse>;
|
|
25
31
|
private ensurePublishedDataMartAccessible;
|
|
@@ -8,12 +8,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
var McpDataMartsFacadeImpl_1;
|
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
16
|
exports.McpDataMartsFacadeImpl = void 0;
|
|
14
17
|
const common_1 = require("@nestjs/common");
|
|
18
|
+
const internal_helpers_1 = require("@owox/internal-helpers");
|
|
19
|
+
const type_resolver_1 = require("../../common/resolver/type-resolver");
|
|
15
20
|
const ai_insights_constants_1 = require("../ai-insights/ai-insights.constants");
|
|
16
21
|
const prepare_schema_1 = require("../ai-insights/utils/prepare-schema");
|
|
22
|
+
const formula_analyzer_1 = require("../calculated-fields/formula-analyzer");
|
|
23
|
+
const calculated_field_utils_1 = require("../calculated-fields/calculated-field.utils");
|
|
24
|
+
const formula_function_dialect_1 = require("../calculated-fields/formula-function-dialect");
|
|
25
|
+
const join_grain_1 = require("../calculated-fields/join-grain");
|
|
17
26
|
const data_mart_schema_utils_1 = require("../data-storage-types/data-mart-schema.utils");
|
|
18
27
|
const get_data_mart_command_1 = require("../dto/domain/get-data-mart.command");
|
|
19
28
|
const list_data_marts_command_1 = require("../dto/domain/list-data-marts.command");
|
|
@@ -37,8 +46,9 @@ let McpDataMartsFacadeImpl = McpDataMartsFacadeImpl_1 = class McpDataMartsFacade
|
|
|
37
46
|
blendableSchemaService;
|
|
38
47
|
relationshipService;
|
|
39
48
|
summarizeMcpDataCatalogService;
|
|
49
|
+
dialects;
|
|
40
50
|
logger = new common_1.Logger(McpDataMartsFacadeImpl_1.name);
|
|
41
|
-
constructor(listDataMartsService, getDataMartService, dataMartService, queryDataMartService, blendableSchemaService, relationshipService, summarizeMcpDataCatalogService) {
|
|
51
|
+
constructor(listDataMartsService, getDataMartService, dataMartService, queryDataMartService, blendableSchemaService, relationshipService, summarizeMcpDataCatalogService, dialects) {
|
|
42
52
|
this.listDataMartsService = listDataMartsService;
|
|
43
53
|
this.getDataMartService = getDataMartService;
|
|
44
54
|
this.dataMartService = dataMartService;
|
|
@@ -46,6 +56,7 @@ let McpDataMartsFacadeImpl = McpDataMartsFacadeImpl_1 = class McpDataMartsFacade
|
|
|
46
56
|
this.blendableSchemaService = blendableSchemaService;
|
|
47
57
|
this.relationshipService = relationshipService;
|
|
48
58
|
this.summarizeMcpDataCatalogService = summarizeMcpDataCatalogService;
|
|
59
|
+
this.dialects = dialects;
|
|
49
60
|
}
|
|
50
61
|
async listDataMarts(request) {
|
|
51
62
|
const status = request.status === 'draft' ? data_mart_status_enum_1.DataMartStatus.DRAFT : data_mart_status_enum_1.DataMartStatus.PUBLISHED;
|
|
@@ -71,8 +82,13 @@ let McpDataMartsFacadeImpl = McpDataMartsFacadeImpl_1 = class McpDataMartsFacade
|
|
|
71
82
|
fields: this.filterAvailableFields(dataMart.schema.fields),
|
|
72
83
|
})
|
|
73
84
|
: undefined;
|
|
85
|
+
const blendable = this.blendableSchemaOnce(request);
|
|
86
|
+
const publishedNames = this.topLevelFieldNames(schema?.fields ?? []);
|
|
87
|
+
const grainCaveats = request.includeGrainCaveats
|
|
88
|
+
? await this.grainCaveats(request, dataMart, publishedNames, blendable)
|
|
89
|
+
: undefined;
|
|
74
90
|
const { joinedFields, joins, uniqueCountSources } = request.includeJoinedFields
|
|
75
|
-
? await this.resolveJoinedFields(request,
|
|
91
|
+
? await this.resolveJoinedFields(request, publishedNames, blendable)
|
|
76
92
|
: { joinedFields: [], joins: [], uniqueCountSources: [] };
|
|
77
93
|
return {
|
|
78
94
|
id: dataMart.id,
|
|
@@ -82,15 +98,23 @@ let McpDataMartsFacadeImpl = McpDataMartsFacadeImpl_1 = class McpDataMartsFacade
|
|
|
82
98
|
joinedFields,
|
|
83
99
|
joins,
|
|
84
100
|
uniqueCountSources,
|
|
101
|
+
...(grainCaveats === undefined ? {} : { grainCaveats }),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
blendableSchemaOnce(request) {
|
|
105
|
+
let pending;
|
|
106
|
+
return () => {
|
|
107
|
+
pending ??= this.blendableSchemaService.computeBlendableSchema(request.dataMartId, request.projectId, { userId: request.userId, roles: request.roles });
|
|
108
|
+
return pending;
|
|
85
109
|
};
|
|
86
110
|
}
|
|
87
|
-
async resolveJoinedFields(request, nativeFieldNames) {
|
|
111
|
+
async resolveJoinedFields(request, nativeFieldNames, blendableSchema) {
|
|
88
112
|
try {
|
|
89
113
|
const relationships = await this.relationshipService.findBySourceDataMartId(request.dataMartId);
|
|
90
114
|
if (relationships.length === 0) {
|
|
91
115
|
return { joinedFields: [], joins: [], uniqueCountSources: [] };
|
|
92
116
|
}
|
|
93
|
-
const blendable = await
|
|
117
|
+
const blendable = await blendableSchema();
|
|
94
118
|
const accessibleSources = blendable.availableSources.filter(s => s.isIncluded && s.isAccessibleForReporting);
|
|
95
119
|
const accessiblePaths = new Set(accessibleSources.map(s => s.aliasPath));
|
|
96
120
|
const joins = await this.resolveJoins(accessibleSources);
|
|
@@ -166,6 +190,45 @@ let McpDataMartsFacadeImpl = McpDataMartsFacadeImpl_1 = class McpDataMartsFacade
|
|
|
166
190
|
return [];
|
|
167
191
|
}
|
|
168
192
|
}
|
|
193
|
+
async grainCaveats(request, dataMart, publishedNames, blendableSchema) {
|
|
194
|
+
const readers = (0, calculated_field_utils_1.calculatedFieldsOf)(dataMart.schema?.fields ?? []).filter(field => publishedNames.has(field.name) && (0, calculated_field_utils_1.readsJoinedDataMart)(field));
|
|
195
|
+
if (readers.length === 0)
|
|
196
|
+
return {};
|
|
197
|
+
let blendable;
|
|
198
|
+
try {
|
|
199
|
+
blendable = await blendableSchema();
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
if (!request.includeJoinedFields) {
|
|
203
|
+
this.logger.warn(`Join caveats skipped: ${(0, internal_helpers_1.castError)(err).message}`);
|
|
204
|
+
}
|
|
205
|
+
return {};
|
|
206
|
+
}
|
|
207
|
+
try {
|
|
208
|
+
const sources = (0, join_grain_1.buildJoinGrainSources)(blendable.availableSources, {
|
|
209
|
+
kind: 'agent',
|
|
210
|
+
blendedFields: blendable.blendedFields,
|
|
211
|
+
});
|
|
212
|
+
const dialect = await this.dialects.resolve(dataMart.storage.type);
|
|
213
|
+
const caveats = {};
|
|
214
|
+
for (const field of readers) {
|
|
215
|
+
const { aggregateCalls } = (0, formula_analyzer_1.analyzeFormula)({
|
|
216
|
+
fieldName: field.name,
|
|
217
|
+
formula: field.calculated.formula,
|
|
218
|
+
dialect,
|
|
219
|
+
knownField: () => 'ok',
|
|
220
|
+
});
|
|
221
|
+
const { warnings } = (0, join_grain_1.checkJoinGrain)({ fieldName: field.name, aggregateCalls, sources });
|
|
222
|
+
if (warnings.length > 0)
|
|
223
|
+
caveats[field.name] = warnings.map(w => w.message).join(' ');
|
|
224
|
+
}
|
|
225
|
+
return caveats;
|
|
226
|
+
}
|
|
227
|
+
catch (err) {
|
|
228
|
+
this.logger.warn(`Join caveats skipped: ${(0, internal_helpers_1.castError)(err).message}`);
|
|
229
|
+
return {};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
169
232
|
async queryDataMart(request, signal) {
|
|
170
233
|
return this.queryDataMartService.run(new query_data_mart_service_1.QueryDataMartCommand(request), signal);
|
|
171
234
|
}
|
|
@@ -214,12 +277,14 @@ let McpDataMartsFacadeImpl = McpDataMartsFacadeImpl_1 = class McpDataMartsFacade
|
|
|
214
277
|
exports.McpDataMartsFacadeImpl = McpDataMartsFacadeImpl;
|
|
215
278
|
exports.McpDataMartsFacadeImpl = McpDataMartsFacadeImpl = McpDataMartsFacadeImpl_1 = __decorate([
|
|
216
279
|
(0, common_1.Injectable)(),
|
|
280
|
+
__param(7, (0, common_1.Inject)(formula_function_dialect_1.FORMULA_FUNCTION_DIALECT_RESOLVER)),
|
|
217
281
|
__metadata("design:paramtypes", [list_data_marts_service_1.ListDataMartsService,
|
|
218
282
|
get_data_mart_service_1.GetDataMartService,
|
|
219
283
|
data_mart_service_1.DataMartService,
|
|
220
284
|
query_data_mart_service_1.QueryDataMartService,
|
|
221
285
|
blendable_schema_service_1.BlendableSchemaService,
|
|
222
286
|
data_mart_relationship_service_1.DataMartRelationshipService,
|
|
223
|
-
summarize_mcp_data_catalog_service_1.SummarizeMcpDataCatalogService
|
|
287
|
+
summarize_mcp_data_catalog_service_1.SummarizeMcpDataCatalogService,
|
|
288
|
+
type_resolver_1.TypeResolver])
|
|
224
289
|
], McpDataMartsFacadeImpl);
|
|
225
290
|
//# sourceMappingURL=mcp-data-marts.facade.impl.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ActivateCustomConnectorVersionResponseApiDto, CreateCustomConnectorResponseApiDto, CustomConnectorDetailResponseApiDto, CustomConnectorListItemResponseApiDto, CustomConnectorVersionResponseApiDto, CustomConnectorVersionStateResponseApiDto, PublishCustomConnectorResponseApiDto } from '../dto/presentation/custom-connector-response.dto';
|
|
2
|
+
import { ConnectorDefinition } from '../entities/connector-definition.entity';
|
|
3
|
+
import { ConnectorDefinitionVersion } from '../entities/connector-definition-version.entity';
|
|
4
|
+
import { ConnectorDefinitionVersionSummary } from '../services/connector/connector-definition.service';
|
|
5
|
+
export declare class ConnectorDefinitionMapper {
|
|
6
|
+
toListItemResponse(def: ConnectorDefinition, activeVersion: number | null): CustomConnectorListItemResponseApiDto;
|
|
7
|
+
toListResponse(defs: ConnectorDefinition[], activeVersionByDefId: Map<string, number>): CustomConnectorListItemResponseApiDto[];
|
|
8
|
+
toDetailResponse(def: ConnectorDefinition, versions: ConnectorDefinitionVersionSummary[], activeVersion: number | null): CustomConnectorDetailResponseApiDto;
|
|
9
|
+
toCreateResponse(def: ConnectorDefinition): CreateCustomConnectorResponseApiDto;
|
|
10
|
+
toVersionResponse(row: ConnectorDefinitionVersion): CustomConnectorVersionResponseApiDto;
|
|
11
|
+
toVersionStateResponse(row: ConnectorDefinitionVersion): CustomConnectorVersionStateResponseApiDto;
|
|
12
|
+
toPublishResponse(row: ConnectorDefinitionVersion, warnings: string[]): PublishCustomConnectorResponseApiDto;
|
|
13
|
+
toActivateResponse(def: ConnectorDefinition, version: number): ActivateCustomConnectorVersionResponseApiDto;
|
|
14
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ConnectorDefinitionMapper = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let ConnectorDefinitionMapper = class ConnectorDefinitionMapper {
|
|
12
|
+
toListItemResponse(def, activeVersion) {
|
|
13
|
+
return {
|
|
14
|
+
id: def.id,
|
|
15
|
+
name: def.name,
|
|
16
|
+
title: def.title,
|
|
17
|
+
description: def.description ?? null,
|
|
18
|
+
logo: def.logo ?? null,
|
|
19
|
+
docUrl: def.docUrl ?? null,
|
|
20
|
+
activeVersionId: def.activeVersionId ?? null,
|
|
21
|
+
activeVersion,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
toListResponse(defs, activeVersionByDefId) {
|
|
25
|
+
return defs.map(def => this.toListItemResponse(def, activeVersionByDefId.get(def.id) ?? null));
|
|
26
|
+
}
|
|
27
|
+
toDetailResponse(def, versions, activeVersion) {
|
|
28
|
+
return {
|
|
29
|
+
...this.toListItemResponse(def, activeVersion),
|
|
30
|
+
versions: versions.map(v => ({
|
|
31
|
+
version: v.version,
|
|
32
|
+
status: v.status,
|
|
33
|
+
publishedAt: v.publishedAt ?? null,
|
|
34
|
+
})),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
toCreateResponse(def) {
|
|
38
|
+
return { id: def.id, name: def.name, title: def.title };
|
|
39
|
+
}
|
|
40
|
+
toVersionResponse(row) {
|
|
41
|
+
return { version: row.version, status: row.status, manifest: row.manifest };
|
|
42
|
+
}
|
|
43
|
+
toVersionStateResponse(row) {
|
|
44
|
+
return { version: row.version, status: row.status };
|
|
45
|
+
}
|
|
46
|
+
toPublishResponse(row, warnings) {
|
|
47
|
+
return { version: row.version, status: row.status, publishedAt: row.publishedAt, warnings };
|
|
48
|
+
}
|
|
49
|
+
toActivateResponse(def, version) {
|
|
50
|
+
return { activeVersionId: def.activeVersionId ?? null, activeVersion: version };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
exports.ConnectorDefinitionMapper = ConnectorDefinitionMapper;
|
|
54
|
+
exports.ConnectorDefinitionMapper = ConnectorDefinitionMapper = __decorate([
|
|
55
|
+
(0, common_1.Injectable)()
|
|
56
|
+
], ConnectorDefinitionMapper);
|
|
57
|
+
//# sourceMappingURL=connector-definition.mapper.js.map
|
|
@@ -27,6 +27,7 @@ import { UpdateDataMartDefinitionCommand } from '../dto/domain/update-data-mart-
|
|
|
27
27
|
import { GetBlendableSchemaCommand } from '../dto/domain/get-blendable-schema.command';
|
|
28
28
|
import { UpdateBlendedFieldsConfigCommand } from '../dto/domain/update-blended-fields-config.command';
|
|
29
29
|
import { UpdateDataMartDescriptionCommand } from '../dto/domain/update-data-mart-description.command';
|
|
30
|
+
import { UpdateDataMartIconCommand } from '../dto/domain/update-data-mart-icon.command';
|
|
30
31
|
import { UpdateDataMartSchemaCommand } from '../dto/domain/update-data-mart-schema.command';
|
|
31
32
|
import { UpdateDataMartTitleCommand } from '../dto/domain/update-data-mart-title.command';
|
|
32
33
|
import { ValidateDataMartDefinitionCommand } from '../dto/domain/validate-data-mart-definition.command';
|
|
@@ -48,6 +49,7 @@ import { SqlDryRunResponseApiDto } from '../dto/presentation/sql-dry-run-respons
|
|
|
48
49
|
import { UpdateDataMartDefinitionApiDto } from '../dto/presentation/update-data-mart-definition-api.dto';
|
|
49
50
|
import { UpdateBlendedFieldsConfigApiDto } from '../dto/presentation/update-blended-fields-config-api.dto';
|
|
50
51
|
import { UpdateDataMartDescriptionApiDto } from '../dto/presentation/update-data-mart-description-api.dto';
|
|
52
|
+
import { UpdateDataMartIconApiDto } from '../dto/presentation/update-data-mart-icon-api.dto';
|
|
51
53
|
import { ValidateFormulaApiDto, ValidateFormulaResponseApiDto } from '../dto/presentation/validate-formula.api.dto';
|
|
52
54
|
import { ValidateFormulaResult } from '../use-cases/validate-formula.service';
|
|
53
55
|
import { UpdateDataMartSchemaApiDto, UpdateDataMartSchemaResponseApiDto } from '../dto/presentation/update-data-mart-schema-api.dto';
|
|
@@ -56,7 +58,7 @@ import { UpdateDataMartTitleApiDto } from '../dto/presentation/update-data-mart-
|
|
|
56
58
|
import { DataMartRun } from '../entities/data-mart-run.entity';
|
|
57
59
|
import { DataMart } from '../entities/data-mart.entity';
|
|
58
60
|
import { OwnerFilter } from '../enums/owner-filter.enum';
|
|
59
|
-
import { ConnectorSecretService } from '../services/connector/connector-secret.service';
|
|
61
|
+
import { ConnectorSecretService, type SecretFieldsCache } from '../services/connector/connector-secret.service';
|
|
60
62
|
import { UpdateDataMartOwnersApiDto } from '../dto/presentation/update-data-mart-owners-api.dto';
|
|
61
63
|
import { UpdateDataMartOwnersCommand } from '../dto/domain/update-data-mart-owners.command';
|
|
62
64
|
import { DataStorageMapper } from './data-storage.mapper';
|
|
@@ -81,7 +83,7 @@ export declare class DataMartMapper {
|
|
|
81
83
|
toBatchDataLastUpdatedResponse(results: Map<string, SourceDataLastUpdated>): BatchDataMartDataLastUpdatedResponseApiDto;
|
|
82
84
|
toBatchHealthStatusDomainResponse(requestedIds: string[], latestRuns: DataMartRun[], userProjections: UserProjectionsListDto): BatchDataMartHealthStatusResponseDto;
|
|
83
85
|
toResponseList(dtos: DataMartDto[]): Promise<DataMartResponseApiDto[]>;
|
|
84
|
-
toBatchHealthStatusResponse(dto: BatchDataMartHealthStatusResponseDto): Promise<BatchDataMartHealthStatusResponseApiDto>;
|
|
86
|
+
toBatchHealthStatusResponse(dto: BatchDataMartHealthStatusResponseDto, projectId: string): Promise<BatchDataMartHealthStatusResponseApiDto>;
|
|
85
87
|
toUpdateDefinitionCommand(id: string, context: AuthorizationContext, dto: UpdateDataMartDefinitionApiDto): UpdateDataMartDefinitionCommand;
|
|
86
88
|
toGetCommand(id: string, context: AuthorizationContext): GetDataMartCommand;
|
|
87
89
|
toGetInputSourceChangeImpactCommand(id: string, context: AuthorizationContext): GetDataMartInputSourceChangeImpactCommand;
|
|
@@ -94,6 +96,7 @@ export declare class DataMartMapper {
|
|
|
94
96
|
toListItemResponse(dto: DataMartListItemDto): DataMartListItemResponseApiDto;
|
|
95
97
|
toPaginatedResponse(result: PaginatedDataMartListItemsDto): PaginatedDataMartsResponseApiDto;
|
|
96
98
|
toUpdateTitleCommand(id: string, context: AuthorizationContext, dto: UpdateDataMartTitleApiDto): UpdateDataMartTitleCommand;
|
|
99
|
+
toUpdateIconCommand(id: string, context: AuthorizationContext, dto: UpdateDataMartIconApiDto): UpdateDataMartIconCommand;
|
|
97
100
|
toUpdateDescriptionCommand(id: string, context: AuthorizationContext, dto: UpdateDataMartDescriptionApiDto): UpdateDataMartDescriptionCommand;
|
|
98
101
|
toGetBlendableSchemaCommand(dataMartId: string, context: AuthorizationContext, includeDraftTargets?: boolean): GetBlendableSchemaCommand;
|
|
99
102
|
toUpdateBlendedFieldsConfigCommand(id: string, context: AuthorizationContext, dto: UpdateBlendedFieldsConfigApiDto): UpdateBlendedFieldsConfigCommand;
|
|
@@ -112,12 +115,12 @@ export declare class DataMartMapper {
|
|
|
112
115
|
toSqlDryRunResponse(result: SqlDryRunResult): SqlDryRunResponseApiDto;
|
|
113
116
|
toDataMartRunDto(entity: DataMartRun, userProjection?: UserProjectionDto | null, dataQuality?: DataQualityRunDetailsDto | null): DataMartRunDto;
|
|
114
117
|
toDataMartRunDtoList(entities: DataMartRun[], userProjections: UserProjectionsListDto): DataMartRunDto[];
|
|
115
|
-
toRunsResponse(runs: DataMartRunDto[]): Promise<DataMartRunsResponseApiDto>;
|
|
116
|
-
toProjectRunsResponse(runs: ProjectDataMartRunDto[]): Promise<ProjectDataMartRunsResponseApiDto>;
|
|
118
|
+
toRunsResponse(runs: DataMartRunDto[], projectId: string): Promise<DataMartRunsResponseApiDto>;
|
|
119
|
+
toProjectRunsResponse(runs: ProjectDataMartRunDto[], projectId: string): Promise<ProjectDataMartRunsResponseApiDto>;
|
|
117
120
|
toListDataMartsByConnectorNameCommand(connectorName: string, context: AuthorizationContext): ListDataMartsByConnectorNameCommand;
|
|
118
121
|
toGetDataMartRunCommand(dataMartId: string, runId: string, context: AuthorizationContext): GetDataMartRunCommand;
|
|
119
|
-
toRunResponse(run: DataMartRunDto): Promise<DataMartRunResponseApiDto>;
|
|
120
|
-
toRunDetailResponse(run: DataMartRunDto): Promise<DataMartRunDetailResponseApiDto>;
|
|
122
|
+
toRunResponse(run: DataMartRunDto, projectId: string, secretFieldsCache?: SecretFieldsCache): Promise<DataMartRunResponseApiDto>;
|
|
123
|
+
toRunDetailResponse(run: DataMartRunDto, projectId: string): Promise<DataMartRunDetailResponseApiDto>;
|
|
121
124
|
toUpdateOwnersCommand(id: string, context: AuthorizationContext, dto: UpdateDataMartOwnersApiDto): UpdateDataMartOwnersCommand;
|
|
122
125
|
private maskDefinitionRun;
|
|
123
126
|
private maskAdditionalParams;
|
|
@@ -37,6 +37,7 @@ const update_data_mart_definition_command_1 = require("../dto/domain/update-data
|
|
|
37
37
|
const get_blendable_schema_command_1 = require("../dto/domain/get-blendable-schema.command");
|
|
38
38
|
const update_blended_fields_config_command_1 = require("../dto/domain/update-blended-fields-config.command");
|
|
39
39
|
const update_data_mart_description_command_1 = require("../dto/domain/update-data-mart-description.command");
|
|
40
|
+
const update_data_mart_icon_command_1 = require("../dto/domain/update-data-mart-icon.command");
|
|
40
41
|
const update_data_mart_schema_command_1 = require("../dto/domain/update-data-mart-schema.command");
|
|
41
42
|
const update_data_mart_title_command_1 = require("../dto/domain/update-data-mart-title.command");
|
|
42
43
|
const validate_data_mart_definition_command_1 = require("../dto/domain/validate-data-mart-definition.command");
|
|
@@ -59,10 +60,10 @@ let DataMartMapper = class DataMartMapper {
|
|
|
59
60
|
this.connectorSecretService = connectorSecretService;
|
|
60
61
|
}
|
|
61
62
|
toCreateDomainCommand(context, dto) {
|
|
62
|
-
return new create_data_mart_command_1.CreateDataMartCommand(context.projectId, context.userId, dto.title, dto.storageId, context.roles ?? []);
|
|
63
|
+
return new create_data_mart_command_1.CreateDataMartCommand(context.projectId, context.userId, dto.title, dto.storageId, context.roles ?? [], dto.icon ?? null);
|
|
63
64
|
}
|
|
64
65
|
toDomainDto(entity, counters, createdByUser, businessOwnerUsers = [], technicalOwnerUsers = []) {
|
|
65
|
-
return new data_mart_dto_1.DataMartDto(entity.id, entity.title, entity.status, this.dataStorageMapper.toDomainDto(entity.storage), entity.createdAt, entity.modifiedAt, entity.definitionType ?? undefined, entity.definition, entity.description, entity.schema, entity.connectorState?.state, counters?.triggersCount ?? 0, counters?.reportsCount ?? 0, createdByUser ?? null, businessOwnerUsers, technicalOwnerUsers, entity.availableForReporting ?? true, entity.availableForMaintenance ?? true, entity.blendedFieldsConfig, (0, extract_context_summaries_1.extractContextSummaries)(entity.contexts), entity.dataLastUpdated ?? null);
|
|
66
|
+
return new data_mart_dto_1.DataMartDto(entity.id, entity.projectId, entity.title, entity.status, this.dataStorageMapper.toDomainDto(entity.storage), entity.createdAt, entity.modifiedAt, entity.definitionType ?? undefined, entity.definition, entity.description, entity.schema, entity.connectorState?.state, counters?.triggersCount ?? 0, counters?.reportsCount ?? 0, createdByUser ?? null, businessOwnerUsers, technicalOwnerUsers, entity.availableForReporting ?? true, entity.availableForMaintenance ?? true, entity.blendedFieldsConfig, (0, extract_context_summaries_1.extractContextSummaries)(entity.contexts), entity.dataLastUpdated ?? null, entity.icon ?? null);
|
|
66
67
|
}
|
|
67
68
|
toDomainDtoList(entities) {
|
|
68
69
|
return entities.map(entity => this.toDomainDto(entity));
|
|
@@ -75,7 +76,7 @@ let DataMartMapper = class DataMartMapper {
|
|
|
75
76
|
}
|
|
76
77
|
async toResponse(dto) {
|
|
77
78
|
const maskedDefinition = dto.definitionType === data_mart_definition_type_enum_1.DataMartDefinitionType.CONNECTOR
|
|
78
|
-
? await this.connectorSecretService.mask(dto.definition)
|
|
79
|
+
? await this.connectorSecretService.mask(dto.projectId, dto.definition)
|
|
79
80
|
: dto.definition;
|
|
80
81
|
return {
|
|
81
82
|
id: dto.id,
|
|
@@ -85,8 +86,9 @@ let DataMartMapper = class DataMartMapper {
|
|
|
85
86
|
definitionType: dto.definitionType,
|
|
86
87
|
definition: maskedDefinition,
|
|
87
88
|
description: dto.description,
|
|
89
|
+
icon: dto.icon,
|
|
88
90
|
schema: dto.schema,
|
|
89
|
-
connectorState: dto.connectorState,
|
|
91
|
+
connectorState: omitConnectorOwnedState(dto.connectorState),
|
|
90
92
|
triggersCount: dto.triggersCount,
|
|
91
93
|
reportsCount: dto.reportsCount,
|
|
92
94
|
blendedFieldsConfig: dto.blendedFieldsConfig,
|
|
@@ -142,13 +144,16 @@ let DataMartMapper = class DataMartMapper {
|
|
|
142
144
|
async toResponseList(dtos) {
|
|
143
145
|
return Promise.all(dtos.map(dto => this.toResponse(dto)));
|
|
144
146
|
}
|
|
145
|
-
async toBatchHealthStatusResponse(dto) {
|
|
147
|
+
async toBatchHealthStatusResponse(dto, projectId) {
|
|
148
|
+
const cache = new Map();
|
|
146
149
|
const itemsPromises = dto.items.map(async (item) => {
|
|
147
150
|
const mappedItem = {
|
|
148
151
|
dataMartId: item.dataMartId,
|
|
149
|
-
connector: item.connector
|
|
150
|
-
|
|
151
|
-
|
|
152
|
+
connector: item.connector
|
|
153
|
+
? await this.toRunResponse(item.connector, projectId, cache)
|
|
154
|
+
: null,
|
|
155
|
+
report: item.report ? await this.toRunResponse(item.report, projectId, cache) : null,
|
|
156
|
+
insight: item.insight ? await this.toRunResponse(item.insight, projectId, cache) : null,
|
|
152
157
|
};
|
|
153
158
|
return mappedItem;
|
|
154
159
|
});
|
|
@@ -172,7 +177,7 @@ let DataMartMapper = class DataMartMapper {
|
|
|
172
177
|
return new list_data_marts_command_1.ListDataMartsCommand(context.projectId, context.userId, context.roles ?? [], offset, ownerFilter);
|
|
173
178
|
}
|
|
174
179
|
toListItemDto(entity, counters, createdByUser, businessOwnerUsers = [], technicalOwnerUsers = []) {
|
|
175
|
-
return new data_mart_list_item_dto_1.DataMartListItemDto(entity.id, entity.title, entity.status, entity.storage.type, entity.storage.title || (0, data_storage_type_enum_1.toHumanReadable)(entity.storage.type), entity.createdAt, entity.modifiedAt, entity.description ?? null, entity.definitionType, entity.definition, counters.triggersCount, counters.reportsCount, createdByUser ?? null, businessOwnerUsers, technicalOwnerUsers, (0, extract_context_summaries_1.extractContextSummaries)(entity.contexts), entity.availableForReporting, entity.availableForMaintenance, (0, source_data_last_updated_schema_1.toSourceDataLastUpdatedSummary)(entity.dataLastUpdated));
|
|
180
|
+
return new data_mart_list_item_dto_1.DataMartListItemDto(entity.id, entity.title, entity.status, entity.storage.type, entity.storage.title || (0, data_storage_type_enum_1.toHumanReadable)(entity.storage.type), entity.createdAt, entity.modifiedAt, entity.description ?? null, entity.definitionType, entity.definition, counters.triggersCount, counters.reportsCount, createdByUser ?? null, businessOwnerUsers, technicalOwnerUsers, (0, extract_context_summaries_1.extractContextSummaries)(entity.contexts), entity.availableForReporting, entity.availableForMaintenance, (0, source_data_last_updated_schema_1.toSourceDataLastUpdatedSummary)(entity.dataLastUpdated), entity.icon ?? null);
|
|
176
181
|
}
|
|
177
182
|
toListItemResponse(dto) {
|
|
178
183
|
return {
|
|
@@ -181,6 +186,7 @@ let DataMartMapper = class DataMartMapper {
|
|
|
181
186
|
status: dto.status,
|
|
182
187
|
storage: { type: dto.storageType, title: dto.storageTitle },
|
|
183
188
|
description: dto.description,
|
|
189
|
+
icon: dto.icon,
|
|
184
190
|
definitionType: dto.definitionType,
|
|
185
191
|
connectorSourceName: dto.definitionType === data_mart_definition_type_enum_1.DataMartDefinitionType.CONNECTOR && dto.definition
|
|
186
192
|
? dto.definition.connector.source.name
|
|
@@ -209,6 +215,9 @@ let DataMartMapper = class DataMartMapper {
|
|
|
209
215
|
toUpdateTitleCommand(id, context, dto) {
|
|
210
216
|
return new update_data_mart_title_command_1.UpdateDataMartTitleCommand(id, context.projectId, dto.title, context.userId, context.roles ?? []);
|
|
211
217
|
}
|
|
218
|
+
toUpdateIconCommand(id, context, dto) {
|
|
219
|
+
return new update_data_mart_icon_command_1.UpdateDataMartIconCommand(id, context.projectId, dto.icon ?? null, context.userId, context.roles ?? []);
|
|
220
|
+
}
|
|
212
221
|
toUpdateDescriptionCommand(id, context, dto) {
|
|
213
222
|
return new update_data_mart_description_command_1.UpdateDataMartDescriptionCommand(id, context.projectId, dto.description, context.userId, context.roles ?? []);
|
|
214
223
|
}
|
|
@@ -288,9 +297,10 @@ let DataMartMapper = class DataMartMapper {
|
|
|
288
297
|
return this.toDataMartRunDto(entity, projection);
|
|
289
298
|
});
|
|
290
299
|
}
|
|
291
|
-
async toRunsResponse(runs) {
|
|
300
|
+
async toRunsResponse(runs, projectId) {
|
|
301
|
+
const secretFieldsCache = new Map();
|
|
292
302
|
const maskedRuns = await Promise.all(runs.map(async (run) => {
|
|
293
|
-
const maskedDefinitionRun = await this.maskDefinitionRun(run.definitionRun);
|
|
303
|
+
const maskedDefinitionRun = await this.maskDefinitionRun(run.definitionRun, projectId, secretFieldsCache);
|
|
294
304
|
return {
|
|
295
305
|
id: run.id,
|
|
296
306
|
status: run.status,
|
|
@@ -318,9 +328,10 @@ let DataMartMapper = class DataMartMapper {
|
|
|
318
328
|
}));
|
|
319
329
|
return { runs: maskedRuns };
|
|
320
330
|
}
|
|
321
|
-
async toProjectRunsResponse(runs) {
|
|
331
|
+
async toProjectRunsResponse(runs, projectId) {
|
|
332
|
+
const secretFieldsCache = new Map();
|
|
322
333
|
const maskedRuns = await Promise.all(runs.map(async (item) => {
|
|
323
|
-
const maskedDefinitionRun = await this.maskDefinitionRun(item.run.definitionRun);
|
|
334
|
+
const maskedDefinitionRun = await this.maskDefinitionRun(item.run.definitionRun, projectId, secretFieldsCache);
|
|
324
335
|
return {
|
|
325
336
|
id: item.run.id,
|
|
326
337
|
status: item.run.status,
|
|
@@ -355,8 +366,8 @@ let DataMartMapper = class DataMartMapper {
|
|
|
355
366
|
toGetDataMartRunCommand(dataMartId, runId, context) {
|
|
356
367
|
return new get_data_mart_run_command_1.GetDataMartRunCommand(dataMartId, context.projectId, runId, context.userId, context.roles ?? []);
|
|
357
368
|
}
|
|
358
|
-
async toRunResponse(run) {
|
|
359
|
-
const maskedDefinitionRun = await this.maskDefinitionRun(run.definitionRun);
|
|
369
|
+
async toRunResponse(run, projectId, secretFieldsCache = new Map()) {
|
|
370
|
+
const maskedDefinitionRun = await this.maskDefinitionRun(run.definitionRun, projectId, secretFieldsCache);
|
|
360
371
|
return {
|
|
361
372
|
id: run.id,
|
|
362
373
|
status: run.status,
|
|
@@ -382,18 +393,18 @@ let DataMartMapper = class DataMartMapper {
|
|
|
382
393
|
qualitySummary: run.qualitySummary,
|
|
383
394
|
};
|
|
384
395
|
}
|
|
385
|
-
async toRunDetailResponse(run) {
|
|
396
|
+
async toRunDetailResponse(run, projectId) {
|
|
386
397
|
return {
|
|
387
|
-
...(await this.toRunResponse(run)),
|
|
398
|
+
...(await this.toRunResponse(run, projectId)),
|
|
388
399
|
dataQuality: run.dataQuality,
|
|
389
400
|
};
|
|
390
401
|
}
|
|
391
402
|
toUpdateOwnersCommand(id, context, dto) {
|
|
392
403
|
return new update_data_mart_owners_command_1.UpdateDataMartOwnersCommand(id, context.projectId, dto.businessOwnerIds, dto.technicalOwnerIds, context.userId, context.roles ?? []);
|
|
393
404
|
}
|
|
394
|
-
async maskDefinitionRun(definitionRun) {
|
|
405
|
+
async maskDefinitionRun(definitionRun, projectId, secretFieldsCache) {
|
|
395
406
|
if (definitionRun && (0, data_mart_definition_guards_1.isConnectorDefinition)(definitionRun)) {
|
|
396
|
-
return this.connectorSecretService.mask(definitionRun);
|
|
407
|
+
return this.connectorSecretService.mask(projectId, definitionRun, secretFieldsCache);
|
|
397
408
|
}
|
|
398
409
|
return undefined;
|
|
399
410
|
}
|
|
@@ -426,4 +437,18 @@ exports.DataMartMapper = DataMartMapper = __decorate([
|
|
|
426
437
|
__metadata("design:paramtypes", [data_storage_mapper_1.DataStorageMapper,
|
|
427
438
|
connector_secret_service_1.ConnectorSecretService])
|
|
428
439
|
], DataMartMapper);
|
|
440
|
+
const CONNECTOR_OWNED_STATE_KEYS = ['shortLinks'];
|
|
441
|
+
function omitConnectorOwnedState(connectorState) {
|
|
442
|
+
if (!connectorState) {
|
|
443
|
+
return connectorState;
|
|
444
|
+
}
|
|
445
|
+
const strip = (state) => Object.fromEntries(Object.entries(state).filter(([key]) => !CONNECTOR_OWNED_STATE_KEYS.includes(key)));
|
|
446
|
+
return {
|
|
447
|
+
...connectorState,
|
|
448
|
+
...(connectorState.state ? { state: strip(connectorState.state) } : {}),
|
|
449
|
+
...(connectorState.states
|
|
450
|
+
? { states: connectorState.states.map(item => ({ ...item, state: strip(item.state) })) }
|
|
451
|
+
: {}),
|
|
452
|
+
};
|
|
453
|
+
}
|
|
429
454
|
//# sourceMappingURL=data-mart.mapper.js.map
|
|
@@ -25,7 +25,7 @@ export declare class InsightTemplateMapper {
|
|
|
25
25
|
toCreateDomainCommand(dataMartId: string, context: AuthorizationContext, dto: CreateInsightTemplateRequestApiDto): CreateInsightTemplateCommand;
|
|
26
26
|
toDomainDto(entity: InsightTemplate, lastManualDataMartRun?: DataMartRun | null, createdByUser?: UserProjectionDto | null): InsightTemplateDto;
|
|
27
27
|
toDomainDtoList(entities: InsightTemplate[], userProjectionsList?: UserProjectionsListDto): InsightTemplateDto[];
|
|
28
|
-
toResponse(dto: InsightTemplateDto): Promise<InsightTemplateResponseApiDto>;
|
|
28
|
+
toResponse(dto: InsightTemplateDto, projectId: string): Promise<InsightTemplateResponseApiDto>;
|
|
29
29
|
toListItemResponse(dto: InsightTemplateDto): InsightTemplateListItemResponseApiDto;
|
|
30
30
|
toListItemResponseList(dtos: InsightTemplateDto[]): InsightTemplateListItemResponseApiDto[];
|
|
31
31
|
toProjectResponseList(dtos: ProjectInsightTemplateDto[]): ProjectInsightTemplatesResponseApiDto;
|
|
@@ -38,7 +38,7 @@ let InsightTemplateMapper = class InsightTemplateMapper {
|
|
|
38
38
|
toDomainDtoList(entities, userProjectionsList) {
|
|
39
39
|
return entities.map(entity => this.toDomainDto(entity, null, entity.createdById ? (userProjectionsList?.getByUserId(entity.createdById) ?? null) : null));
|
|
40
40
|
}
|
|
41
|
-
async toResponse(dto) {
|
|
41
|
+
async toResponse(dto, projectId) {
|
|
42
42
|
return {
|
|
43
43
|
id: dto.id,
|
|
44
44
|
title: dto.title,
|
|
@@ -50,7 +50,7 @@ let InsightTemplateMapper = class InsightTemplateMapper {
|
|
|
50
50
|
createdAt: dto.createdAt,
|
|
51
51
|
modifiedAt: dto.modifiedAt,
|
|
52
52
|
lastManualDataMartRun: dto.lastManualDataMartRun
|
|
53
|
-
? await this.dataMartMapper.toRunResponse(dto.lastManualDataMartRun)
|
|
53
|
+
? await this.dataMartMapper.toRunResponse(dto.lastManualDataMartRun, projectId)
|
|
54
54
|
: null,
|
|
55
55
|
createdByUser: dto.createdByUser,
|
|
56
56
|
};
|
|
@@ -22,7 +22,7 @@ export declare class InsightMapper {
|
|
|
22
22
|
toCreateWithAiDomainCommand(dataMartId: string, context: AuthorizationContext): CreateInsightWithAiCommand;
|
|
23
23
|
toDomainDto(entity: Insight, lastManualDataMartRun?: DataMartRun | null): InsightDto;
|
|
24
24
|
toDomainDtoList(entities: Insight[]): InsightDto[];
|
|
25
|
-
toResponse(dto: InsightDto): Promise<InsightResponseApiDto>;
|
|
25
|
+
toResponse(dto: InsightDto, projectId: string): Promise<InsightResponseApiDto>;
|
|
26
26
|
toListItemResponse(dto: InsightDto): InsightListItemResponseApiDto;
|
|
27
27
|
toListItemResponseList(dtos: InsightDto[]): InsightListItemResponseApiDto[];
|
|
28
28
|
toGetCommand(insightId: string, dataMartId: string, context: AuthorizationContext): GetInsightCommand;
|
|
@@ -40,7 +40,7 @@ let InsightMapper = class InsightMapper {
|
|
|
40
40
|
toDomainDtoList(entities) {
|
|
41
41
|
return entities.map(entity => this.toDomainDto(entity, null));
|
|
42
42
|
}
|
|
43
|
-
async toResponse(dto) {
|
|
43
|
+
async toResponse(dto, projectId) {
|
|
44
44
|
return {
|
|
45
45
|
id: dto.id,
|
|
46
46
|
title: dto.title,
|
|
@@ -51,7 +51,7 @@ let InsightMapper = class InsightMapper {
|
|
|
51
51
|
createdAt: dto.createdAt,
|
|
52
52
|
modifiedAt: dto.modifiedAt,
|
|
53
53
|
lastManualDataMartRun: dto.lastManualDataMartRun
|
|
54
|
-
? await this.dataMartMapper.toRunResponse(dto.lastManualDataMartRun)
|
|
54
|
+
? await this.dataMartMapper.toRunResponse(dto.lastManualDataMartRun, projectId)
|
|
55
55
|
: null,
|
|
56
56
|
};
|
|
57
57
|
}
|
|
@@ -5,10 +5,18 @@ import { ModelCanvasDataMartsDto, ModelCanvasNodeDto } from '../dto/domain/model
|
|
|
5
5
|
import { GetModelCanvasDataMartsQueryApiDto } from '../dto/presentation/get-model-canvas-data-marts-query-api.dto';
|
|
6
6
|
import { ModelCanvasDataMartsResponseApiDto } from '../dto/presentation/model-canvas-response-api.dto';
|
|
7
7
|
import { DataMart } from '../entities/data-mart.entity';
|
|
8
|
+
export interface ModelCanvasNodeCounts {
|
|
9
|
+
triggersCount: number;
|
|
10
|
+
reportsCount: number;
|
|
11
|
+
}
|
|
12
|
+
export interface ModelCanvasCountMaps {
|
|
13
|
+
triggerCounts?: ReadonlyMap<string, number>;
|
|
14
|
+
reportCounts?: ReadonlyMap<string, number>;
|
|
15
|
+
}
|
|
8
16
|
export declare class ModelCanvasMapper {
|
|
9
17
|
toDataMartsCommand(context: AuthorizationContext, query: GetModelCanvasDataMartsQueryApiDto): GetModelCanvasDataMartsCommand;
|
|
10
18
|
toEdgesCommand(context: AuthorizationContext, storageId: string): GetModelCanvasEdgesCommand;
|
|
11
|
-
toNodeDto(dataMart: DataMart): ModelCanvasNodeDto;
|
|
12
|
-
toDataMartsDto(dataMarts: DataMart[], total: number, offset: number): ModelCanvasDataMartsDto;
|
|
19
|
+
toNodeDto(dataMart: DataMart, counts?: Partial<ModelCanvasNodeCounts>): ModelCanvasNodeDto;
|
|
20
|
+
toDataMartsDto(dataMarts: DataMart[], total: number, offset: number, { triggerCounts, reportCounts }?: ModelCanvasCountMaps): ModelCanvasDataMartsDto;
|
|
13
21
|
toDataMartsResponse(dto: ModelCanvasDataMartsDto): ModelCanvasDataMartsResponseApiDto;
|
|
14
22
|
}
|
|
@@ -18,19 +18,25 @@ let ModelCanvasMapper = class ModelCanvasMapper {
|
|
|
18
18
|
toEdgesCommand(context, storageId) {
|
|
19
19
|
return new get_model_canvas_edges_command_1.GetModelCanvasEdgesCommand(context.projectId, context.userId, context.roles ?? [], storageId);
|
|
20
20
|
}
|
|
21
|
-
toNodeDto(dataMart) {
|
|
21
|
+
toNodeDto(dataMart, counts = {}) {
|
|
22
22
|
return {
|
|
23
23
|
id: dataMart.id,
|
|
24
24
|
title: dataMart.title,
|
|
25
25
|
status: dataMart.status,
|
|
26
26
|
description: dataMart.description ?? null,
|
|
27
|
+
icon: dataMart.icon ?? null,
|
|
27
28
|
fieldCount: dataMart.schema?.fields?.length ?? 0,
|
|
29
|
+
triggersCount: counts.triggersCount ?? 0,
|
|
30
|
+
reportsCount: counts.reportsCount ?? 0,
|
|
28
31
|
dataLastUpdated: (0, source_data_last_updated_schema_1.toSourceDataLastUpdatedSummary)(dataMart.dataLastUpdated),
|
|
29
32
|
};
|
|
30
33
|
}
|
|
31
|
-
toDataMartsDto(dataMarts, total, offset) {
|
|
34
|
+
toDataMartsDto(dataMarts, total, offset, { triggerCounts = new Map(), reportCounts = new Map() } = {}) {
|
|
32
35
|
return {
|
|
33
|
-
items: dataMarts.map(dataMart => this.toNodeDto(dataMart
|
|
36
|
+
items: dataMarts.map(dataMart => this.toNodeDto(dataMart, {
|
|
37
|
+
triggersCount: triggerCounts.get(dataMart.id) ?? 0,
|
|
38
|
+
reportsCount: reportCounts.get(dataMart.id) ?? 0,
|
|
39
|
+
})),
|
|
34
40
|
total,
|
|
35
41
|
offset,
|
|
36
42
|
};
|
|
@@ -51,14 +51,14 @@ let ReportMapper = class ReportMapper {
|
|
|
51
51
|
return result.data;
|
|
52
52
|
}
|
|
53
53
|
toCreateDomainCommand(context, dto) {
|
|
54
|
-
return new create_report_command_1.CreateReportCommand(context.projectId, context.userId, dto.title, dto.dataMartId, dto.dataDestinationId, dto.destinationConfig, dto.ownerIds, context.roles ?? [], this.parseConfig(report_column_config_schema_1.ReportColumnConfigSchema, dto.columnConfig, 'columnConfig'), this.parseConfig(filter_config_schema_1.FilterConfigSchema, dto.filterConfig, 'filterConfig') ?? null, this.parseConfig(sort_config_schema_1.SortConfigSchema, dto.sortConfig, 'sortConfig') ?? null, dto.limitConfig ?? null, this.parseConfig(aggregation_config_schema_1.AggregationConfigSchema, dto.aggregationConfig, 'aggregationConfig') ?? null, this.parseConfig(date_trunc_config_schema_1.DateTruncConfigSchema, dto.dateTruncConfig, 'dateTruncConfig') ?? null, dto.uniqueCountConfig ?? null);
|
|
54
|
+
return new create_report_command_1.CreateReportCommand(context.projectId, context.userId, dto.title, dto.dataMartId, dto.dataDestinationId, dto.destinationConfig, dto.ownerIds, context.roles ?? [], this.parseConfig(report_column_config_schema_1.ReportColumnConfigSchema, dto.columnConfig, 'columnConfig'), this.parseConfig(filter_config_schema_1.FilterConfigSchema, dto.filterConfig, 'filterConfig') ?? null, this.parseConfig(sort_config_schema_1.SortConfigSchema, dto.sortConfig, 'sortConfig') ?? null, dto.limitConfig ?? null, this.parseConfig(aggregation_config_schema_1.AggregationConfigSchema, dto.aggregationConfig, 'aggregationConfig') ?? null, this.parseConfig(date_trunc_config_schema_1.DateTruncConfigSchema, dto.dateTruncConfig, 'dateTruncConfig') ?? null, dto.uniqueCountConfig ?? null, dto.autoAggregationOptOut);
|
|
55
55
|
}
|
|
56
56
|
toDomainDto(entity, createdByUser = null, ownerUsers = [], capabilities = {
|
|
57
57
|
canRun: false,
|
|
58
58
|
canManageTriggers: false,
|
|
59
59
|
canEditConfig: false,
|
|
60
60
|
}) {
|
|
61
|
-
return new report_dto_1.ReportDto(entity.id, entity.title, this.dataMartMapper.toDomainDto(entity.dataMart), this.dataDestinationMapper.toDomainDto(entity.dataDestination), entity.destinationConfig, entity.createdAt, entity.modifiedAt, entity.lastRunAt, entity.lastRunError, entity.lastRunStatus, entity.runsCount, createdByUser, ownerUsers, entity.columnConfig, entity.filterConfig ?? null, entity.sortConfig ?? null, entity.limitConfig ?? null, capabilities.canRun, capabilities.canManageTriggers, capabilities.canEditConfig, entity.aggregationConfig ?? null, entity.dateTruncConfig ?? null, entity.uniqueCountConfig ?? null);
|
|
61
|
+
return new report_dto_1.ReportDto(entity.id, entity.title, this.dataMartMapper.toDomainDto(entity.dataMart), this.dataDestinationMapper.toDomainDto(entity.dataDestination), entity.destinationConfig, entity.createdAt, entity.modifiedAt, entity.lastRunAt, entity.lastRunError, entity.lastRunStatus, entity.runsCount, createdByUser, ownerUsers, entity.columnConfig, entity.filterConfig ?? null, entity.sortConfig ?? null, entity.limitConfig ?? null, capabilities.canRun, capabilities.canManageTriggers, capabilities.canEditConfig, entity.aggregationConfig ?? null, entity.dateTruncConfig ?? null, entity.uniqueCountConfig ?? null, entity.autoAggregationOptOut ?? null);
|
|
62
62
|
}
|
|
63
63
|
async toResponse(dto) {
|
|
64
64
|
return {
|
|
@@ -74,6 +74,7 @@ let ReportMapper = class ReportMapper {
|
|
|
74
74
|
aggregationConfig: dto.aggregationConfig ?? null,
|
|
75
75
|
dateTruncConfig: dto.dateTruncConfig ?? null,
|
|
76
76
|
uniqueCountConfig: dto.uniqueCountConfig ?? null,
|
|
77
|
+
autoAggregationOptOut: dto.autoAggregationOptOut ?? null,
|
|
77
78
|
lastRunAt: dto.lastRunAt,
|
|
78
79
|
lastRunStatus: dto.lastRunStatus,
|
|
79
80
|
lastRunError: dto.lastRunError,
|
|
@@ -118,7 +119,7 @@ let ReportMapper = class ReportMapper {
|
|
|
118
119
|
};
|
|
119
120
|
}
|
|
120
121
|
toUpdateDomainCommand(id, context, dto) {
|
|
121
|
-
return new update_report_command_1.UpdateReportCommand(id, context.projectId, context.userId, context.roles ?? [], dto.title, dto.dataDestinationId, dto.destinationConfig, dto.ownerIds, this.parseConfig(report_column_config_schema_1.ReportColumnConfigSchema, dto.columnConfig, 'columnConfig'), this.parseConfig(filter_config_schema_1.FilterConfigSchema, dto.filterConfig, 'filterConfig') ?? null, this.parseConfig(sort_config_schema_1.SortConfigSchema, dto.sortConfig, 'sortConfig') ?? null, dto.limitConfig ?? null, this.parseConfig(aggregation_config_schema_1.AggregationConfigSchema, dto.aggregationConfig, 'aggregationConfig') ?? null, this.parseConfig(date_trunc_config_schema_1.DateTruncConfigSchema, dto.dateTruncConfig, 'dateTruncConfig') ?? null, dto.uniqueCountConfig ?? null);
|
|
122
|
+
return new update_report_command_1.UpdateReportCommand(id, context.projectId, context.userId, context.roles ?? [], dto.title, dto.dataDestinationId, dto.destinationConfig, dto.ownerIds, this.parseConfig(report_column_config_schema_1.ReportColumnConfigSchema, dto.columnConfig, 'columnConfig'), this.parseConfig(filter_config_schema_1.FilterConfigSchema, dto.filterConfig, 'filterConfig') ?? null, this.parseConfig(sort_config_schema_1.SortConfigSchema, dto.sortConfig, 'sortConfig') ?? null, dto.limitConfig ?? null, this.parseConfig(aggregation_config_schema_1.AggregationConfigSchema, dto.aggregationConfig, 'aggregationConfig') ?? null, this.parseConfig(date_trunc_config_schema_1.DateTruncConfigSchema, dto.dateTruncConfig, 'dateTruncConfig') ?? null, dto.uniqueCountConfig ?? null, dto.autoAggregationOptOut);
|
|
122
123
|
}
|
|
123
124
|
toCopyAsDataMartCommand(reportId, context) {
|
|
124
125
|
return new copy_report_as_data_mart_command_1.CopyReportAsDataMartCommand(reportId, context.userId, context.projectId, context.roles ?? []);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AggregationRule } from '../dto/schemas/aggregation-config.schema';
|
|
2
2
|
import type { ReportLike } from '../dto/domain/report-like-read-plan';
|
|
3
|
-
export type AutoCollapseSkipReason = 'analyst-aggregated' | 'no-explicit-projection' | 'non-groupable-column' | 'unresolvable-column' | 'no-allowed-aggregation' | 'calculated-not-liftable' | 'sort-outside-projection';
|
|
3
|
+
export type AutoCollapseSkipReason = 'analyst-aggregated' | 'analyst-opted-out' | 'no-explicit-projection' | 'non-groupable-column' | 'unresolvable-column' | 'no-allowed-aggregation' | 'calculated-not-liftable' | 'sort-outside-projection';
|
|
4
4
|
export interface LiftedCalculatedFormula {
|
|
5
5
|
column: string;
|
|
6
6
|
formula: string;
|