@oneuptime/common 12.0.28 → 12.0.30

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 (367) hide show
  1. package/Models/DatabaseModels/DashboardDomain.ts +43 -0
  2. package/Models/DatabaseModels/Index.ts +11 -0
  3. package/Models/DatabaseModels/MonitorTemplate.ts +15 -3
  4. package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +43 -0
  5. package/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.ts +662 -0
  6. package/Models/DatabaseModels/ProjectOnCallCalendarFeed.ts +584 -0
  7. package/Models/DatabaseModels/StatusPageDomain.ts +43 -0
  8. package/Models/DatabaseModels/UserOnCallCalendarFeed.ts +546 -0
  9. package/Models/DatabaseModels/UserOnCallShiftReminder.ts +231 -0
  10. package/Models/DatabaseModels/UserOnCallShiftReminderLog.ts +331 -0
  11. package/Server/API/DashboardDomainAPI.ts +74 -0
  12. package/Server/API/MicrosoftTeamsAPI.ts +81 -180
  13. package/Server/API/OnCallCalendarAPI.ts +2194 -0
  14. package/Server/API/StatusPageDomainAPI.ts +74 -0
  15. package/Server/EnvironmentConfig.ts +138 -0
  16. package/Server/Infrastructure/OnCallCalendarFeedCache.ts +1050 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.ts +43 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.ts +40 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.ts +253 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  21. package/Server/Middleware/OnCallCalendarFeedRateLimit.ts +487 -0
  22. package/Server/Middleware/ProjectAuthorization.ts +6 -1
  23. package/Server/Services/DashboardDomainService.ts +131 -0
  24. package/Server/Services/Index.ts +12 -0
  25. package/Server/Services/LogPipelineProcessorService.ts +88 -0
  26. package/Server/Services/MonitorTemplateService.ts +70 -11
  27. package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +32 -0
  28. package/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.ts +260 -0
  29. package/Server/Services/OnCallDutyPolicyScheduleLayerService.ts +70 -3
  30. package/Server/Services/OnCallDutyPolicyScheduleLayerUserService.ts +138 -3
  31. package/Server/Services/OnCallDutyPolicyScheduleService.ts +1465 -134
  32. package/Server/Services/OnCallDutyPolicyUserOverrideService.ts +167 -31
  33. package/Server/Services/ProjectOnCallCalendarFeedService.ts +192 -0
  34. package/Server/Services/StatusPageDomainService.ts +163 -3
  35. package/Server/Services/StatusPagePrivateUserSessionService.ts +197 -56
  36. package/Server/Services/TeamMemberService.ts +489 -1
  37. package/Server/Services/TeamService.ts +50 -0
  38. package/Server/Services/UserNotificationSettingService.ts +44 -1
  39. package/Server/Services/UserOnCallCalendarFeedService.ts +159 -0
  40. package/Server/Services/UserOnCallShiftReminderLogService.ts +151 -0
  41. package/Server/Services/UserOnCallShiftReminderService.ts +112 -0
  42. package/Server/Types/Domain.ts +17 -0
  43. package/Server/Utils/APIKey/AccessPermission.ts +24 -0
  44. package/Server/Utils/Greenlock/Greenlock.ts +156 -58
  45. package/Server/Utils/LogPipelineProcessorValidation.ts +112 -0
  46. package/Server/Utils/OnCall/CalendarFeedToken.ts +241 -0
  47. package/Server/Utils/OnCall/OnCallCalendarFeedRenderer.ts +1488 -0
  48. package/Server/Utils/OnCall/OnCallCalendarFeedUrls.ts +230 -0
  49. package/Server/Utils/OnCall/OnCallShiftChangeListeners.ts +227 -0
  50. package/Server/Utils/OnCall/OnCallShiftMaterializer.ts +1127 -0
  51. package/Server/Utils/OnCall/OnCallShiftReminderListener.ts +174 -0
  52. package/Server/Utils/OnCall/OnCallShiftReminderRunner.ts +2584 -0
  53. package/Server/Utils/Response.ts +134 -0
  54. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +1094 -45
  55. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +153 -17
  56. package/Server/Utils/StartServer.ts +10 -0
  57. package/Server/Utils/Telemetry/AppMetrics.ts +51 -0
  58. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +23 -11
  59. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +0 -170
  60. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.ts +158 -0
  61. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +23 -11
  62. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +35 -13
  63. package/Tests/App/Dashboard/MonitorTemplateColumnAndFacet.test.tsx +505 -0
  64. package/Tests/App/Dashboard/OnCallCalendarFeedLinks.test.tsx +229 -0
  65. package/Tests/App/Dashboard/OnCallCalendarFeedPlanGate.test.tsx +489 -0
  66. package/Tests/App/Dashboard/OnCallCalendarFeedSideMenus.test.tsx +149 -0
  67. package/Tests/App/Dashboard/OnCallCalendarFeedUtil.test.ts +855 -0
  68. package/Tests/App/Dashboard/OnCallPersonalCalendarFeed.test.tsx +1209 -0
  69. package/Tests/App/Dashboard/OnCallSharedCalendarFeedCard.test.tsx +1019 -0
  70. package/Tests/App/Dashboard/OnCallShiftRemindersAndUpcomingShifts.test.tsx +655 -0
  71. package/Tests/App/Dashboard/UserSettingsSetupChecklistModel.test.ts +73 -0
  72. package/Tests/App/StatusPage/StatusPageLoginCodeBootstrap.test.ts +106 -0
  73. package/Tests/App/StatusPage/StatusPageLoginCodeUtil.test.ts +84 -0
  74. package/Tests/App/StatusPage/StatusPageRedirectSafety.test.ts +119 -0
  75. package/Tests/Models/MonitorTemplateMonitorNameColumn.test.ts +258 -0
  76. package/Tests/Models/OnCallCalendarFeedModels.test.ts +642 -0
  77. package/Tests/Models/OnCallDutyPolicyScheduleCalendarFeed.test.ts +288 -0
  78. package/Tests/Models/OnCallDutyPolicyScheduleShiftConfigVersion.test.ts +88 -0
  79. package/Tests/Models/UserOnCallShiftReminderModels.test.ts +368 -0
  80. package/Tests/Server/API/CustomDomainReissueSslAPI.test.ts +469 -0
  81. package/Tests/Server/API/Helpers.ts +8 -0
  82. package/Tests/Server/API/MicrosoftTeamsBotMessagesEndpoint.test.ts +729 -0
  83. package/Tests/Server/API/MicrosoftTeamsBotTestEndpoint.test.ts +26 -0
  84. package/Tests/Server/API/MicrosoftTeamsLegacyWebhookRemoval.test.ts +402 -0
  85. package/Tests/Server/API/OnCallCalendarAPI.test.ts +4461 -0
  86. package/Tests/Server/EnvironmentConfigOnCallCalendarFeed.test.ts +357 -0
  87. package/Tests/Server/Infrastructure/OnCallCalendarFeedCache.test.ts +1589 -0
  88. package/Tests/Server/Infrastructure/Postgres/AddOnCallCalendarFeedsMigration.test.ts +369 -0
  89. package/Tests/Server/Middleware/OnCallCalendarFeedRateLimit.test.ts +1365 -0
  90. package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +4 -0
  91. package/Tests/Server/Services/AddCertificateReissueRequestedAtToDomainsMigration.test.ts +287 -0
  92. package/Tests/Server/Services/CustomDomainCertificateReissue.test.ts +477 -0
  93. package/Tests/Server/Services/FeedRetentionConsistency.test.ts +70 -0
  94. package/Tests/Server/Services/LogPipelineProcessorSaveValidation.test.ts +249 -0
  95. package/Tests/Server/Services/MonitorTemplateServiceBulkSync.test.ts +549 -0
  96. package/Tests/Server/Services/MonitorTemplateServiceNetworkDeviceSync.test.ts +16 -3
  97. package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +57 -0
  98. package/Tests/Server/Services/OnCallCalendarFeedServices.test.ts +1103 -0
  99. package/Tests/Server/Services/OnCallDutyPolicyScheduleResolver.test.ts +1037 -0
  100. package/Tests/Server/Services/OnCallShiftConfigPropagation.test.ts +1270 -0
  101. package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +151 -15
  102. package/Tests/Server/Services/StatusPagePrivateUserSessionService.test.ts +587 -0
  103. package/Tests/Server/Services/TeamDeleteMemberCleanup.test.ts +156 -0
  104. package/Tests/Server/Services/TeamMemberOnCallCleanup.test.ts +755 -0
  105. package/Tests/Server/Services/UserNotificationSettingShiftReminderDefaults.test.ts +267 -0
  106. package/Tests/Server/Services/UserOnCallShiftReminderServices.test.ts +583 -0
  107. package/Tests/Server/Types/Database/Permissions/ApiKeyFileAccess.test.ts +286 -0
  108. package/Tests/Server/Types/Database/Permissions/MonitorTemplateColumnAccess.test.ts +328 -0
  109. package/Tests/Server/Types/Database/Permissions/OnCallCalendarFeedPermissions.test.ts +254 -0
  110. package/Tests/Server/Types/Database/QueryHelperFindWithSameTextAndIsNull.test.ts +83 -0
  111. package/Tests/Server/Utils/AI/SRE/ConfidenceSignal.test.ts +377 -0
  112. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +16 -1
  113. package/Tests/Server/Utils/Greenlock/CertificateRenewalSchedule.test.ts +250 -0
  114. package/Tests/Server/Utils/LogPipelineProcessorValidation.test.ts +198 -0
  115. package/Tests/Server/Utils/OnCall/CalendarFeedToken.test.ts +467 -0
  116. package/Tests/Server/Utils/OnCall/OnCallCalendarFeedRenderer.test.ts +2142 -0
  117. package/Tests/Server/Utils/OnCall/OnCallCalendarFeedUrls.test.ts +278 -0
  118. package/Tests/Server/Utils/OnCall/OnCallResolverTestHarness.ts +440 -0
  119. package/Tests/Server/Utils/OnCall/OnCallShiftChangeListeners.test.ts +314 -0
  120. package/Tests/Server/Utils/OnCall/OnCallShiftMaterializer.test.ts +1502 -0
  121. package/Tests/Server/Utils/OnCall/OnCallShiftReminderListener.test.ts +491 -0
  122. package/Tests/Server/Utils/OnCall/OnCallShiftReminderRunner.test.ts +3088 -0
  123. package/Tests/Server/Utils/OnCall/OnCallShiftReminderTestHarness.ts +910 -0
  124. package/Tests/Server/Utils/ResponseSendCalendarResponse.test.ts +561 -0
  125. package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +48 -9
  126. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsAuth.test.ts +726 -0
  127. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +74 -11
  128. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsErrorHandling.test.ts +1107 -0
  129. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +20 -3
  130. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +51 -11
  131. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +1246 -0
  132. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsRequestContract.test.ts +961 -0
  133. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsResponseParsing.test.ts +653 -0
  134. package/Tests/Server/Utils/StartServerEncryptionSecretWarning.test.ts +64 -0
  135. package/Tests/Server/Utils/Telemetry/AppMetrics.test.ts +29 -0
  136. package/Tests/Server/Utils/Workspace/MicrosoftTeamsActionAuthorization.test.ts +880 -0
  137. package/Tests/Types/API/HTTPResponse.test.ts +175 -0
  138. package/Tests/Types/API/Route.test.ts +36 -4
  139. package/Tests/Types/Calendar/ICalendar.test.ts +488 -0
  140. package/Tests/Types/Database/DatabaseProperty.test.ts +171 -0
  141. package/Tests/Types/DateLocalShortDateTimeString.test.ts +518 -0
  142. package/Tests/Types/DateLocalTimeString.test.ts +259 -0
  143. package/Tests/Types/DateUserPrefers12HourFormat.test.ts +316 -0
  144. package/Tests/Types/NotificationSetting/NotificationSettingEventType.test.ts +53 -0
  145. package/Tests/Types/OnCallDutyPolicy/CalendarFeedTestFixtures.ts +310 -0
  146. package/Tests/Types/OnCallDutyPolicy/CalendarFeedWindow.test.ts +205 -0
  147. package/Tests/Types/OnCallDutyPolicy/LayerUtilLayerMetaAndIterationCap.test.ts +458 -0
  148. package/Tests/Types/OnCallDutyPolicy/MaterializedShift.test.ts +197 -0
  149. package/Tests/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.test.ts +1986 -0
  150. package/Tests/Types/OnCallDutyPolicy/ScheduleShiftUtilGroupKey.test.ts +678 -0
  151. package/Tests/Types/OnCallDutyPolicy/ShiftSeamUtil.test.ts +417 -0
  152. package/Tests/UI/Components/LogsHistogram.test.tsx +41 -2
  153. package/Tests/UI/Components/LogsViewerEmptyStateTimeRange.test.tsx +212 -0
  154. package/Tests/UI/Components/TelemetryChartClockFormat.test.tsx +359 -0
  155. package/Tests/UI/Components/TimeRangePickerClockFormat.test.tsx +422 -0
  156. package/Tests/UI/Components/TimeRangePickerDropdown.test.tsx +146 -8
  157. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsMessagingEndpointGuidance.test.tsx +520 -0
  158. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +10 -0
  159. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
  160. package/Tests/UI/Utils/Navigation.test.ts +82 -0
  161. package/Tests/Utils/Array.test.ts +100 -0
  162. package/Tests/Utils/CertificateReissue.test.ts +225 -0
  163. package/Tests/Utils/Grok/Grok.test.ts +492 -0
  164. package/Tests/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.test.ts +181 -13
  165. package/Types/API/Route.ts +20 -5
  166. package/Types/Calendar/ICalendar.ts +442 -0
  167. package/Types/Date.ts +143 -13
  168. package/Types/Email/EmailTemplateType.ts +2 -0
  169. package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
  170. package/Types/OnCallDutyPolicy/CalendarFeedWindow.ts +140 -0
  171. package/Types/OnCallDutyPolicy/Layer.ts +190 -35
  172. package/Types/OnCallDutyPolicy/MaterializedShift.ts +274 -0
  173. package/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.ts +1415 -0
  174. package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +159 -4
  175. package/Types/OnCallDutyPolicy/ShiftSeamUtil.ts +106 -0
  176. package/Types/Rum/SessionReplay.ts +62 -1
  177. package/UI/Components/Date/TimeRangePickerDropdown.tsx +9 -5
  178. package/UI/Components/LogsViewer/LogsViewer.tsx +12 -7
  179. package/UI/Components/LogsViewer/components/HistogramTooltip.tsx +18 -17
  180. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +21 -28
  181. package/UI/Components/LogsViewer/components/LogsHistogram.tsx +2 -4
  182. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +2 -4
  183. package/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.tsx +17 -16
  184. package/UI/Utils/Navigation.ts +42 -0
  185. package/Utils/Array.ts +37 -0
  186. package/Utils/CertificateReissue.ts +128 -0
  187. package/Utils/Grok/Grok.ts +461 -0
  188. package/Utils/Grok/GrokPatterns.ts +118 -0
  189. package/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.ts +58 -6
  190. package/build/dist/Models/DatabaseModels/DashboardDomain.js +44 -0
  191. package/build/dist/Models/DatabaseModels/DashboardDomain.js.map +1 -1
  192. package/build/dist/Models/DatabaseModels/Index.js +11 -0
  193. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  194. package/build/dist/Models/DatabaseModels/MonitorTemplate.js +17 -4
  195. package/build/dist/Models/DatabaseModels/MonitorTemplate.js.map +1 -1
  196. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +44 -0
  197. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
  198. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js +699 -0
  199. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js.map +1 -0
  200. package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js +620 -0
  201. package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js.map +1 -0
  202. package/build/dist/Models/DatabaseModels/StatusPageDomain.js +44 -0
  203. package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
  204. package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js +585 -0
  205. package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js.map +1 -0
  206. package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js +247 -0
  207. package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js.map +1 -0
  208. package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js +355 -0
  209. package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js.map +1 -0
  210. package/build/dist/Server/API/DashboardDomainAPI.js +43 -1
  211. package/build/dist/Server/API/DashboardDomainAPI.js.map +1 -1
  212. package/build/dist/Server/API/MicrosoftTeamsAPI.js +74 -118
  213. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  214. package/build/dist/Server/API/OnCallCalendarAPI.js +1371 -0
  215. package/build/dist/Server/API/OnCallCalendarAPI.js.map +1 -0
  216. package/build/dist/Server/API/StatusPageDomainAPI.js +43 -1
  217. package/build/dist/Server/API/StatusPageDomainAPI.js.map +1 -1
  218. package/build/dist/Server/EnvironmentConfig.js +102 -0
  219. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  220. package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js +663 -0
  221. package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js.map +1 -0
  222. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.js +34 -0
  223. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.js.map +1 -0
  224. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.js +28 -0
  225. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.js.map +1 -0
  226. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js +103 -0
  227. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js.map +1 -0
  228. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  229. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  230. package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js +342 -0
  231. package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js.map +1 -0
  232. package/build/dist/Server/Middleware/ProjectAuthorization.js +6 -1
  233. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  234. package/build/dist/Server/Services/DashboardDomainService.js +104 -0
  235. package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
  236. package/build/dist/Server/Services/Index.js +12 -0
  237. package/build/dist/Server/Services/Index.js.map +1 -1
  238. package/build/dist/Server/Services/LogPipelineProcessorService.js +65 -0
  239. package/build/dist/Server/Services/LogPipelineProcessorService.js.map +1 -1
  240. package/build/dist/Server/Services/MonitorTemplateService.js +57 -11
  241. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  242. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +20 -0
  243. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
  244. package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js +219 -0
  245. package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js.map +1 -0
  246. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js +47 -3
  247. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js.map +1 -1
  248. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js +112 -3
  249. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js.map +1 -1
  250. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +955 -9
  251. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  252. package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js +93 -6
  253. package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js.map +1 -1
  254. package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js +157 -0
  255. package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js.map +1 -0
  256. package/build/dist/Server/Services/StatusPageDomainService.js +132 -3
  257. package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
  258. package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js +112 -32
  259. package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js.map +1 -1
  260. package/build/dist/Server/Services/TeamMemberService.js +396 -1
  261. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  262. package/build/dist/Server/Services/TeamService.js +43 -0
  263. package/build/dist/Server/Services/TeamService.js.map +1 -1
  264. package/build/dist/Server/Services/UserNotificationSettingService.js +26 -1
  265. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  266. package/build/dist/Server/Services/UserOnCallCalendarFeedService.js +140 -0
  267. package/build/dist/Server/Services/UserOnCallCalendarFeedService.js.map +1 -0
  268. package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js +116 -0
  269. package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js.map +1 -0
  270. package/build/dist/Server/Services/UserOnCallShiftReminderService.js +92 -0
  271. package/build/dist/Server/Services/UserOnCallShiftReminderService.js.map +1 -0
  272. package/build/dist/Server/Types/Domain.js +16 -0
  273. package/build/dist/Server/Types/Domain.js.map +1 -1
  274. package/build/dist/Server/Utils/APIKey/AccessPermission.js +24 -0
  275. package/build/dist/Server/Utils/APIKey/AccessPermission.js.map +1 -1
  276. package/build/dist/Server/Utils/Greenlock/Greenlock.js +110 -35
  277. package/build/dist/Server/Utils/Greenlock/Greenlock.js.map +1 -1
  278. package/build/dist/Server/Utils/LogPipelineProcessorValidation.js +77 -0
  279. package/build/dist/Server/Utils/LogPipelineProcessorValidation.js.map +1 -0
  280. package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js +161 -0
  281. package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js.map +1 -0
  282. package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js +983 -0
  283. package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js.map +1 -0
  284. package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js +155 -0
  285. package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js.map +1 -0
  286. package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js +145 -0
  287. package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js.map +1 -0
  288. package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js +752 -0
  289. package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js.map +1 -0
  290. package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js +92 -0
  291. package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js.map +1 -0
  292. package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js +1786 -0
  293. package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js.map +1 -0
  294. package/build/dist/Server/Utils/Response.js +97 -0
  295. package/build/dist/Server/Utils/Response.js.map +1 -1
  296. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +777 -36
  297. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
  298. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +108 -17
  299. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
  300. package/build/dist/Server/Utils/StartServer.js +9 -1
  301. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  302. package/build/dist/Server/Utils/Telemetry/AppMetrics.js +41 -0
  303. package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -1
  304. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +17 -6
  305. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
  306. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +0 -159
  307. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
  308. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.js +128 -0
  309. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.js.map +1 -0
  310. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +17 -6
  311. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
  312. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +25 -13
  313. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  314. package/build/dist/Types/API/Route.js +16 -5
  315. package/build/dist/Types/API/Route.js.map +1 -1
  316. package/build/dist/Types/Calendar/ICalendar.js +290 -0
  317. package/build/dist/Types/Calendar/ICalendar.js.map +1 -0
  318. package/build/dist/Types/Date.js +115 -13
  319. package/build/dist/Types/Date.js.map +1 -1
  320. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  321. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  322. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
  323. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  324. package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js +97 -0
  325. package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js.map +1 -0
  326. package/build/dist/Types/OnCallDutyPolicy/Layer.js +113 -19
  327. package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
  328. package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js +134 -0
  329. package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js.map +1 -0
  330. package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js +800 -0
  331. package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js.map +1 -0
  332. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +97 -3
  333. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
  334. package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js +77 -0
  335. package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js.map +1 -0
  336. package/build/dist/Types/Rum/SessionReplay.js +38 -0
  337. package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
  338. package/build/dist/UI/Components/Date/TimeRangePickerDropdown.js +9 -5
  339. package/build/dist/UI/Components/Date/TimeRangePickerDropdown.js.map +1 -1
  340. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +12 -7
  341. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  342. package/build/dist/UI/Components/LogsViewer/components/HistogramTooltip.js +15 -14
  343. package/build/dist/UI/Components/LogsViewer/components/HistogramTooltip.js.map +1 -1
  344. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +17 -22
  345. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  346. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +2 -4
  347. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
  348. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +2 -4
  349. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  350. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js +15 -14
  351. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js.map +1 -1
  352. package/build/dist/UI/Utils/Navigation.js +30 -0
  353. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  354. package/build/dist/Utils/Array.js +25 -0
  355. package/build/dist/Utils/Array.js.map +1 -1
  356. package/build/dist/Utils/CertificateReissue.js +97 -0
  357. package/build/dist/Utils/CertificateReissue.js.map +1 -0
  358. package/build/dist/Utils/Grok/Grok.js +324 -0
  359. package/build/dist/Utils/Grok/Grok.js.map +1 -0
  360. package/build/dist/Utils/Grok/GrokPatterns.js +112 -0
  361. package/build/dist/Utils/Grok/GrokPatterns.js.map +1 -0
  362. package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js +63 -3
  363. package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js.map +1 -1
  364. package/package.json +1 -1
  365. package/UI/Utils/JsonWebToken.ts +0 -14
  366. package/build/dist/UI/Utils/JsonWebToken.js +0 -10
  367. package/build/dist/UI/Utils/JsonWebToken.js.map +0 -1
@@ -599,6 +599,21 @@ export class Service extends DatabaseService {
599
599
  await this.addNotificationSettingIfNotExists(userId, projectId, NotificationSettingEventType.SEND_WHEN_USER_IS_ADDED_TO_ON_CALL_POLICY);
600
600
  await this.addNotificationSettingIfNotExists(userId, projectId, NotificationSettingEventType.SEND_WHEN_USER_IS_REMOVED_FROM_ON_CALL_POLICY);
601
601
  await this.addNotificationSettingIfNotExists(userId, projectId, NotificationSettingEventType.SEND_WHEN_USER_IS_NO_LONGER_ACTIVE_ON_ON_CALL_ROSTER);
602
+ await this.addShiftReminderNotificationSettings(userId, projectId);
603
+ }
604
+ /*
605
+ * The two shift-reminder events ("before my shift starts", "my upcoming
606
+ * shift is reassigned"). Email AND push on by default: a reminder that
607
+ * only lands in a mailbox is easy to miss at 05:45, and both are the
608
+ * user's own lead times, not a page. Idempotent — the
609
+ * AddShiftReminderNotificationSettingsForUsers data migration calls this
610
+ * for every existing member, and sendUserNotification sends nothing
611
+ * without a row, so this is what makes the reminder worker's output
612
+ * non-zero for users who joined before the events existed.
613
+ */
614
+ async addShiftReminderNotificationSettings(userId, projectId) {
615
+ await this.addNotificationSettingIfNotExists(userId, projectId, NotificationSettingEventType.SEND_BEFORE_USER_ON_CALL_SHIFT_STARTS, { alertByPush: true });
616
+ await this.addNotificationSettingIfNotExists(userId, projectId, NotificationSettingEventType.SEND_WHEN_USER_ON_CALL_SHIFT_IS_REASSIGNED, { alertByPush: true });
602
617
  }
603
618
  async addAlertNotificationSettings(userId, projectId) {
604
619
  await this.addNotificationSettingIfNotExists(userId, projectId, NotificationSettingEventType.SEND_ALERT_CREATED_OWNER_NOTIFICATION);
@@ -624,7 +639,7 @@ export class Service extends DatabaseService {
624
639
  async ensureSettingExistsForUser(data) {
625
640
  await this.addNotificationSettingIfNotExists(data.userId, data.projectId, data.eventType);
626
641
  }
627
- async addNotificationSettingIfNotExists(userId, projectId, eventType) {
642
+ async addNotificationSettingIfNotExists(userId, projectId, eventType, options) {
628
643
  const existingNotification = await this.countBy({
629
644
  query: {
630
645
  userId,
@@ -641,6 +656,9 @@ export class Service extends DatabaseService {
641
656
  item.projectId = projectId;
642
657
  item.eventType = eventType;
643
658
  item.alertByEmail = true;
659
+ if (options === null || options === void 0 ? void 0 : options.alertByPush) {
660
+ item.alertByPush = true;
661
+ }
644
662
  await this.create({
645
663
  data: item,
646
664
  props: {
@@ -699,6 +717,13 @@ __decorate([
699
717
  ObjectID]),
700
718
  __metadata("design:returntype", Promise)
701
719
  ], Service.prototype, "addDefaultNotificationSettingsForUser", null);
720
+ __decorate([
721
+ CaptureSpan(),
722
+ __metadata("design:type", Function),
723
+ __metadata("design:paramtypes", [ObjectID,
724
+ ObjectID]),
725
+ __metadata("design:returntype", Promise)
726
+ ], Service.prototype, "addShiftReminderNotificationSettings", null);
702
727
  __decorate([
703
728
  CaptureSpan(),
704
729
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"UserNotificationSettingService.js","sourceRoot":"","sources":["../../../../Server/Services/UserNotificationSettingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserNotificationSettingService.js","sourceRoot":"","sources":["../../../../Server/Services/UserNotificationSettingService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DatabaseService from "./DatabaseService";
11
+ import CalendarFeedToken from "../Utils/OnCall/CalendarFeedToken";
12
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
13
+ import Model from "../../Models/DatabaseModels/UserOnCallCalendarFeed";
14
+ import BadDataException from "../../Types/Exception/BadDataException";
15
+ import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
16
+ import NotFoundException from "../../Types/Exception/NotFoundException";
17
+ import CalendarFeedWindow from "../../Types/OnCallDutyPolicy/CalendarFeedWindow";
18
+ import OneUptimeDate from "../../Types/Date";
19
+ /*
20
+ * The personal calendar feed row: one per (project, user).
21
+ *
22
+ * WHAT THE HOOKS GUARANTEE
23
+ *
24
+ * - Only root creates one. The table create list is already empty, but the
25
+ * hook says it out loud: the plaintext token is minted here or by the
26
+ * calendar API, never by a request body.
27
+ * - A created row always carries a consistent token set (see
28
+ * CalendarFeedToken.applyTokenColumnsOnCreate): there is no path to a row
29
+ * whose hash does not match its token.
30
+ * - pastDays / futureDays are clamped to the CalendarFeedWindow bounds on
31
+ * every write, so a feed can never be asked to render a year.
32
+ *
33
+ * Rotation lives here too (rotateTokenById) so the grace-hash bookkeeping is
34
+ * written once and the API, the member-leave cleanup and the tests share it.
35
+ * Cache purging is the caller's job - this service knows nothing about the
36
+ * feed cache.
37
+ */
38
+ export class Service extends DatabaseService {
39
+ constructor() {
40
+ super(Model);
41
+ }
42
+ async onBeforeCreate(createBy) {
43
+ if (!createBy.props.isRoot) {
44
+ throw new NotAuthorizedException("Calendar feeds are generated by the calendar API, not created directly.");
45
+ }
46
+ const projectId = createBy.data.projectId || createBy.props.tenantId;
47
+ if (!projectId) {
48
+ throw new BadDataException("projectId is required");
49
+ }
50
+ if (!createBy.data.userId) {
51
+ throw new BadDataException("userId is required");
52
+ }
53
+ createBy.data.projectId = projectId;
54
+ // Root only reaches this line, so a pre-minted token may be trusted.
55
+ CalendarFeedToken.applyTokenColumnsOnCreate(createBy.data, {
56
+ trustSuppliedToken: true,
57
+ });
58
+ createBy.data.pastDays = CalendarFeedWindow.clampPastDays(createBy.data.pastDays);
59
+ createBy.data.futureDays = CalendarFeedWindow.clampFutureDays(createBy.data.futureDays);
60
+ return { createBy, carryForward: null };
61
+ }
62
+ async onBeforeUpdate(updateBy) {
63
+ if (updateBy.data.pastDays !== undefined) {
64
+ updateBy.data.pastDays = CalendarFeedWindow.clampPastDays(updateBy.data.pastDays);
65
+ }
66
+ if (updateBy.data.futureDays !== undefined) {
67
+ updateBy.data.futureDays = CalendarFeedWindow.clampFutureDays(updateBy.data.futureDays);
68
+ }
69
+ return { updateBy, carryForward: null };
70
+ }
71
+ /**
72
+ * Create the feed row for a user in a project and hand the plaintext token
73
+ * back ONCE, so the caller can build the subscription URL without a
74
+ * decrypt round-trip. Root only; the caller is responsible for holding the
75
+ * per-(project, user) lock the API uses around mint-or-rotate.
76
+ */
77
+ async createForUser(data) {
78
+ const minted = CalendarFeedToken.mintSet();
79
+ const feed = new Model();
80
+ feed.projectId = data.projectId;
81
+ feed.userId = data.userId;
82
+ feed.token = minted.token;
83
+ feed.rotatedAt = OneUptimeDate.getCurrentDate();
84
+ const created = await this.create({
85
+ data: feed,
86
+ props: { isRoot: true },
87
+ });
88
+ return { feed: created, minted };
89
+ }
90
+ /**
91
+ * Rotate the token of an existing feed: mint a new one, move the current
92
+ * hash into the 30-day grace slot, stamp rotatedAt. Returns the new
93
+ * plaintext token ONCE. Root write; the caller purges caches.
94
+ */
95
+ async rotateTokenById(data) {
96
+ const existing = await this.findOneBy({
97
+ query: { _id: data.id },
98
+ select: { _id: true, tokenHash: true },
99
+ props: { isRoot: true, ignoreHooks: true },
100
+ });
101
+ if (!existing) {
102
+ throw new NotFoundException("Calendar feed not found.");
103
+ }
104
+ const rotation = CalendarFeedToken.buildRotation({
105
+ currentTokenHash: existing.tokenHash,
106
+ });
107
+ await this.updateOneById({
108
+ id: data.id,
109
+ data: CalendarFeedToken.toRotationUpdateData(rotation),
110
+ props: { isRoot: true },
111
+ });
112
+ return rotation;
113
+ }
114
+ }
115
+ __decorate([
116
+ CaptureSpan(),
117
+ __metadata("design:type", Function),
118
+ __metadata("design:paramtypes", [Object]),
119
+ __metadata("design:returntype", Promise)
120
+ ], Service.prototype, "onBeforeCreate", null);
121
+ __decorate([
122
+ CaptureSpan(),
123
+ __metadata("design:type", Function),
124
+ __metadata("design:paramtypes", [Object]),
125
+ __metadata("design:returntype", Promise)
126
+ ], Service.prototype, "onBeforeUpdate", null);
127
+ __decorate([
128
+ CaptureSpan(),
129
+ __metadata("design:type", Function),
130
+ __metadata("design:paramtypes", [Object]),
131
+ __metadata("design:returntype", Promise)
132
+ ], Service.prototype, "createForUser", null);
133
+ __decorate([
134
+ CaptureSpan(),
135
+ __metadata("design:type", Function),
136
+ __metadata("design:paramtypes", [Object]),
137
+ __metadata("design:returntype", Promise)
138
+ ], Service.prototype, "rotateTokenById", null);
139
+ export default new Service();
140
+ //# sourceMappingURL=UserOnCallCalendarFeedService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserOnCallCalendarFeedService.js","sourceRoot":"","sources":["../../../../Server/Services/UserOnCallCalendarFeedService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DatabaseService from "./DatabaseService";
11
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
12
+ import Model, { UserOnCallShiftReminderLogKind, } from "../../Models/DatabaseModels/UserOnCallShiftReminderLog";
13
+ import BadDataException from "../../Types/Exception/BadDataException";
14
+ import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
15
+ import OneUptimeDate from "../../Types/Date";
16
+ const MILLISECONDS_PER_MINUTE = 60 * 1000;
17
+ const ALLOWED_KINDS = new Set(Object.values(UserOnCallShiftReminderLogKind));
18
+ /*
19
+ * The shift-reminder ledger. Root only, in every direction: a claim row is
20
+ * the thing that makes "send exactly once" true, so nothing outside the
21
+ * worker may insert, edit or remove one.
22
+ *
23
+ * The create hook normalises the idempotency key so two workers that compute
24
+ * the same shift a few milliseconds apart still collide on the unique index:
25
+ * shiftStartsAt is truncated to the minute here as well as by the worker
26
+ * (belt and braces - the seam normalisation upstream already makes starts
27
+ * minute-granular, this makes it a guarantee of the table rather than of one
28
+ * caller), and minutesBeforeShift defaults to 0 for change notices.
29
+ */
30
+ export class Service extends DatabaseService {
31
+ constructor() {
32
+ super(Model);
33
+ }
34
+ async onBeforeCreate(createBy) {
35
+ if (!createBy.props.isRoot) {
36
+ throw new NotAuthorizedException("Shift reminder logs are written by the reminder worker only.");
37
+ }
38
+ const projectId = createBy.data.projectId || createBy.props.tenantId;
39
+ if (!projectId) {
40
+ throw new BadDataException("projectId is required");
41
+ }
42
+ if (!createBy.data.userId) {
43
+ throw new BadDataException("userId is required");
44
+ }
45
+ if (!createBy.data.onCallDutyPolicyScheduleId) {
46
+ throw new BadDataException("onCallDutyPolicyScheduleId is required");
47
+ }
48
+ if (!createBy.data.shiftStartsAt) {
49
+ throw new BadDataException("shiftStartsAt is required");
50
+ }
51
+ if (!createBy.data.kind ||
52
+ !ALLOWED_KINDS.has(createBy.data.kind)) {
53
+ throw new BadDataException(`kind must be one of: ${Object.values(UserOnCallShiftReminderLogKind).join(", ")}`);
54
+ }
55
+ createBy.data.projectId = projectId;
56
+ createBy.data.shiftStartsAt = Service.truncateToMinute(OneUptimeDate.fromString(createBy.data.shiftStartsAt));
57
+ createBy.data.minutesBeforeShift = Service.validateMinutesBeforeShift(createBy.data.minutesBeforeShift);
58
+ if (!createBy.data.claimedAt) {
59
+ createBy.data.claimedAt = OneUptimeDate.getCurrentDate();
60
+ }
61
+ return { createBy, carryForward: null };
62
+ }
63
+ async onBeforeUpdate(updateBy) {
64
+ if (!updateBy.props.isRoot) {
65
+ throw new NotAuthorizedException("Shift reminder logs are written by the reminder worker only.");
66
+ }
67
+ return { updateBy, carryForward: null };
68
+ }
69
+ async onBeforeDelete(deleteBy) {
70
+ if (!deleteBy.props.isRoot) {
71
+ throw new NotAuthorizedException("Shift reminder logs are written by the reminder worker only.");
72
+ }
73
+ return { deleteBy, carryForward: null };
74
+ }
75
+ // Zero the seconds and milliseconds. Part of the idempotency key.
76
+ static truncateToMinute(date) {
77
+ return new Date(Math.floor(date.getTime() / MILLISECONDS_PER_MINUTE) *
78
+ MILLISECONDS_PER_MINUTE);
79
+ }
80
+ /*
81
+ * 0 (a change notice) or a positive whole number of minutes. Missing means
82
+ * 0. Anything else is a caller bug, not a value to store.
83
+ */
84
+ static validateMinutesBeforeShift(value) {
85
+ if (value === undefined || value === null) {
86
+ return 0;
87
+ }
88
+ const parsed = typeof value === "string" && value.trim() !== ""
89
+ ? Number(value)
90
+ : value;
91
+ if (typeof parsed !== "number" || !Number.isInteger(parsed) || parsed < 0) {
92
+ throw new BadDataException("minutesBeforeShift must be a whole number of minutes, 0 or more.");
93
+ }
94
+ return parsed;
95
+ }
96
+ }
97
+ __decorate([
98
+ CaptureSpan(),
99
+ __metadata("design:type", Function),
100
+ __metadata("design:paramtypes", [Object]),
101
+ __metadata("design:returntype", Promise)
102
+ ], Service.prototype, "onBeforeCreate", null);
103
+ __decorate([
104
+ CaptureSpan(),
105
+ __metadata("design:type", Function),
106
+ __metadata("design:paramtypes", [Object]),
107
+ __metadata("design:returntype", Promise)
108
+ ], Service.prototype, "onBeforeUpdate", null);
109
+ __decorate([
110
+ CaptureSpan(),
111
+ __metadata("design:type", Function),
112
+ __metadata("design:paramtypes", [Object]),
113
+ __metadata("design:returntype", Promise)
114
+ ], Service.prototype, "onBeforeDelete", null);
115
+ export default new Service();
116
+ //# sourceMappingURL=UserOnCallShiftReminderLogService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserOnCallShiftReminderLogService.js","sourceRoot":"","sources":["../../../../Server/Services/UserOnCallShiftReminderLogService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DatabaseService from "./DatabaseService";
11
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
12
+ import Model, { MAX_MINUTES_BEFORE_SHIFT, MIN_MINUTES_BEFORE_SHIFT, } from "../../Models/DatabaseModels/UserOnCallShiftReminder";
13
+ import BadDataException from "../../Types/Exception/BadDataException";
14
+ /*
15
+ * "Remind me N minutes before my shift" rows.
16
+ *
17
+ * The hooks keep the table honest for the reminder worker: every row has an
18
+ * owner (defaulted to the session user when the client did not send one, so
19
+ * the settings page can post `{ minutesBeforeShift }` and nothing else), a
20
+ * project, and a lead time inside 15 minutes ... 2 weeks. A duplicate lead
21
+ * is answered with a message rather than a unique-violation 500.
22
+ */
23
+ export class Service extends DatabaseService {
24
+ constructor() {
25
+ super(Model);
26
+ }
27
+ async onBeforeCreate(createBy) {
28
+ const projectId = createBy.data.projectId || createBy.props.tenantId;
29
+ if (!projectId) {
30
+ throw new BadDataException("projectId is required");
31
+ }
32
+ if (!createBy.data.userId && createBy.props.userId) {
33
+ createBy.data.userId = createBy.props.userId;
34
+ }
35
+ if (!createBy.data.userId) {
36
+ throw new BadDataException("userId is required");
37
+ }
38
+ createBy.data.projectId = projectId;
39
+ createBy.data.minutesBeforeShift = Service.validateMinutesBeforeShift(createBy.data.minutesBeforeShift);
40
+ const duplicates = await this.countBy({
41
+ query: {
42
+ projectId: projectId,
43
+ userId: createBy.data.userId,
44
+ minutesBeforeShift: createBy.data.minutesBeforeShift,
45
+ },
46
+ props: {
47
+ isRoot: true,
48
+ },
49
+ });
50
+ if (duplicates.toNumber() > 0) {
51
+ throw new BadDataException(`You already have a reminder ${createBy.data.minutesBeforeShift} minutes before your shifts.`);
52
+ }
53
+ return { createBy, carryForward: null };
54
+ }
55
+ async onBeforeUpdate(updateBy) {
56
+ if (updateBy.data.minutesBeforeShift !== undefined) {
57
+ updateBy.data.minutesBeforeShift = Service.validateMinutesBeforeShift(updateBy.data.minutesBeforeShift);
58
+ }
59
+ return { updateBy, carryForward: null };
60
+ }
61
+ /*
62
+ * A whole number of minutes between MIN_MINUTES_BEFORE_SHIFT and
63
+ * MAX_MINUTES_BEFORE_SHIFT. Numeric strings are accepted (a form may post
64
+ * one); missing, fractional, negative or out-of-range values are a 400.
65
+ */
66
+ static validateMinutesBeforeShift(value) {
67
+ const parsed = typeof value === "string" && value.trim() !== ""
68
+ ? Number(value)
69
+ : value;
70
+ if (typeof parsed !== "number" ||
71
+ !Number.isInteger(parsed) ||
72
+ parsed < MIN_MINUTES_BEFORE_SHIFT ||
73
+ parsed > MAX_MINUTES_BEFORE_SHIFT) {
74
+ throw new BadDataException(`Reminder lead time must be a whole number of minutes between ${MIN_MINUTES_BEFORE_SHIFT} and ${MAX_MINUTES_BEFORE_SHIFT} (two weeks).`);
75
+ }
76
+ return parsed;
77
+ }
78
+ }
79
+ __decorate([
80
+ CaptureSpan(),
81
+ __metadata("design:type", Function),
82
+ __metadata("design:paramtypes", [Object]),
83
+ __metadata("design:returntype", Promise)
84
+ ], Service.prototype, "onBeforeCreate", null);
85
+ __decorate([
86
+ CaptureSpan(),
87
+ __metadata("design:type", Function),
88
+ __metadata("design:paramtypes", [Object]),
89
+ __metadata("design:returntype", Promise)
90
+ ], Service.prototype, "onBeforeUpdate", null);
91
+ export default new Service();
92
+ //# sourceMappingURL=UserOnCallShiftReminderService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserOnCallShiftReminderService.js","sourceRoot":"","sources":["../../../../Server/Services/UserOnCallShiftReminderService.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,12 @@ import BadDataException from "../../Types/Exception/BadDataException";
15
15
  import URL from "../../Types/API/URL";
16
16
  import API from "../../Utils/API";
17
17
  import DataSourceEgressGuard from "../Utils/DataSource/EgressGuard";
18
+ /*
19
+ * A status page that is up answers the verification path well inside this.
20
+ * It is a ceiling on how long one unreachable domain may hold up the rest of a
21
+ * certificate run, not a latency target.
22
+ */
23
+ export const DOMAIN_VERIFICATION_TIMEOUT_IN_MS = 10000;
18
24
  export default class Domain extends DomainCommon {
19
25
  /*
20
26
  * GET a domain-verification URL built from a tenant-supplied domain.
@@ -30,6 +36,15 @@ export default class Domain extends DomainCommon {
30
36
  *
31
37
  * Private ranges stay reachable on self-hosted installs, where a status page
32
38
  * domain legitimately resolves inside the corporate network.
39
+ *
40
+ * The call is bounded. A customer domain that has been pointed at an address
41
+ * which silently drops packets - a decommissioned load balancer, a firewall
42
+ * that blackholes instead of refusing - never answers and never resets, so an
43
+ * unbounded request sits until the kernel gives up on the TCP connect, which
44
+ * is a little over two minutes on Linux. The certificate crons walk every
45
+ * status page domain in turn, so each such domain would burn that timeout out
46
+ * of the run's budget and push the domains behind it into the next run - the
47
+ * renewals that matter get starved by the domains that will never answer.
33
48
  */
34
49
  static async getForDomainVerification(data) {
35
50
  const { httpAgent, httpsAgent } = await DataSourceEgressGuard.assertUrlAllowedAndPin(data.url, {
@@ -39,6 +54,7 @@ export default class Domain extends DomainCommon {
39
54
  url: URL.fromString(data.url),
40
55
  options: {
41
56
  doNotFollowRedirects: true,
57
+ timeout: DOMAIN_VERIFICATION_TIMEOUT_IN_MS,
42
58
  httpAgent,
43
59
  httpsAgent,
44
60
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Domain.js","sourceRoot":"","sources":["../../../../Server/Types/Domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Domain.js","sourceRoot":"","sources":["../../../../Server/Types/Domain.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAyB,MAAM,iBAAiB,CAAC;AACxD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AAItE,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,qBAAqB,MAAM,iCAAiC,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAW,KAAK,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,YAAY;IAC9C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IAEiB,AAAb,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAG5C;QACC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAC7B,MAAM,qBAAqB,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE;YAC3D,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEL,OAAO,GAAG,CAAC,GAAG,CAAa;YACzB,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7B,OAAO,EAAE;gBACP,oBAAoB,EAAE,IAAI;gBAC1B,OAAO,EAAE,iCAAiC;gBAC1C,SAAS;gBACT,UAAU;aACX;SACF,CAAC,CAAC;IACL,CAAC;IAGa,AAAP,MAAM,CAAC,eAAe,CAAC,IAAwB;QACpD,OAAO,IAAI,OAAO,CAChB,CAAC,OAAkC,EAAE,MAA8B,EAAE,EAAE;YACrE,GAAG,CAAC,YAAY,CACd,IAAI,CAAC,MAAM,EACX,CAAC,GAAiB,EAAE,SAAmB,EAAE,EAAE;gBACzC,MAAM,mBAAmB,GAAkB;oBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC;gBAEF,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,KAAK,CACV,sCAAsC,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,EACnE,mBAAmB,CACpB,CAAC;oBAEF,8DAA8D;oBAC9D,IACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;wBAC/B,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAC1C,CAAC;wBACD,MAAM,CACJ,IAAI,gBAAgB,CAClB,sCAAsC,IAAI,CAAC,MAAM,iGAAiG,CACnJ,CACF,CAAC;wBACF,OAAO;oBACT,CAAC;oBAED,IACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;wBACjC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAC5C,CAAC;wBACD,MAAM,CACJ,IAAI,gBAAgB,CAClB,WAAW,IAAI,CAAC,MAAM,oEAAoE,CAC3F,CACF,CAAC;wBACF,OAAO;oBACT,CAAC;oBAED,IACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;wBACjC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAC5C,CAAC;wBACD,MAAM,CACJ,IAAI,gBAAgB,CAClB,kCAAkC,IAAI,CAAC,MAAM,4BAA4B,CAC1E,CACF,CAAC;wBACF,OAAO;oBACT,CAAC;oBAED,6BAA6B;oBAC7B,MAAM,CACJ,IAAI,gBAAgB,CAClB,6CAA6C,IAAI,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,sDAAsD,CAC3I,CACF,CAAC;gBACJ,CAAC;qBAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,MAAM,CACJ,IAAI,gBAAgB,CAClB,oCAAoC,GAAG,IAAI,CAAC,MAAM,CACnD,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAGa,AAAP,MAAM,CAAC,eAAe,CAC3B,MAAuB,EACvB,gBAAwB;QAExB,OAAO,IAAI,OAAO,CAChB,CACE,OAAuC,EACvC,MAAkC,EAClC,EAAE;YACF,GAAG,CAAC,UAAU,CACZ,MAAM,CAAC,QAAQ,EAAE,EACjB,CAAC,GAAiB,EAAE,IAA0B,EAAE,EAAE;gBAChD,MAAM,mBAAmB,GAAkB;oBACzC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;iBAC1B,CAAC;gBAEF,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,KAAK,CACV,oCAAoC,MAAM,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,EACvE,mBAAmB,CACpB,CAAC;oBAEF,8DAA8D;oBAC9D,IACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;wBAC/B,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EACxC,CAAC;wBACD,OAAO,MAAM,CACX,IAAI,gBAAgB,CAClB,oCAAoC,MAAM,CAAC,QAAQ,EAAE,+FAA+F,CACrJ,CACF,CAAC;oBACJ,CAAC;oBAED,IACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;wBACjC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAC1C,CAAC;wBACD,OAAO,MAAM,CACX,IAAI,gBAAgB,CAClB,WAAW,MAAM,CAAC,QAAQ,EAAE,oEAAoE,CACjG,CACF,CAAC;oBACJ,CAAC;oBAED,IACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;wBACjC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAC1C,CAAC;wBACD,OAAO,MAAM,CACX,IAAI,gBAAgB,CAClB,kCAAkC,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAChF,CACF,CAAC;oBACJ,CAAC;oBAED,6BAA6B;oBAC7B,OAAO,MAAM,CACX,IAAI,gBAAgB,CAClB,2CAA2C,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,CAAC,OAAO,sDAAsD,CAC/I,CACF,CAAC;gBACJ,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,mBAAmB,CAAC,CAAC;gBACjE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAExC,IAAI,UAAU,GAAY,KAAK,CAAC;gBAChC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;oBACxB,IAAI,GAAG,GAA2B,IAAI,CAAC;oBACvC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,GAAG,GAAI,GAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxC,CAAC;oBAED,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;wBAC7B,UAAU,GAAG,IAAI,CAAC;wBAClB,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAxLqB;IADnB,WAAW,EAAE;;;;4CAmBb;AAGa;IADb,WAAW,EAAE;;;;mCAyEb;AAGa;IADb,WAAW,EAAE;;;;mCAwFb"}
@@ -12,6 +12,28 @@ import Permission from "../../../Types/Permission";
12
12
  import ApiKeyPermissionService from "../../Services/ApiKeyPermissionService";
13
13
  import CaptureSpan from "../Telemetry/CaptureSpan";
14
14
  import UserPermissionUtil from "../UserPermission/UserPermission";
15
+ /*
16
+ * Permission.AuthenticatedRequest is a marker, not a capability. It says "some
17
+ * authenticated principal made this call" - its own definition names API keys
18
+ * first - and unlike every other entry in these lists it has no PermissionProps,
19
+ * so it never appears in the admin picker and nobody can grant or revoke it per
20
+ * key. File and FileModel are the only models that name it, which is what bounds
21
+ * what including it here can widen.
22
+ *
23
+ * It is in the list because of TenantPermission.isAccessGrantedOnlyByCurrentUser.
24
+ * That predicate asks whether the ONLY thing letting a caller through a model's
25
+ * gate is the auto-granted CurrentUser - i.e. whether they are here as nothing
26
+ * more than some logged-in user - and when it says yes the caller is held to
27
+ * rows they own, which an API key can never satisfy because it has no userId.
28
+ * Without AuthenticatedRequest an API key intersects File's create list down to
29
+ * CurrentUser alone and answers yes to that question, which is simply the wrong
30
+ * description of a key: it is not a user acting on their own rows.
31
+ *
32
+ * On File as it stands today the wrong answer is harmless - File declares no
33
+ * user column, so the ownership branch returns before it can bite. The grant is
34
+ * here so that stays a fact about File's schema rather than the only thing
35
+ * holding API-key file access up.
36
+ */
15
37
  export default class APIKeyAccessPermission {
16
38
  static async getDefaultApiGlobalPermission(projectId) {
17
39
  return {
@@ -20,6 +42,7 @@ export default class APIKeyAccessPermission {
20
42
  Permission.Public,
21
43
  Permission.User,
22
44
  Permission.CurrentUser,
45
+ Permission.AuthenticatedRequest,
23
46
  ],
24
47
  _type: "UserGlobalAccessPermission",
25
48
  };
@@ -31,6 +54,7 @@ export default class APIKeyAccessPermission {
31
54
  Permission.Public,
32
55
  Permission.User,
33
56
  Permission.CurrentUser,
57
+ Permission.AuthenticatedRequest,
34
58
  Permission.ProjectOwner,
35
59
  ],
36
60
  _type: "UserGlobalAccessPermission",