@owox/backend 0.0.0 → 0.1.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 (214) hide show
  1. package/dist/commands/create-migration-template.js +8 -0
  2. package/dist/public/assets/index-CISA6IwH.css +1 -0
  3. package/dist/public/assets/index-xNsUEA9g.js +550 -0
  4. package/dist/public/index.html +2 -2
  5. package/dist/{app.module.js → src/app.module.js} +2 -5
  6. package/dist/src/common/schemas/google-service-account-key.schema.js +33 -0
  7. package/dist/src/common/zod/zod-transformer.js +14 -0
  8. package/dist/src/config/data-source-options.config.js +49 -0
  9. package/dist/{config → src/config}/express-static.config.js +7 -3
  10. package/dist/src/config/get-sqlite-database-path.js +36 -0
  11. package/dist/src/config/migrations.config.js +30 -0
  12. package/dist/src/data-marts/connector-types/connector-definition.js +11 -0
  13. package/dist/src/data-marts/connector-types/connector-fields-schema.js +18 -0
  14. package/dist/src/data-marts/connector-types/connector-specification.js +20 -0
  15. package/dist/src/data-marts/controllers/connector.controller.js +79 -0
  16. package/dist/src/data-marts/controllers/data-destination.controller.js +124 -0
  17. package/dist/{data-marts → src/data-marts}/controllers/data-mart.controller.js +20 -2
  18. package/dist/src/data-marts/controllers/report.controller.js +159 -0
  19. package/dist/src/data-marts/controllers/spec/connector.api.js +20 -0
  20. package/dist/src/data-marts/controllers/spec/data-destination.api.js +28 -0
  21. package/dist/{data-marts → src/data-marts}/controllers/spec/data-mart.api.js +4 -0
  22. package/dist/src/data-marts/controllers/spec/report.api.js +55 -0
  23. package/dist/src/data-marts/data-destination-types/data-destination-config.guards.js +13 -0
  24. package/dist/src/data-marts/data-destination-types/data-destination-config.type.js +7 -0
  25. package/dist/src/data-marts/data-destination-types/data-destination-credentials.guards.js +13 -0
  26. package/dist/src/data-marts/data-destination-types/data-destination-credentials.type.js +9 -0
  27. package/dist/src/data-marts/data-destination-types/data-destination-facades.js +10 -0
  28. package/dist/src/data-marts/data-destination-types/data-destination-providers.js +40 -0
  29. package/dist/src/data-marts/data-destination-types/enums/data-destination-type.enum.js +17 -0
  30. package/dist/src/data-marts/data-destination-types/facades/data-destination-access-validator.facade.js +40 -0
  31. package/dist/{data-marts/data-storage-types/facades/data-storage-title.facade.js → src/data-marts/data-destination-types/facades/data-destination-credentials-validator.facade.js} +13 -13
  32. package/dist/{data-marts/data-storage-types/athena/services/athena-title.generator.js → src/data-marts/data-destination-types/google-sheets/adapters/google-sheets-api-adapter.factory.js} +9 -12
  33. package/dist/src/data-marts/data-destination-types/google-sheets/adapters/google-sheets-api.adapter.js +104 -0
  34. package/dist/src/data-marts/data-destination-types/google-sheets/schemas/google-sheets-config.schema.js +11 -0
  35. package/dist/src/data-marts/data-destination-types/google-sheets/schemas/google-sheets-credentials.schema.js +13 -0
  36. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-access-validator.js +59 -0
  37. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-credentials-validator.js +45 -0
  38. package/dist/src/data-marts/data-destination-types/google-sheets/services/google-sheets-report-writer.js +158 -0
  39. package/dist/src/data-marts/data-destination-types/google-sheets/services/sheet-formatters/sheet-header-formatter.js +54 -0
  40. package/dist/src/data-marts/data-destination-types/google-sheets/services/sheet-formatters/sheet-metadata-formatter.js +60 -0
  41. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-access-validator.interface.js +17 -0
  42. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-credentials-validator.interface.js +15 -0
  43. package/dist/src/data-marts/data-destination-types/interfaces/data-destination-report-writer.interface.js +3 -0
  44. package/dist/src/data-marts/data-marts.module.js +127 -0
  45. package/dist/{data-marts/data-storage-types/bigquery/services/bigquery-title.generator.js → src/data-marts/data-storage-types/athena/adapters/athena-api-adapter.factory.js} +9 -12
  46. package/dist/src/data-marts/data-storage-types/athena/adapters/athena-api.adapter.js +91 -0
  47. package/dist/src/data-marts/data-storage-types/athena/adapters/s3-api-adapter.factory.js +21 -0
  48. package/dist/src/data-marts/data-storage-types/athena/adapters/s3-api.adapter.js +53 -0
  49. package/dist/src/data-marts/data-storage-types/athena/services/athena-report-reader.service.js +158 -0
  50. package/dist/src/data-marts/data-storage-types/bigquery/adapters/bigquery-api-adapter.factory.js +21 -0
  51. package/dist/src/data-marts/data-storage-types/bigquery/adapters/bigquery-api.adapter.js +36 -0
  52. package/dist/src/data-marts/data-storage-types/bigquery/schemas/bigquery-credentials.schema.js +6 -0
  53. package/dist/src/data-marts/data-storage-types/bigquery/services/bigquery-report-reader.service.js +132 -0
  54. package/dist/src/data-marts/data-storage-types/data-storage-config.guards.js +13 -0
  55. package/dist/src/data-marts/data-storage-types/data-storage-credentials.guards.js +13 -0
  56. package/dist/src/data-marts/data-storage-types/data-storage-credentials.type.js +3 -0
  57. package/dist/src/data-marts/data-storage-types/data-storage-facades.js +6 -0
  58. package/dist/src/data-marts/data-storage-types/data-storage-providers.js +32 -0
  59. package/dist/src/data-marts/data-storage-types/interfaces/data-storage-report-reader.interface.js +3 -0
  60. package/dist/src/data-marts/dto/domain/create-data-destination.command.js +17 -0
  61. package/dist/src/data-marts/dto/domain/create-report.command.js +21 -0
  62. package/dist/src/data-marts/dto/domain/data-destination.dto.js +23 -0
  63. package/dist/src/data-marts/dto/domain/delete-data-destination.command.js +13 -0
  64. package/dist/src/data-marts/dto/domain/get-data-destination.command.js +13 -0
  65. package/dist/src/data-marts/dto/domain/get-report.command.js +15 -0
  66. package/dist/src/data-marts/dto/domain/list-data-destinations.command.js +11 -0
  67. package/dist/src/data-marts/dto/domain/list-reports-by-data-mart.command.js +15 -0
  68. package/dist/src/data-marts/dto/domain/list-reports-by-project.command.js +13 -0
  69. package/dist/src/data-marts/dto/domain/report-data-batch.dto.js +13 -0
  70. package/dist/src/data-marts/dto/domain/report-data-description.dto.js +13 -0
  71. package/dist/src/data-marts/dto/domain/report.dto.js +31 -0
  72. package/dist/src/data-marts/dto/domain/run-data-mart.command.js +15 -0
  73. package/dist/src/data-marts/dto/domain/run-report.command.js +3 -0
  74. package/dist/src/data-marts/dto/domain/update-data-destination.command.js +17 -0
  75. package/dist/src/data-marts/dto/domain/update-report.command.js +21 -0
  76. package/dist/src/data-marts/dto/presentation/connector-definition-response-api.dto.js +37 -0
  77. package/dist/src/data-marts/dto/presentation/connector-fields-response-api.dto.js +60 -0
  78. package/dist/src/data-marts/dto/presentation/connector-specification-response-api.dto.js +65 -0
  79. package/dist/src/data-marts/dto/presentation/create-data-destination-api.dto.js +42 -0
  80. package/dist/src/data-marts/dto/presentation/create-report-request-api.dto.js +46 -0
  81. package/dist/src/data-marts/dto/presentation/data-destination-response-api.dto.js +57 -0
  82. package/dist/src/data-marts/dto/presentation/report-response-api.dto.js +75 -0
  83. package/dist/src/data-marts/dto/presentation/update-data-destination-api.dto.js +35 -0
  84. package/dist/src/data-marts/dto/presentation/update-report-request-api.dto.js +39 -0
  85. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/connector-definition.schema.js +23 -0
  86. package/dist/src/data-marts/dto/schemas/data-mart-table-definitions/data-mart-definition.guards.js +23 -0
  87. package/dist/src/data-marts/entities/data-destination.entity.js +66 -0
  88. package/dist/src/data-marts/entities/data-mart-run.entity.js +63 -0
  89. package/dist/src/data-marts/entities/report.entity.js +85 -0
  90. package/dist/{data-marts → src/data-marts}/enums/data-mart-definition-type.enum.js +1 -0
  91. package/dist/src/data-marts/enums/data-mart-run-status.enum.js +10 -0
  92. package/dist/src/data-marts/enums/report-run-status.enum.js +10 -0
  93. package/dist/src/data-marts/mappers/connector.mapper.js +54 -0
  94. package/dist/src/data-marts/mappers/data-destination.mapper.js +58 -0
  95. package/dist/{data-marts → src/data-marts}/mappers/data-mart.mapper.js +4 -0
  96. package/dist/{data-marts → src/data-marts}/mappers/data-storage.mapper.js +2 -6
  97. package/dist/src/data-marts/mappers/report.mapper.js +81 -0
  98. package/dist/src/data-marts/services/connector-execution.service.js +190 -0
  99. package/dist/src/data-marts/services/connector.service.js +79 -0
  100. package/dist/src/data-marts/services/data-destination.service.js +39 -0
  101. package/dist/src/data-marts/use-cases/connector/available-connector.service.js +29 -0
  102. package/dist/src/data-marts/use-cases/connector/fields-connector.service.js +29 -0
  103. package/dist/src/data-marts/use-cases/connector/specification-connector.service.js +29 -0
  104. package/dist/src/data-marts/use-cases/create-data-destination.service.js +51 -0
  105. package/dist/src/data-marts/use-cases/create-report.service.js +83 -0
  106. package/dist/src/data-marts/use-cases/delete-data-destination.service.js +59 -0
  107. package/dist/src/data-marts/use-cases/delete-report.service.js +46 -0
  108. package/dist/src/data-marts/use-cases/get-data-destination.service.js +34 -0
  109. package/dist/src/data-marts/use-cases/get-report.service.js +51 -0
  110. package/dist/src/data-marts/use-cases/list-data-destinations.service.js +42 -0
  111. package/dist/src/data-marts/use-cases/list-reports-by-data-mart.service.js +47 -0
  112. package/dist/src/data-marts/use-cases/list-reports-by-project.service.js +47 -0
  113. package/dist/src/data-marts/use-cases/run-data-mart.service.js +39 -0
  114. package/dist/src/data-marts/use-cases/run-report.service.js +97 -0
  115. package/dist/src/data-marts/use-cases/update-data-destination.service.js +52 -0
  116. package/dist/src/data-marts/use-cases/update-report.service.js +77 -0
  117. package/dist/src/data-source.js +11 -0
  118. package/dist/src/load-env.js +34 -0
  119. package/dist/{main.js → src/main.js} +7 -1
  120. package/dist/src/migrations/1750350724543-create-data-mart-and-data-storage-tables.js +53 -0
  121. package/dist/src/migrations/helper.js +13 -0
  122. package/package.json +28 -9
  123. package/dist/config/database.config.js +0 -31
  124. package/dist/data-marts/data-marts.module.js +0 -65
  125. package/dist/data-marts/data-storage-types/bigquery/schemas/bigquery-credentials.schema.js +0 -11
  126. package/dist/data-marts/data-storage-types/data-storage-facades.js +0 -7
  127. package/dist/data-marts/data-storage-types/data-storage-providers.js +0 -27
  128. package/dist/data-marts/data-storage-types/interfaces/data-storage-title-generator.interface.js +0 -3
  129. package/dist/public/assets/index-BZJIHZWS.js +0 -502
  130. package/dist/public/assets/index-BpZgB8Pl.css +0 -1
  131. /package/dist/{common → src/common}/authorization-context/authorization.context.js +0 -0
  132. /package/dist/{common → src/common}/common.module.js +0 -0
  133. /package/dist/{common → src/common}/exceptions/access-validation.exception.js +0 -0
  134. /package/dist/{common → src/common}/exceptions/base-exception.filter.js +0 -0
  135. /package/dist/{common → src/common}/exceptions/base.exception.js +0 -0
  136. /package/dist/{common → src/common}/exceptions/business-violation.exception.js +0 -0
  137. /package/dist/{common → src/common}/resolver/type-resolver.js +0 -0
  138. /package/dist/{common → src/common}/resolver/typed-component.resolver.js +0 -0
  139. /package/dist/{common → src/common}/scheduler/facades/scheduler-facade.impl.js +0 -0
  140. /package/dist/{common → src/common}/scheduler/scheduler.module.js +0 -0
  141. /package/dist/{common → src/common}/scheduler/services/fetchers/time-based-trigger-fetcher.factory.js +0 -0
  142. /package/dist/{common → src/common}/scheduler/services/fetchers/time-based-trigger-fetcher.service.js +0 -0
  143. /package/dist/{common → src/common}/scheduler/services/graceful-shutdown.service.js +0 -0
  144. /package/dist/{common → src/common}/scheduler/services/runners/abstract-trigger-runner.service.js +0 -0
  145. /package/dist/{common → src/common}/scheduler/services/runners/direct-trigger-runner.service.js +0 -0
  146. /package/dist/{common → src/common}/scheduler/services/runners/pubsub-trigger-runner.service.js +0 -0
  147. /package/dist/{common → src/common}/scheduler/services/runners/trigger-runner.factory.js +0 -0
  148. /package/dist/{common → src/common}/scheduler/services/runners/trigger-runner.interface.js +0 -0
  149. /package/dist/{common → src/common}/scheduler/services/system-time.service.js +0 -0
  150. /package/dist/{common → src/common}/scheduler/shared/entities/scheduled-trigger.entity.js +0 -0
  151. /package/dist/{common → src/common}/scheduler/shared/entities/time-based-trigger.entity.js +0 -0
  152. /package/dist/{common → src/common}/scheduler/shared/scheduler.facade.js +0 -0
  153. /package/dist/{common → src/common}/scheduler/shared/time-based-trigger-handler.interface.js +0 -0
  154. /package/dist/{config → src/config}/global-pipes.config.js +0 -0
  155. /package/dist/{config → src/config}/swagger.config.js +0 -0
  156. /package/dist/{data-marts → src/data-marts}/controllers/data-storage.controller.js +0 -0
  157. /package/dist/{data-marts → src/data-marts}/controllers/spec/data-storage.api.js +0 -0
  158. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/schemas/athena-config.schema.js +0 -0
  159. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/schemas/athena-credentials.schema.js +0 -0
  160. /package/dist/{data-marts → src/data-marts}/data-storage-types/athena/services/athena-access.validator.js +0 -0
  161. /package/dist/{data-marts → src/data-marts}/data-storage-types/bigquery/schemas/bigquery-config.schema.js +0 -0
  162. /package/dist/{data-marts → src/data-marts}/data-storage-types/bigquery/services/bigquery-access.validator.js +0 -0
  163. /package/dist/{data-marts → src/data-marts}/data-storage-types/data-storage-config.type.js +0 -0
  164. /package/dist/{data-marts → src/data-marts}/data-storage-types/enums/data-storage-type.enum.js +0 -0
  165. /package/dist/{data-marts → src/data-marts}/data-storage-types/facades/data-storage-access.facade.js +0 -0
  166. /package/dist/{data-marts → src/data-marts}/data-storage-types/interfaces/data-storage-access-validator.interface.js +0 -0
  167. /package/dist/{data-marts → src/data-marts}/dto/domain/create-data-mart.command.js +0 -0
  168. /package/dist/{data-marts → src/data-marts}/dto/domain/create-data-storage.command.js +0 -0
  169. /package/dist/{data-marts → src/data-marts}/dto/domain/data-mart.dto.js +0 -0
  170. /package/dist/{data-marts → src/data-marts}/dto/domain/data-storage.dto.js +0 -0
  171. /package/dist/{data-marts → src/data-marts}/dto/domain/delete-data-mart.command.js +0 -0
  172. /package/dist/{data-marts → src/data-marts}/dto/domain/delete-data-storage.command.js +0 -0
  173. /package/dist/{data-marts → src/data-marts}/dto/domain/get-data-mart.command.js +0 -0
  174. /package/dist/{data-marts → src/data-marts}/dto/domain/get-data-storage.command.js +0 -0
  175. /package/dist/{data-marts → src/data-marts}/dto/domain/list-data-marts.command.js +0 -0
  176. /package/dist/{data-marts → src/data-marts}/dto/domain/list-data-storages.command.js +0 -0
  177. /package/dist/{data-marts → src/data-marts}/dto/domain/publish-data-mart.command.js +0 -0
  178. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-definition.command.js +0 -0
  179. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-description.command.js +0 -0
  180. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-mart-title.command.js +0 -0
  181. /package/dist/{data-marts → src/data-marts}/dto/domain/update-data-storage.command.js +0 -0
  182. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-mart-request-api.dto.js +0 -0
  183. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-mart-response-api.dto.js +0 -0
  184. /package/dist/{data-marts → src/data-marts}/dto/presentation/create-data-storage-api.dto.js +0 -0
  185. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-mart-response-api.dto.js +0 -0
  186. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-storage-list-response-api.dto.js +0 -0
  187. /package/dist/{data-marts → src/data-marts}/dto/presentation/data-storage-response-api.dto.js +0 -0
  188. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-definition-api.dto.js +0 -0
  189. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-description-api.dto.js +0 -0
  190. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-mart-title-api.dto.js +0 -0
  191. /package/dist/{data-marts → src/data-marts}/dto/presentation/update-data-storage-api.dto.js +0 -0
  192. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/data-mart-definition.js +0 -0
  193. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/sql-definition.schema.js +0 -0
  194. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/table-definition.schema.js +0 -0
  195. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/table-pattern-definition.schema.js +0 -0
  196. /package/dist/{data-marts → src/data-marts}/dto/schemas/data-mart-table-definitions/view-definition.schema.js +0 -0
  197. /package/dist/{data-marts → src/data-marts}/entities/data-mart.entity.js +0 -0
  198. /package/dist/{data-marts → src/data-marts}/entities/data-storage.entity.js +0 -0
  199. /package/dist/{data-marts → src/data-marts}/enums/data-mart-status.enum.js +0 -0
  200. /package/dist/{data-marts → src/data-marts}/services/data-mart.service.js +0 -0
  201. /package/dist/{data-marts → src/data-marts}/services/data-storage.service.js +0 -0
  202. /package/dist/{data-marts → src/data-marts}/use-cases/create-data-mart.service.js +0 -0
  203. /package/dist/{data-marts → src/data-marts}/use-cases/create-data-storage.service.js +0 -0
  204. /package/dist/{data-marts → src/data-marts}/use-cases/delete-data-mart.service.js +0 -0
  205. /package/dist/{data-marts → src/data-marts}/use-cases/delete-data-storage.service.js +0 -0
  206. /package/dist/{data-marts → src/data-marts}/use-cases/get-data-mart.service.js +0 -0
  207. /package/dist/{data-marts → src/data-marts}/use-cases/get-data-storage.service.js +0 -0
  208. /package/dist/{data-marts → src/data-marts}/use-cases/list-data-marts.service.js +0 -0
  209. /package/dist/{data-marts → src/data-marts}/use-cases/list-data-storages.service.js +0 -0
  210. /package/dist/{data-marts → src/data-marts}/use-cases/publish-data-mart.service.js +0 -0
  211. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-definition.service.js +0 -0
  212. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-description.service.js +0 -0
  213. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-mart-title.service.js +0 -0
  214. /package/dist/{data-marts → src/data-marts}/use-cases/update-data-storage.service.js +0 -0
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/png" href="/favicon.png" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>OWOX</title>
8
- <script type="module" crossorigin src="/assets/index-BZJIHZWS.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-BpZgB8Pl.css">
8
+ <script type="module" crossorigin src="/assets/index-xNsUEA9g.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-CISA6IwH.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
@@ -7,14 +7,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.AppModule = void 0;
10
- const path = require("path");
11
10
  const common_1 = require("@nestjs/common");
12
11
  const typeorm_1 = require("@nestjs/typeorm");
13
12
  const config_1 = require("@nestjs/config");
14
13
  const schedule_1 = require("@nestjs/schedule");
15
- const database_config_1 = require("./config/database.config");
16
14
  const data_marts_module_1 = require("./data-marts/data-marts.module");
17
15
  const common_module_1 = require("./common/common.module");
16
+ const data_source_options_config_1 = require("./config/data-source-options.config");
18
17
  let AppModule = class AppModule {
19
18
  };
20
19
  exports.AppModule = AppModule;
@@ -23,12 +22,10 @@ exports.AppModule = AppModule = __decorate([
23
22
  imports: [
24
23
  config_1.ConfigModule.forRoot({
25
24
  isGlobal: true,
26
- envFilePath: path.resolve(__dirname, '../../../.env'),
27
25
  }),
28
26
  typeorm_1.TypeOrmModule.forRootAsync({
29
- imports: [config_1.ConfigModule],
30
27
  inject: [config_1.ConfigService],
31
- useFactory: database_config_1.getDatabaseConfig,
28
+ useFactory: (config) => (0, data_source_options_config_1.createDataSourceOptions)(config),
32
29
  }),
33
30
  schedule_1.ScheduleModule.forRoot(),
34
31
  data_marts_module_1.DataMartsModule,
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleServiceAccountKeySchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const privateKeyRegex = /^-----BEGIN PRIVATE KEY-----\n[\s\S]*\n-----END PRIVATE KEY-----\n?$/;
6
+ exports.GoogleServiceAccountKeySchema = zod_1.z
7
+ .object({
8
+ type: zod_1.z.literal('service_account'),
9
+ project_id: zod_1.z.string().min(1, 'project_id is required'),
10
+ private_key_id: zod_1.z.string().min(1, 'private_key_id is required'),
11
+ private_key: zod_1.z
12
+ .string()
13
+ .min(1, 'private_key is required')
14
+ .regex(privateKeyRegex, 'private_key must be a valid PEM format private key'),
15
+ client_email: zod_1.z.string().email('client_email must be a valid email'),
16
+ client_id: zod_1.z.string().min(1, 'client_id is required'),
17
+ auth_uri: zod_1.z
18
+ .string()
19
+ .url('auth_uri must be a valid URL')
20
+ .default('https://accounts.google.com/o/oauth2/auth'),
21
+ token_uri: zod_1.z
22
+ .string()
23
+ .url('token_uri must be a valid URL')
24
+ .default('https://oauth2.googleapis.com/token'),
25
+ auth_provider_x509_cert_url: zod_1.z
26
+ .string()
27
+ .url('auth_provider_x509_cert_url must be a valid URL')
28
+ .default('https://www.googleapis.com/oauth2/v1/certs'),
29
+ client_x509_cert_url: zod_1.z.string().url('client_x509_cert_url must be a valid URL'),
30
+ universe_domain: zod_1.z.string().default('googleapis.com'),
31
+ })
32
+ .passthrough();
33
+ //# sourceMappingURL=google-service-account-key.schema.js.map
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createZodTransformer = createZodTransformer;
4
+ function createZodTransformer(schema) {
5
+ return {
6
+ to(value) {
7
+ return schema.parse(value);
8
+ },
9
+ from(value) {
10
+ return schema.parse(value);
11
+ },
12
+ };
13
+ }
14
+ //# sourceMappingURL=zod-transformer.js.map
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DbType = void 0;
4
+ exports.createDataSourceOptions = createDataSourceOptions;
5
+ const common_1 = require("@nestjs/common");
6
+ const get_sqlite_database_path_1 = require("./get-sqlite-database-path");
7
+ const logger = new common_1.Logger('DataSourceOptions');
8
+ var DbType;
9
+ (function (DbType) {
10
+ DbType["sqlite"] = "sqlite";
11
+ DbType["mysql"] = "mysql";
12
+ })(DbType || (exports.DbType = DbType = {}));
13
+ function createDataSourceOptions(config) {
14
+ const dbType = config.get('DB_TYPE') ?? DbType.sqlite;
15
+ logger.log(`Using DB_TYPE: ${config.get('DB_TYPE') ? `${dbType} (from env)` : `${dbType} (default)`}`);
16
+ const baseOptions = {
17
+ entities: [__dirname + '/../**/*.entity{.ts,.js}'],
18
+ migrations: [__dirname + '/../migrations/[0-9]*-*.{ts,js}'],
19
+ logging: resolveLoggerOptions(config.get('TYPEORM_LOGGING', 'error')),
20
+ synchronize: true,
21
+ };
22
+ const dbConfigs = {
23
+ [DbType.sqlite]: {
24
+ type: DbType.sqlite,
25
+ database: (0, get_sqlite_database_path_1.getSqliteDatabasePath)(config),
26
+ ...baseOptions,
27
+ },
28
+ [DbType.mysql]: {
29
+ type: DbType.mysql,
30
+ host: config.get('DB_HOST'),
31
+ port: Number(config.get('DB_PORT')),
32
+ username: config.get('DB_USERNAME'),
33
+ password: config.get('DB_PASSWORD'),
34
+ database: config.get('DB_DATABASE'),
35
+ ...baseOptions,
36
+ },
37
+ };
38
+ return dbConfigs[dbType];
39
+ }
40
+ function resolveLoggerOptions(value) {
41
+ if (value === 'false')
42
+ return false;
43
+ if (value === 'true')
44
+ return true;
45
+ if (value === 'all')
46
+ return 'all';
47
+ return value.split(',').map(level => level.trim());
48
+ }
49
+ //# sourceMappingURL=data-source-options.config.js.map
@@ -6,8 +6,8 @@ const fs_1 = require("fs");
6
6
  const path_1 = require("path");
7
7
  function getWebDistPath() {
8
8
  const logger = new common_1.Logger('StaticAssets');
9
- const publishedPath = (0, path_1.join)(__dirname, '..', 'public');
10
- const devPath = (0, path_1.join)(__dirname, '..', '..', '..', 'web', 'dist');
9
+ const publishedPath = (0, path_1.join)(__dirname, '..', '..', 'public');
10
+ const devPath = (0, path_1.join)(__dirname, '..', '..', '..', '..', 'web', 'dist');
11
11
  if ((0, fs_1.existsSync)(publishedPath)) {
12
12
  logger.log(`Using published static assets: ${publishedPath}`);
13
13
  return publishedPath;
@@ -16,10 +16,14 @@ function getWebDistPath() {
16
16
  logger.log(`Using development static assets: ${devPath}`);
17
17
  return devPath;
18
18
  }
19
- throw new Error(`Static assets not found. Checked:\n - ${publishedPath}\n - ${devPath}`);
19
+ logger.log(`Static assets not found. Checked:\n - ${publishedPath}\n - ${devPath}`);
20
+ return null;
20
21
  }
21
22
  function setupStaticAssets(app, pathPrefix) {
22
23
  const distPath = getWebDistPath();
24
+ if (!distPath) {
25
+ return;
26
+ }
23
27
  app.useStaticAssets(distPath);
24
28
  app.use((req, res, next) => {
25
29
  if (req.path.startsWith(`/${pathPrefix}`)) {
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getSqliteDatabasePath = getSqliteDatabasePath;
7
+ const common_1 = require("@nestjs/common");
8
+ const env_paths_1 = __importDefault(require("env-paths"));
9
+ const fs_1 = require("fs");
10
+ const path_1 = require("path");
11
+ const logger = new common_1.Logger('SQLiteDatabasePath');
12
+ function getSqliteDatabasePath(config) {
13
+ const envDbPath = config.get('SQLITE_DB_PATH');
14
+ let dbPath;
15
+ if (envDbPath) {
16
+ logger.log(`Using SQLite database path from \`SQLITE_DB_PATH\` env: ${envDbPath}`);
17
+ dbPath = envDbPath;
18
+ }
19
+ else {
20
+ const paths = (0, env_paths_1.default)('owox', { suffix: '' });
21
+ dbPath = (0, path_1.join)(paths.data, 'sqlite', 'app.db');
22
+ logger.log(`Using system app data directory for SQLite: ${dbPath}`);
23
+ }
24
+ const dbDir = (0, path_1.dirname)(dbPath);
25
+ if (!(0, fs_1.existsSync)(dbDir)) {
26
+ try {
27
+ (0, fs_1.mkdirSync)(dbDir, { recursive: true });
28
+ logger.log(`Created SQLite database directory: ${dbDir}`);
29
+ }
30
+ catch (error) {
31
+ throw new Error(`Failed to create SQLite database directory: ${dbDir}. ${error.message}`);
32
+ }
33
+ }
34
+ return dbPath;
35
+ }
36
+ //# sourceMappingURL=get-sqlite-database-path.js.map
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runMigrationsIfNeeded = runMigrationsIfNeeded;
7
+ const data_source_1 = __importDefault(require("../data-source"));
8
+ const common_1 = require("@nestjs/common");
9
+ const logger = new common_1.Logger('MigrationRunner');
10
+ async function runMigrationsIfNeeded(config) {
11
+ const shouldRun = config.get('RUN_MIGRATIONS') === 'true';
12
+ if (!shouldRun) {
13
+ logger.log('RUN_MIGRATIONS is not set to "true". Skipping migrations.');
14
+ return;
15
+ }
16
+ if (!data_source_1.default.isInitialized) {
17
+ await data_source_1.default.initialize();
18
+ }
19
+ const migrations = await data_source_1.default.runMigrations();
20
+ if (migrations.length === 0) {
21
+ logger.log('No new migrations to run');
22
+ }
23
+ else {
24
+ logger.log(`Executed ${migrations.length} migration(s):`);
25
+ migrations.forEach(m => {
26
+ logger.log(`- ${m.name}`);
27
+ });
28
+ }
29
+ }
30
+ //# sourceMappingURL=migrations.config.js.map
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectorDefinitionSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.ConnectorDefinitionSchema = zod_1.z.object({
6
+ name: zod_1.z.string().min(1, 'name is required'),
7
+ title: zod_1.z.string(),
8
+ description: zod_1.z.string().nullable(),
9
+ icon: zod_1.z.string().nullable(),
10
+ });
11
+ //# sourceMappingURL=connector-definition.js.map
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectorFieldsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.ConnectorFieldsSchema = zod_1.z.array(zod_1.z.object({
6
+ name: zod_1.z.string(),
7
+ overview: zod_1.z.string().optional(),
8
+ description: zod_1.z.string().optional(),
9
+ documentation: zod_1.z.string().optional(),
10
+ fields: zod_1.z
11
+ .array(zod_1.z.object({
12
+ name: zod_1.z.string(),
13
+ type: zod_1.z.string().optional(),
14
+ description: zod_1.z.string().optional(),
15
+ }))
16
+ .optional(),
17
+ }));
18
+ //# sourceMappingURL=connector-fields-schema.js.map
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectorSpecification = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.ConnectorSpecification = zod_1.z.array(zod_1.z.object({
6
+ name: zod_1.z.string(),
7
+ title: zod_1.z.string().optional(),
8
+ description: zod_1.z.string().optional(),
9
+ default: zod_1.z
10
+ .union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.object({}), zod_1.z.array(zod_1.z.string()), zod_1.z.unknown()])
11
+ .optional(),
12
+ requiredType: zod_1.z
13
+ .enum(['string', 'number', 'boolean', 'bool', 'object', 'array', 'date'])
14
+ .optional(),
15
+ required: zod_1.z.boolean().optional(),
16
+ options: zod_1.z.array(zod_1.z.string()).optional(),
17
+ placeholder: zod_1.z.string().optional(),
18
+ showInUI: zod_1.z.boolean().default(true),
19
+ }));
20
+ //# sourceMappingURL=connector-specification.js.map
@@ -0,0 +1,79 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ConnectorController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const available_connector_service_1 = require("../use-cases/connector/available-connector.service");
19
+ const connector_api_1 = require("./spec/connector.api");
20
+ const specification_connector_service_1 = require("../use-cases/connector/specification-connector.service");
21
+ const fields_connector_service_1 = require("../use-cases/connector/fields-connector.service");
22
+ const connector_mapper_1 = require("../mappers/connector.mapper");
23
+ let ConnectorController = class ConnectorController {
24
+ availableConnectorService;
25
+ specificationConnectorService;
26
+ fieldsConnectorService;
27
+ mapper;
28
+ constructor(availableConnectorService, specificationConnectorService, fieldsConnectorService, mapper) {
29
+ this.availableConnectorService = availableConnectorService;
30
+ this.specificationConnectorService = specificationConnectorService;
31
+ this.fieldsConnectorService = fieldsConnectorService;
32
+ this.mapper = mapper;
33
+ }
34
+ async getAvailableConnectors() {
35
+ const connectors = await this.availableConnectorService.run();
36
+ return this.mapper.toDefinitionResponseList(connectors);
37
+ }
38
+ async getConnectorSpecification(connectorName) {
39
+ const specification = await this.specificationConnectorService.run(connectorName);
40
+ return this.mapper.toSpecificationResponse(specification);
41
+ }
42
+ async getConnectorFields(connectorName) {
43
+ const fields = await this.fieldsConnectorService.run(connectorName);
44
+ return this.mapper.toFieldsResponse(fields);
45
+ }
46
+ };
47
+ exports.ConnectorController = ConnectorController;
48
+ __decorate([
49
+ (0, common_1.Get)(),
50
+ (0, connector_api_1.GetAvailableConnectorsSpec)(),
51
+ __metadata("design:type", Function),
52
+ __metadata("design:paramtypes", []),
53
+ __metadata("design:returntype", Promise)
54
+ ], ConnectorController.prototype, "getAvailableConnectors", null);
55
+ __decorate([
56
+ (0, common_1.Get)(':connectorName/specification'),
57
+ (0, connector_api_1.GetConnectorSpecificationSpec)(),
58
+ __param(0, (0, common_1.Param)('connectorName')),
59
+ __metadata("design:type", Function),
60
+ __metadata("design:paramtypes", [String]),
61
+ __metadata("design:returntype", Promise)
62
+ ], ConnectorController.prototype, "getConnectorSpecification", null);
63
+ __decorate([
64
+ (0, common_1.Get)(':connectorName/fields'),
65
+ (0, connector_api_1.GetConnectorFieldsSpec)(),
66
+ __param(0, (0, common_1.Param)('connectorName')),
67
+ __metadata("design:type", Function),
68
+ __metadata("design:paramtypes", [String]),
69
+ __metadata("design:returntype", Promise)
70
+ ], ConnectorController.prototype, "getConnectorFields", null);
71
+ exports.ConnectorController = ConnectorController = __decorate([
72
+ (0, common_1.Controller)('connectors'),
73
+ (0, swagger_1.ApiTags)('Connectors'),
74
+ __metadata("design:paramtypes", [available_connector_service_1.AvailableConnectorService,
75
+ specification_connector_service_1.SpecificationConnectorService,
76
+ fields_connector_service_1.FieldsConnectorService,
77
+ connector_mapper_1.ConnectorMapper])
78
+ ], ConnectorController);
79
+ //# sourceMappingURL=connector.controller.js.map
@@ -0,0 +1,124 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DataDestinationController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const create_data_destination_api_dto_1 = require("../dto/presentation/create-data-destination-api.dto");
18
+ const create_data_destination_service_1 = require("../use-cases/create-data-destination.service");
19
+ const data_destination_mapper_1 = require("../mappers/data-destination.mapper");
20
+ const update_data_destination_api_dto_1 = require("../dto/presentation/update-data-destination-api.dto");
21
+ const update_data_destination_service_1 = require("../use-cases/update-data-destination.service");
22
+ const get_data_destination_service_1 = require("../use-cases/get-data-destination.service");
23
+ const list_data_destinations_service_1 = require("../use-cases/list-data-destinations.service");
24
+ const authorization_context_1 = require("../../common/authorization-context/authorization.context");
25
+ const data_destination_api_1 = require("./spec/data-destination.api");
26
+ const swagger_1 = require("@nestjs/swagger");
27
+ const delete_data_destination_service_1 = require("../use-cases/delete-data-destination.service");
28
+ let DataDestinationController = class DataDestinationController {
29
+ createService;
30
+ updateService;
31
+ getService;
32
+ listService;
33
+ deleteService;
34
+ mapper;
35
+ constructor(createService, updateService, getService, listService, deleteService, mapper) {
36
+ this.createService = createService;
37
+ this.updateService = updateService;
38
+ this.getService = getService;
39
+ this.listService = listService;
40
+ this.deleteService = deleteService;
41
+ this.mapper = mapper;
42
+ }
43
+ async create(context, dto) {
44
+ const command = this.mapper.toCreateCommand(context, dto);
45
+ const dataDestinationDto = await this.createService.run(command);
46
+ return this.mapper.toApiResponse(dataDestinationDto);
47
+ }
48
+ async update(context, id, dto) {
49
+ const command = this.mapper.toUpdateCommand(id, context, dto);
50
+ const dataDestinationDto = await this.updateService.run(command);
51
+ return this.mapper.toApiResponse(dataDestinationDto);
52
+ }
53
+ async get(context, id) {
54
+ const command = this.mapper.toGetCommand(id, context);
55
+ const dataDestinationDto = await this.getService.run(command);
56
+ return this.mapper.toApiResponse(dataDestinationDto);
57
+ }
58
+ async getAll(context) {
59
+ const command = this.mapper.toListCommand(context);
60
+ const dataDestinationsDto = await this.listService.run(command);
61
+ return this.mapper.toResponseList(dataDestinationsDto);
62
+ }
63
+ async delete(context, id) {
64
+ const command = this.mapper.toDeleteCommand(id, context);
65
+ await this.deleteService.run(command);
66
+ }
67
+ };
68
+ exports.DataDestinationController = DataDestinationController;
69
+ __decorate([
70
+ (0, common_1.Post)(),
71
+ (0, data_destination_api_1.CreateDataDestinationSpec)(),
72
+ __param(0, (0, authorization_context_1.AuthContext)()),
73
+ __param(1, (0, common_1.Body)()),
74
+ __metadata("design:type", Function),
75
+ __metadata("design:paramtypes", [Object, create_data_destination_api_dto_1.CreateDataDestinationApiDto]),
76
+ __metadata("design:returntype", Promise)
77
+ ], DataDestinationController.prototype, "create", null);
78
+ __decorate([
79
+ (0, common_1.Put)(':id'),
80
+ (0, data_destination_api_1.UpdateDataDestinationSpec)(),
81
+ __param(0, (0, authorization_context_1.AuthContext)()),
82
+ __param(1, (0, common_1.Param)('id')),
83
+ __param(2, (0, common_1.Body)()),
84
+ __metadata("design:type", Function),
85
+ __metadata("design:paramtypes", [Object, String, update_data_destination_api_dto_1.UpdateDataDestinationApiDto]),
86
+ __metadata("design:returntype", Promise)
87
+ ], DataDestinationController.prototype, "update", null);
88
+ __decorate([
89
+ (0, common_1.Get)(':id'),
90
+ (0, data_destination_api_1.GetDataDestinationSpec)(),
91
+ __param(0, (0, authorization_context_1.AuthContext)()),
92
+ __param(1, (0, common_1.Param)('id')),
93
+ __metadata("design:type", Function),
94
+ __metadata("design:paramtypes", [Object, String]),
95
+ __metadata("design:returntype", Promise)
96
+ ], DataDestinationController.prototype, "get", null);
97
+ __decorate([
98
+ (0, common_1.Get)(),
99
+ (0, data_destination_api_1.ListDataDestinationsSpec)(),
100
+ __param(0, (0, authorization_context_1.AuthContext)()),
101
+ __metadata("design:type", Function),
102
+ __metadata("design:paramtypes", [Object]),
103
+ __metadata("design:returntype", Promise)
104
+ ], DataDestinationController.prototype, "getAll", null);
105
+ __decorate([
106
+ (0, common_1.Delete)(':id'),
107
+ (0, data_destination_api_1.DeleteDataDestinationSpec)(),
108
+ __param(0, (0, authorization_context_1.AuthContext)()),
109
+ __param(1, (0, common_1.Param)('id')),
110
+ __metadata("design:type", Function),
111
+ __metadata("design:paramtypes", [Object, String]),
112
+ __metadata("design:returntype", Promise)
113
+ ], DataDestinationController.prototype, "delete", null);
114
+ exports.DataDestinationController = DataDestinationController = __decorate([
115
+ (0, common_1.Controller)('data-destinations'),
116
+ (0, swagger_1.ApiTags)('DataDestinations'),
117
+ __metadata("design:paramtypes", [create_data_destination_service_1.CreateDataDestinationService,
118
+ update_data_destination_service_1.UpdateDataDestinationService,
119
+ get_data_destination_service_1.GetDataDestinationService,
120
+ list_data_destinations_service_1.ListDataDestinationsService,
121
+ delete_data_destination_service_1.DeleteDataDestinationService,
122
+ data_destination_mapper_1.DataDestinationMapper])
123
+ ], DataDestinationController);
124
+ //# sourceMappingURL=data-destination.controller.js.map
@@ -30,6 +30,7 @@ const delete_data_mart_service_1 = require("../use-cases/delete-data-mart.servic
30
30
  const swagger_1 = require("@nestjs/swagger");
31
31
  const data_mart_api_1 = require("./spec/data-mart.api");
32
32
  const authorization_context_1 = require("../../common/authorization-context/authorization.context");
33
+ const run_data_mart_service_1 = require("../use-cases/run-data-mart.service");
33
34
  let DataMartController = class DataMartController {
34
35
  createDataMartService;
35
36
  listDataMartsService;
@@ -40,7 +41,8 @@ let DataMartController = class DataMartController {
40
41
  publishDataMartService;
41
42
  deleteDataMartService;
42
43
  mapper;
43
- constructor(createDataMartService, listDataMartsService, getDataMartService, updateDefinitionService, updateTitleService, updateDescriptionService, publishDataMartService, deleteDataMartService, mapper) {
44
+ runDataMartService;
45
+ constructor(createDataMartService, listDataMartsService, getDataMartService, updateDefinitionService, updateTitleService, updateDescriptionService, publishDataMartService, deleteDataMartService, mapper, runDataMartService) {
44
46
  this.createDataMartService = createDataMartService;
45
47
  this.listDataMartsService = listDataMartsService;
46
48
  this.getDataMartService = getDataMartService;
@@ -50,6 +52,7 @@ let DataMartController = class DataMartController {
50
52
  this.publishDataMartService = publishDataMartService;
51
53
  this.deleteDataMartService = deleteDataMartService;
52
54
  this.mapper = mapper;
55
+ this.runDataMartService = runDataMartService;
53
56
  }
54
57
  async create(context, dto) {
55
58
  const command = this.mapper.toCreateDomainCommand(context, dto);
@@ -90,6 +93,11 @@ let DataMartController = class DataMartController {
90
93
  const command = this.mapper.toDeleteCommand(id, context);
91
94
  await this.deleteDataMartService.run(command);
92
95
  }
96
+ async manualRun(context, id) {
97
+ const command = this.mapper.toRunCommand(id, context);
98
+ const runId = await this.runDataMartService.run(command.id, command.projectId, command.userId);
99
+ return { runId };
100
+ }
93
101
  };
94
102
  exports.DataMartController = DataMartController;
95
103
  __decorate([
@@ -166,6 +174,15 @@ __decorate([
166
174
  __metadata("design:paramtypes", [Object, String]),
167
175
  __metadata("design:returntype", Promise)
168
176
  ], DataMartController.prototype, "delete", null);
177
+ __decorate([
178
+ (0, common_1.Post)(':id/manual-run'),
179
+ (0, data_mart_api_1.RunDataMartSpec)(),
180
+ __param(0, (0, authorization_context_1.AuthContext)()),
181
+ __param(1, (0, common_1.Param)('id')),
182
+ __metadata("design:type", Function),
183
+ __metadata("design:paramtypes", [Object, String]),
184
+ __metadata("design:returntype", Promise)
185
+ ], DataMartController.prototype, "manualRun", null);
169
186
  exports.DataMartController = DataMartController = __decorate([
170
187
  (0, common_1.Controller)('data-marts'),
171
188
  (0, swagger_1.ApiTags)('DataMarts'),
@@ -177,6 +194,7 @@ exports.DataMartController = DataMartController = __decorate([
177
194
  update_data_mart_description_service_1.UpdateDataMartDescriptionService,
178
195
  publish_data_mart_service_1.PublishDataMartService,
179
196
  delete_data_mart_service_1.DeleteDataMartService,
180
- data_mart_mapper_1.DataMartMapper])
197
+ data_mart_mapper_1.DataMartMapper,
198
+ run_data_mart_service_1.RunDataMartService])
181
199
  ], DataMartController);
182
200
  //# sourceMappingURL=data-mart.controller.js.map