@oneuptime/common 10.7.1 → 10.8.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 (262) hide show
  1. package/Models/DatabaseModels/CloudResource.ts +846 -0
  2. package/Models/DatabaseModels/CloudResourceInstance.ts +276 -0
  3. package/Models/DatabaseModels/CloudResourceLabelRule.ts +510 -0
  4. package/Models/DatabaseModels/CloudResourceOwnerRule.ts +592 -0
  5. package/Models/DatabaseModels/CloudResourceOwnerTeam.ts +487 -0
  6. package/Models/DatabaseModels/CloudResourceOwnerUser.ts +486 -0
  7. package/Models/DatabaseModels/Host.ts +209 -0
  8. package/Models/DatabaseModels/Index.ts +36 -0
  9. package/Models/DatabaseModels/RumApplication.ts +731 -0
  10. package/Models/DatabaseModels/RumApplicationClient.ts +229 -0
  11. package/Models/DatabaseModels/RumApplicationLabelRule.ts +510 -0
  12. package/Models/DatabaseModels/RumApplicationOwnerRule.ts +592 -0
  13. package/Models/DatabaseModels/RumApplicationOwnerTeam.ts +486 -0
  14. package/Models/DatabaseModels/RumApplicationOwnerUser.ts +485 -0
  15. package/Models/DatabaseModels/ServerlessFunction.ts +881 -0
  16. package/Models/DatabaseModels/ServerlessFunctionInstance.ts +212 -0
  17. package/Models/DatabaseModels/ServerlessFunctionLabelRule.ts +510 -0
  18. package/Models/DatabaseModels/ServerlessFunctionOwnerRule.ts +592 -0
  19. package/Models/DatabaseModels/ServerlessFunctionOwnerTeam.ts +487 -0
  20. package/Models/DatabaseModels/ServerlessFunctionOwnerUser.ts +486 -0
  21. package/Models/DatabaseModels/Service.ts +268 -0
  22. package/Models/DatabaseModels/TelemetryException.ts +15 -1
  23. package/Models/DatabaseModels/WorkflowLog.ts +52 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.ts +21 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.ts +108 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.ts +205 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.ts +195 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.ts +202 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.ts +156 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.ts +149 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.ts +149 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.ts +95 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.ts +25 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.ts +30 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +22 -0
  36. package/Server/Infrastructure/Queue.ts +11 -0
  37. package/Server/Services/CloudResourceInstanceService.ts +76 -0
  38. package/Server/Services/CloudResourceLabelRuleEngineService.ts +175 -0
  39. package/Server/Services/CloudResourceLabelRuleService.ts +14 -0
  40. package/Server/Services/CloudResourceOwnerRuleEngineService.ts +192 -0
  41. package/Server/Services/CloudResourceOwnerRuleService.ts +14 -0
  42. package/Server/Services/CloudResourceOwnerTeamService.ts +10 -0
  43. package/Server/Services/CloudResourceOwnerUserService.ts +10 -0
  44. package/Server/Services/CloudResourceService.ts +342 -0
  45. package/Server/Services/ExceptionAggregationService.ts +3 -0
  46. package/Server/Services/HostService.ts +42 -0
  47. package/Server/Services/LogAggregationService.ts +3 -0
  48. package/Server/Services/MetricAggregationService.ts +3 -0
  49. package/Server/Services/OpenTelemetryIngestService.ts +148 -1
  50. package/Server/Services/RumApplicationClientService.ts +69 -0
  51. package/Server/Services/RumApplicationLabelRuleEngineService.ts +175 -0
  52. package/Server/Services/RumApplicationLabelRuleService.ts +14 -0
  53. package/Server/Services/RumApplicationOwnerRuleEngineService.ts +192 -0
  54. package/Server/Services/RumApplicationOwnerRuleService.ts +14 -0
  55. package/Server/Services/RumApplicationOwnerTeamService.ts +10 -0
  56. package/Server/Services/RumApplicationOwnerUserService.ts +10 -0
  57. package/Server/Services/RumApplicationService.ts +301 -0
  58. package/Server/Services/ServerlessFunctionInstanceService.ts +61 -0
  59. package/Server/Services/ServerlessFunctionLabelRuleEngineService.ts +182 -0
  60. package/Server/Services/ServerlessFunctionLabelRuleService.ts +14 -0
  61. package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +199 -0
  62. package/Server/Services/ServerlessFunctionOwnerRuleService.ts +14 -0
  63. package/Server/Services/ServerlessFunctionOwnerTeamService.ts +10 -0
  64. package/Server/Services/ServerlessFunctionOwnerUserService.ts +10 -0
  65. package/Server/Services/ServerlessFunctionService.ts +351 -0
  66. package/Server/Services/ServiceService.ts +95 -8
  67. package/Server/Services/TraceAggregationService.ts +3 -0
  68. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +39 -0
  69. package/Server/Types/Workflow/ComponentCode.ts +9 -0
  70. package/Server/Types/Workflow/Components/Index.ts +2 -0
  71. package/Server/Types/Workflow/Components/Sleep.ts +105 -0
  72. package/Server/Types/Workflow/Workflow.ts +6 -0
  73. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +150 -0
  74. package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +193 -0
  75. package/Tests/UI/Components/DuplicateModel.test.tsx +2 -2
  76. package/Types/Monitor/KubernetesAlertTemplates.ts +239 -14
  77. package/Types/Permission.ts +692 -1
  78. package/Types/Telemetry/ServiceType.ts +3 -0
  79. package/Types/Workflow/ComponentID.ts +1 -0
  80. package/Types/Workflow/Components/Sleep.ts +71 -0
  81. package/Types/Workflow/Components.ts +2 -0
  82. package/Types/Workflow/WorkflowStatus.ts +1 -0
  83. package/UI/Components/BulkUpdate/BulkLabelActions.tsx +159 -32
  84. package/UI/Components/Navbar/NavBar.tsx +72 -123
  85. package/UI/Components/Navbar/NavBarMenuModal.tsx +642 -0
  86. package/UI/Components/Workflow/WorkflowStatus.tsx +3 -0
  87. package/build/dist/Models/DatabaseModels/CloudResource.js +871 -0
  88. package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -0
  89. package/build/dist/Models/DatabaseModels/CloudResourceInstance.js +300 -0
  90. package/build/dist/Models/DatabaseModels/CloudResourceInstance.js.map +1 -0
  91. package/build/dist/Models/DatabaseModels/CloudResourceLabelRule.js +520 -0
  92. package/build/dist/Models/DatabaseModels/CloudResourceLabelRule.js.map +1 -0
  93. package/build/dist/Models/DatabaseModels/CloudResourceOwnerRule.js +601 -0
  94. package/build/dist/Models/DatabaseModels/CloudResourceOwnerRule.js.map +1 -0
  95. package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js +503 -0
  96. package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js.map +1 -0
  97. package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js +502 -0
  98. package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js.map +1 -0
  99. package/build/dist/Models/DatabaseModels/Host.js +215 -0
  100. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  101. package/build/dist/Models/DatabaseModels/Index.js +36 -0
  102. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  103. package/build/dist/Models/DatabaseModels/RumApplication.js +751 -0
  104. package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -0
  105. package/build/dist/Models/DatabaseModels/RumApplicationClient.js +252 -0
  106. package/build/dist/Models/DatabaseModels/RumApplicationClient.js.map +1 -0
  107. package/build/dist/Models/DatabaseModels/RumApplicationLabelRule.js +520 -0
  108. package/build/dist/Models/DatabaseModels/RumApplicationLabelRule.js.map +1 -0
  109. package/build/dist/Models/DatabaseModels/RumApplicationOwnerRule.js +601 -0
  110. package/build/dist/Models/DatabaseModels/RumApplicationOwnerRule.js.map +1 -0
  111. package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js +503 -0
  112. package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js.map +1 -0
  113. package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js +502 -0
  114. package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js.map +1 -0
  115. package/build/dist/Models/DatabaseModels/ServerlessFunction.js +908 -0
  116. package/build/dist/Models/DatabaseModels/ServerlessFunction.js.map +1 -0
  117. package/build/dist/Models/DatabaseModels/ServerlessFunctionInstance.js +234 -0
  118. package/build/dist/Models/DatabaseModels/ServerlessFunctionInstance.js.map +1 -0
  119. package/build/dist/Models/DatabaseModels/ServerlessFunctionLabelRule.js +520 -0
  120. package/build/dist/Models/DatabaseModels/ServerlessFunctionLabelRule.js.map +1 -0
  121. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerRule.js +601 -0
  122. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerRule.js.map +1 -0
  123. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js +503 -0
  124. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js.map +1 -0
  125. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js +502 -0
  126. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js.map +1 -0
  127. package/build/dist/Models/DatabaseModels/Service.js +276 -0
  128. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  129. package/build/dist/Models/DatabaseModels/TelemetryException.js +12 -1
  130. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  131. package/build/dist/Models/DatabaseModels/WorkflowLog.js +53 -0
  132. package/build/dist/Models/DatabaseModels/WorkflowLog.js.map +1 -1
  133. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.js +14 -0
  134. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.js.map +1 -0
  135. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.js +53 -0
  136. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.js.map +1 -0
  137. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.js +82 -0
  138. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.js.map +1 -0
  139. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.js +82 -0
  140. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.js.map +1 -0
  141. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.js +83 -0
  142. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.js.map +1 -0
  143. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.js +67 -0
  144. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.js.map +1 -0
  145. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.js +60 -0
  146. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.js.map +1 -0
  147. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.js +60 -0
  148. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.js.map +1 -0
  149. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.js +45 -0
  150. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.js.map +1 -0
  151. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.js +18 -0
  152. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.js.map +1 -0
  153. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.js +27 -0
  154. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.js.map +1 -0
  155. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +22 -0
  156. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  157. package/build/dist/Server/Infrastructure/Queue.js +3 -0
  158. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  159. package/build/dist/Server/Services/CloudResourceInstanceService.js +76 -0
  160. package/build/dist/Server/Services/CloudResourceInstanceService.js.map +1 -0
  161. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +160 -0
  162. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -0
  163. package/build/dist/Server/Services/CloudResourceLabelRuleService.js +13 -0
  164. package/build/dist/Server/Services/CloudResourceLabelRuleService.js.map +1 -0
  165. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +179 -0
  166. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -0
  167. package/build/dist/Server/Services/CloudResourceOwnerRuleService.js +13 -0
  168. package/build/dist/Server/Services/CloudResourceOwnerRuleService.js.map +1 -0
  169. package/build/dist/Server/Services/CloudResourceOwnerTeamService.js +9 -0
  170. package/build/dist/Server/Services/CloudResourceOwnerTeamService.js.map +1 -0
  171. package/build/dist/Server/Services/CloudResourceOwnerUserService.js +9 -0
  172. package/build/dist/Server/Services/CloudResourceOwnerUserService.js.map +1 -0
  173. package/build/dist/Server/Services/CloudResourceService.js +287 -0
  174. package/build/dist/Server/Services/CloudResourceService.js.map +1 -0
  175. package/build/dist/Server/Services/ExceptionAggregationService.js +3 -0
  176. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  177. package/build/dist/Server/Services/HostService.js +29 -1
  178. package/build/dist/Server/Services/HostService.js.map +1 -1
  179. package/build/dist/Server/Services/LogAggregationService.js +3 -0
  180. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  181. package/build/dist/Server/Services/MetricAggregationService.js +3 -0
  182. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  183. package/build/dist/Server/Services/OpenTelemetryIngestService.js +98 -2
  184. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  185. package/build/dist/Server/Services/RumApplicationClientService.js +70 -0
  186. package/build/dist/Server/Services/RumApplicationClientService.js.map +1 -0
  187. package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js +160 -0
  188. package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js.map +1 -0
  189. package/build/dist/Server/Services/RumApplicationLabelRuleService.js +13 -0
  190. package/build/dist/Server/Services/RumApplicationLabelRuleService.js.map +1 -0
  191. package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js +179 -0
  192. package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -0
  193. package/build/dist/Server/Services/RumApplicationOwnerRuleService.js +13 -0
  194. package/build/dist/Server/Services/RumApplicationOwnerRuleService.js.map +1 -0
  195. package/build/dist/Server/Services/RumApplicationOwnerTeamService.js +9 -0
  196. package/build/dist/Server/Services/RumApplicationOwnerTeamService.js.map +1 -0
  197. package/build/dist/Server/Services/RumApplicationOwnerUserService.js +9 -0
  198. package/build/dist/Server/Services/RumApplicationOwnerUserService.js.map +1 -0
  199. package/build/dist/Server/Services/RumApplicationService.js +259 -0
  200. package/build/dist/Server/Services/RumApplicationService.js.map +1 -0
  201. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js +64 -0
  202. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js.map +1 -0
  203. package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js +160 -0
  204. package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js.map +1 -0
  205. package/build/dist/Server/Services/ServerlessFunctionLabelRuleService.js +13 -0
  206. package/build/dist/Server/Services/ServerlessFunctionLabelRuleService.js.map +1 -0
  207. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +179 -0
  208. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -0
  209. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleService.js +13 -0
  210. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleService.js.map +1 -0
  211. package/build/dist/Server/Services/ServerlessFunctionOwnerTeamService.js +9 -0
  212. package/build/dist/Server/Services/ServerlessFunctionOwnerTeamService.js.map +1 -0
  213. package/build/dist/Server/Services/ServerlessFunctionOwnerUserService.js +9 -0
  214. package/build/dist/Server/Services/ServerlessFunctionOwnerUserService.js.map +1 -0
  215. package/build/dist/Server/Services/ServerlessFunctionService.js +299 -0
  216. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -0
  217. package/build/dist/Server/Services/ServiceService.js +63 -7
  218. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  219. package/build/dist/Server/Services/TraceAggregationService.js +3 -0
  220. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  221. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +39 -0
  222. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  223. package/build/dist/Server/Types/Workflow/ComponentCode.js.map +1 -1
  224. package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
  225. package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
  226. package/build/dist/Server/Types/Workflow/Components/Sleep.js +85 -0
  227. package/build/dist/Server/Types/Workflow/Components/Sleep.js.map +1 -0
  228. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +90 -0
  229. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  230. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js +121 -0
  231. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js.map +1 -0
  232. package/build/dist/Tests/UI/Components/DuplicateModel.test.js +2 -2
  233. package/build/dist/Tests/UI/Components/DuplicateModel.test.js.map +1 -1
  234. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +210 -14
  235. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  236. package/build/dist/Types/Permission.js +609 -1
  237. package/build/dist/Types/Permission.js.map +1 -1
  238. package/build/dist/Types/Telemetry/ServiceType.js +3 -0
  239. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  240. package/build/dist/Types/Workflow/ComponentID.js +1 -0
  241. package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
  242. package/build/dist/Types/Workflow/Components/Sleep.js +64 -0
  243. package/build/dist/Types/Workflow/Components/Sleep.js.map +1 -0
  244. package/build/dist/Types/Workflow/Components.js +2 -0
  245. package/build/dist/Types/Workflow/Components.js.map +1 -1
  246. package/build/dist/Types/Workflow/WorkflowStatus.js +1 -0
  247. package/build/dist/Types/Workflow/WorkflowStatus.js.map +1 -1
  248. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +113 -19
  249. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
  250. package/build/dist/UI/Components/Navbar/NavBar.js +34 -66
  251. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  252. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +412 -0
  253. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -0
  254. package/build/dist/UI/Components/Workflow/WorkflowStatus.js +3 -0
  255. package/build/dist/UI/Components/Workflow/WorkflowStatus.js.map +1 -1
  256. package/package.json +1 -1
  257. package/UI/Components/Navbar/NavBarMenu.tsx +0 -183
  258. package/UI/Components/Navbar/NavBarMenuItem.tsx +0 -146
  259. package/build/dist/UI/Components/Navbar/NavBarMenu.js +0 -82
  260. package/build/dist/UI/Components/Navbar/NavBarMenu.js.map +0 -1
  261. package/build/dist/UI/Components/Navbar/NavBarMenuItem.js +0 -109
  262. package/build/dist/UI/Components/Navbar/NavBarMenuItem.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Phase 0 (capture dropped OTel attributes): add first-class columns to
3
+ * Service and Host for resource attributes that ingest previously dropped
4
+ * (they only lived as resource.* attributes on telemetry rows). These are
5
+ * auto-populated from OpenTelemetry resource attributes at ingest time and
6
+ * are system-managed (not user-editable).
7
+ */
8
+ export class AddTelemetryResourceMetadataColumns1780931863719 {
9
+ constructor() {
10
+ this.name = "AddTelemetryResourceMetadataColumns1780931863719";
11
+ }
12
+ async up(queryRunner) {
13
+ // Service
14
+ await queryRunner.query(`ALTER TABLE "Service" ADD "serviceVersion" character varying(100)`);
15
+ await queryRunner.query(`ALTER TABLE "Service" ADD "deploymentEnvironment" character varying(100)`);
16
+ await queryRunner.query(`ALTER TABLE "Service" ADD "serviceNamespace" character varying(100)`);
17
+ await queryRunner.query(`ALTER TABLE "Service" ADD "runtimeName" character varying(100)`);
18
+ await queryRunner.query(`ALTER TABLE "Service" ADD "runtimeVersion" character varying(100)`);
19
+ await queryRunner.query(`ALTER TABLE "Service" ADD "cloudProvider" character varying(100)`);
20
+ await queryRunner.query(`ALTER TABLE "Service" ADD "cloudPlatform" character varying(100)`);
21
+ await queryRunner.query(`ALTER TABLE "Service" ADD "cloudRegion" character varying(100)`);
22
+ await queryRunner.query(`ALTER TABLE "Service" ADD "cloudAccountId" character varying(100)`);
23
+ // Host
24
+ await queryRunner.query(`ALTER TABLE "Host" ADD "deploymentEnvironment" character varying(100)`);
25
+ await queryRunner.query(`ALTER TABLE "Host" ADD "runtimeName" character varying(100)`);
26
+ await queryRunner.query(`ALTER TABLE "Host" ADD "runtimeVersion" character varying(100)`);
27
+ await queryRunner.query(`ALTER TABLE "Host" ADD "cloudProvider" character varying(100)`);
28
+ await queryRunner.query(`ALTER TABLE "Host" ADD "cloudPlatform" character varying(100)`);
29
+ await queryRunner.query(`ALTER TABLE "Host" ADD "cloudRegion" character varying(100)`);
30
+ await queryRunner.query(`ALTER TABLE "Host" ADD "cloudAccountId" character varying(100)`);
31
+ }
32
+ async down(queryRunner) {
33
+ // Host
34
+ await queryRunner.query(`ALTER TABLE "Host" DROP COLUMN "cloudAccountId"`);
35
+ await queryRunner.query(`ALTER TABLE "Host" DROP COLUMN "cloudRegion"`);
36
+ await queryRunner.query(`ALTER TABLE "Host" DROP COLUMN "cloudPlatform"`);
37
+ await queryRunner.query(`ALTER TABLE "Host" DROP COLUMN "cloudProvider"`);
38
+ await queryRunner.query(`ALTER TABLE "Host" DROP COLUMN "runtimeVersion"`);
39
+ await queryRunner.query(`ALTER TABLE "Host" DROP COLUMN "runtimeName"`);
40
+ await queryRunner.query(`ALTER TABLE "Host" DROP COLUMN "deploymentEnvironment"`);
41
+ // Service
42
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "cloudAccountId"`);
43
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "cloudRegion"`);
44
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "cloudPlatform"`);
45
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "cloudProvider"`);
46
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "runtimeVersion"`);
47
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "runtimeName"`);
48
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "serviceNamespace"`);
49
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "deploymentEnvironment"`);
50
+ await queryRunner.query(`ALTER TABLE "Service" DROP COLUMN "serviceVersion"`);
51
+ }
52
+ }
53
+ //# sourceMappingURL=1780931863719-AddTelemetryResourceMetadataColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780931863719-AddTelemetryResourceMetadataColumns.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAO,gDAAgD;IAA7D;QAGS,SAAI,GAAG,kDAAkD,CAAC;IA+FnE,CAAC;IA7FQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,UAAU;QACV,MAAM,WAAW,CAAC,KAAK,CACrB,mEAAmE,CACpE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,0EAA0E,CAC3E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,qEAAqE,CACtE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gEAAgE,CACjE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mEAAmE,CACpE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kEAAkE,CACnE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kEAAkE,CACnE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gEAAgE,CACjE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mEAAmE,CACpE,CAAC;QAEF,OAAO;QACP,MAAM,WAAW,CAAC,KAAK,CACrB,uEAAuE,CACxE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6DAA6D,CAC9D,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gEAAgE,CACjE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+DAA+D,CAChE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+DAA+D,CAChE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6DAA6D,CAC9D,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,OAAO;QACP,MAAM,WAAW,CAAC,KAAK,CACrB,iDAAiD,CAClD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACxE,MAAM,WAAW,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC1E,MAAM,WAAW,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC1E,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC3E,MAAM,WAAW,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACxE,MAAM,WAAW,CAAC,KAAK,CACrB,wDAAwD,CACzD,CAAC;QAEF,UAAU;QACV,MAAM,WAAW,CAAC,KAAK,CACrB,oDAAoD,CACrD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC3E,MAAM,WAAW,CAAC,KAAK,CACrB,mDAAmD,CACpD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mDAAmD,CACpD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,oDAAoD,CACrD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC3E,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,2DAA2D,CAC5D,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,oDAAoD,CACrD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Phase 1: Serverless / FaaS resource type. Creates the ServerlessFunction
3
+ * resource table, its owner-user / owner-team tables, and the label join
4
+ * table — mirroring the Host/DockerHost/KubernetesCluster shape so the
5
+ * polymorphic telemetry serviceId can point at a ServerlessFunction row.
6
+ */
7
+ export class AddServerlessFunctionTables1780933132562 {
8
+ constructor() {
9
+ this.name = "AddServerlessFunctionTables1780933132562";
10
+ }
11
+ async up(queryRunner) {
12
+ await queryRunner.query(`CREATE TABLE "ServerlessFunction" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "slug" character varying(100) NOT NULL, "description" character varying(500), "functionIdentifier" character varying(100) NOT NULL, "cloudPlatform" character varying(100), "cloudProvider" character varying(100), "cloudRegion" character varying(100), "cloudAccountId" character varying(100), "functionVersion" character varying(100), "runtimeName" character varying(100), "runtimeVersion" character varying(100), "otelCollectorStatus" character varying(100) DEFAULT 'disconnected', "agentVersion" character varying(100), "lastSeenAt" TIMESTAMP WITH TIME ZONE, "retainTelemetryDataForDays" integer, "telemetryRetentionConfig" jsonb, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_ServerlessFunction" PRIMARY KEY ("_id"))`);
13
+ await queryRunner.query(`CREATE INDEX "IDX_ServerlessFunction_projectId" ON "ServerlessFunction" ("projectId") `);
14
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_ServerlessFunction_project_fnId" ON "ServerlessFunction" ("projectId", "functionIdentifier") `);
15
+ await queryRunner.query(`CREATE TABLE "ServerlessFunctionOwnerTeam" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "teamId" uuid NOT NULL, "serverlessFunctionId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_ServerlessFunctionOwnerTeam" PRIMARY KEY ("_id"))`);
16
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerTeam_projectId" ON "ServerlessFunctionOwnerTeam" ("projectId") `);
17
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerTeam_teamId" ON "ServerlessFunctionOwnerTeam" ("teamId") `);
18
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerTeam_fnId" ON "ServerlessFunctionOwnerTeam" ("serverlessFunctionId") `);
19
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerTeam_notified" ON "ServerlessFunctionOwnerTeam" ("isOwnerNotified") `);
20
+ await queryRunner.query(`CREATE TABLE "ServerlessFunctionOwnerUser" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "userId" uuid NOT NULL, "serverlessFunctionId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_ServerlessFunctionOwnerUser" PRIMARY KEY ("_id"))`);
21
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerUser_projectId" ON "ServerlessFunctionOwnerUser" ("projectId") `);
22
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerUser_userId" ON "ServerlessFunctionOwnerUser" ("userId") `);
23
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerUser_fnId" ON "ServerlessFunctionOwnerUser" ("serverlessFunctionId") `);
24
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerUser_notified" ON "ServerlessFunctionOwnerUser" ("isOwnerNotified") `);
25
+ await queryRunner.query(`CREATE TABLE "ServerlessFunctionLabel" ("serverlessFunctionId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_ServerlessFunctionLabel" PRIMARY KEY ("serverlessFunctionId", "labelId"))`);
26
+ await queryRunner.query(`CREATE INDEX "IDX_ServerlessFunctionLabel_fnId" ON "ServerlessFunctionLabel" ("serverlessFunctionId") `);
27
+ await queryRunner.query(`CREATE INDEX "IDX_ServerlessFunctionLabel_labelId" ON "ServerlessFunctionLabel" ("labelId") `);
28
+ // Foreign keys: ServerlessFunction
29
+ await queryRunner.query(`ALTER TABLE "ServerlessFunction" ADD CONSTRAINT "FK_ServerlessFunction_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
30
+ await queryRunner.query(`ALTER TABLE "ServerlessFunction" ADD CONSTRAINT "FK_ServerlessFunction_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
31
+ await queryRunner.query(`ALTER TABLE "ServerlessFunction" ADD CONSTRAINT "FK_ServerlessFunction_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
32
+ // Foreign keys: ServerlessFunctionOwnerTeam
33
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" ADD CONSTRAINT "FK_SrvlessFnOwnerTeam_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
34
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" ADD CONSTRAINT "FK_SrvlessFnOwnerTeam_teamId" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
35
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" ADD CONSTRAINT "FK_SrvlessFnOwnerTeam_fnId" FOREIGN KEY ("serverlessFunctionId") REFERENCES "ServerlessFunction"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
36
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" ADD CONSTRAINT "FK_SrvlessFnOwnerTeam_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
37
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" ADD CONSTRAINT "FK_SrvlessFnOwnerTeam_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
38
+ // Foreign keys: ServerlessFunctionOwnerUser
39
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" ADD CONSTRAINT "FK_SrvlessFnOwnerUser_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
40
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" ADD CONSTRAINT "FK_SrvlessFnOwnerUser_userId" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
41
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" ADD CONSTRAINT "FK_SrvlessFnOwnerUser_fnId" FOREIGN KEY ("serverlessFunctionId") REFERENCES "ServerlessFunction"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
42
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" ADD CONSTRAINT "FK_SrvlessFnOwnerUser_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
43
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" ADD CONSTRAINT "FK_SrvlessFnOwnerUser_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
44
+ // Foreign keys: ServerlessFunctionLabel join table
45
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabel" ADD CONSTRAINT "FK_ServerlessFunctionLabel_fnId" FOREIGN KEY ("serverlessFunctionId") REFERENCES "ServerlessFunction"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
46
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabel" ADD CONSTRAINT "FK_ServerlessFunctionLabel_labelId" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
47
+ }
48
+ async down(queryRunner) {
49
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabel" DROP CONSTRAINT "FK_ServerlessFunctionLabel_labelId"`);
50
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabel" DROP CONSTRAINT "FK_ServerlessFunctionLabel_fnId"`);
51
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" DROP CONSTRAINT "FK_SrvlessFnOwnerUser_deletedBy"`);
52
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" DROP CONSTRAINT "FK_SrvlessFnOwnerUser_createdBy"`);
53
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" DROP CONSTRAINT "FK_SrvlessFnOwnerUser_fnId"`);
54
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" DROP CONSTRAINT "FK_SrvlessFnOwnerUser_userId"`);
55
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerUser" DROP CONSTRAINT "FK_SrvlessFnOwnerUser_projectId"`);
56
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" DROP CONSTRAINT "FK_SrvlessFnOwnerTeam_deletedBy"`);
57
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" DROP CONSTRAINT "FK_SrvlessFnOwnerTeam_createdBy"`);
58
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" DROP CONSTRAINT "FK_SrvlessFnOwnerTeam_fnId"`);
59
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" DROP CONSTRAINT "FK_SrvlessFnOwnerTeam_teamId"`);
60
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerTeam" DROP CONSTRAINT "FK_SrvlessFnOwnerTeam_projectId"`);
61
+ await queryRunner.query(`ALTER TABLE "ServerlessFunction" DROP CONSTRAINT "FK_ServerlessFunction_deletedBy"`);
62
+ await queryRunner.query(`ALTER TABLE "ServerlessFunction" DROP CONSTRAINT "FK_ServerlessFunction_createdBy"`);
63
+ await queryRunner.query(`ALTER TABLE "ServerlessFunction" DROP CONSTRAINT "FK_ServerlessFunction_projectId"`);
64
+ await queryRunner.query(`DROP INDEX "public"."IDX_ServerlessFunctionLabel_labelId"`);
65
+ await queryRunner.query(`DROP INDEX "public"."IDX_ServerlessFunctionLabel_fnId"`);
66
+ await queryRunner.query(`DROP TABLE "ServerlessFunctionLabel"`);
67
+ await queryRunner.query(`DROP INDEX "public"."IDX_SrvlessFnOwnerUser_notified"`);
68
+ await queryRunner.query(`DROP INDEX "public"."IDX_SrvlessFnOwnerUser_fnId"`);
69
+ await queryRunner.query(`DROP INDEX "public"."IDX_SrvlessFnOwnerUser_userId"`);
70
+ await queryRunner.query(`DROP INDEX "public"."IDX_SrvlessFnOwnerUser_projectId"`);
71
+ await queryRunner.query(`DROP TABLE "ServerlessFunctionOwnerUser"`);
72
+ await queryRunner.query(`DROP INDEX "public"."IDX_SrvlessFnOwnerTeam_notified"`);
73
+ await queryRunner.query(`DROP INDEX "public"."IDX_SrvlessFnOwnerTeam_fnId"`);
74
+ await queryRunner.query(`DROP INDEX "public"."IDX_SrvlessFnOwnerTeam_teamId"`);
75
+ await queryRunner.query(`DROP INDEX "public"."IDX_SrvlessFnOwnerTeam_projectId"`);
76
+ await queryRunner.query(`DROP TABLE "ServerlessFunctionOwnerTeam"`);
77
+ await queryRunner.query(`DROP INDEX "public"."UQ_ServerlessFunction_project_fnId"`);
78
+ await queryRunner.query(`DROP INDEX "public"."IDX_ServerlessFunction_projectId"`);
79
+ await queryRunner.query(`DROP TABLE "ServerlessFunction"`);
80
+ }
81
+ }
82
+ //# sourceMappingURL=1780933132562-AddServerlessFunctionTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780933132562-AddServerlessFunctionTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Phase 2: Cloud platform compute resource type. Creates the CloudResource
3
+ * resource table, its owner-user / owner-team tables, and the label join
4
+ * table — mirroring the ServerlessFunction shape so the polymorphic telemetry
5
+ * serviceId can point at a CloudResource row.
6
+ */
7
+ export class AddCloudResourceTables1780935387827 {
8
+ constructor() {
9
+ this.name = "AddCloudResourceTables1780935387827";
10
+ }
11
+ async up(queryRunner) {
12
+ await queryRunner.query(`CREATE TABLE "CloudResource" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "slug" character varying(100) NOT NULL, "description" character varying(500), "resourceIdentifier" character varying(100) NOT NULL, "cloudPlatform" character varying(100), "cloudProvider" character varying(100), "cloudRegion" character varying(100), "cloudAccountId" character varying(100), "runtimeName" character varying(100), "runtimeVersion" character varying(100), "otelCollectorStatus" character varying(100) DEFAULT 'disconnected', "agentVersion" character varying(100), "lastSeenAt" TIMESTAMP WITH TIME ZONE, "retainTelemetryDataForDays" integer, "telemetryRetentionConfig" jsonb, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_CloudResource" PRIMARY KEY ("_id"))`);
13
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResource_projectId" ON "CloudResource" ("projectId") `);
14
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_CloudResource_project_resId" ON "CloudResource" ("projectId", "resourceIdentifier") `);
15
+ await queryRunner.query(`CREATE TABLE "CloudResourceOwnerTeam" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "teamId" uuid NOT NULL, "cloudResourceId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_CloudResourceOwnerTeam" PRIMARY KEY ("_id"))`);
16
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerTeam_projectId" ON "CloudResourceOwnerTeam" ("projectId") `);
17
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerTeam_teamId" ON "CloudResourceOwnerTeam" ("teamId") `);
18
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerTeam_resId" ON "CloudResourceOwnerTeam" ("cloudResourceId") `);
19
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerTeam_notified" ON "CloudResourceOwnerTeam" ("isOwnerNotified") `);
20
+ await queryRunner.query(`CREATE TABLE "CloudResourceOwnerUser" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "userId" uuid NOT NULL, "cloudResourceId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_CloudResourceOwnerUser" PRIMARY KEY ("_id"))`);
21
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerUser_projectId" ON "CloudResourceOwnerUser" ("projectId") `);
22
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerUser_userId" ON "CloudResourceOwnerUser" ("userId") `);
23
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerUser_resId" ON "CloudResourceOwnerUser" ("cloudResourceId") `);
24
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerUser_notified" ON "CloudResourceOwnerUser" ("isOwnerNotified") `);
25
+ await queryRunner.query(`CREATE TABLE "CloudResourceLabel" ("cloudResourceId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResourceLabel" PRIMARY KEY ("cloudResourceId", "labelId"))`);
26
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResourceLabel_resId" ON "CloudResourceLabel" ("cloudResourceId") `);
27
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResourceLabel_labelId" ON "CloudResourceLabel" ("labelId") `);
28
+ // Foreign keys: CloudResource
29
+ await queryRunner.query(`ALTER TABLE "CloudResource" ADD CONSTRAINT "FK_CloudResource_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
30
+ await queryRunner.query(`ALTER TABLE "CloudResource" ADD CONSTRAINT "FK_CloudResource_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
31
+ await queryRunner.query(`ALTER TABLE "CloudResource" ADD CONSTRAINT "FK_CloudResource_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
32
+ // Foreign keys: CloudResourceOwnerTeam
33
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
34
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_teamId" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
35
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_resId" FOREIGN KEY ("cloudResourceId") REFERENCES "CloudResource"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
36
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
37
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
38
+ // Foreign keys: CloudResourceOwnerUser
39
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
40
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_userId" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
41
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_resId" FOREIGN KEY ("cloudResourceId") REFERENCES "CloudResource"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
42
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
43
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
44
+ // Foreign keys: CloudResourceLabel join table
45
+ await queryRunner.query(`ALTER TABLE "CloudResourceLabel" ADD CONSTRAINT "FK_CloudResourceLabel_resId" FOREIGN KEY ("cloudResourceId") REFERENCES "CloudResource"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
46
+ await queryRunner.query(`ALTER TABLE "CloudResourceLabel" ADD CONSTRAINT "FK_CloudResourceLabel_labelId" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
47
+ }
48
+ async down(queryRunner) {
49
+ await queryRunner.query(`ALTER TABLE "CloudResourceLabel" DROP CONSTRAINT "FK_CloudResourceLabel_labelId"`);
50
+ await queryRunner.query(`ALTER TABLE "CloudResourceLabel" DROP CONSTRAINT "FK_CloudResourceLabel_resId"`);
51
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_deletedBy"`);
52
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_createdBy"`);
53
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_resId"`);
54
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_userId"`);
55
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_projectId"`);
56
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_deletedBy"`);
57
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_createdBy"`);
58
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_resId"`);
59
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_teamId"`);
60
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_projectId"`);
61
+ await queryRunner.query(`ALTER TABLE "CloudResource" DROP CONSTRAINT "FK_CloudResource_deletedBy"`);
62
+ await queryRunner.query(`ALTER TABLE "CloudResource" DROP CONSTRAINT "FK_CloudResource_createdBy"`);
63
+ await queryRunner.query(`ALTER TABLE "CloudResource" DROP CONSTRAINT "FK_CloudResource_projectId"`);
64
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResourceLabel_labelId"`);
65
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResourceLabel_resId"`);
66
+ await queryRunner.query(`DROP TABLE "CloudResourceLabel"`);
67
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerUser_notified"`);
68
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerUser_resId"`);
69
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerUser_userId"`);
70
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerUser_projectId"`);
71
+ await queryRunner.query(`DROP TABLE "CloudResourceOwnerUser"`);
72
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerTeam_notified"`);
73
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerTeam_resId"`);
74
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerTeam_teamId"`);
75
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerTeam_projectId"`);
76
+ await queryRunner.query(`DROP TABLE "CloudResourceOwnerTeam"`);
77
+ await queryRunner.query(`DROP INDEX "public"."UQ_CloudResource_project_resId"`);
78
+ await queryRunner.query(`DROP INDEX "public"."IDX_CloudResource_projectId"`);
79
+ await queryRunner.query(`DROP TABLE "CloudResource"`);
80
+ }
81
+ }
82
+ //# sourceMappingURL=1780935387827-AddCloudResourceTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780935387827-AddCloudResourceTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /*
2
+ * Phase 3: Browser / Mobile RUM resource type. Creates the RumApplication
3
+ * resource table, its owner-user / owner-team tables, and the label join
4
+ * table — mirroring the other telemetry-resource shapes so the polymorphic
5
+ * telemetry serviceId can point at a RumApplication row. RUM is keyed per
6
+ * application (service.name), never per end-user device.
7
+ */
8
+ export class AddRumApplicationTables1780936579718 {
9
+ constructor() {
10
+ this.name = "AddRumApplicationTables1780936579718";
11
+ }
12
+ async up(queryRunner) {
13
+ await queryRunner.query(`CREATE TABLE "RumApplication" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "slug" character varying(100) NOT NULL, "description" character varying(500), "appIdentifier" character varying(100) NOT NULL, "clientType" character varying(100), "otelCollectorStatus" character varying(100) DEFAULT 'disconnected', "agentVersion" character varying(100), "lastSeenAt" TIMESTAMP WITH TIME ZONE, "retainTelemetryDataForDays" integer, "telemetryRetentionConfig" jsonb, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_RumApplication" PRIMARY KEY ("_id"))`);
14
+ await queryRunner.query(`CREATE INDEX "IDX_RumApplication_projectId" ON "RumApplication" ("projectId") `);
15
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_RumApplication_project_appId" ON "RumApplication" ("projectId", "appIdentifier") `);
16
+ await queryRunner.query(`CREATE TABLE "RumApplicationOwnerTeam" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "teamId" uuid NOT NULL, "rumApplicationId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_RumApplicationOwnerTeam" PRIMARY KEY ("_id"))`);
17
+ await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerTeam_projectId" ON "RumApplicationOwnerTeam" ("projectId") `);
18
+ await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerTeam_teamId" ON "RumApplicationOwnerTeam" ("teamId") `);
19
+ await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerTeam_appId" ON "RumApplicationOwnerTeam" ("rumApplicationId") `);
20
+ await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerTeam_notified" ON "RumApplicationOwnerTeam" ("isOwnerNotified") `);
21
+ await queryRunner.query(`CREATE TABLE "RumApplicationOwnerUser" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "userId" uuid NOT NULL, "rumApplicationId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_RumApplicationOwnerUser" PRIMARY KEY ("_id"))`);
22
+ await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerUser_projectId" ON "RumApplicationOwnerUser" ("projectId") `);
23
+ await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerUser_userId" ON "RumApplicationOwnerUser" ("userId") `);
24
+ await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerUser_appId" ON "RumApplicationOwnerUser" ("rumApplicationId") `);
25
+ await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerUser_notified" ON "RumApplicationOwnerUser" ("isOwnerNotified") `);
26
+ await queryRunner.query(`CREATE TABLE "RumApplicationLabel" ("rumApplicationId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_RumApplicationLabel" PRIMARY KEY ("rumApplicationId", "labelId"))`);
27
+ await queryRunner.query(`CREATE INDEX "IDX_RumApplicationLabel_appId" ON "RumApplicationLabel" ("rumApplicationId") `);
28
+ await queryRunner.query(`CREATE INDEX "IDX_RumApplicationLabel_labelId" ON "RumApplicationLabel" ("labelId") `);
29
+ // Foreign keys: RumApplication
30
+ await queryRunner.query(`ALTER TABLE "RumApplication" ADD CONSTRAINT "FK_RumApplication_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
31
+ await queryRunner.query(`ALTER TABLE "RumApplication" ADD CONSTRAINT "FK_RumApplication_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
32
+ await queryRunner.query(`ALTER TABLE "RumApplication" ADD CONSTRAINT "FK_RumApplication_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
33
+ // Foreign keys: RumApplicationOwnerTeam
34
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
35
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_teamId" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
36
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_appId" FOREIGN KEY ("rumApplicationId") REFERENCES "RumApplication"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
37
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
38
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
39
+ // Foreign keys: RumApplicationOwnerUser
40
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
41
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_userId" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
42
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_appId" FOREIGN KEY ("rumApplicationId") REFERENCES "RumApplication"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
43
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
44
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
45
+ // Foreign keys: RumApplicationLabel join table
46
+ await queryRunner.query(`ALTER TABLE "RumApplicationLabel" ADD CONSTRAINT "FK_RumApplicationLabel_appId" FOREIGN KEY ("rumApplicationId") REFERENCES "RumApplication"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
47
+ await queryRunner.query(`ALTER TABLE "RumApplicationLabel" ADD CONSTRAINT "FK_RumApplicationLabel_labelId" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
48
+ }
49
+ async down(queryRunner) {
50
+ await queryRunner.query(`ALTER TABLE "RumApplicationLabel" DROP CONSTRAINT "FK_RumApplicationLabel_labelId"`);
51
+ await queryRunner.query(`ALTER TABLE "RumApplicationLabel" DROP CONSTRAINT "FK_RumApplicationLabel_appId"`);
52
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_deletedBy"`);
53
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_createdBy"`);
54
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_appId"`);
55
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_userId"`);
56
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_projectId"`);
57
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_deletedBy"`);
58
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_createdBy"`);
59
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_appId"`);
60
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_teamId"`);
61
+ await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_projectId"`);
62
+ await queryRunner.query(`ALTER TABLE "RumApplication" DROP CONSTRAINT "FK_RumApplication_deletedBy"`);
63
+ await queryRunner.query(`ALTER TABLE "RumApplication" DROP CONSTRAINT "FK_RumApplication_createdBy"`);
64
+ await queryRunner.query(`ALTER TABLE "RumApplication" DROP CONSTRAINT "FK_RumApplication_projectId"`);
65
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumApplicationLabel_labelId"`);
66
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumApplicationLabel_appId"`);
67
+ await queryRunner.query(`DROP TABLE "RumApplicationLabel"`);
68
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerUser_notified"`);
69
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerUser_appId"`);
70
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerUser_userId"`);
71
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerUser_projectId"`);
72
+ await queryRunner.query(`DROP TABLE "RumApplicationOwnerUser"`);
73
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerTeam_notified"`);
74
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerTeam_appId"`);
75
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerTeam_teamId"`);
76
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerTeam_projectId"`);
77
+ await queryRunner.query(`DROP TABLE "RumApplicationOwnerTeam"`);
78
+ await queryRunner.query(`DROP INDEX "public"."UQ_RumApplication_project_appId"`);
79
+ await queryRunner.query(`DROP INDEX "public"."IDX_RumApplication_projectId"`);
80
+ await queryRunner.query(`DROP TABLE "RumApplication"`);
81
+ }
82
+ }
83
+ //# sourceMappingURL=1780936579718-AddRumApplicationTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780936579718-AddRumApplicationTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Bucket A (Serverless): label-rule + owner-rule tables that drive automatic
3
+ * label attachment and owner assignment when a ServerlessFunction is created.
4
+ * Mirrors the Host*Rule shape (match criteria via labels + name/description
5
+ * regex; actions via labelsToAdd / ownerUsers / ownerTeams).
6
+ */
7
+ export class AddServerlessFunctionRuleTables1780938407319 {
8
+ constructor() {
9
+ this.name = "AddServerlessFunctionRuleTables1780938407319";
10
+ }
11
+ async up(queryRunner) {
12
+ // Label rule table
13
+ await queryRunner.query(`CREATE TABLE "ServerlessFunctionLabelRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_SrvlessFnLabelRule" PRIMARY KEY ("_id"))`);
14
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLabelRule_projectId" ON "ServerlessFunctionLabelRule" ("projectId") `);
15
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLabelRule_name" ON "ServerlessFunctionLabelRule" ("name") `);
16
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLabelRule_enabled" ON "ServerlessFunctionLabelRule" ("isEnabled") `);
17
+ // Owner rule table
18
+ await queryRunner.query(`CREATE TABLE "ServerlessFunctionOwnerRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "notifyOwners" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_SrvlessFnOwnerRule" PRIMARY KEY ("_id"))`);
19
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerRule_projectId" ON "ServerlessFunctionOwnerRule" ("projectId") `);
20
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerRule_name" ON "ServerlessFunctionOwnerRule" ("name") `);
21
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerRule_enabled" ON "ServerlessFunctionOwnerRule" ("isEnabled") `);
22
+ // Join tables
23
+ await queryRunner.query(`CREATE TABLE "SrvlessFnLabelRuleMatchLabel" ("serverlessFunctionLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnLabelRuleMatchLabel" PRIMARY KEY ("serverlessFunctionLabelRuleId", "labelId"))`);
24
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLRMatchLabel_rule" ON "SrvlessFnLabelRuleMatchLabel" ("serverlessFunctionLabelRuleId") `);
25
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLRMatchLabel_label" ON "SrvlessFnLabelRuleMatchLabel" ("labelId") `);
26
+ await queryRunner.query(`CREATE TABLE "SrvlessFnLabelRuleAddLabel" ("serverlessFunctionLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnLabelRuleAddLabel" PRIMARY KEY ("serverlessFunctionLabelRuleId", "labelId"))`);
27
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLRAddLabel_rule" ON "SrvlessFnLabelRuleAddLabel" ("serverlessFunctionLabelRuleId") `);
28
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLRAddLabel_label" ON "SrvlessFnLabelRuleAddLabel" ("labelId") `);
29
+ await queryRunner.query(`CREATE TABLE "SrvlessFnOwnerRuleMatchLabel" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleMatchLabel" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "labelId"))`);
30
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORMatchLabel_rule" ON "SrvlessFnOwnerRuleMatchLabel" ("serverlessFunctionOwnerRuleId") `);
31
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORMatchLabel_label" ON "SrvlessFnOwnerRuleMatchLabel" ("labelId") `);
32
+ await queryRunner.query(`CREATE TABLE "SrvlessFnOwnerRuleUser" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "userId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleUser" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "userId"))`);
33
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORUser_rule" ON "SrvlessFnOwnerRuleUser" ("serverlessFunctionOwnerRuleId") `);
34
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORUser_user" ON "SrvlessFnOwnerRuleUser" ("userId") `);
35
+ await queryRunner.query(`CREATE TABLE "SrvlessFnOwnerRuleTeam" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "teamId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleTeam" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "teamId"))`);
36
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORTeam_rule" ON "SrvlessFnOwnerRuleTeam" ("serverlessFunctionOwnerRuleId") `);
37
+ await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORTeam_team" ON "SrvlessFnOwnerRuleTeam" ("teamId") `);
38
+ // Foreign keys: rule tables -> Project / User
39
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
40
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
41
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
42
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
43
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
44
+ await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
45
+ // Foreign keys: join tables
46
+ await queryRunner.query(`ALTER TABLE "SrvlessFnLabelRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnLRMatchLabel_rule" FOREIGN KEY ("serverlessFunctionLabelRuleId") REFERENCES "ServerlessFunctionLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
47
+ await queryRunner.query(`ALTER TABLE "SrvlessFnLabelRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnLRMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
48
+ await queryRunner.query(`ALTER TABLE "SrvlessFnLabelRuleAddLabel" ADD CONSTRAINT "FK_SrvlessFnLRAddLabel_rule" FOREIGN KEY ("serverlessFunctionLabelRuleId") REFERENCES "ServerlessFunctionLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
49
+ await queryRunner.query(`ALTER TABLE "SrvlessFnLabelRuleAddLabel" ADD CONSTRAINT "FK_SrvlessFnLRAddLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
50
+ await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnORMatchLabel_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
51
+ await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnORMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
52
+ await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleUser" ADD CONSTRAINT "FK_SrvlessFnORUser_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
53
+ await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleUser" ADD CONSTRAINT "FK_SrvlessFnORUser_user" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
54
+ await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleTeam" ADD CONSTRAINT "FK_SrvlessFnORTeam_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
55
+ await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleTeam" ADD CONSTRAINT "FK_SrvlessFnORTeam_team" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
56
+ }
57
+ async down(queryRunner) {
58
+ await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleTeam"`);
59
+ await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleUser"`);
60
+ await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleMatchLabel"`);
61
+ await queryRunner.query(`DROP TABLE "SrvlessFnLabelRuleAddLabel"`);
62
+ await queryRunner.query(`DROP TABLE "SrvlessFnLabelRuleMatchLabel"`);
63
+ await queryRunner.query(`DROP TABLE "ServerlessFunctionOwnerRule"`);
64
+ await queryRunner.query(`DROP TABLE "ServerlessFunctionLabelRule"`);
65
+ }
66
+ }
67
+ //# sourceMappingURL=1780938407319-AddServerlessFunctionRuleTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780938407319-AddServerlessFunctionRuleTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /*
2
+ * Bucket A (Cloud): label-rule + owner-rule tables that drive automatic label
3
+ * attachment and owner assignment when a CloudResource is created.
4
+ */
5
+ export class AddCloudResourceRuleTables1780940721814 {
6
+ constructor() {
7
+ this.name = "AddCloudResourceRuleTables1780940721814";
8
+ }
9
+ async up(queryRunner) {
10
+ await queryRunner.query(`CREATE TABLE "CloudResourceLabelRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_CloudResLabelRule" PRIMARY KEY ("_id"))`);
11
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResLabelRule_projectId" ON "CloudResourceLabelRule" ("projectId") `);
12
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResLabelRule_name" ON "CloudResourceLabelRule" ("name") `);
13
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResLabelRule_enabled" ON "CloudResourceLabelRule" ("isEnabled") `);
14
+ await queryRunner.query(`CREATE TABLE "CloudResourceOwnerRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "notifyOwners" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_CloudResOwnerRule" PRIMARY KEY ("_id"))`);
15
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerRule_projectId" ON "CloudResourceOwnerRule" ("projectId") `);
16
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerRule_name" ON "CloudResourceOwnerRule" ("name") `);
17
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerRule_enabled" ON "CloudResourceOwnerRule" ("isEnabled") `);
18
+ await queryRunner.query(`CREATE TABLE "CloudResLabelRuleMatchLabel" ("cloudResourceLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResLabelRuleMatchLabel" PRIMARY KEY ("cloudResourceLabelRuleId", "labelId"))`);
19
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResLRMatchLabel_rule" ON "CloudResLabelRuleMatchLabel" ("cloudResourceLabelRuleId") `);
20
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResLRMatchLabel_label" ON "CloudResLabelRuleMatchLabel" ("labelId") `);
21
+ await queryRunner.query(`CREATE TABLE "CloudResLabelRuleAddLabel" ("cloudResourceLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResLabelRuleAddLabel" PRIMARY KEY ("cloudResourceLabelRuleId", "labelId"))`);
22
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResLRAddLabel_rule" ON "CloudResLabelRuleAddLabel" ("cloudResourceLabelRuleId") `);
23
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResLRAddLabel_label" ON "CloudResLabelRuleAddLabel" ("labelId") `);
24
+ await queryRunner.query(`CREATE TABLE "CloudResOwnerRuleMatchLabel" ("cloudResourceOwnerRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleMatchLabel" PRIMARY KEY ("cloudResourceOwnerRuleId", "labelId"))`);
25
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResORMatchLabel_rule" ON "CloudResOwnerRuleMatchLabel" ("cloudResourceOwnerRuleId") `);
26
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResORMatchLabel_label" ON "CloudResOwnerRuleMatchLabel" ("labelId") `);
27
+ await queryRunner.query(`CREATE TABLE "CloudResOwnerRuleUser" ("cloudResourceOwnerRuleId" uuid NOT NULL, "userId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleUser" PRIMARY KEY ("cloudResourceOwnerRuleId", "userId"))`);
28
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResORUser_rule" ON "CloudResOwnerRuleUser" ("cloudResourceOwnerRuleId") `);
29
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResORUser_user" ON "CloudResOwnerRuleUser" ("userId") `);
30
+ await queryRunner.query(`CREATE TABLE "CloudResOwnerRuleTeam" ("cloudResourceOwnerRuleId" uuid NOT NULL, "teamId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleTeam" PRIMARY KEY ("cloudResourceOwnerRuleId", "teamId"))`);
31
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResORTeam_rule" ON "CloudResOwnerRuleTeam" ("cloudResourceOwnerRuleId") `);
32
+ await queryRunner.query(`CREATE INDEX "IDX_CloudResORTeam_team" ON "CloudResOwnerRuleTeam" ("teamId") `);
33
+ await queryRunner.query(`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
34
+ await queryRunner.query(`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
35
+ await queryRunner.query(`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
36
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
37
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
38
+ await queryRunner.query(`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
39
+ await queryRunner.query(`ALTER TABLE "CloudResLabelRuleMatchLabel" ADD CONSTRAINT "FK_CloudResLRMatchLabel_rule" FOREIGN KEY ("cloudResourceLabelRuleId") REFERENCES "CloudResourceLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
40
+ await queryRunner.query(`ALTER TABLE "CloudResLabelRuleMatchLabel" ADD CONSTRAINT "FK_CloudResLRMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
41
+ await queryRunner.query(`ALTER TABLE "CloudResLabelRuleAddLabel" ADD CONSTRAINT "FK_CloudResLRAddLabel_rule" FOREIGN KEY ("cloudResourceLabelRuleId") REFERENCES "CloudResourceLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
42
+ await queryRunner.query(`ALTER TABLE "CloudResLabelRuleAddLabel" ADD CONSTRAINT "FK_CloudResLRAddLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
43
+ await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleMatchLabel" ADD CONSTRAINT "FK_CloudResORMatchLabel_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
44
+ await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleMatchLabel" ADD CONSTRAINT "FK_CloudResORMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
45
+ await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleUser" ADD CONSTRAINT "FK_CloudResORUser_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
46
+ await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleUser" ADD CONSTRAINT "FK_CloudResORUser_user" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
47
+ await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleTeam" ADD CONSTRAINT "FK_CloudResORTeam_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
48
+ await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleTeam" ADD CONSTRAINT "FK_CloudResORTeam_team" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
49
+ }
50
+ async down(queryRunner) {
51
+ await queryRunner.query(`DROP TABLE "CloudResOwnerRuleTeam"`);
52
+ await queryRunner.query(`DROP TABLE "CloudResOwnerRuleUser"`);
53
+ await queryRunner.query(`DROP TABLE "CloudResOwnerRuleMatchLabel"`);
54
+ await queryRunner.query(`DROP TABLE "CloudResLabelRuleAddLabel"`);
55
+ await queryRunner.query(`DROP TABLE "CloudResLabelRuleMatchLabel"`);
56
+ await queryRunner.query(`DROP TABLE "CloudResourceOwnerRule"`);
57
+ await queryRunner.query(`DROP TABLE "CloudResourceLabelRule"`);
58
+ }
59
+ }
60
+ //# sourceMappingURL=1780940721814-AddCloudResourceRuleTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780940721814-AddCloudResourceRuleTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.ts"],"names":[],"mappings":"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"}