@oneuptime/common 10.4.13 → 10.4.15

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 (248) hide show
  1. package/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.ts +49 -0
  2. package/Models/AnalyticsModels/AuditLog.ts +8 -0
  3. package/Models/AnalyticsModels/ExceptionInstance.ts +1 -0
  4. package/Models/AnalyticsModels/Log.ts +1 -0
  5. package/Models/AnalyticsModels/Metric.ts +10 -0
  6. package/Models/AnalyticsModels/MonitorLog.ts +1 -0
  7. package/Models/AnalyticsModels/Profile.ts +1 -0
  8. package/Models/AnalyticsModels/ProfileSample.ts +1 -0
  9. package/Models/AnalyticsModels/Span.ts +1 -0
  10. package/Models/DatabaseModels/Alert.ts +2 -0
  11. package/Models/DatabaseModels/AlertCustomField.ts +37 -0
  12. package/Models/DatabaseModels/AlertFeed.ts +1 -0
  13. package/Models/DatabaseModels/CallLog.ts +2 -0
  14. package/Models/DatabaseModels/DockerHost.ts +34 -0
  15. package/Models/DatabaseModels/EmailLog.ts +2 -0
  16. package/Models/DatabaseModels/Host.ts +34 -0
  17. package/Models/DatabaseModels/Incident.ts +1 -0
  18. package/Models/DatabaseModels/IncidentCustomField.ts +37 -0
  19. package/Models/DatabaseModels/IncidentFeed.ts +1 -0
  20. package/Models/DatabaseModels/IncidentMember.ts +9 -0
  21. package/Models/DatabaseModels/KubernetesCluster.ts +34 -0
  22. package/Models/DatabaseModels/MonitorCustomField.ts +37 -0
  23. package/Models/DatabaseModels/MonitorFeed.ts +1 -0
  24. package/Models/DatabaseModels/MonitorProbe.ts +1 -0
  25. package/Models/DatabaseModels/OnCallDutyPolicyCustomField.ts +37 -0
  26. package/Models/DatabaseModels/OnCallDutyPolicyTimeLog.ts +3 -0
  27. package/Models/DatabaseModels/ScheduledMaintenanceCustomField.ts +37 -0
  28. package/Models/DatabaseModels/SmsLog.ts +2 -0
  29. package/Models/DatabaseModels/StatusPageCustomField.ts +37 -0
  30. package/Models/DatabaseModels/StatusPageSubscriber.ts +2 -0
  31. package/Models/DatabaseModels/TableView.ts +40 -0
  32. package/Models/DatabaseModels/TeamMemberCustomField.ts +37 -0
  33. package/Models/DatabaseModels/TelemetryException.ts +2 -0
  34. package/Models/DatabaseModels/UserOnCallLog.ts +1 -0
  35. package/Models/DatabaseModels/WorkflowLog.ts +1 -0
  36. package/Server/API/BaseAnalyticsAPI.ts +128 -20
  37. package/Server/API/MetricAPI.ts +5 -138
  38. package/Server/API/ProjectAPI.ts +52 -15
  39. package/Server/API/StatusAPI.ts +103 -7
  40. package/Server/EnvironmentConfig.ts +69 -0
  41. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +26 -1
  42. package/Server/Infrastructure/Postgres/SchemaMigrations/1779392865146-AddAgentVersionToKubernetesDockerHost.ts +29 -0
  43. package/Server/Infrastructure/Postgres/SchemaMigrations/1779392970424-AddPerformanceIndexes.ts +160 -0
  44. package/Server/Infrastructure/Postgres/SchemaMigrations/1779536271671-AddFacetsToTableView.ts +13 -0
  45. package/Server/Infrastructure/Postgres/SchemaMigrations/1779540427366-AddIsMemberNotifiedIndex.ts +34 -0
  46. package/Server/Infrastructure/Postgres/SchemaMigrations/1779619108628-AddDropdownOptionsToCustomFields.ts +67 -0
  47. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  48. package/Server/Infrastructure/PostgresDatabase.ts +2 -5
  49. package/Server/Middleware/ProjectAuthorization.ts +31 -53
  50. package/Server/Middleware/UserAuthorization.ts +106 -64
  51. package/Server/Services/AccessTokenService.ts +1 -1
  52. package/Server/Services/AnalyticsDatabaseService.ts +24 -4
  53. package/Server/Services/ApiKeyService.ts +100 -1
  54. package/Server/Services/DockerHostService.ts +5 -0
  55. package/Server/Services/HostService.ts +6 -0
  56. package/Server/Services/KubernetesClusterService.ts +33 -10
  57. package/Server/Services/MetricService.ts +113 -0
  58. package/Server/Services/MonitorService.ts +10 -3
  59. package/Server/Services/ProjectService.ts +93 -2
  60. package/Server/Services/TeamMemberService.ts +36 -0
  61. package/Server/Services/UserService.ts +38 -0
  62. package/Server/Utils/Response.ts +4 -1
  63. package/Server/Utils/UserPermission/UserPermission.ts +17 -1
  64. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +2 -2
  65. package/Types/API/HTTPResponse.ts +16 -0
  66. package/Types/BaseDatabase/ListResult.ts +6 -0
  67. package/Types/CustomField/CustomFieldType.ts +2 -0
  68. package/Types/Date.ts +9 -1
  69. package/Types/ListData.ts +14 -0
  70. package/Types/Monitor/DnsMonitor/DnsMonitorResponse.ts +3 -0
  71. package/Types/Monitor/DnssecMonitor/DnssecMonitorResponse.ts +5 -0
  72. package/Types/Monitor/DomainMonitor/DomainMonitorResponse.ts +4 -0
  73. package/Types/Monitor/ExternalStatusPageMonitor/ExternalStatusPageMonitorResponse.ts +4 -0
  74. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +3 -0
  75. package/Types/Probe/ProbeAttempt.ts +9 -0
  76. package/Types/Probe/ProbeMonitorResponse.ts +3 -0
  77. package/UI/Components/BulkUpdate/BulkOwnerActions.tsx +504 -0
  78. package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +64 -54
  79. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +38 -0
  80. package/UI/Components/CustomFields/DropdownOptionsInput.tsx +150 -0
  81. package/UI/Components/Detail/Detail.tsx +78 -11
  82. package/UI/Components/List/List.tsx +6 -0
  83. package/UI/Components/ModelTable/BaseModelTable.tsx +74 -2
  84. package/UI/Components/ModelTable/TableView.tsx +70 -30
  85. package/UI/Components/Pagination/Pagination.tsx +75 -33
  86. package/UI/Components/Table/Table.tsx +6 -0
  87. package/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.ts +1 -0
  88. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js +33 -0
  89. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -1
  90. package/build/dist/Models/AnalyticsModels/AuditLog.js +8 -0
  91. package/build/dist/Models/AnalyticsModels/AuditLog.js.map +1 -1
  92. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +1 -0
  93. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  94. package/build/dist/Models/AnalyticsModels/Log.js +1 -0
  95. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  96. package/build/dist/Models/AnalyticsModels/Metric.js +10 -0
  97. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  98. package/build/dist/Models/AnalyticsModels/MonitorLog.js +1 -0
  99. package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
  100. package/build/dist/Models/AnalyticsModels/Profile.js +1 -0
  101. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  102. package/build/dist/Models/AnalyticsModels/ProfileSample.js +1 -0
  103. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
  104. package/build/dist/Models/AnalyticsModels/Span.js +1 -0
  105. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  106. package/build/dist/Models/DatabaseModels/Alert.js +3 -1
  107. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  108. package/build/dist/Models/DatabaseModels/AlertCustomField.js +38 -0
  109. package/build/dist/Models/DatabaseModels/AlertCustomField.js.map +1 -1
  110. package/build/dist/Models/DatabaseModels/AlertFeed.js +2 -1
  111. package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
  112. package/build/dist/Models/DatabaseModels/CallLog.js +4 -1
  113. package/build/dist/Models/DatabaseModels/CallLog.js.map +1 -1
  114. package/build/dist/Models/DatabaseModels/DockerHost.js +35 -0
  115. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  116. package/build/dist/Models/DatabaseModels/EmailLog.js +4 -1
  117. package/build/dist/Models/DatabaseModels/EmailLog.js.map +1 -1
  118. package/build/dist/Models/DatabaseModels/Host.js +35 -0
  119. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  120. package/build/dist/Models/DatabaseModels/Incident.js +2 -1
  121. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  122. package/build/dist/Models/DatabaseModels/IncidentCustomField.js +38 -0
  123. package/build/dist/Models/DatabaseModels/IncidentCustomField.js.map +1 -1
  124. package/build/dist/Models/DatabaseModels/IncidentFeed.js +2 -1
  125. package/build/dist/Models/DatabaseModels/IncidentFeed.js.map +1 -1
  126. package/build/dist/Models/DatabaseModels/IncidentMember.js +11 -1
  127. package/build/dist/Models/DatabaseModels/IncidentMember.js.map +1 -1
  128. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +35 -0
  129. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  130. package/build/dist/Models/DatabaseModels/MonitorCustomField.js +38 -0
  131. package/build/dist/Models/DatabaseModels/MonitorCustomField.js.map +1 -1
  132. package/build/dist/Models/DatabaseModels/MonitorFeed.js +2 -1
  133. package/build/dist/Models/DatabaseModels/MonitorFeed.js.map +1 -1
  134. package/build/dist/Models/DatabaseModels/MonitorProbe.js +2 -0
  135. package/build/dist/Models/DatabaseModels/MonitorProbe.js.map +1 -1
  136. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js +38 -0
  137. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js.map +1 -1
  138. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js +3 -0
  139. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js.map +1 -1
  140. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js +38 -0
  141. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js.map +1 -1
  142. package/build/dist/Models/DatabaseModels/SmsLog.js +4 -1
  143. package/build/dist/Models/DatabaseModels/SmsLog.js.map +1 -1
  144. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js +38 -0
  145. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js.map +1 -1
  146. package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +4 -1
  147. package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -1
  148. package/build/dist/Models/DatabaseModels/TableView.js +40 -0
  149. package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
  150. package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js +38 -0
  151. package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js.map +1 -1
  152. package/build/dist/Models/DatabaseModels/TelemetryException.js +3 -1
  153. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  154. package/build/dist/Models/DatabaseModels/UserOnCallLog.js +1 -0
  155. package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
  156. package/build/dist/Models/DatabaseModels/WorkflowLog.js +2 -1
  157. package/build/dist/Models/DatabaseModels/WorkflowLog.js.map +1 -1
  158. package/build/dist/Server/API/BaseAnalyticsAPI.js +105 -18
  159. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  160. package/build/dist/Server/API/MetricAPI.js +5 -113
  161. package/build/dist/Server/API/MetricAPI.js.map +1 -1
  162. package/build/dist/Server/API/ProjectAPI.js +42 -14
  163. package/build/dist/Server/API/ProjectAPI.js.map +1 -1
  164. package/build/dist/Server/API/StatusAPI.js +75 -8
  165. package/build/dist/Server/API/StatusAPI.js.map +1 -1
  166. package/build/dist/Server/EnvironmentConfig.js +41 -0
  167. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  168. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +20 -2
  169. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  170. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779392865146-AddAgentVersionToKubernetesDockerHost.js +16 -0
  171. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779392865146-AddAgentVersionToKubernetesDockerHost.js.map +1 -0
  172. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779392970424-AddPerformanceIndexes.js +63 -0
  173. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779392970424-AddPerformanceIndexes.js.map +1 -0
  174. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779536271671-AddFacetsToTableView.js +12 -0
  175. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779536271671-AddFacetsToTableView.js.map +1 -0
  176. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779540427366-AddIsMemberNotifiedIndex.js +27 -0
  177. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779540427366-AddIsMemberNotifiedIndex.js.map +1 -0
  178. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779619108628-AddDropdownOptionsToCustomFields.js +28 -0
  179. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779619108628-AddDropdownOptionsToCustomFields.js.map +1 -0
  180. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  181. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  182. package/build/dist/Server/Infrastructure/PostgresDatabase.js +2 -2
  183. package/build/dist/Server/Infrastructure/PostgresDatabase.js.map +1 -1
  184. package/build/dist/Server/Middleware/ProjectAuthorization.js +21 -39
  185. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  186. package/build/dist/Server/Middleware/UserAuthorization.js +83 -50
  187. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  188. package/build/dist/Server/Services/AccessTokenService.js +1 -1
  189. package/build/dist/Server/Services/AccessTokenService.js.map +1 -1
  190. package/build/dist/Server/Services/AnalyticsDatabaseService.js +22 -3
  191. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  192. package/build/dist/Server/Services/ApiKeyService.js +86 -0
  193. package/build/dist/Server/Services/ApiKeyService.js.map +1 -1
  194. package/build/dist/Server/Services/DockerHostService.js +5 -1
  195. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  196. package/build/dist/Server/Services/HostService.js +5 -1
  197. package/build/dist/Server/Services/HostService.js.map +1 -1
  198. package/build/dist/Server/Services/KubernetesClusterService.js +21 -11
  199. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  200. package/build/dist/Server/Services/MetricService.js +89 -0
  201. package/build/dist/Server/Services/MetricService.js.map +1 -1
  202. package/build/dist/Server/Services/MonitorService.js +8 -3
  203. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  204. package/build/dist/Server/Services/ProjectService.js +84 -2
  205. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  206. package/build/dist/Server/Services/TeamMemberService.js +24 -0
  207. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  208. package/build/dist/Server/Services/UserService.js +36 -0
  209. package/build/dist/Server/Services/UserService.js.map +1 -1
  210. package/build/dist/Server/Utils/Response.js +6 -5
  211. package/build/dist/Server/Utils/Response.js.map +1 -1
  212. package/build/dist/Server/Utils/UserPermission/UserPermission.js +13 -1
  213. package/build/dist/Server/Utils/UserPermission/UserPermission.js.map +1 -1
  214. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +2 -2
  215. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +1 -1
  216. package/build/dist/Types/API/HTTPResponse.js +15 -0
  217. package/build/dist/Types/API/HTTPResponse.js.map +1 -1
  218. package/build/dist/Types/CustomField/CustomFieldType.js +2 -0
  219. package/build/dist/Types/CustomField/CustomFieldType.js.map +1 -1
  220. package/build/dist/Types/Date.js +10 -1
  221. package/build/dist/Types/Date.js.map +1 -1
  222. package/build/dist/Types/ListData.js +4 -0
  223. package/build/dist/Types/ListData.js.map +1 -1
  224. package/build/dist/Types/Probe/ProbeAttempt.js +2 -0
  225. package/build/dist/Types/Probe/ProbeAttempt.js.map +1 -0
  226. package/build/dist/UI/Components/BulkUpdate/BulkOwnerActions.js +376 -0
  227. package/build/dist/UI/Components/BulkUpdate/BulkOwnerActions.js.map +1 -0
  228. package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +32 -25
  229. package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js.map +1 -1
  230. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +32 -0
  231. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  232. package/build/dist/UI/Components/CustomFields/DropdownOptionsInput.js +84 -0
  233. package/build/dist/UI/Components/CustomFields/DropdownOptionsInput.js.map +1 -0
  234. package/build/dist/UI/Components/Detail/Detail.js +34 -3
  235. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  236. package/build/dist/UI/Components/List/List.js +1 -1
  237. package/build/dist/UI/Components/List/List.js.map +1 -1
  238. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +45 -5
  239. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  240. package/build/dist/UI/Components/ModelTable/TableView.js +40 -19
  241. package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
  242. package/build/dist/UI/Components/Pagination/Pagination.js +62 -36
  243. package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
  244. package/build/dist/UI/Components/Table/Table.js +1 -1
  245. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  246. package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js +1 -0
  247. package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js.map +1 -1
  248. package/package.json +1 -1
@@ -0,0 +1,63 @@
1
+ export class AddPerformanceIndexes1779392970424 {
2
+ constructor() {
3
+ this.name = "AddPerformanceIndexes1779392970424";
4
+ }
5
+ async up(queryRunner) {
6
+ // Active-X badge counters on the dashboard.
7
+ await queryRunner.query(`CREATE INDEX "IDX_d846ce00a02d1073efc07178fa" ON "Incident" ("projectId", "currentIncidentStateId") `);
8
+ await queryRunner.query(`CREATE INDEX "IDX_0c7286dfa90fd7d8201ec6f217" ON "Alert" ("projectId", "currentAlertStateId") `);
9
+ // Alert filtering by monitor (monitor detail page).
10
+ await queryRunner.query(`CREATE INDEX "IDX_b57071fc2f1e27430e651382ee" ON "Alert" ("monitorId") `);
11
+ // Notification log tables: filter by project + status / time range.
12
+ await queryRunner.query(`CREATE INDEX "IDX_8a0f032f20cd845c9bb908f38c" ON "CallLog" ("projectId", "status") `);
13
+ await queryRunner.query(`CREATE INDEX "IDX_b59ee5f702882c10066cdd1128" ON "CallLog" ("projectId", "createdAt") `);
14
+ await queryRunner.query(`CREATE INDEX "IDX_8f4eea9e7f20eaf121625f5787" ON "EmailLog" ("projectId", "status") `);
15
+ await queryRunner.query(`CREATE INDEX "IDX_33d38c24249a256f89001acf83" ON "EmailLog" ("projectId", "createdAt") `);
16
+ await queryRunner.query(`CREATE INDEX "IDX_c37d2fcfcb591afb284dad27d9" ON "SmsLog" ("projectId", "status") `);
17
+ await queryRunner.query(`CREATE INDEX "IDX_c6bbede6b3bb66781bc7c82463" ON "SmsLog" ("projectId", "createdAt") `);
18
+ // Feed timelines on alert/incident/monitor detail pages.
19
+ await queryRunner.query(`CREATE INDEX "IDX_6f97cb7c189e6339cf364a3608" ON "AlertFeed" ("alertId", "postedAt") `);
20
+ await queryRunner.query(`CREATE INDEX "IDX_e26bf84ec503bbfb06bcde139e" ON "IncidentFeed" ("incidentId", "postedAt") `);
21
+ await queryRunner.query(`CREATE INDEX "IDX_5771fc57305fb0f508153b53ce" ON "MonitorFeed" ("monitorId", "postedAt") `);
22
+ // Monitor probe scheduler.
23
+ await queryRunner.query(`CREATE INDEX "IDX_4bf4109d325af5e5b5a5665bc7" ON "MonitorProbe" ("probeId", "isEnabled", "nextPingAt") `);
24
+ // On-call duty time logs (active-on-call lookups).
25
+ await queryRunner.query(`CREATE INDEX "IDX_43da7ffeee531e9452d36a89ba" ON "OnCallDutyPolicyTimeLog" ("userId") `);
26
+ await queryRunner.query(`CREATE INDEX "IDX_977d907fb45cbc1a2067f490af" ON "OnCallDutyPolicyTimeLog" ("startsAt") `);
27
+ await queryRunner.query(`CREATE INDEX "IDX_002727a958120be971790fd016" ON "OnCallDutyPolicyTimeLog" ("endsAt") `);
28
+ // Telemetry exceptions dashboard.
29
+ await queryRunner.query(`CREATE INDEX "IDX_fa102ae5073b428e514cc2ceea" ON "TelemetryException" ("occuranceCount") `);
30
+ await queryRunner.query(`CREATE INDEX "IDX_3836772be478de8a9df86a938d" ON "TelemetryException" ("projectId", "isResolved", "isArchived") `);
31
+ // Status page subscriber dedupe.
32
+ await queryRunner.query(`CREATE INDEX "IDX_c28628545faa67976e1d462e69" ON "StatusPageSubscriber" ("statusPageId", "subscriberPhone") `);
33
+ await queryRunner.query(`CREATE INDEX "IDX_3a2d83fc5107c639d10a7c5cc0" ON "StatusPageSubscriber" ("statusPageId", "subscriberEmail") `);
34
+ // Worker sweeps.
35
+ await queryRunner.query(`CREATE INDEX "IDX_094b044a3d6a79695ba754cdfb" ON "UserOnCallLog" ("status") `);
36
+ await queryRunner.query(`CREATE INDEX "IDX_7a5dc4760803e57f2d0b363e6e" ON "WorkflowLog" ("workflowStatus", "createdAt") `);
37
+ }
38
+ async down(queryRunner) {
39
+ await queryRunner.query(`DROP INDEX "public"."IDX_7a5dc4760803e57f2d0b363e6e"`);
40
+ await queryRunner.query(`DROP INDEX "public"."IDX_094b044a3d6a79695ba754cdfb"`);
41
+ await queryRunner.query(`DROP INDEX "public"."IDX_3a2d83fc5107c639d10a7c5cc0"`);
42
+ await queryRunner.query(`DROP INDEX "public"."IDX_c28628545faa67976e1d462e69"`);
43
+ await queryRunner.query(`DROP INDEX "public"."IDX_3836772be478de8a9df86a938d"`);
44
+ await queryRunner.query(`DROP INDEX "public"."IDX_fa102ae5073b428e514cc2ceea"`);
45
+ await queryRunner.query(`DROP INDEX "public"."IDX_002727a958120be971790fd016"`);
46
+ await queryRunner.query(`DROP INDEX "public"."IDX_977d907fb45cbc1a2067f490af"`);
47
+ await queryRunner.query(`DROP INDEX "public"."IDX_43da7ffeee531e9452d36a89ba"`);
48
+ await queryRunner.query(`DROP INDEX "public"."IDX_4bf4109d325af5e5b5a5665bc7"`);
49
+ await queryRunner.query(`DROP INDEX "public"."IDX_5771fc57305fb0f508153b53ce"`);
50
+ await queryRunner.query(`DROP INDEX "public"."IDX_e26bf84ec503bbfb06bcde139e"`);
51
+ await queryRunner.query(`DROP INDEX "public"."IDX_6f97cb7c189e6339cf364a3608"`);
52
+ await queryRunner.query(`DROP INDEX "public"."IDX_c6bbede6b3bb66781bc7c82463"`);
53
+ await queryRunner.query(`DROP INDEX "public"."IDX_c37d2fcfcb591afb284dad27d9"`);
54
+ await queryRunner.query(`DROP INDEX "public"."IDX_33d38c24249a256f89001acf83"`);
55
+ await queryRunner.query(`DROP INDEX "public"."IDX_8f4eea9e7f20eaf121625f5787"`);
56
+ await queryRunner.query(`DROP INDEX "public"."IDX_b59ee5f702882c10066cdd1128"`);
57
+ await queryRunner.query(`DROP INDEX "public"."IDX_8a0f032f20cd845c9bb908f38c"`);
58
+ await queryRunner.query(`DROP INDEX "public"."IDX_b57071fc2f1e27430e651382ee"`);
59
+ await queryRunner.query(`DROP INDEX "public"."IDX_0c7286dfa90fd7d8201ec6f217"`);
60
+ await queryRunner.query(`DROP INDEX "public"."IDX_d846ce00a02d1073efc07178fa"`);
61
+ }
62
+ }
63
+ //# sourceMappingURL=1779392970424-AddPerformanceIndexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1779392970424-AddPerformanceIndexes.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1779392970424-AddPerformanceIndexes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export class AddFacetsToTableView1779536271671 {
2
+ constructor() {
3
+ this.name = "AddFacetsToTableView1779536271671";
4
+ }
5
+ async up(queryRunner) {
6
+ await queryRunner.query(`ALTER TABLE "TableView" ADD "facets" jsonb`);
7
+ }
8
+ async down(queryRunner) {
9
+ await queryRunner.query(`ALTER TABLE "TableView" DROP COLUMN "facets"`);
10
+ }
11
+ }
12
+ //# sourceMappingURL=1779536271671-AddFacetsToTableView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1779536271671-AddFacetsToTableView.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1779536271671-AddFacetsToTableView.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,iCAAiC;IAA9C;QACS,SAAI,GAAW,mCAAmC,CAAC;IAS5D,CAAC;IAPQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC1E,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Adds an index on `IncidentMember.isMemberNotified`. The
3
+ * `IncidentMembers/SendMemberAddedNotification` cron polls
4
+ * `WHERE isMemberNotified = false` every minute; without the
5
+ * index that's a full table scan that scales with every
6
+ * incident-member assignment ever made.
7
+ *
8
+ * The autogenerated diff also picked up unrelated drift between
9
+ * the local dev database and the current entity models (drops
10
+ * of `User.themePreference`, `StatusPage.showGridView`,
11
+ * `StatusPageResource.statusPageGridColumnId`, and ALTER COLUMN
12
+ * default changes on `OnCallDutyPolicyScheduleLayer`). Those
13
+ * changes belong to other branches and must not run here — they
14
+ * were stripped to keep this migration tightly scoped.
15
+ */
16
+ export class AddIsMemberNotifiedIndex1779540427366 {
17
+ constructor() {
18
+ this.name = "AddIsMemberNotifiedIndex1779540427366";
19
+ }
20
+ async up(queryRunner) {
21
+ await queryRunner.query(`CREATE INDEX "IDX_0c2358ce5ea46732d76c4cbb26" ON "IncidentMember" ("isMemberNotified") `);
22
+ }
23
+ async down(queryRunner) {
24
+ await queryRunner.query(`DROP INDEX "public"."IDX_0c2358ce5ea46732d76c4cbb26"`);
25
+ }
26
+ }
27
+ //# sourceMappingURL=1779540427366-AddIsMemberNotifiedIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1779540427366-AddIsMemberNotifiedIndex.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1779540427366-AddIsMemberNotifiedIndex.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,qCAAqC;IAAlD;QAGS,SAAI,GAAW,uCAAuC,CAAC;IAahE,CAAC;IAXQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ export class AddDropdownOptionsToCustomFields1779619108628 {
2
+ constructor() {
3
+ this.name = "AddDropdownOptionsToCustomFields1779619108628";
4
+ }
5
+ async up(queryRunner) {
6
+ await queryRunner.query(`ALTER TABLE "IncidentCustomField" ADD "dropdownOptions" character varying(500)`);
7
+ await queryRunner.query(`ALTER TABLE "MonitorCustomField" ADD "dropdownOptions" character varying(500)`);
8
+ await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyCustomField" ADD "dropdownOptions" character varying(500)`);
9
+ await queryRunner.query(`ALTER TABLE "ScheduledMaintenanceCustomField" ADD "dropdownOptions" character varying(500)`);
10
+ await queryRunner.query(`ALTER TABLE "StatusPageCustomField" ADD "dropdownOptions" character varying(500)`);
11
+ await queryRunner.query(`ALTER TABLE "TeamMemberCustomField" ADD "dropdownOptions" character varying(500)`);
12
+ await queryRunner.query(`ALTER TABLE "AlertCustomField" ADD "dropdownOptions" character varying(500)`);
13
+ await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type":"Recurring","value":{"intervalType":"Day","intervalCount":{"_type":"PositiveNumber","value":1}}}'`);
14
+ await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type":"RestrictionTimes","value":{"restictionType":"None","dayRestrictionTimes":null,"weeklyRestrictionTimes":[]}}'`);
15
+ }
16
+ async down(queryRunner) {
17
+ await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type": "RestrictionTimes", "value": {"restictionType": "None", "dayRestrictionTimes": null, "weeklyRestrictionTimes": []}}'`);
18
+ await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type": "Recurring", "value": {"intervalType": "Day", "intervalCount": {"_type": "PositiveNumber", "value": 1}}}'`);
19
+ await queryRunner.query(`ALTER TABLE "AlertCustomField" DROP COLUMN "dropdownOptions"`);
20
+ await queryRunner.query(`ALTER TABLE "TeamMemberCustomField" DROP COLUMN "dropdownOptions"`);
21
+ await queryRunner.query(`ALTER TABLE "StatusPageCustomField" DROP COLUMN "dropdownOptions"`);
22
+ await queryRunner.query(`ALTER TABLE "ScheduledMaintenanceCustomField" DROP COLUMN "dropdownOptions"`);
23
+ await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyCustomField" DROP COLUMN "dropdownOptions"`);
24
+ await queryRunner.query(`ALTER TABLE "MonitorCustomField" DROP COLUMN "dropdownOptions"`);
25
+ await queryRunner.query(`ALTER TABLE "IncidentCustomField" DROP COLUMN "dropdownOptions"`);
26
+ }
27
+ }
28
+ //# sourceMappingURL=1779619108628-AddDropdownOptionsToCustomFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1779619108628-AddDropdownOptionsToCustomFields.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1779619108628-AddDropdownOptionsToCustomFields.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,6CAA6C;IAA1D;QAGS,SAAI,GAAW,+CAA+C,CAAC;IA6DxE,CAAC;IA3DQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,gFAAgF,CACjF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+EAA+E,CAChF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,wFAAwF,CACzF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,4FAA4F,CAC7F,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kFAAkF,CACnF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kFAAkF,CACnF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6EAA6E,CAC9E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6LAA6L,CAC9L,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,iNAAiN,CAClN,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,yNAAyN,CAC1N,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sMAAsM,CACvM,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8DAA8D,CAC/D,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mEAAmE,CACpE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mEAAmE,CACpE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6EAA6E,CAC9E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,yEAAyE,CAC1E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gEAAgE,CACjE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,iEAAiE,CAClE,CAAC;IACJ,CAAC;CACF"}
@@ -342,6 +342,11 @@ import { DropServiceDependencyTable1779277271302 } from "./1779277271302-DropSer
342
342
  import { AddTelemetryRetentionToHostDockerKubernetes1779282769946 } from "./1779282769946-AddTelemetryRetentionToHostDockerKubernetes";
343
343
  import { AttachKubernetesAndDockerToIncidentAndAlert1779302536475 } from "./1779302536475-AttachKubernetesAndDockerToIncidentAndAlert";
344
344
  import { AttachServiceToIncidentAndAlert1779303924241 } from "./1779303924241-AttachServiceToIncidentAndAlert";
345
+ import { AddAgentVersionToKubernetesDockerHost1779392865146 } from "./1779392865146-AddAgentVersionToKubernetesDockerHost";
346
+ import { AddPerformanceIndexes1779392970424 } from "./1779392970424-AddPerformanceIndexes";
347
+ import { AddFacetsToTableView1779536271671 } from "./1779536271671-AddFacetsToTableView";
348
+ import { AddIsMemberNotifiedIndex1779540427366 } from "./1779540427366-AddIsMemberNotifiedIndex";
349
+ import { AddDropdownOptionsToCustomFields1779619108628 } from "./1779619108628-AddDropdownOptionsToCustomFields";
345
350
  export default [
346
351
  InitialMigration,
347
352
  MigrationName1717678334852,
@@ -687,5 +692,10 @@ export default [
687
692
  AddTelemetryRetentionToHostDockerKubernetes1779282769946,
688
693
  AttachKubernetesAndDockerToIncidentAndAlert1779302536475,
689
694
  AttachServiceToIncidentAndAlert1779303924241,
695
+ AddAgentVersionToKubernetesDockerHost1779392865146,
696
+ AddPerformanceIndexes1779392970424,
697
+ AddFacetsToTableView1779536271671,
698
+ AddIsMemberNotifiedIndex1779540427366,
699
+ AddDropdownOptionsToCustomFields1779619108628,
690
700
  ];
691
701
  //# sourceMappingURL=Index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/Index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,iEAAiE,EAAE,MAAM,sEAAsE,CAAC;AACzJ,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kDAAkD,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,C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B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,iEAAiE;IACjE,0BAA0B;IAC1B,0BAA0B;IAC1B,kCAAkC;IAClC,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,kDAAkD;IAClD,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,gCAAgC;IAChC,0BAA0B;IAC1B,gDAAgD;IAChD,0BAA0B;IAC1B,0CAA0C;IAC1C,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,uCAAuC;IACvC,iCAAiC;IACjC,oCAAoC;IACpC,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,wCAAwC;IACxC,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,mDAAmD;IACnD,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,4BAA4B;IAC5B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,+BAA+B;IAC/B,0BAA0B;IAC1B,mCAAmC;IACnC,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,sDAAsD;IACtD,0BAA0B;IAC1B,0CAA0C;IAC1C,0CAA0C;IAC1C,+BAA+B;IAC/B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,+BAA+B;IAC/B,yCAAyC;IACzC,0BAA0B;IAC1B,4CAA4C;IAC5C,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,iCAAiC;IACjC,oCAAoC;IACpC,qCAAqC;IACrC,8BAA8B;IAC9B,4BAA4B;IAC5B,mCAAmC;IACnC,2BAA2B;IAC3B,0BAA0B;IAC1B,0BAA0B;IAC1B,8BAA8B;IAC9B,0BAA0B;IAC1B,yCAAyC;IACzC,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,uCAAuC;IACvC,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,mCAAmC;IACnC,4CAA4C;IAC5C,2CAA2C;IAC3C,6BAA6B;IAC7B,6CAA6C;IAC7C,6CAA6C;IAC7C,8CAA8C;IAC9C,gDAAgD;IAChD,uCAAuC;IACvC,wCAAwC;IACxC,uCAAuC;IACvC,wDAAwD;IACxD,wDAAwD;IACxD,4CAA4C;CAC7C,CAAC"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/Index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,iEAAiE,EAAE,MAAM,sEAAsE,CAAC;AACzJ,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kDAAkD,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,C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B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,iEAAiE;IACjE,0BAA0B;IAC1B,0BAA0B;IAC1B,kCAAkC;IAClC,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,kDAAkD;IAClD,0B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"}
@@ -62,10 +62,10 @@ class Database {
62
62
  }
63
63
  }
64
64
  static async checkConnnectionStatus() {
65
- // check popstgres connection to see if it is still alive
66
65
  var _a;
66
+ // SELECT 1 round-trips a connection without scanning any user table.
67
67
  try {
68
- const result = await ((_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.query(`SELECT COUNT(domain) FROM "AcmeChallenge"`)); // this is a dummy query to check if the connection is still alive
68
+ const result = await ((_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.query(`SELECT 1`));
69
69
  if (!result) {
70
70
  return false;
71
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresDatabase.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/PostgresDatabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresDatabase.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/PostgresDatabase.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import ApiKeyService from "../Services/ApiKeyService";
11
11
  import GlobalConfigService from "../Services/GlobalConfigService";
12
12
  import UserService from "../Services/UserService";
13
- import QueryHelper from "../Types/Database/QueryHelper";
14
- import OneUptimeDate from "../../Types/Date";
15
13
  import BadDataException from "../../Types/Exception/BadDataException";
16
14
  import ObjectID from "../../Types/ObjectID";
17
15
  import UserType from "../../Types/UserType";
@@ -69,45 +67,29 @@ export default class ProjectMiddleware {
69
67
  if (!apiKey) {
70
68
  throw new BadDataException("API Key not found in the request header. Please provide a valid API Key in the request header.");
71
69
  }
72
- let apiKeyModel = null;
73
- if (apiKey) {
74
- apiKeyModel = await ApiKeyService.findOneBy({
75
- query: {
76
- apiKey: apiKey,
77
- expiresAt: QueryHelper.greaterThan(OneUptimeDate.getCurrentDate()),
78
- },
79
- select: {
80
- _id: true,
81
- projectId: true,
82
- },
83
- props: { isRoot: true },
84
- });
85
- if (apiKeyModel) {
86
- tenantId = (apiKeyModel === null || apiKeyModel === void 0 ? void 0 : apiKeyModel.projectId) || null;
87
- if (!tenantId) {
88
- throw new BadDataException("Invalid API Key");
89
- }
90
- req.tenantId = tenantId;
91
- if (apiKeyModel) {
92
- req.userType = UserType.API;
93
- /*
94
- * TODO: Add API key permissions.
95
- * (req as OneUptimeRequest).permissions =
96
- * apiKeyModel.permissions || [];
97
- */
98
- req.userGlobalAccessPermission =
99
- await APIKeyAccessPermission.getDefaultApiGlobalPermission(tenantId);
100
- const userTenantAccessPermission = await APIKeyAccessPermission.getApiTenantAccessPermission(tenantId, apiKeyModel.id);
101
- if (userTenantAccessPermission) {
102
- req.userTenantAccessPermission = {};
103
- req
104
- .userTenantAccessPermission[tenantId.toString()] = userTenantAccessPermission;
105
- return next();
106
- }
107
- }
70
+ /*
71
+ * Cached lookup — see ApiKeyService.findApiKey. Hot path for any
72
+ * automated caller hitting the API by key.
73
+ */
74
+ const apiKeyRow = await ApiKeyService.findApiKey(apiKey);
75
+ if (apiKeyRow) {
76
+ tenantId = apiKeyRow.projectId;
77
+ req.tenantId = tenantId;
78
+ req.userType = UserType.API;
79
+ /*
80
+ * TODO: Add API key permissions.
81
+ */
82
+ req.userGlobalAccessPermission =
83
+ await APIKeyAccessPermission.getDefaultApiGlobalPermission(tenantId);
84
+ const userTenantAccessPermission = await APIKeyAccessPermission.getApiTenantAccessPermission(tenantId, apiKeyRow.id);
85
+ if (userTenantAccessPermission) {
86
+ req.userTenantAccessPermission = {};
87
+ req
88
+ .userTenantAccessPermission[tenantId.toString()] = userTenantAccessPermission;
89
+ return next();
108
90
  }
109
91
  }
110
- if (!apiKeyModel) {
92
+ if (!apiKeyRow) {
111
93
  // check master key.
112
94
  const masterKeyGlobalConfig = await GlobalConfigService.findOneBy({
113
95
  query: {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectAuthorization.js","sourceRoot":"","sources":["../../../../Server/Middleware/ProjectAuthorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectAuthorization.js","sourceRoot":"","sources":["../../../../Server/Middleware/ProjectAuthorization.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,6 @@ import Response from "../Utils/Response";
20
20
  import ProjectMiddleware from "./ProjectAuthorization";
21
21
  import SpanUtil from "../Utils/Telemetry/SpanUtil";
22
22
  import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
23
- import OneUptimeDate from "../../Types/Date";
24
23
  import NotAuthenticatedException from "../../Types/Exception/NotAuthenticatedException";
25
24
  import SsoAuthorizationException from "../../Types/Exception/SsoAuthorizationException";
26
25
  import TenantNotFoundException from "../../Types/Exception/TenantNotFoundException";
@@ -130,8 +129,12 @@ export default class UserMiddleware {
130
129
  const oneuptimeRequest = req;
131
130
  if (tenantId) {
132
131
  oneuptimeRequest.tenantId = tenantId;
133
- // update last active of project
134
- await ProjectService.updateLastActive(tenantId);
132
+ /*
133
+ * Fire-and-forget: lastActive write is debounced inside the service
134
+ * (60s in-process cache) and we don't need the result before
135
+ * continuing.
136
+ */
137
+ void ProjectService.updateLastActive(tenantId);
135
138
  }
136
139
  if (ProjectMiddleware.hasApiKey(req)) {
137
140
  return await ProjectMiddleware.isValidProjectIdAndApiKeyMiddleware(req, res, next);
@@ -160,24 +163,38 @@ export default class UserMiddleware {
160
163
  SpanUtil.addAttributesToCurrentSpan(Object.assign(Object.assign({ userId: userId, userType: oneuptimeRequest.userType }, (tenantId ? { projectId: tenantId.toString() } : {})), (oneuptimeRequest.requestId
161
164
  ? { requestId: oneuptimeRequest.requestId }
162
165
  : {})));
163
- await UserService.updateOneBy({
164
- query: {
165
- _id: userId,
166
- },
167
- props: { isRoot: true },
168
- data: { lastActive: OneUptimeDate.getCurrentDate() },
169
- });
170
- const userGlobalAccessPermission = await AccessTokenService.getUserGlobalAccessPermission(oneuptimeRequest.userAuthorization.userId);
171
- if (userGlobalAccessPermission) {
172
- oneuptimeRequest.userGlobalAccessPermission = userGlobalAccessPermission;
173
- }
166
+ /*
167
+ * Fire-and-forget: lastActive write is debounced inside the service
168
+ * (60s in-process cache) and we don't need the result before continuing.
169
+ */
170
+ void UserService.updateLastActive(new ObjectID(userId));
171
+ /*
172
+ * Resolve global permission, tenant permission, and team membership in
173
+ * parallel. These were previously sequential awaits — each added an
174
+ * extra round-trip latency to every authenticated request. The original
175
+ * code wrapped only the tenant-side calls in try/catch (to convert
176
+ * SsoAuthorizationException etc. into an HTTP error response); we
177
+ * preserve that semantic by routing the rejection through the same
178
+ * catch only when tenantId is present.
179
+ */
180
+ const userGlobalAccessPermissionPromise = AccessTokenService.getUserGlobalAccessPermission(oneuptimeRequest.userAuthorization.userId);
181
+ let userGlobalAccessPermission = null;
174
182
  if (tenantId) {
175
183
  try {
176
- const userTenantAccessPermission = await UserMiddleware.getUserTenantAccessPermissionWithTenantId({
177
- req,
178
- tenantId,
179
- userId: new ObjectID(userId),
180
- });
184
+ const [globalPermission, userTenantAccessPermission, userTeamIds] = await Promise.all([
185
+ userGlobalAccessPermissionPromise,
186
+ UserMiddleware.getUserTenantAccessPermissionWithTenantId({
187
+ req,
188
+ tenantId,
189
+ userId: new ObjectID(userId),
190
+ }),
191
+ TeamMemberService.getTeamIdsForUser(new ObjectID(userId), tenantId),
192
+ ]);
193
+ userGlobalAccessPermission = globalPermission;
194
+ if (userGlobalAccessPermission) {
195
+ oneuptimeRequest.userGlobalAccessPermission =
196
+ userGlobalAccessPermission;
197
+ }
181
198
  if (userTenantAccessPermission) {
182
199
  oneuptimeRequest.userTenantAccessPermission = {};
183
200
  oneuptimeRequest.userTenantAccessPermission[tenantId.toString()] =
@@ -189,13 +206,19 @@ export default class UserMiddleware {
189
206
  * an extra DB roundtrip on every permission check. Absent for non-user
190
207
  * callers (API keys, Probes); `Owned` then evaluates as `All`.
191
208
  */
192
- oneuptimeRequest.userTeamIds =
193
- await TeamMemberService.getTeamIdsForUser(new ObjectID(userId), tenantId);
209
+ oneuptimeRequest.userTeamIds = userTeamIds;
194
210
  }
195
211
  catch (error) {
196
212
  return Response.sendErrorResponse(req, res, error);
197
213
  }
198
214
  }
215
+ else {
216
+ userGlobalAccessPermission = await userGlobalAccessPermissionPromise;
217
+ if (userGlobalAccessPermission) {
218
+ oneuptimeRequest.userGlobalAccessPermission =
219
+ userGlobalAccessPermission;
220
+ }
221
+ }
199
222
  if (req.headers["is-multi-tenant-query"]) {
200
223
  if (userGlobalAccessPermission &&
201
224
  userGlobalAccessPermission.projectIds &&
@@ -265,24 +288,29 @@ export default class UserMiddleware {
265
288
  }
266
289
  static async getUserTenantAccessPermissionWithTenantId(data) {
267
290
  const { req, tenantId, userId } = data;
268
- const project = await ProjectService.findOneById({
269
- id: tenantId,
270
- select: {
271
- requireSsoForLogin: true,
272
- },
273
- props: {
274
- isRoot: true,
275
- },
276
- });
277
- if (!project) {
278
- throw new TenantNotFoundException("Invalid tenantId");
279
- }
280
- if (project.requireSsoForLogin &&
291
+ /*
292
+ * Resolve the SSO requirement and the tenant permission in parallel.
293
+ * `getRequireSsoForLogin` is cached in-process for 60s, so this is
294
+ * usually free; the tenant permission lookup is the expensive call.
295
+ */
296
+ const [requireSsoForLogin, tenantPermission] = await Promise.all([
297
+ ProjectService.getRequireSsoForLogin(tenantId).catch((err) => {
298
+ /*
299
+ * Preserve the original behavior of throwing a TenantNotFoundException
300
+ * for an unknown project. Any other error re-throws.
301
+ */
302
+ if (err.message === "Project not found") {
303
+ throw new TenantNotFoundException("Invalid tenantId");
304
+ }
305
+ throw err;
306
+ }),
307
+ AccessTokenService.getUserTenantAccessPermission(userId, tenantId),
308
+ ]);
309
+ if (requireSsoForLogin &&
281
310
  !UserMiddleware.doesSsoTokenForProjectExist(req, tenantId, userId)) {
282
311
  throw new SsoAuthorizationException();
283
312
  }
284
- // get project level permissions if projectid exists in request.
285
- return await AccessTokenService.getUserTenantAccessPermission(userId, tenantId);
313
+ return tenantPermission;
286
314
  }
287
315
  static async getUserTenantAccessPermissionForMultiTenant(req, userId, projectIds) {
288
316
  if (!projectIds.length) {
@@ -303,28 +331,33 @@ export default class UserMiddleware {
303
331
  isRoot: true,
304
332
  },
305
333
  });
306
- let result = null;
307
- for (const projectId of projectIds) {
308
- // check if the force sso login is required. and if it is, then check then token.
309
- let userTenantAccessPermission;
334
+ /*
335
+ * Resolve permissions for every project in parallel. With the previous
336
+ * for-await loop this scaled linearly with project count, adding one
337
+ * round-trip per project even on cache hits.
338
+ */
339
+ const resolved = await Promise.all(projectIds.map(async (projectId) => {
310
340
  if (projects.find((p) => {
311
341
  return p._id === projectId.toString() && p.requireSsoForLogin;
312
342
  }) &&
313
343
  !UserMiddleware.doesSsoTokenForProjectExist(req, projectId, userId)) {
314
- // Add default permissions.
315
- userTenantAccessPermission =
316
- UserPermissionUtil.getDefaultUserTenantAccessPermission(projectId);
317
- }
318
- else {
319
- // get project level permissions if projectid exists in request.
320
- userTenantAccessPermission =
321
- await AccessTokenService.getUserTenantAccessPermission(userId, projectId);
344
+ return {
345
+ projectId,
346
+ permission: UserPermissionUtil.getDefaultUserTenantAccessPermission(projectId),
347
+ };
322
348
  }
323
- if (userTenantAccessPermission) {
349
+ return {
350
+ projectId,
351
+ permission: await AccessTokenService.getUserTenantAccessPermission(userId, projectId),
352
+ };
353
+ }));
354
+ let result = null;
355
+ for (const { projectId, permission } of resolved) {
356
+ if (permission) {
324
357
  if (!result) {
325
358
  result = {};
326
359
  }
327
- result[projectId.toString()] = userTenantAccessPermission;
360
+ result[projectId.toString()] = permission;
328
361
  }
329
362
  }
330
363
  return result;