@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.
Files changed (283) hide show
  1. package/dist/src/common/exceptions/concurrency-limit-exceeded.exception.d.ts +1 -1
  2. package/dist/src/common/exceptions/concurrency-limit-exceeded.exception.js +2 -2
  3. package/dist/src/common/markdown/markdown-parser.service.d.ts +2 -0
  4. package/dist/src/common/markdown/markdown-parser.service.js +15 -8
  5. package/dist/src/common/validators/max-byte-length.validator.d.ts +2 -0
  6. package/dist/src/common/validators/max-byte-length.validator.js +29 -0
  7. package/dist/src/config/env-validation.config.d.ts +12 -0
  8. package/dist/src/config/env-validation.config.js +7 -0
  9. package/dist/src/data-marts/ai-insights/agent/types.d.ts +6 -6
  10. package/dist/src/data-marts/calculated-fields/calculated-field-validator.service.js +22 -30
  11. package/dist/src/data-marts/calculated-fields/calculated-field.utils.d.ts +1 -0
  12. package/dist/src/data-marts/calculated-fields/calculated-field.utils.js +21 -0
  13. package/dist/src/data-marts/calculated-fields/formula-analyzer.d.ts +1 -0
  14. package/dist/src/data-marts/calculated-fields/formula-analyzer.js +2 -0
  15. package/dist/src/data-marts/calculated-fields/formula-violations.d.ts +7 -0
  16. package/dist/src/data-marts/calculated-fields/formula-violations.js +82 -1
  17. package/dist/src/data-marts/calculated-fields/join-grain.d.ts +32 -0
  18. package/dist/src/data-marts/calculated-fields/join-grain.js +107 -0
  19. package/dist/src/data-marts/calculated-fields/set-quantifier.d.ts +8 -0
  20. package/dist/src/data-marts/calculated-fields/set-quantifier.js +12 -0
  21. package/dist/src/data-marts/connector-types/connector-message/schemas/connector-message.schema.d.ts +66 -0
  22. package/dist/src/data-marts/connector-types/connector-message/schemas/connector-message.schema.js +13 -1
  23. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-credentials-update.schema.d.ts +3 -0
  24. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-credentials-update.schema.js +1 -0
  25. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-error.schema.d.ts +3 -0
  26. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-error.schema.js +1 -0
  27. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-log.schema.d.ts +12 -0
  28. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-log.schema.js +4 -0
  29. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-requested-date.schema.d.ts +3 -0
  30. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-requested-date.schema.js +1 -0
  31. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-state-update.schema.d.ts +16 -0
  32. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-state-update.schema.js +16 -0
  33. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-status.schema.d.ts +3 -0
  34. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-status.schema.js +1 -0
  35. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-warning.schema.d.ts +3 -0
  36. package/dist/src/data-marts/connector-types/connector-message/schemas/types/message-warning.schema.js +1 -0
  37. package/dist/src/data-marts/connector-types/connector-message/services/connector-event.translator.d.ts +10 -0
  38. package/dist/src/data-marts/connector-types/connector-message/services/connector-event.translator.js +138 -0
  39. package/dist/src/data-marts/connector-types/connector-message/services/connector-message-parser.service.d.ts +1 -3
  40. package/dist/src/data-marts/connector-types/connector-message/services/connector-message-parser.service.js +30 -34
  41. package/dist/src/data-marts/connector-types/connector-message/services/connector-output-capture.service.js +10 -12
  42. package/dist/src/data-marts/connector-types/connector-message/services/connector-state.service.js +3 -1
  43. package/dist/src/data-marts/connector-types/enums/connector-message-type-enum.d.ts +1 -0
  44. package/dist/src/data-marts/connector-types/enums/connector-message-type-enum.js +1 -0
  45. package/dist/src/data-marts/controllers/connector-definition.controller.d.ts +30 -0
  46. package/dist/src/data-marts/controllers/connector-definition.controller.js +252 -0
  47. package/dist/src/data-marts/controllers/data-mart-preview.controller.d.ts +10 -0
  48. package/dist/src/data-marts/controllers/data-mart-preview.controller.js +58 -0
  49. package/dist/src/data-marts/controllers/data-mart.controller.d.ts +5 -1
  50. package/dist/src/data-marts/controllers/data-mart.controller.js +25 -4
  51. package/dist/src/data-marts/controllers/insight-template.controller.js +4 -4
  52. package/dist/src/data-marts/controllers/insight.controller.js +5 -5
  53. package/dist/src/data-marts/controllers/project-data-mart-runs.controller.js +1 -1
  54. package/dist/src/data-marts/controllers/spec/connector-definition.api.d.ts +12 -0
  55. package/dist/src/data-marts/controllers/spec/connector-definition.api.js +179 -0
  56. package/dist/src/data-marts/controllers/spec/data-mart.api.d.ts +1 -0
  57. package/dist/src/data-marts/controllers/spec/data-mart.api.js +5 -0
  58. package/dist/src/data-marts/controllers/spec/report-openapi.d.ts +18 -0
  59. package/dist/src/data-marts/controllers/spec/report-openapi.js +3 -0
  60. package/dist/src/data-marts/data-marts.module.js +20 -2
  61. package/dist/src/data-marts/data-storage-types/blending/metric-sleeve.planner.js +3 -12
  62. package/dist/src/data-marts/data-storage-types/data-mart-schema.utils.d.ts +1 -0
  63. package/dist/src/data-marts/data-storage-types/data-mart-schema.utils.js +16 -0
  64. package/dist/src/data-marts/dto/domain/blendable-schema.dto.d.ts +10 -0
  65. package/dist/src/data-marts/dto/domain/blendable-schema.dto.js +71 -1
  66. package/dist/src/data-marts/dto/domain/create-data-mart.command.d.ts +3 -1
  67. package/dist/src/data-marts/dto/domain/create-data-mart.command.js +3 -1
  68. package/dist/src/data-marts/dto/domain/create-report.command.d.ts +3 -1
  69. package/dist/src/data-marts/dto/domain/create-report.command.js +3 -1
  70. package/dist/src/data-marts/dto/domain/data-mart-list-item.dto.d.ts +3 -1
  71. package/dist/src/data-marts/dto/domain/data-mart-list-item.dto.js +3 -1
  72. package/dist/src/data-marts/dto/domain/data-mart.dto.d.ts +4 -1
  73. package/dist/src/data-marts/dto/domain/data-mart.dto.js +5 -1
  74. package/dist/src/data-marts/dto/domain/model-canvas.dto.d.ts +4 -0
  75. package/dist/src/data-marts/dto/domain/report-like-read-plan.d.ts +2 -0
  76. package/dist/src/data-marts/dto/domain/report.dto.d.ts +3 -1
  77. package/dist/src/data-marts/dto/domain/report.dto.js +3 -1
  78. package/dist/src/data-marts/dto/domain/update-data-mart-icon.command.d.ts +9 -0
  79. package/dist/src/data-marts/dto/domain/update-data-mart-icon.command.js +19 -0
  80. package/dist/src/data-marts/dto/domain/update-report.command.d.ts +3 -1
  81. package/dist/src/data-marts/dto/domain/update-report.command.js +3 -1
  82. package/dist/src/data-marts/dto/presentation/create-data-mart-request-api.dto.d.ts +2 -0
  83. package/dist/src/data-marts/dto/presentation/create-data-mart-request-api.dto.js +13 -0
  84. package/dist/src/data-marts/dto/presentation/create-report-request-api.dto.d.ts +2 -0
  85. package/dist/src/data-marts/dto/presentation/create-report-request-api.dto.js +10 -0
  86. package/dist/src/data-marts/dto/presentation/custom-connector-response.dto.d.ts +46 -0
  87. package/dist/src/data-marts/dto/presentation/custom-connector-response.dto.js +216 -0
  88. package/dist/src/data-marts/dto/presentation/custom-connector.dto.d.ts +27 -0
  89. package/dist/src/data-marts/dto/presentation/custom-connector.dto.js +159 -0
  90. package/dist/src/data-marts/dto/presentation/data-mart-list-item-response-api.dto.d.ts +2 -0
  91. package/dist/src/data-marts/dto/presentation/data-mart-list-item-response-api.dto.js +10 -0
  92. package/dist/src/data-marts/dto/presentation/data-mart-response-api.dto.d.ts +2 -0
  93. package/dist/src/data-marts/dto/presentation/data-mart-response-api.dto.js +10 -0
  94. package/dist/src/data-marts/dto/presentation/model-canvas-response-api.dto.d.ts +4 -0
  95. package/dist/src/data-marts/dto/presentation/model-canvas-response-api.dto.js +20 -0
  96. package/dist/src/data-marts/dto/presentation/preview-data-mart-request-api.dto.d.ts +7 -0
  97. package/dist/src/data-marts/dto/presentation/preview-data-mart-request-api.dto.js +56 -0
  98. package/dist/src/data-marts/dto/presentation/preview-data-mart-response-api.dto.d.ts +12 -0
  99. package/dist/src/data-marts/dto/presentation/preview-data-mart-response-api.dto.js +64 -0
  100. package/dist/src/data-marts/dto/presentation/report-response-api.dto.d.ts +2 -0
  101. package/dist/src/data-marts/dto/presentation/report-response-api.dto.js +6 -0
  102. package/dist/src/data-marts/dto/presentation/run-data-mart-request-api.dto.js +67 -0
  103. package/dist/src/data-marts/dto/presentation/update-data-mart-description-api.dto.js +3 -0
  104. package/dist/src/data-marts/dto/presentation/update-data-mart-icon-api.dto.d.ts +4 -0
  105. package/dist/src/data-marts/dto/presentation/update-data-mart-icon-api.dto.js +30 -0
  106. package/dist/src/data-marts/dto/presentation/update-report-request-api.dto.d.ts +2 -0
  107. package/dist/src/data-marts/dto/presentation/update-report-request-api.dto.js +10 -0
  108. package/dist/src/data-marts/dto/schemas/auto-aggregation-opt-out.schema.d.ts +15 -0
  109. package/dist/src/data-marts/dto/schemas/auto-aggregation-opt-out.schema.js +29 -0
  110. package/dist/src/data-marts/dto/schemas/data-mart-run/data-mart-run.schema.d.ts +9 -0
  111. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/connector-definition.schema.d.ts +15 -0
  112. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/connector-definition.schema.js +1 -0
  113. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/data-mart-definition.schema.d.ts +7 -0
  114. package/dist/src/data-marts/dto/schemas/data-quality/data-quality-run.schema.d.ts +20 -0
  115. package/dist/src/data-marts/entities/connector-definition-version.entity.d.ts +16 -0
  116. package/dist/src/data-marts/entities/connector-definition-version.entity.js +78 -0
  117. package/dist/src/data-marts/entities/connector-definition.entity.d.ts +14 -0
  118. package/dist/src/data-marts/entities/connector-definition.entity.js +82 -0
  119. package/dist/src/data-marts/entities/data-mart.entity.d.ts +2 -0
  120. package/dist/src/data-marts/entities/data-mart.entity.js +5 -0
  121. package/dist/src/data-marts/entities/report.entity.d.ts +2 -0
  122. package/dist/src/data-marts/entities/report.entity.js +11 -0
  123. package/dist/src/data-marts/enums/data-mart-icon.enum.d.ts +75 -0
  124. package/dist/src/data-marts/enums/data-mart-icon.enum.js +80 -0
  125. package/dist/src/data-marts/errors/connector-credential-boundary.error.d.ts +3 -0
  126. package/dist/src/data-marts/errors/connector-credential-boundary.error.js +14 -0
  127. package/dist/src/data-marts/facades/mcp-data-marts.facade.d.ts +2 -0
  128. package/dist/src/data-marts/facades/mcp-data-marts.facade.impl.d.ts +7 -1
  129. package/dist/src/data-marts/facades/mcp-data-marts.facade.impl.js +70 -5
  130. package/dist/src/data-marts/mappers/connector-definition.mapper.d.ts +14 -0
  131. package/dist/src/data-marts/mappers/connector-definition.mapper.js +57 -0
  132. package/dist/src/data-marts/mappers/data-mart.mapper.d.ts +9 -6
  133. package/dist/src/data-marts/mappers/data-mart.mapper.js +44 -19
  134. package/dist/src/data-marts/mappers/insight-template.mapper.d.ts +1 -1
  135. package/dist/src/data-marts/mappers/insight-template.mapper.js +2 -2
  136. package/dist/src/data-marts/mappers/insight.mapper.d.ts +1 -1
  137. package/dist/src/data-marts/mappers/insight.mapper.js +2 -2
  138. package/dist/src/data-marts/mappers/model-canvas.mapper.d.ts +10 -2
  139. package/dist/src/data-marts/mappers/model-canvas.mapper.js +9 -3
  140. package/dist/src/data-marts/mappers/report.mapper.js +4 -3
  141. package/dist/src/data-marts/services/auto-collapse.resolver.d.ts +1 -1
  142. package/dist/src/data-marts/services/auto-collapse.resolver.js +4 -0
  143. package/dist/src/data-marts/services/blendable-schema.service.d.ts +2 -0
  144. package/dist/src/data-marts/services/blendable-schema.service.js +59 -0
  145. package/dist/src/data-marts/services/connector/connector-credential-injector.service.d.ts +1 -1
  146. package/dist/src/data-marts/services/connector/connector-credential-injector.service.js +15 -1
  147. package/dist/src/data-marts/services/connector/connector-definition.service.d.ts +59 -0
  148. package/dist/src/data-marts/services/connector/connector-definition.service.js +491 -0
  149. package/dist/src/data-marts/services/connector/connector-executor.service.d.ts +9 -1
  150. package/dist/src/data-marts/services/connector/connector-executor.service.js +173 -63
  151. package/dist/src/data-marts/services/connector/connector-fields-preview.service.js +1 -1
  152. package/dist/src/data-marts/services/connector/connector-message.utils.js +2 -2
  153. package/dist/src/data-marts/services/connector/connector-preview-credentials.service.js +1 -1
  154. package/dist/src/data-marts/services/connector/connector-preview-support.d.ts +1 -1
  155. package/dist/src/data-marts/services/connector/connector-preview-support.js +14 -21
  156. package/dist/src/data-marts/services/connector/connector-process-spawner.service.d.ts +11 -2
  157. package/dist/src/data-marts/services/connector/connector-process-spawner.service.js +88 -60
  158. package/dist/src/data-marts/services/connector/connector-secret.service.d.ts +6 -3
  159. package/dist/src/data-marts/services/connector/connector-secret.service.js +77 -12
  160. package/dist/src/data-marts/services/connector/connector-source-config.service.js +1 -1
  161. package/dist/src/data-marts/services/connector/connector-source-credentials.service.d.ts +6 -2
  162. package/dist/src/data-marts/services/connector/connector-source-credentials.service.js +18 -16
  163. package/dist/src/data-marts/services/connector/connector-specification.mapper.d.ts +47 -0
  164. package/dist/src/data-marts/services/connector/connector-specification.mapper.js +46 -0
  165. package/dist/src/data-marts/services/connector/connector-test.service.d.ts +43 -0
  166. package/dist/src/data-marts/services/connector/connector-test.service.js +343 -0
  167. package/dist/src/data-marts/services/connector/connector.service.d.ts +8 -2
  168. package/dist/src/data-marts/services/connector/connector.service.js +65 -54
  169. package/dist/src/data-marts/services/connector/declarative-manifest-schemas.d.ts +4 -0
  170. package/dist/src/data-marts/services/connector/declarative-manifest-schemas.js +48 -0
  171. package/dist/src/data-marts/services/connector/run-log-flusher.d.ts +21 -0
  172. package/dist/src/data-marts/services/connector/run-log-flusher.js +67 -0
  173. package/dist/src/data-marts/services/data-mart.service.js +2 -0
  174. package/dist/src/data-marts/services/report-sql-composer.service.js +15 -1
  175. package/dist/src/data-marts/services/report.service.d.ts +1 -0
  176. package/dist/src/data-marts/services/report.service.js +13 -0
  177. package/dist/src/data-marts/services/scheduled-trigger.service.d.ts +1 -0
  178. package/dist/src/data-marts/services/scheduled-trigger.service.js +13 -0
  179. package/dist/src/data-marts/use-cases/create-data-mart.service.js +1 -0
  180. package/dist/src/data-marts/use-cases/create-report.service.js +2 -0
  181. package/dist/src/data-marts/use-cases/get-model-canvas-data-marts.service.d.ts +5 -1
  182. package/dist/src/data-marts/use-cases/get-model-canvas-data-marts.service.js +16 -3
  183. package/dist/src/data-marts/use-cases/list-project-scheduled-triggers.service.js +1 -1
  184. package/dist/src/data-marts/use-cases/preview-data-mart.service.d.ts +59 -0
  185. package/dist/src/data-marts/use-cases/preview-data-mart.service.js +293 -0
  186. package/dist/src/data-marts/use-cases/stream-http-data.service.js +1 -0
  187. package/dist/src/data-marts/use-cases/update-data-mart-definition.service.d.ts +1 -1
  188. package/dist/src/data-marts/use-cases/update-data-mart-definition.service.js +8 -6
  189. package/dist/src/data-marts/use-cases/update-data-mart-icon.service.d.ts +12 -0
  190. package/dist/src/data-marts/use-cases/update-data-mart-icon.service.js +46 -0
  191. package/dist/src/data-marts/use-cases/update-data-mart-schema.service.js +14 -1
  192. package/dist/src/data-marts/use-cases/update-report.service.js +9 -1
  193. package/dist/src/ee/ee.module.js +5 -8
  194. package/dist/src/ee/mcp/auth/mcp-auth-context.d.ts +0 -4
  195. package/dist/src/ee/mcp/auth/mcp-auth.middleware.d.ts +26 -0
  196. package/dist/src/ee/mcp/auth/mcp-auth.middleware.js +184 -0
  197. package/dist/src/ee/mcp/http-headers.util.d.ts +2 -0
  198. package/dist/src/ee/mcp/http-headers.util.js +8 -0
  199. package/dist/src/ee/mcp/observability/mcp-bus-wiring.js +4 -4
  200. package/dist/src/ee/mcp/observability/mcp-call-instrumentation.d.ts +2 -4
  201. package/dist/src/ee/mcp/observability/mcp-call-instrumentation.js +6 -6
  202. package/dist/src/ee/mcp/sdk/mcp-sdk-server.factory.d.ts +1 -1
  203. package/dist/src/ee/mcp/sdk/mcp-sdk-server.factory.js +5 -5
  204. package/dist/src/ee/mcp/tools/add-destination.tool.d.ts +20 -14
  205. package/dist/src/ee/mcp/tools/add-destination.tool.js +10 -10
  206. package/dist/src/ee/mcp/tools/add-report.tool.d.ts +88 -228
  207. package/dist/src/ee/mcp/tools/add-report.tool.js +28 -28
  208. package/dist/src/ee/mcp/tools/create-report-run-schedule.tool.d.ts +2 -12
  209. package/dist/src/ee/mcp/tools/create-report-run-schedule.tool.js +13 -13
  210. package/dist/src/ee/mcp/tools/data-mart-catalog.tool.d.ts +15 -81
  211. package/dist/src/ee/mcp/tools/data-mart-catalog.tool.js +11 -11
  212. package/dist/src/ee/mcp/tools/data-mart-details.tool.d.ts +19 -111
  213. package/dist/src/ee/mcp/tools/data-mart-details.tool.js +64 -48
  214. package/dist/src/ee/mcp/tools/delete-report-run-schedule.tool.d.ts +2 -6
  215. package/dist/src/ee/mcp/tools/delete-report-run-schedule.tool.js +7 -7
  216. package/dist/src/ee/mcp/tools/delete-report.tool.d.ts +2 -6
  217. package/dist/src/ee/mcp/tools/delete-report.tool.js +4 -4
  218. package/dist/src/ee/mcp/tools/get-data-mart-reports.tool.d.ts +30 -195
  219. package/dist/src/ee/mcp/tools/get-data-mart-reports.tool.js +22 -22
  220. package/dist/src/ee/mcp/tools/get-report-output-schema.tool.d.ts +3 -21
  221. package/dist/src/ee/mcp/tools/get-report-output-schema.tool.js +10 -10
  222. package/dist/src/ee/mcp/tools/get-report-run-status.tool.d.ts +15 -11
  223. package/dist/src/ee/mcp/tools/get-report-run-status.tool.js +14 -14
  224. package/dist/src/ee/mcp/tools/list-destinations.tool.d.ts +12 -20
  225. package/dist/src/ee/mcp/tools/list-destinations.tool.js +10 -10
  226. package/dist/src/ee/mcp/tools/list-report-run-schedules.tool.d.ts +5 -61
  227. package/dist/src/ee/mcp/tools/list-report-run-schedules.tool.js +14 -14
  228. package/dist/src/ee/mcp/tools/mcp-getting-started.util.d.ts +4 -52
  229. package/dist/src/ee/mcp/tools/mcp-getting-started.util.js +13 -13
  230. package/dist/src/ee/mcp/tools/mcp-tool.definition.d.ts +2 -2
  231. package/dist/src/ee/mcp/tools/project-context.tool.d.ts +3 -17
  232. package/dist/src/ee/mcp/tools/project-context.tool.js +10 -10
  233. package/dist/src/ee/mcp/tools/query-data-mart.input.d.ts +111 -152
  234. package/dist/src/ee/mcp/tools/query-data-mart.input.js +39 -39
  235. package/dist/src/ee/mcp/tools/query-data-mart.tool.d.ts +60 -130
  236. package/dist/src/ee/mcp/tools/query-data-mart.tool.js +35 -35
  237. package/dist/src/ee/mcp/tools/report-output-controls-output.d.ts +17 -60
  238. package/dist/src/ee/mcp/tools/report-output-controls-output.js +20 -20
  239. package/dist/src/ee/mcp/tools/report-run-outcome.d.ts +6 -42
  240. package/dist/src/ee/mcp/tools/report-run-outcome.js +20 -20
  241. package/dist/src/ee/mcp/tools/run-report.tool.d.ts +2 -6
  242. package/dist/src/ee/mcp/tools/run-report.tool.js +5 -5
  243. package/dist/src/ee/mcp/tools/search-data-marts.tool.d.ts +7 -79
  244. package/dist/src/ee/mcp/tools/search-data-marts.tool.js +11 -11
  245. package/dist/src/ee/mcp/tools/search-reports.tool.d.ts +15 -61
  246. package/dist/src/ee/mcp/tools/search-reports.tool.js +15 -15
  247. package/dist/src/ee/mcp/tools/summarize-data-catalog.tool.d.ts +7 -79
  248. package/dist/src/ee/mcp/tools/summarize-data-catalog.tool.js +15 -15
  249. package/dist/src/ee/mcp/tools/update-report-run-schedule.tool.d.ts +2 -12
  250. package/dist/src/ee/mcp/tools/update-report-run-schedule.tool.js +13 -13
  251. package/dist/src/ee/mcp/tools/update-report.tool.d.ts +105 -414
  252. package/dist/src/ee/mcp/tools/update-report.tool.js +20 -20
  253. package/dist/src/ee/mcp/transport/mcp-http-entry.service.d.ts +30 -0
  254. package/dist/src/ee/mcp/transport/mcp-http-entry.service.js +193 -0
  255. package/dist/src/idp/guards/idp.guard.js +2 -8
  256. package/dist/src/idp/oauth/controllers/oauth-authorization.controller.d.ts +4 -0
  257. package/dist/src/idp/oauth/controllers/oauth-authorization.controller.js +77 -1
  258. package/dist/src/idp/oauth/controllers/oauth-metadata.controller.d.ts +2 -1
  259. package/dist/src/idp/oauth/controllers/oauth-metadata.controller.js +5 -8
  260. package/dist/src/idp/oauth/controllers/oauth-token.controller.js +14 -1
  261. package/dist/src/idp/oauth/oauth-request.validator.d.ts +8 -0
  262. package/dist/src/idp/oauth/oauth-request.validator.js +27 -0
  263. package/dist/src/idp/utils/is-authentication-error.d.ts +1 -0
  264. package/dist/src/idp/utils/is-authentication-error.js +9 -0
  265. package/dist/src/idp/utils/role-hierarchy.d.ts +3 -0
  266. package/dist/src/idp/utils/role-hierarchy.js +14 -0
  267. package/dist/src/index.d.ts +1 -0
  268. package/dist/src/index.js +3 -1
  269. package/dist/src/migrations/1788048000000-create-connector-definition-tables.d.ts +6 -0
  270. package/dist/src/migrations/1788048000000-create-connector-definition-tables.js +116 -0
  271. package/dist/src/migrations/1790156789783-add-auto-aggregation-opt-out-to-report.d.ts +8 -0
  272. package/dist/src/migrations/1790156789783-add-auto-aggregation-opt-out-to-report.js +30 -0
  273. package/dist/src/migrations/1790247861000-add-icon-to-data-mart.d.ts +8 -0
  274. package/dist/src/migrations/1790247861000-add-icon-to-data-mart.js +31 -0
  275. package/package.json +10 -6
  276. package/dist/src/ee/mcp/auth/mcp-auth.exception-filter.d.ts +0 -14
  277. package/dist/src/ee/mcp/auth/mcp-auth.exception-filter.js +0 -84
  278. package/dist/src/ee/mcp/auth/mcp-auth.guard.d.ts +0 -14
  279. package/dist/src/ee/mcp/auth/mcp-auth.guard.js +0 -99
  280. package/dist/src/ee/mcp/controllers/mcp-transport.controller.d.ts +0 -17
  281. package/dist/src/ee/mcp/controllers/mcp-transport.controller.js +0 -134
  282. package/dist/src/ee/mcp/sdk/mcp-streamable-http-transport.handler.d.ts +0 -16
  283. package/dist/src/ee/mcp/sdk/mcp-streamable-http-transport.handler.js +0 -133
@@ -27,6 +27,10 @@ function resolveAutoCollapse(report) {
27
27
  filtersIntoHaving(report.filterConfig, schemaFields)) {
28
28
  return { kind: 'none', reason: 'analyst-aggregated' };
29
29
  }
30
+ const optedOut = new Set(report.autoAggregationOptOut ?? []);
31
+ if (columns.some(name => optedOut.has(name))) {
32
+ return { kind: 'none', reason: 'analyst-opted-out' };
33
+ }
30
34
  const projectedColumns = new Set(columns);
31
35
  if ((report.sortConfig ?? []).some(rule => !projectedColumns.has(rule.column))) {
32
36
  return { kind: 'none', reason: 'sort-outside-projection' };
@@ -2,6 +2,7 @@ import { BlendableSchemaDto } from '../dto/domain/blendable-schema.dto';
2
2
  import { DataMartRelationshipService } from './data-mart-relationship.service';
3
3
  import { DataMartService } from './data-mart.service';
4
4
  import { AccessDecisionService } from './access-decision';
5
+ import { DataMartSchema } from '../data-storage-types/data-mart-schema.type';
5
6
  import { type CalculatedFieldConfig } from '../calculated-fields/calculated-field.utils';
6
7
  import { BigQueryFieldMode } from '../data-storage-types/bigquery/enums/bigquery-field-mode.enum';
7
8
  import { IdpProjectionsFacade } from '../../idp/facades/idp-projections.facade';
@@ -35,6 +36,7 @@ export declare class BlendableSchemaService {
35
36
  constructor(relationshipService: DataMartRelationshipService, dataMartService: DataMartService, accessDecisionService: AccessDecisionService);
36
37
  computeBlendableSchema(dataMartId: string, projectId: string, accessor: BlendableSchemaAccessor, options?: {
37
38
  includeDraftTargets?: boolean;
39
+ unsavedMainSchemaFields?: DataMartSchema['fields'];
38
40
  }): Promise<BlendableSchemaDto>;
39
41
  private applyReportingAccess;
40
42
  private collectBlendedFields;
@@ -67,6 +67,46 @@ function flattenSchemaFields(fields, prefix = '', includeDisconnectedFields = fa
67
67
  }
68
68
  return result;
69
69
  }
70
+ const CLEAN_GRAIN = { multiplication: 'none', keyFields: [], collapse: 'none' };
71
+ function worseGrain(parent, hop) {
72
+ const parentSide = () => {
73
+ const pick = parent.multiplication === 'multiplies'
74
+ ? parent
75
+ : hop.multiplication === 'multiplies'
76
+ ? hop
77
+ : parent.multiplication === 'unknown'
78
+ ? parent
79
+ : hop;
80
+ const { multiplication, keyFields, unprovenAt, multipliedAt } = pick;
81
+ return { multiplication, keyFields, unprovenAt, multipliedAt };
82
+ };
83
+ const collapsing = parent.collapse === 'collapses' ? parent : hop;
84
+ return {
85
+ ...parentSide(),
86
+ collapse: collapsing.collapse,
87
+ collapsedAt: collapsing.collapsedAt,
88
+ };
89
+ }
90
+ const covers = (key, primaryKey) => primaryKey.length > 0 && primaryKey.every(component => key.includes(component));
91
+ function hopGrain(parentPrimaryKey, targetPrimaryKey, joinConditions, parentPath, aliasPath) {
92
+ const parentKey = joinConditions.map(c => c.sourceFieldName);
93
+ const targetKey = joinConditions.map(c => c.targetFieldName);
94
+ const collapse = covers(targetKey, targetPrimaryKey)
95
+ ? { collapse: 'none' }
96
+ : { collapse: 'collapses', collapsedAt: aliasPath };
97
+ if (parentPrimaryKey.length === 0) {
98
+ return { multiplication: 'unknown', keyFields: [], unprovenAt: parentPath, ...collapse };
99
+ }
100
+ if (covers(parentKey, parentPrimaryKey)) {
101
+ return { multiplication: 'none', keyFields: [], ...collapse };
102
+ }
103
+ return {
104
+ multiplication: 'multiplies',
105
+ keyFields: parentKey,
106
+ multipliedAt: aliasPath,
107
+ ...collapse,
108
+ };
109
+ }
70
110
  let BlendableSchemaService = class BlendableSchemaService {
71
111
  relationshipService;
72
112
  dataMartService;
@@ -79,6 +119,7 @@ let BlendableSchemaService = class BlendableSchemaService {
79
119
  async computeBlendableSchema(dataMartId, projectId, accessor, options = {}) {
80
120
  const dataMart = await this.dataMartService.getByIdAndProjectId(dataMartId, projectId);
81
121
  const rawSchemaFields = dataMart.schema?.fields ?? [];
122
+ const mainPrimaryKey = (0, data_mart_schema_utils_1.declaredPrimaryKeyFields)(options.unsavedMainSchemaFields ?? rawSchemaFields);
82
123
  const nativeFields = rawSchemaFields
83
124
  .filter(f => !f.isHiddenForReporting)
84
125
  .map(f => (0, calculated_field_utils_1.isCalculatedField)(f)
@@ -114,6 +155,8 @@ let BlendableSchemaService = class BlendableSchemaService {
114
155
  depth: 1,
115
156
  storageType: dataMart.storage.type,
116
157
  includeDraftTargets: options.includeDraftTargets === true,
158
+ parentPrimaryKey: mainPrimaryKey,
159
+ parentGrain: CLEAN_GRAIN,
117
160
  });
118
161
  await this.applyReportingAccess(availableSources, projectId, accessor);
119
162
  let issueSources = availableSources;
@@ -133,6 +176,8 @@ let BlendableSchemaService = class BlendableSchemaService {
133
176
  depth: 1,
134
177
  storageType: dataMart.storage.type,
135
178
  includeDraftTargets: false,
179
+ parentPrimaryKey: mainPrimaryKey,
180
+ parentGrain: CLEAN_GRAIN,
136
181
  });
137
182
  const publishedPaths = new Set(publishedSources.map(source => source.aliasPath));
138
183
  issueSources = availableSources.filter(source => publishedPaths.has(source.aliasPath));
@@ -217,6 +262,18 @@ let BlendableSchemaService = class BlendableSchemaService {
217
262
  availableSource.dataMartId = rel.targetDataMart.id;
218
263
  availableSource.uniqueCountAvailability = (0, data_mart_schema_utils_1.classifyJoinedUniqueCountAvailability)(rel.targetDataMart.schema?.fields ?? []);
219
264
  availableSource.uniqueCountKeyFields = (0, data_mart_schema_utils_1.collectPrimaryKeyRowIdentity)(rel.targetDataMart.schema?.fields ?? []);
265
+ const targetPrimaryKey = (0, data_mart_schema_utils_1.declaredPrimaryKeyFields)(rel.targetDataMart.schema?.fields ?? []);
266
+ const grain = worseGrain(ctx.parentGrain, hopGrain(ctx.parentPrimaryKey, targetPrimaryKey, rel.joinConditions, ctx.parentPath, currentPath));
267
+ availableSource.mainGrainMultiplication = grain.multiplication;
268
+ availableSource.mainGrainKeyFields = [...grain.keyFields];
269
+ if (grain.unprovenAt !== undefined)
270
+ availableSource.mainGrainUnprovenAt = grain.unprovenAt;
271
+ if (grain.multipliedAt !== undefined) {
272
+ availableSource.mainGrainMultipliedAt = grain.multipliedAt;
273
+ }
274
+ availableSource.mainGrainCollapse = grain.collapse;
275
+ if (grain.collapsedAt !== undefined)
276
+ availableSource.mainGrainCollapsedAt = grain.collapsedAt;
220
277
  ctx.availableSources.push(availableSource);
221
278
  for (const field of flatTargetFields) {
222
279
  const fieldOverride = sourceConfig?.fields?.[field.name];
@@ -255,6 +312,8 @@ let BlendableSchemaService = class BlendableSchemaService {
255
312
  ...ctx,
256
313
  sourceId: rel.targetDataMart.id,
257
314
  parentPath: currentPath,
315
+ parentPrimaryKey: targetPrimaryKey,
316
+ parentGrain: grain,
258
317
  hiddenFieldNames: ctx.hiddenFieldNames,
259
318
  branchDmIds: new Set([...ctx.branchDmIds, rel.targetDataMart.id]),
260
319
  depth: ctx.depth + 1,
@@ -11,6 +11,6 @@ export declare class ConnectorCredentialInjectorService {
11
11
  refreshCredentialsForConfig(projectId: string, connectorName: string, config: Record<string, unknown>): Promise<Record<string, unknown>>;
12
12
  private injectOAuthCredentialsRecursive;
13
13
  private refreshCredentialsRecursive;
14
- injectSecrets(config: Record<string, unknown>, projectId: string): Promise<Record<string, unknown>>;
14
+ injectSecrets(config: Record<string, unknown>, projectId: string, connectorName: string): Promise<Record<string, unknown>>;
15
15
  private resolveMapping;
16
16
  }
@@ -15,6 +15,7 @@ const common_1 = require("@nestjs/common");
15
15
  const connector_source_credentials_service_1 = require("./connector-source-credentials.service");
16
16
  const connector_service_1 = require("./connector.service");
17
17
  const connector_secret_service_1 = require("./connector-secret.service");
18
+ const connector_credential_boundary_error_1 = require("../../errors/connector-credential-boundary.error");
18
19
  const connectors_1 = require("@owox/connectors");
19
20
  const { GENERATED_REFRESH_TOKEN_CREDENTIAL_FIELD, GENERATED_REFRESH_TOKEN_CONFIG_FIELD } = connectors_1.Core;
20
21
  let ConnectorCredentialInjectorService = ConnectorCredentialInjectorService_1 = class ConnectorCredentialInjectorService {
@@ -50,6 +51,9 @@ let ConnectorCredentialInjectorService = ConnectorCredentialInjectorService_1 =
50
51
  this.logger.warn(`OAuth credentials ${credentialId} belong to project ${credentialsEntity.projectId}, not ${projectId}. Skipping injection.`);
51
52
  return obj;
52
53
  }
54
+ if (credentialsEntity.connectorName !== connectorName) {
55
+ throw new connector_credential_boundary_error_1.ConnectorCredentialBoundaryError(`OAuth credentials ${credentialId} belong to connector ${credentialsEntity.connectorName}, not ${connectorName}.`);
56
+ }
53
57
  const isExpired = await this.connectorSourceCredentialsService.isExpired(credentialId);
54
58
  if (isExpired) {
55
59
  this.logger.warn(`OAuth tokens expired for credential ID: ${credentialId}. Connector may fail. Please re-authorize.`);
@@ -81,6 +85,9 @@ let ConnectorCredentialInjectorService = ConnectorCredentialInjectorService_1 =
81
85
  return { ...restObj, ...resolvedConfig };
82
86
  }
83
87
  catch (error) {
88
+ if (error instanceof connector_credential_boundary_error_1.ConnectorCredentialBoundaryError) {
89
+ throw error;
90
+ }
84
91
  const errorMessage = error instanceof Error ? error.message : String(error);
85
92
  this.logger.error(`Failed to inject OAuth credentials for ID: ${credentialId}: ${errorMessage}`, error instanceof Error ? error.stack : undefined);
86
93
  return obj;
@@ -108,6 +115,9 @@ let ConnectorCredentialInjectorService = ConnectorCredentialInjectorService_1 =
108
115
  return obj;
109
116
  }
110
117
  catch (error) {
118
+ if (error instanceof connector_credential_boundary_error_1.ConnectorCredentialBoundaryError) {
119
+ throw error;
120
+ }
111
121
  const errorMessage = error instanceof Error ? error.message : String(error);
112
122
  this.logger.warn(`Failed to refresh credentials for ${credentialId}: ${errorMessage}. Using existing credentials.`);
113
123
  return obj;
@@ -119,7 +129,7 @@ let ConnectorCredentialInjectorService = ConnectorCredentialInjectorService_1 =
119
129
  }
120
130
  return result;
121
131
  }
122
- async injectSecrets(config, projectId) {
132
+ async injectSecrets(config, projectId, connectorName) {
123
133
  const secretsId = config._secrets_id;
124
134
  if (!secretsId) {
125
135
  return config;
@@ -134,6 +144,10 @@ let ConnectorCredentialInjectorService = ConnectorCredentialInjectorService_1 =
134
144
  this.logger.warn(`Secrets ${secretsId} belong to project ${secretsEntity.projectId}, not ${projectId}. Skipping injection.`);
135
145
  return config;
136
146
  }
147
+ if (secretsEntity.connectorName?.toLowerCase() !== connectorName.toLowerCase()) {
148
+ this.logger.warn(`Secrets ${secretsId} were saved for connector ${secretsEntity.connectorName}, not ${connectorName}. Skipping injection.`);
149
+ return config;
150
+ }
137
151
  const { _secrets_id: _, ...restConfig } = config;
138
152
  const result = JSON.parse(JSON.stringify(restConfig));
139
153
  const { [GENERATED_REFRESH_TOKEN_CREDENTIAL_FIELD]: generatedRefreshToken, ...credentials } = secretsEntity.credentials;
@@ -0,0 +1,59 @@
1
+ import { Repository } from 'typeorm';
2
+ import { ConnectorDefinition } from '../../entities/connector-definition.entity';
3
+ import { ConnectorDefinitionVersion } from '../../entities/connector-definition-version.entity';
4
+ import { AccessDecisionService } from '../access-decision';
5
+ import { DataMartService } from '../data-mart.service';
6
+ export type ConnectorDefinitionVersionSummary = Pick<ConnectorDefinitionVersion, 'id' | 'version' | 'status' | 'publishedAt'>;
7
+ export interface PublishedConnectorVersion {
8
+ version: ConnectorDefinitionVersion;
9
+ warnings: string[];
10
+ }
11
+ export interface ConnectorVersionActor {
12
+ userId: string;
13
+ roles: string[];
14
+ }
15
+ export interface CreateConnectorDefinitionInput {
16
+ name: string;
17
+ title: string;
18
+ description?: string | null;
19
+ logo?: string | null;
20
+ docUrl?: string | null;
21
+ manifest: Record<string, unknown>;
22
+ }
23
+ export interface UpdateConnectorDefinitionMetadataInput {
24
+ title?: string;
25
+ description?: string | null;
26
+ logo?: string | null;
27
+ docUrl?: string | null;
28
+ }
29
+ export declare class ConnectorDefinitionService {
30
+ private readonly definitionRepo;
31
+ private readonly versionRepo;
32
+ private readonly dataMartService;
33
+ private readonly accessDecisionService;
34
+ private readonly logger;
35
+ constructor(definitionRepo: Repository<ConnectorDefinition>, versionRepo: Repository<ConnectorDefinitionVersion>, dataMartService: DataMartService, accessDecisionService: AccessDecisionService);
36
+ create(projectId: string, userId: string, input: CreateConnectorDefinitionInput): Promise<ConnectorDefinition>;
37
+ listByProject(projectId: string): Promise<ConnectorDefinition[]>;
38
+ getById(projectId: string, id: string): Promise<ConnectorDefinition>;
39
+ updateMetadata(projectId: string, id: string, patch: UpdateConnectorDefinitionMetadataInput): Promise<ConnectorDefinition>;
40
+ listVersions(projectId: string, id: string): Promise<ConnectorDefinitionVersionSummary[]>;
41
+ getVersion(projectId: string, id: string, version: number): Promise<ConnectorDefinitionVersion>;
42
+ resolveManifest(projectId: string, name: string, version?: number): Promise<Record<string, unknown>>;
43
+ tryResolveManifest(projectId: string, name: string, version?: number): Promise<Record<string, unknown> | null>;
44
+ saveDraft(projectId: string, id: string, manifest: Record<string, unknown>): Promise<ConnectorDefinitionVersion>;
45
+ publish(projectId: string, id: string, actor: ConnectorVersionActor): Promise<PublishedConnectorVersion>;
46
+ private canLockRows;
47
+ private assertNodesHavePrimaryKeys;
48
+ setActiveVersion(projectId: string, id: string, version: number, actor: ConnectorVersionActor): Promise<ConnectorDefinition>;
49
+ private displayFieldsOf;
50
+ private assertMayChangeActiveVersion;
51
+ getActiveVersionNumberForDef(def: ConnectorDefinition): Promise<number | null>;
52
+ getActiveVersionNumbersByDefId(defs: ConnectorDefinition[]): Promise<Map<string, number>>;
53
+ softDelete(projectId: string, id: string): Promise<void>;
54
+ private reportSecretCoverage;
55
+ private collectSecretsCarryingValues;
56
+ private assertManifestFitsSpawn;
57
+ private resolveActivePublished;
58
+ private assertNameAvailable;
59
+ }