@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.
- package/Models/DatabaseModels/DashboardDomain.ts +43 -0
- package/Models/DatabaseModels/Index.ts +11 -0
- package/Models/DatabaseModels/MonitorTemplate.ts +15 -3
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +43 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.ts +662 -0
- package/Models/DatabaseModels/ProjectOnCallCalendarFeed.ts +584 -0
- package/Models/DatabaseModels/StatusPageDomain.ts +43 -0
- package/Models/DatabaseModels/UserOnCallCalendarFeed.ts +546 -0
- package/Models/DatabaseModels/UserOnCallShiftReminder.ts +231 -0
- package/Models/DatabaseModels/UserOnCallShiftReminderLog.ts +331 -0
- package/Server/API/DashboardDomainAPI.ts +74 -0
- package/Server/API/MicrosoftTeamsAPI.ts +81 -180
- package/Server/API/OnCallCalendarAPI.ts +2194 -0
- package/Server/API/StatusPageDomainAPI.ts +74 -0
- package/Server/EnvironmentConfig.ts +138 -0
- package/Server/Infrastructure/OnCallCalendarFeedCache.ts +1050 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.ts +43 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.ts +40 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.ts +253 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Middleware/OnCallCalendarFeedRateLimit.ts +487 -0
- package/Server/Middleware/ProjectAuthorization.ts +6 -1
- package/Server/Services/DashboardDomainService.ts +131 -0
- package/Server/Services/Index.ts +12 -0
- package/Server/Services/LogPipelineProcessorService.ts +88 -0
- package/Server/Services/MonitorTemplateService.ts +70 -11
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +32 -0
- package/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.ts +260 -0
- package/Server/Services/OnCallDutyPolicyScheduleLayerService.ts +70 -3
- package/Server/Services/OnCallDutyPolicyScheduleLayerUserService.ts +138 -3
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +1465 -134
- package/Server/Services/OnCallDutyPolicyUserOverrideService.ts +167 -31
- package/Server/Services/ProjectOnCallCalendarFeedService.ts +192 -0
- package/Server/Services/StatusPageDomainService.ts +163 -3
- package/Server/Services/StatusPagePrivateUserSessionService.ts +197 -56
- package/Server/Services/TeamMemberService.ts +489 -1
- package/Server/Services/TeamService.ts +50 -0
- package/Server/Services/UserNotificationSettingService.ts +44 -1
- package/Server/Services/UserOnCallCalendarFeedService.ts +159 -0
- package/Server/Services/UserOnCallShiftReminderLogService.ts +151 -0
- package/Server/Services/UserOnCallShiftReminderService.ts +112 -0
- package/Server/Types/Domain.ts +17 -0
- package/Server/Utils/APIKey/AccessPermission.ts +24 -0
- package/Server/Utils/Greenlock/Greenlock.ts +156 -58
- package/Server/Utils/LogPipelineProcessorValidation.ts +112 -0
- package/Server/Utils/OnCall/CalendarFeedToken.ts +241 -0
- package/Server/Utils/OnCall/OnCallCalendarFeedRenderer.ts +1488 -0
- package/Server/Utils/OnCall/OnCallCalendarFeedUrls.ts +230 -0
- package/Server/Utils/OnCall/OnCallShiftChangeListeners.ts +227 -0
- package/Server/Utils/OnCall/OnCallShiftMaterializer.ts +1127 -0
- package/Server/Utils/OnCall/OnCallShiftReminderListener.ts +174 -0
- package/Server/Utils/OnCall/OnCallShiftReminderRunner.ts +2584 -0
- package/Server/Utils/Response.ts +134 -0
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +1094 -45
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +153 -17
- package/Server/Utils/StartServer.ts +10 -0
- package/Server/Utils/Telemetry/AppMetrics.ts +51 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +23 -11
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +0 -170
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.ts +158 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +23 -11
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +35 -13
- package/Tests/App/Dashboard/MonitorTemplateColumnAndFacet.test.tsx +505 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedLinks.test.tsx +229 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedPlanGate.test.tsx +489 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedSideMenus.test.tsx +149 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedUtil.test.ts +855 -0
- package/Tests/App/Dashboard/OnCallPersonalCalendarFeed.test.tsx +1209 -0
- package/Tests/App/Dashboard/OnCallSharedCalendarFeedCard.test.tsx +1019 -0
- package/Tests/App/Dashboard/OnCallShiftRemindersAndUpcomingShifts.test.tsx +655 -0
- package/Tests/App/Dashboard/UserSettingsSetupChecklistModel.test.ts +73 -0
- package/Tests/App/StatusPage/StatusPageLoginCodeBootstrap.test.ts +106 -0
- package/Tests/App/StatusPage/StatusPageLoginCodeUtil.test.ts +84 -0
- package/Tests/App/StatusPage/StatusPageRedirectSafety.test.ts +119 -0
- package/Tests/Models/MonitorTemplateMonitorNameColumn.test.ts +258 -0
- package/Tests/Models/OnCallCalendarFeedModels.test.ts +642 -0
- package/Tests/Models/OnCallDutyPolicyScheduleCalendarFeed.test.ts +288 -0
- package/Tests/Models/OnCallDutyPolicyScheduleShiftConfigVersion.test.ts +88 -0
- package/Tests/Models/UserOnCallShiftReminderModels.test.ts +368 -0
- package/Tests/Server/API/CustomDomainReissueSslAPI.test.ts +469 -0
- package/Tests/Server/API/Helpers.ts +8 -0
- package/Tests/Server/API/MicrosoftTeamsBotMessagesEndpoint.test.ts +729 -0
- package/Tests/Server/API/MicrosoftTeamsBotTestEndpoint.test.ts +26 -0
- package/Tests/Server/API/MicrosoftTeamsLegacyWebhookRemoval.test.ts +402 -0
- package/Tests/Server/API/OnCallCalendarAPI.test.ts +4461 -0
- package/Tests/Server/EnvironmentConfigOnCallCalendarFeed.test.ts +357 -0
- package/Tests/Server/Infrastructure/OnCallCalendarFeedCache.test.ts +1589 -0
- package/Tests/Server/Infrastructure/Postgres/AddOnCallCalendarFeedsMigration.test.ts +369 -0
- package/Tests/Server/Middleware/OnCallCalendarFeedRateLimit.test.ts +1365 -0
- package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +4 -0
- package/Tests/Server/Services/AddCertificateReissueRequestedAtToDomainsMigration.test.ts +287 -0
- package/Tests/Server/Services/CustomDomainCertificateReissue.test.ts +477 -0
- package/Tests/Server/Services/FeedRetentionConsistency.test.ts +70 -0
- package/Tests/Server/Services/LogPipelineProcessorSaveValidation.test.ts +249 -0
- package/Tests/Server/Services/MonitorTemplateServiceBulkSync.test.ts +549 -0
- package/Tests/Server/Services/MonitorTemplateServiceNetworkDeviceSync.test.ts +16 -3
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +57 -0
- package/Tests/Server/Services/OnCallCalendarFeedServices.test.ts +1103 -0
- package/Tests/Server/Services/OnCallDutyPolicyScheduleResolver.test.ts +1037 -0
- package/Tests/Server/Services/OnCallShiftConfigPropagation.test.ts +1270 -0
- package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +151 -15
- package/Tests/Server/Services/StatusPagePrivateUserSessionService.test.ts +587 -0
- package/Tests/Server/Services/TeamDeleteMemberCleanup.test.ts +156 -0
- package/Tests/Server/Services/TeamMemberOnCallCleanup.test.ts +755 -0
- package/Tests/Server/Services/UserNotificationSettingShiftReminderDefaults.test.ts +267 -0
- package/Tests/Server/Services/UserOnCallShiftReminderServices.test.ts +583 -0
- package/Tests/Server/Types/Database/Permissions/ApiKeyFileAccess.test.ts +286 -0
- package/Tests/Server/Types/Database/Permissions/MonitorTemplateColumnAccess.test.ts +328 -0
- package/Tests/Server/Types/Database/Permissions/OnCallCalendarFeedPermissions.test.ts +254 -0
- package/Tests/Server/Types/Database/QueryHelperFindWithSameTextAndIsNull.test.ts +83 -0
- package/Tests/Server/Utils/AI/SRE/ConfidenceSignal.test.ts +377 -0
- package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +16 -1
- package/Tests/Server/Utils/Greenlock/CertificateRenewalSchedule.test.ts +250 -0
- package/Tests/Server/Utils/LogPipelineProcessorValidation.test.ts +198 -0
- package/Tests/Server/Utils/OnCall/CalendarFeedToken.test.ts +467 -0
- package/Tests/Server/Utils/OnCall/OnCallCalendarFeedRenderer.test.ts +2142 -0
- package/Tests/Server/Utils/OnCall/OnCallCalendarFeedUrls.test.ts +278 -0
- package/Tests/Server/Utils/OnCall/OnCallResolverTestHarness.ts +440 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftChangeListeners.test.ts +314 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftMaterializer.test.ts +1502 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderListener.test.ts +491 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderRunner.test.ts +3088 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderTestHarness.ts +910 -0
- package/Tests/Server/Utils/ResponseSendCalendarResponse.test.ts +561 -0
- package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +48 -9
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsAuth.test.ts +726 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +74 -11
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsErrorHandling.test.ts +1107 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +20 -3
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +51 -11
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +1246 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsRequestContract.test.ts +961 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsResponseParsing.test.ts +653 -0
- package/Tests/Server/Utils/StartServerEncryptionSecretWarning.test.ts +64 -0
- package/Tests/Server/Utils/Telemetry/AppMetrics.test.ts +29 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsActionAuthorization.test.ts +880 -0
- package/Tests/Types/API/HTTPResponse.test.ts +175 -0
- package/Tests/Types/API/Route.test.ts +36 -4
- package/Tests/Types/Calendar/ICalendar.test.ts +488 -0
- package/Tests/Types/Database/DatabaseProperty.test.ts +171 -0
- package/Tests/Types/DateLocalShortDateTimeString.test.ts +518 -0
- package/Tests/Types/DateLocalTimeString.test.ts +259 -0
- package/Tests/Types/DateUserPrefers12HourFormat.test.ts +316 -0
- package/Tests/Types/NotificationSetting/NotificationSettingEventType.test.ts +53 -0
- package/Tests/Types/OnCallDutyPolicy/CalendarFeedTestFixtures.ts +310 -0
- package/Tests/Types/OnCallDutyPolicy/CalendarFeedWindow.test.ts +205 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilLayerMetaAndIterationCap.test.ts +458 -0
- package/Tests/Types/OnCallDutyPolicy/MaterializedShift.test.ts +197 -0
- package/Tests/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.test.ts +1986 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleShiftUtilGroupKey.test.ts +678 -0
- package/Tests/Types/OnCallDutyPolicy/ShiftSeamUtil.test.ts +417 -0
- package/Tests/UI/Components/LogsHistogram.test.tsx +41 -2
- package/Tests/UI/Components/LogsViewerEmptyStateTimeRange.test.tsx +212 -0
- package/Tests/UI/Components/TelemetryChartClockFormat.test.tsx +359 -0
- package/Tests/UI/Components/TimeRangePickerClockFormat.test.tsx +422 -0
- package/Tests/UI/Components/TimeRangePickerDropdown.test.tsx +146 -8
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsMessagingEndpointGuidance.test.tsx +520 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +10 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
- package/Tests/UI/Utils/Navigation.test.ts +82 -0
- package/Tests/Utils/Array.test.ts +100 -0
- package/Tests/Utils/CertificateReissue.test.ts +225 -0
- package/Tests/Utils/Grok/Grok.test.ts +492 -0
- package/Tests/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.test.ts +181 -13
- package/Types/API/Route.ts +20 -5
- package/Types/Calendar/ICalendar.ts +442 -0
- package/Types/Date.ts +143 -13
- package/Types/Email/EmailTemplateType.ts +2 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
- package/Types/OnCallDutyPolicy/CalendarFeedWindow.ts +140 -0
- package/Types/OnCallDutyPolicy/Layer.ts +190 -35
- package/Types/OnCallDutyPolicy/MaterializedShift.ts +274 -0
- package/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.ts +1415 -0
- package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +159 -4
- package/Types/OnCallDutyPolicy/ShiftSeamUtil.ts +106 -0
- package/Types/Rum/SessionReplay.ts +62 -1
- package/UI/Components/Date/TimeRangePickerDropdown.tsx +9 -5
- package/UI/Components/LogsViewer/LogsViewer.tsx +12 -7
- package/UI/Components/LogsViewer/components/HistogramTooltip.tsx +18 -17
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +21 -28
- package/UI/Components/LogsViewer/components/LogsHistogram.tsx +2 -4
- package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +2 -4
- package/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.tsx +17 -16
- package/UI/Utils/Navigation.ts +42 -0
- package/Utils/Array.ts +37 -0
- package/Utils/CertificateReissue.ts +128 -0
- package/Utils/Grok/Grok.ts +461 -0
- package/Utils/Grok/GrokPatterns.ts +118 -0
- package/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.ts +58 -6
- package/build/dist/Models/DatabaseModels/DashboardDomain.js +44 -0
- package/build/dist/Models/DatabaseModels/DashboardDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +11 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js +17 -4
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +44 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js +699 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js +620 -0
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js +44 -0
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js +585 -0
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js +247 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js +355 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js.map +1 -0
- package/build/dist/Server/API/DashboardDomainAPI.js +43 -1
- package/build/dist/Server/API/DashboardDomainAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +74 -118
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/OnCallCalendarAPI.js +1371 -0
- package/build/dist/Server/API/OnCallCalendarAPI.js.map +1 -0
- package/build/dist/Server/API/StatusPageDomainAPI.js +43 -1
- package/build/dist/Server/API/StatusPageDomainAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +102 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js +663 -0
- package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790200000000-AllowNullMonitorNameOnMonitorTemplate.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.js +28 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790300000000-AddCertificateReissueRequestedAtToDomains.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js +103 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js +342 -0
- package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js.map +1 -0
- package/build/dist/Server/Middleware/ProjectAuthorization.js +6 -1
- package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
- package/build/dist/Server/Services/DashboardDomainService.js +104 -0
- package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +12 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LogPipelineProcessorService.js +65 -0
- package/build/dist/Server/Services/LogPipelineProcessorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +57 -11
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +20 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js +219 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js +47 -3
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js +112 -3
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +955 -9
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js +93 -6
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js.map +1 -1
- package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js +157 -0
- package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/StatusPageDomainService.js +132 -3
- package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js +112 -32
- package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +396 -1
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TeamService.js +43 -0
- package/build/dist/Server/Services/TeamService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +26 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallCalendarFeedService.js +140 -0
- package/build/dist/Server/Services/UserOnCallCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js +116 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js.map +1 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderService.js +92 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderService.js.map +1 -0
- package/build/dist/Server/Types/Domain.js +16 -0
- package/build/dist/Server/Types/Domain.js.map +1 -1
- package/build/dist/Server/Utils/APIKey/AccessPermission.js +24 -0
- package/build/dist/Server/Utils/APIKey/AccessPermission.js.map +1 -1
- package/build/dist/Server/Utils/Greenlock/Greenlock.js +110 -35
- package/build/dist/Server/Utils/Greenlock/Greenlock.js.map +1 -1
- package/build/dist/Server/Utils/LogPipelineProcessorValidation.js +77 -0
- package/build/dist/Server/Utils/LogPipelineProcessorValidation.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js +161 -0
- package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js +983 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js +155 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js +145 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js +752 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js +92 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js +1786 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js.map +1 -0
- package/build/dist/Server/Utils/Response.js +97 -0
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +777 -36
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +108 -17
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +9 -1
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js +41 -0
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +17 -6
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +0 -159
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.js +128 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Authorization.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +17 -6
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +25 -13
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/API/Route.js +16 -5
- package/build/dist/Types/API/Route.js.map +1 -1
- package/build/dist/Types/Calendar/ICalendar.js +290 -0
- package/build/dist/Types/Calendar/ICalendar.js.map +1 -0
- package/build/dist/Types/Date.js +115 -13
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +2 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js +97 -0
- package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/Layer.js +113 -19
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js +134 -0
- package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js +800 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +97 -3
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js +77 -0
- package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js.map +1 -0
- package/build/dist/Types/Rum/SessionReplay.js +38 -0
- package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
- package/build/dist/UI/Components/Date/TimeRangePickerDropdown.js +9 -5
- package/build/dist/UI/Components/Date/TimeRangePickerDropdown.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +12 -7
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/HistogramTooltip.js +15 -14
- package/build/dist/UI/Components/LogsViewer/components/HistogramTooltip.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +17 -22
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +2 -4
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +2 -4
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js +15 -14
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js.map +1 -1
- package/build/dist/UI/Utils/Navigation.js +30 -0
- package/build/dist/UI/Utils/Navigation.js.map +1 -1
- package/build/dist/Utils/Array.js +25 -0
- package/build/dist/Utils/Array.js.map +1 -1
- package/build/dist/Utils/CertificateReissue.js +97 -0
- package/build/dist/Utils/CertificateReissue.js.map +1 -0
- package/build/dist/Utils/Grok/Grok.js +324 -0
- package/build/dist/Utils/Grok/Grok.js.map +1 -0
- package/build/dist/Utils/Grok/GrokPatterns.js +112 -0
- package/build/dist/Utils/Grok/GrokPatterns.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js +63 -3
- package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js.map +1 -1
- package/package.json +1 -1
- package/UI/Utils/JsonWebToken.ts +0 -14
- package/build/dist/UI/Utils/JsonWebToken.js +0 -10
- 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":";;;;;;;;;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,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,YAAY;IAC9C
|
|
1
|
+
{"version":3,"file":"Domain.js","sourceRoot":"","sources":["../../../../Server/Types/Domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -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",
|