@oneuptime/common 10.0.53 → 10.0.54
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/AnalyticsModels/Metric.ts +78 -0
- package/Server/API/AIAgentDataAPI.ts +6 -1
- package/Server/API/BillingAPI.ts +28 -6
- package/Server/API/CommonAPI.ts +11 -0
- package/Server/API/DashboardAPI.ts +6 -2
- package/Server/API/DashboardDomainAPI.ts +10 -3
- package/Server/API/GitHubAPI.ts +58 -14
- package/Server/API/MicrosoftTeamsAPI.ts +97 -33
- package/Server/API/OpenSourceDeploymentAPI.ts +2 -2
- package/Server/API/SlackAPI.ts +107 -36
- package/Server/API/StatusAPI.ts +37 -16
- package/Server/API/StatusPageAPI.ts +97 -23
- package/Server/API/StatusPageDomainAPI.ts +6 -3
- package/Server/API/UserAPI.ts +3 -3
- package/Server/API/UserCallAPI.ts +5 -2
- package/Server/API/UserEmailAPI.ts +5 -2
- package/Server/API/UserPushAPI.ts +9 -3
- package/Server/API/UserSmsAPI.ts +5 -2
- package/Server/API/UserWhatsAppAPI.ts +5 -2
- package/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.ts +35 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
- package/Server/Middleware/NotificationMiddleware.ts +2 -2
- package/Server/Middleware/ProjectAuthorization.ts +6 -0
- package/Server/Middleware/SCIMAuthorization.ts +2 -1
- package/Server/Middleware/SlackAuthorization.ts +28 -10
- package/Server/Middleware/TelemetryIngest.ts +16 -3
- package/Server/Middleware/UserAuthorization.ts +22 -5
- package/Server/Middleware/WhatsAppAuthorization.ts +15 -4
- package/Server/Services/AIAgentService.ts +13 -6
- package/Server/Services/AIService.ts +9 -3
- package/Server/Services/AlertEpisodeFeedService.ts +17 -5
- package/Server/Services/AlertEpisodeService.ts +34 -3
- package/Server/Services/AlertEpisodeStateTimelineService.ts +80 -22
- package/Server/Services/AlertFeedService.ts +17 -5
- package/Server/Services/AlertGroupingEngineService.ts +36 -7
- package/Server/Services/AlertService.ts +60 -8
- package/Server/Services/AlertStateTimelineService.ts +29 -7
- package/Server/Services/AnalyticsDatabaseService.ts +59 -25
- package/Server/Services/BillingInvoiceService.ts +7 -3
- package/Server/Services/BillingService.ts +9 -2
- package/Server/Services/DashboardDomainService.ts +56 -22
- package/Server/Services/DashboardService.ts +11 -4
- package/Server/Services/DatabaseService.ts +31 -11
- package/Server/Services/IncidentEpisodeFeedService.ts +17 -5
- package/Server/Services/IncidentEpisodeService.ts +34 -3
- package/Server/Services/IncidentEpisodeStateTimelineService.ts +80 -22
- package/Server/Services/IncidentFeedService.ts +33 -9
- package/Server/Services/IncidentGroupingEngineService.ts +35 -6
- package/Server/Services/IncidentService.ts +103 -9
- package/Server/Services/IncidentSlaRuleService.ts +16 -4
- package/Server/Services/IncidentSlaService.ts +20 -4
- package/Server/Services/IncidentStateTimelineService.ts +120 -31
- package/Server/Services/KubernetesClusterService.ts +62 -14
- package/Server/Services/MonitorFeedService.ts +33 -9
- package/Server/Services/MonitorProbeService.ts +4 -2
- package/Server/Services/MonitorService.ts +35 -4
- package/Server/Services/MonitorStatusTimelineService.ts +68 -20
- package/Server/Services/NotificationService.ts +4 -2
- package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +53 -9
- package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +9 -2
- package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +29 -8
- package/Server/Services/OnCallDutyPolicyFeedService.ts +33 -8
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +97 -24
- package/Server/Services/OnCallDutyPolicyService.ts +2 -1
- package/Server/Services/OpenTelemetryIngestService.ts +51 -20
- package/Server/Services/ProbeService.ts +16 -7
- package/Server/Services/ProjectService.ts +21 -7
- package/Server/Services/ScheduledMaintenanceFeedService.ts +17 -4
- package/Server/Services/ScheduledMaintenanceService.ts +52 -6
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +72 -20
- package/Server/Services/StatusPageDomainService.ts +59 -23
- package/Server/Services/StatusPageService.ts +26 -8
- package/Server/Services/StatusPageSubscriberService.ts +382 -111
- package/Server/Services/TeamMemberService.ts +9 -3
- package/Server/Services/UserNotificationRuleService.ts +9 -3
- package/Server/Services/UserService.ts +6 -4
- package/Server/Services/UserWhatsAppService.ts +9 -3
- package/Server/Services/WorkflowService.ts +7 -3
- package/Server/Services/WorkspaceNotificationRuleService.ts +398 -156
- package/Server/Types/Domain.ts +15 -5
- package/Server/Types/Workflow/Components/API/Post.ts +22 -8
- package/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts +12 -4
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +10 -0
- package/Server/Utils/CodeRepository/CodeRepository.ts +62 -13
- package/Server/Utils/Express.ts +1 -0
- package/Server/Utils/Greenlock/Greenlock.ts +75 -20
- package/Server/Utils/LLM/LLMService.ts +22 -7
- package/Server/Utils/Logger.ts +93 -13
- package/Server/Utils/Monitor/MonitorAlert.ts +15 -3
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +15 -5
- package/Server/Utils/Monitor/MonitorIncident.ts +17 -3
- package/Server/Utils/Monitor/MonitorStatusTimeline.ts +6 -1
- package/Server/Utils/Profiling.ts +11 -5
- package/Server/Utils/Realtime.ts +90 -31
- package/Server/Utils/Response.ts +2 -2
- package/Server/Utils/StartServer.ts +43 -9
- package/Server/Utils/Telemetry/SpanUtil.ts +90 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +58 -15
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +58 -15
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +19 -3
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +87 -22
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.ts +12 -3
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.ts +25 -7
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +55 -8
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +100 -22
- package/Server/Utils/Workspace/Slack/Actions/Alert.ts +35 -9
- package/Server/Utils/Workspace/Slack/Actions/AlertEpisode.ts +32 -8
- package/Server/Utils/Workspace/Slack/Actions/Auth.ts +3 -1
- package/Server/Utils/Workspace/Slack/Actions/Incident.ts +52 -11
- package/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.ts +4 -1
- package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +89 -20
- package/Server/Utils/Workspace/Slack/Slack.ts +498 -247
- package/Server/Utils/Workspace/Workspace.ts +33 -11
- package/Server/Utils/Workspace/WorkspaceBase.ts +3 -1
- package/Server/Utils/Workspace/WorkspaceMessages/Alert.ts +8 -2
- package/Tests/Server/Middleware/UserAuthorization.test.ts +1 -1
- package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +12 -3
- package/UI/Components/Charts/Area/AreaChart.tsx +35 -1
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +7 -0
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +33 -0
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +33 -0
- package/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.ts +14 -0
- package/UI/Components/Charts/Line/LineChart.tsx +35 -1
- package/UI/Components/Charts/Types/ExemplarPoint.ts +6 -0
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +3 -3
- package/UI/Components/Navbar/NavBar.tsx +10 -0
- package/build/dist/Models/AnalyticsModels/Metric.js +70 -0
- package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +6 -6
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/BillingAPI.js +13 -13
- package/build/dist/Server/API/BillingAPI.js.map +1 -1
- package/build/dist/Server/API/CommonAPI.js +5 -0
- package/build/dist/Server/API/CommonAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +2 -2
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardDomainAPI.js +3 -3
- package/build/dist/Server/API/DashboardDomainAPI.js.map +1 -1
- package/build/dist/Server/API/GitHubAPI.js +19 -19
- package/build/dist/Server/API/GitHubAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +34 -34
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/OpenSourceDeploymentAPI.js +2 -2
- package/build/dist/Server/API/OpenSourceDeploymentAPI.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +38 -38
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/API/StatusAPI.js +16 -16
- package/build/dist/Server/API/StatusAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +52 -52
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageDomainAPI.js +3 -3
- package/build/dist/Server/API/StatusPageDomainAPI.js.map +1 -1
- package/build/dist/Server/API/UserAPI.js +3 -3
- package/build/dist/Server/API/UserAPI.js.map +1 -1
- package/build/dist/Server/API/UserCallAPI.js +2 -2
- package/build/dist/Server/API/UserCallAPI.js.map +1 -1
- package/build/dist/Server/API/UserEmailAPI.js +2 -2
- package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
- package/build/dist/Server/API/UserPushAPI.js +3 -3
- package/build/dist/Server/API/UserPushAPI.js.map +1 -1
- package/build/dist/Server/API/UserSmsAPI.js +2 -2
- package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
- package/build/dist/Server/API/UserWhatsAppAPI.js +2 -2
- package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.js +40 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/NotificationMiddleware.js +2 -2
- package/build/dist/Server/Middleware/NotificationMiddleware.js.map +1 -1
- package/build/dist/Server/Middleware/ProjectAuthorization.js +5 -0
- package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/SCIMAuthorization.js +2 -2
- package/build/dist/Server/Middleware/SCIMAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/SlackAuthorization.js +10 -10
- package/build/dist/Server/Middleware/SlackAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +9 -4
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Middleware/UserAuthorization.js +10 -5
- package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/WhatsAppAuthorization.js +6 -6
- package/build/dist/Server/Middleware/WhatsAppAuthorization.js.map +1 -1
- package/build/dist/Server/Services/AIAgentService.js +13 -7
- package/build/dist/Server/Services/AIAgentService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +9 -2
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeFeedService.js +17 -5
- package/build/dist/Server/Services/AlertEpisodeFeedService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeService.js +40 -10
- package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js +81 -24
- package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/AlertFeedService.js +17 -5
- package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
- package/build/dist/Server/Services/AlertGroupingEngineService.js +44 -28
- package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +72 -20
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js +36 -13
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +52 -28
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/BillingInvoiceService.js +7 -2
- package/build/dist/Server/Services/BillingInvoiceService.js.map +1 -1
- package/build/dist/Server/Services/BillingService.js +8 -8
- package/build/dist/Server/Services/BillingService.js.map +1 -1
- package/build/dist/Server/Services/DashboardDomainService.js +49 -27
- package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
- package/build/dist/Server/Services/DashboardService.js +11 -4
- package/build/dist/Server/Services/DashboardService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +32 -12
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeFeedService.js +17 -5
- package/build/dist/Server/Services/IncidentEpisodeFeedService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeService.js +40 -10
- package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +81 -24
- package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentFeedService.js +34 -10
- package/build/dist/Server/Services/IncidentFeedService.js.map +1 -1
- package/build/dist/Server/Services/IncidentGroupingEngineService.js +43 -29
- package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +116 -28
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentSlaRuleService.js +19 -11
- package/build/dist/Server/Services/IncidentSlaRuleService.js.map +1 -1
- package/build/dist/Server/Services/IncidentSlaService.js +21 -14
- package/build/dist/Server/Services/IncidentSlaService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +130 -37
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterService.js +51 -14
- package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
- package/build/dist/Server/Services/MonitorFeedService.js +34 -10
- package/build/dist/Server/Services/MonitorFeedService.js.map +1 -1
- package/build/dist/Server/Services/MonitorProbeService.js +4 -2
- package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +42 -11
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusTimelineService.js +69 -21
- package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
- package/build/dist/Server/Services/NotificationService.js +4 -3
- package/build/dist/Server/Services/NotificationService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +49 -12
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +9 -3
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +26 -11
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyFeedService.js +34 -10
- package/build/dist/Server/Services/OnCallDutyPolicyFeedService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +94 -37
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyService.js +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +45 -17
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/ProbeService.js +13 -7
- package/build/dist/Server/Services/ProbeService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +33 -17
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js +17 -5
- package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +71 -24
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +72 -24
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageDomainService.js +55 -29
- package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +29 -9
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageSubscriberService.js +393 -130
- package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +10 -2
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationRuleService.js +10 -2
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +8 -3
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/UserWhatsAppService.js +10 -2
- package/build/dist/Server/Services/UserWhatsAppService.js.map +1 -1
- package/build/dist/Server/Services/WorkflowService.js +7 -2
- package/build/dist/Server/Services/WorkflowService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +367 -180
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Types/Domain.js +12 -6
- package/build/dist/Server/Types/Domain.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Post.js +11 -7
- package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js +11 -4
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +7 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/CodeRepository.js +45 -17
- package/build/dist/Server/Utils/CodeRepository/CodeRepository.js.map +1 -1
- package/build/dist/Server/Utils/Express.js.map +1 -1
- package/build/dist/Server/Utils/Greenlock/Greenlock.js +36 -29
- package/build/dist/Server/Utils/Greenlock/Greenlock.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +18 -6
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Logger.js +61 -13
- package/build/dist/Server/Utils/Logger.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +23 -20
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +13 -4
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +25 -22
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +6 -3
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Server/Utils/Profiling.js +9 -6
- package/build/dist/Server/Utils/Profiling.js.map +1 -1
- package/build/dist/Server/Utils/Realtime.js +50 -34
- package/build/dist/Server/Utils/Realtime.js.map +1 -1
- package/build/dist/Server/Utils/Response.js +2 -2
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +23 -11
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/SpanUtil.js +52 -0
- package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +58 -15
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +58 -15
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +19 -5
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +90 -26
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.js +12 -3
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.js +25 -7
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +58 -19
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +102 -29
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +38 -9
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js +34 -8
- package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js +3 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +55 -13
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js +5 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +91 -26
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +355 -270
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Workspace.js +21 -12
- package/build/dist/Server/Utils/Workspace/Workspace.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +3 -1
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js +9 -2
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js.map +1 -1
- package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +1 -1
- package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +1 -1
- package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +12 -6
- package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +1 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js +20 -2
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +9 -2
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +9 -2
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.js +2 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.js.map +1 -0
- package/build/dist/UI/Components/Charts/Line/LineChart.js +20 -2
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Types/ExemplarPoint.js +2 -0
- package/build/dist/UI/Components/Charts/Types/ExemplarPoint.js.map +1 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +3 -3
- package/build/dist/UI/Components/Navbar/NavBar.js +9 -1
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/package.json +1 -1
|
@@ -40,7 +40,7 @@ import StatusPageService from "../../Server/Services/StatusPageService";
|
|
|
40
40
|
import StatusPageSubscriberService from "../../Server/Services/StatusPageSubscriberService";
|
|
41
41
|
import QueryHelper from "../../Server/Types/Database/QueryHelper";
|
|
42
42
|
import Markdown, { MarkdownContentType } from "../../Server/Types/Markdown";
|
|
43
|
-
import logger from "../../Server/Utils/Logger";
|
|
43
|
+
import logger, { LogAttributes } from "../../Server/Utils/Logger";
|
|
44
44
|
import StatusPage from "../../Models/DatabaseModels/StatusPage";
|
|
45
45
|
import StatusPageResource from "../../Models/DatabaseModels/StatusPageResource";
|
|
46
46
|
import StatusPageSubscriber from "../../Models/DatabaseModels/StatusPageSubscriber";
|
|
@@ -92,6 +92,10 @@ export class Service extends DatabaseService<Model> {
|
|
|
92
92
|
logger.debug(
|
|
93
93
|
"ScheduledMaintenance:SendSubscriberRemindersOnEventScheduled: Sending notification for event: " +
|
|
94
94
|
event.id,
|
|
95
|
+
{
|
|
96
|
+
projectId: event.projectId?.toString(),
|
|
97
|
+
scheduledMaintenanceId: event.id?.toString(),
|
|
98
|
+
} as LogAttributes,
|
|
95
99
|
);
|
|
96
100
|
|
|
97
101
|
let statusPageResources: Array<StatusPageResource> = [];
|
|
@@ -288,7 +292,9 @@ export class Service extends DatabaseService<Model> {
|
|
|
288
292
|
statusPageId: statuspage.id!,
|
|
289
293
|
scheduledMaintenanceId: event.id!,
|
|
290
294
|
}).catch((err: Error) => {
|
|
291
|
-
logger.error(err
|
|
295
|
+
logger.error(err, {
|
|
296
|
+
projectId: statuspage.projectId?.toString(),
|
|
297
|
+
} as LogAttributes);
|
|
292
298
|
});
|
|
293
299
|
}
|
|
294
300
|
|
|
@@ -320,7 +326,9 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
320
326
|
url: subscriber.slackIncomingWebhookUrl,
|
|
321
327
|
text: SlackUtil.convertMarkdownToSlackRichText(slackMessage),
|
|
322
328
|
}).catch((err: Error) => {
|
|
323
|
-
logger.error(err
|
|
329
|
+
logger.error(err, {
|
|
330
|
+
projectId: statuspage.projectId?.toString(),
|
|
331
|
+
} as LogAttributes);
|
|
324
332
|
});
|
|
325
333
|
}
|
|
326
334
|
|
|
@@ -398,7 +406,9 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
398
406
|
scheduledMaintenanceId: event.id!,
|
|
399
407
|
},
|
|
400
408
|
).catch((err: Error) => {
|
|
401
|
-
logger.error(err
|
|
409
|
+
logger.error(err, {
|
|
410
|
+
projectId: statuspage.projectId?.toString(),
|
|
411
|
+
} as LogAttributes);
|
|
402
412
|
});
|
|
403
413
|
} else {
|
|
404
414
|
// Use default hard-coded template
|
|
@@ -421,7 +431,9 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
421
431
|
scheduledMaintenanceId: event.id!,
|
|
422
432
|
},
|
|
423
433
|
).catch((err: Error) => {
|
|
424
|
-
logger.error(err
|
|
434
|
+
logger.error(err, {
|
|
435
|
+
projectId: statuspage.projectId?.toString(),
|
|
436
|
+
} as LogAttributes);
|
|
425
437
|
});
|
|
426
438
|
}
|
|
427
439
|
}
|
|
@@ -815,6 +827,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
815
827
|
} catch (error) {
|
|
816
828
|
logger.error(
|
|
817
829
|
`Workspace operations failed in ScheduledMaintenanceService.onCreateSuccess: ${error}`,
|
|
830
|
+
{
|
|
831
|
+
projectId: createdItem.projectId?.toString(),
|
|
832
|
+
scheduledMaintenanceId: createdItem.id?.toString(),
|
|
833
|
+
} as LogAttributes,
|
|
818
834
|
);
|
|
819
835
|
return Promise.resolve();
|
|
820
836
|
}
|
|
@@ -827,6 +843,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
827
843
|
} catch (error) {
|
|
828
844
|
logger.error(
|
|
829
845
|
`Create scheduled maintenance feed failed in ScheduledMaintenanceService.onCreateSuccess: ${error}`,
|
|
846
|
+
{
|
|
847
|
+
projectId: createdItem.projectId?.toString(),
|
|
848
|
+
scheduledMaintenanceId: createdItem.id?.toString(),
|
|
849
|
+
} as LogAttributes,
|
|
830
850
|
);
|
|
831
851
|
return Promise.resolve();
|
|
832
852
|
}
|
|
@@ -839,6 +859,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
839
859
|
} catch (error) {
|
|
840
860
|
logger.error(
|
|
841
861
|
`Create scheduled maintenance state timeline failed in ScheduledMaintenanceService.onCreateSuccess: ${error}`,
|
|
862
|
+
{
|
|
863
|
+
projectId: createdItem.projectId?.toString(),
|
|
864
|
+
scheduledMaintenanceId: createdItem.id?.toString(),
|
|
865
|
+
} as LogAttributes,
|
|
842
866
|
);
|
|
843
867
|
return Promise.resolve();
|
|
844
868
|
}
|
|
@@ -869,6 +893,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
869
893
|
} catch (error) {
|
|
870
894
|
logger.error(
|
|
871
895
|
`Add owners failed in ScheduledMaintenanceService.onCreateSuccess: ${error}`,
|
|
896
|
+
{
|
|
897
|
+
projectId: createdItem.projectId?.toString(),
|
|
898
|
+
scheduledMaintenanceId: createdItem.id?.toString(),
|
|
899
|
+
} as LogAttributes,
|
|
872
900
|
);
|
|
873
901
|
return Promise.resolve();
|
|
874
902
|
}
|
|
@@ -876,6 +904,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
876
904
|
.catch((error: Error) => {
|
|
877
905
|
logger.error(
|
|
878
906
|
`Critical error in ScheduledMaintenanceService sequential operations: ${error}`,
|
|
907
|
+
{
|
|
908
|
+
projectId: createdItem.projectId?.toString(),
|
|
909
|
+
scheduledMaintenanceId: createdItem.id?.toString(),
|
|
910
|
+
} as LogAttributes,
|
|
879
911
|
);
|
|
880
912
|
});
|
|
881
913
|
|
|
@@ -921,6 +953,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
921
953
|
} catch (error) {
|
|
922
954
|
logger.error(
|
|
923
955
|
`Error in handleScheduledMaintenanceWorkspaceOperationsAsync: ${error}`,
|
|
956
|
+
{
|
|
957
|
+
projectId: createdItem.projectId?.toString(),
|
|
958
|
+
scheduledMaintenanceId: createdItem.id?.toString(),
|
|
959
|
+
} as LogAttributes,
|
|
924
960
|
);
|
|
925
961
|
throw error;
|
|
926
962
|
}
|
|
@@ -991,7 +1027,10 @@ ${scheduledMaintenance.description || "No description provided."}
|
|
|
991
1027
|
},
|
|
992
1028
|
});
|
|
993
1029
|
} catch (error) {
|
|
994
|
-
logger.error(`Error in createScheduledMaintenanceFeedAsync: ${error}
|
|
1030
|
+
logger.error(`Error in createScheduledMaintenanceFeedAsync: ${error}`, {
|
|
1031
|
+
projectId: scheduledMaintenance.projectId?.toString(),
|
|
1032
|
+
scheduledMaintenanceId: scheduledMaintenance.id?.toString(),
|
|
1033
|
+
} as LogAttributes);
|
|
995
1034
|
throw error;
|
|
996
1035
|
}
|
|
997
1036
|
}
|
|
@@ -1026,6 +1065,10 @@ ${scheduledMaintenance.description || "No description provided."}
|
|
|
1026
1065
|
} catch (error) {
|
|
1027
1066
|
logger.error(
|
|
1028
1067
|
`Error in createScheduledMaintenanceStateTimelineAsync: ${error}`,
|
|
1068
|
+
{
|
|
1069
|
+
projectId: createdItem.projectId?.toString(),
|
|
1070
|
+
scheduledMaintenanceId: createdItem.id?.toString(),
|
|
1071
|
+
} as LogAttributes,
|
|
1029
1072
|
);
|
|
1030
1073
|
throw error;
|
|
1031
1074
|
}
|
|
@@ -1888,6 +1931,9 @@ ${labels
|
|
|
1888
1931
|
});
|
|
1889
1932
|
logger.info(
|
|
1890
1933
|
`Updated ScheduledMaintenance ${scheduledMaintenance.id} current state to ${latestTimeline.scheduledMaintenanceStateId}`,
|
|
1934
|
+
{
|
|
1935
|
+
projectId: scheduledMaintenance.projectId?.toString(),
|
|
1936
|
+
} as LogAttributes,
|
|
1891
1937
|
);
|
|
1892
1938
|
}
|
|
1893
1939
|
}
|
|
@@ -26,7 +26,7 @@ import ScheduledMaintenanceStateTimeline from "../../Models/DatabaseModels/Sched
|
|
|
26
26
|
import { IsBillingEnabled } from "../EnvironmentConfig";
|
|
27
27
|
import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
|
|
28
28
|
import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/ScheduledMaintenanceFeed";
|
|
29
|
-
import logger from "../Utils/Logger";
|
|
29
|
+
import logger, { LogAttributes } from "../Utils/Logger";
|
|
30
30
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
31
31
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
32
32
|
import WorkspaceNotificationRuleService from "./WorkspaceNotificationRuleService";
|
|
@@ -104,7 +104,10 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
104
104
|
namespace: "ScheduledMaintenanceStateTimeline.create",
|
|
105
105
|
});
|
|
106
106
|
} catch (err) {
|
|
107
|
-
logger.error(err
|
|
107
|
+
logger.error(err, {
|
|
108
|
+
scheduledMaintenanceId:
|
|
109
|
+
createBy.data.scheduledMaintenanceId?.toString(),
|
|
110
|
+
} as LogAttributes);
|
|
108
111
|
}
|
|
109
112
|
|
|
110
113
|
if (!createBy.data.startsAt) {
|
|
@@ -292,7 +295,11 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
292
295
|
try {
|
|
293
296
|
await Semaphore.release(mutex);
|
|
294
297
|
} catch (err) {
|
|
295
|
-
logger.error(err
|
|
298
|
+
logger.error(err, {
|
|
299
|
+
projectId: createBy.data.projectId?.toString(),
|
|
300
|
+
scheduledMaintenanceId:
|
|
301
|
+
createBy.data.scheduledMaintenanceId?.toString(),
|
|
302
|
+
} as LogAttributes);
|
|
296
303
|
}
|
|
297
304
|
}
|
|
298
305
|
|
|
@@ -317,14 +324,32 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
317
324
|
|
|
318
325
|
// update the last status as ended.
|
|
319
326
|
|
|
320
|
-
logger.debug("Status Timeline Before this"
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
logger.debug(onCreate.carryForward.
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
327
|
+
logger.debug("Status Timeline Before this", {
|
|
328
|
+
projectId: createdItem.projectId?.toString(),
|
|
329
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
330
|
+
} as LogAttributes);
|
|
331
|
+
logger.debug(onCreate.carryForward.statusTimelineBeforeThisStatus, {
|
|
332
|
+
projectId: createdItem.projectId?.toString(),
|
|
333
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
334
|
+
} as LogAttributes);
|
|
335
|
+
|
|
336
|
+
logger.debug("Status Timeline After this", {
|
|
337
|
+
projectId: createdItem.projectId?.toString(),
|
|
338
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
339
|
+
} as LogAttributes);
|
|
340
|
+
logger.debug(onCreate.carryForward.statusTimelineAfterThisStatus, {
|
|
341
|
+
projectId: createdItem.projectId?.toString(),
|
|
342
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
343
|
+
} as LogAttributes);
|
|
344
|
+
|
|
345
|
+
logger.debug("Created Item", {
|
|
346
|
+
projectId: createdItem.projectId?.toString(),
|
|
347
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
348
|
+
} as LogAttributes);
|
|
349
|
+
logger.debug(createdItem, {
|
|
350
|
+
projectId: createdItem.projectId?.toString(),
|
|
351
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
352
|
+
} as LogAttributes);
|
|
328
353
|
|
|
329
354
|
/*
|
|
330
355
|
* now there are three cases.
|
|
@@ -332,7 +357,10 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
332
357
|
*/
|
|
333
358
|
if (!onCreate.carryForward.statusTimelineBeforeThisStatus) {
|
|
334
359
|
// This is the first status, no need to update previous status.
|
|
335
|
-
logger.debug("This is the first status."
|
|
360
|
+
logger.debug("This is the first status.", {
|
|
361
|
+
projectId: createdItem.projectId?.toString(),
|
|
362
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
363
|
+
} as LogAttributes);
|
|
336
364
|
} else if (!onCreate.carryForward.statusTimelineAfterThisStatus) {
|
|
337
365
|
/*
|
|
338
366
|
* 2. This is the last status.
|
|
@@ -347,7 +375,10 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
347
375
|
isRoot: true,
|
|
348
376
|
},
|
|
349
377
|
});
|
|
350
|
-
logger.debug("This is the last status."
|
|
378
|
+
logger.debug("This is the last status.", {
|
|
379
|
+
projectId: createdItem.projectId?.toString(),
|
|
380
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
381
|
+
} as LogAttributes);
|
|
351
382
|
} else {
|
|
352
383
|
/*
|
|
353
384
|
* 3. This is in the middle.
|
|
@@ -373,7 +404,10 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
373
404
|
isRoot: true,
|
|
374
405
|
},
|
|
375
406
|
});
|
|
376
|
-
logger.debug("This status is in the middle."
|
|
407
|
+
logger.debug("This status is in the middle.", {
|
|
408
|
+
projectId: createdItem.projectId?.toString(),
|
|
409
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
|
|
410
|
+
} as LogAttributes);
|
|
377
411
|
}
|
|
378
412
|
|
|
379
413
|
if (!createdItem.endsAt) {
|
|
@@ -393,7 +427,11 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
393
427
|
try {
|
|
394
428
|
await Semaphore.release(mutex);
|
|
395
429
|
} catch (err) {
|
|
396
|
-
logger.error(err
|
|
430
|
+
logger.error(err, {
|
|
431
|
+
projectId: createdItem.projectId?.toString(),
|
|
432
|
+
scheduledMaintenanceId:
|
|
433
|
+
createdItem.scheduledMaintenanceId?.toString(),
|
|
434
|
+
} as LogAttributes);
|
|
397
435
|
}
|
|
398
436
|
}
|
|
399
437
|
|
|
@@ -583,8 +621,16 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
583
621
|
).toString()})** is complete. Archiving channel.`,
|
|
584
622
|
},
|
|
585
623
|
}).catch((error: Error) => {
|
|
586
|
-
logger.error(`Error while archiving workspace channels
|
|
587
|
-
|
|
624
|
+
logger.error(`Error while archiving workspace channels:`, {
|
|
625
|
+
projectId: createdItem.projectId?.toString(),
|
|
626
|
+
scheduledMaintenanceId:
|
|
627
|
+
createdItem.scheduledMaintenanceId?.toString(),
|
|
628
|
+
} as LogAttributes);
|
|
629
|
+
logger.error(error, {
|
|
630
|
+
projectId: createdItem.projectId?.toString(),
|
|
631
|
+
scheduledMaintenanceId:
|
|
632
|
+
createdItem.scheduledMaintenanceId?.toString(),
|
|
633
|
+
} as LogAttributes);
|
|
588
634
|
});
|
|
589
635
|
}
|
|
590
636
|
|
|
@@ -796,7 +842,9 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
796
842
|
|
|
797
843
|
if (!stateBeforeThis) {
|
|
798
844
|
// This is the first state, no need to update previous state.
|
|
799
|
-
logger.debug("This is the first state."
|
|
845
|
+
logger.debug("This is the first state.", {
|
|
846
|
+
scheduledMaintenanceId: scheduledMaintenanceId?.toString(),
|
|
847
|
+
} as LogAttributes);
|
|
800
848
|
} else if (!stateAfterThis) {
|
|
801
849
|
/*
|
|
802
850
|
* This is the last state.
|
|
@@ -811,7 +859,9 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
811
859
|
isRoot: true,
|
|
812
860
|
},
|
|
813
861
|
});
|
|
814
|
-
logger.debug("This is the last state."
|
|
862
|
+
logger.debug("This is the last state.", {
|
|
863
|
+
scheduledMaintenanceId: scheduledMaintenanceId?.toString(),
|
|
864
|
+
} as LogAttributes);
|
|
815
865
|
} else {
|
|
816
866
|
/*
|
|
817
867
|
* This state is in the middle.
|
|
@@ -837,7 +887,9 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
|
|
|
837
887
|
isRoot: true,
|
|
838
888
|
},
|
|
839
889
|
});
|
|
840
|
-
logger.debug("This state is in the middle."
|
|
890
|
+
logger.debug("This state is in the middle.", {
|
|
891
|
+
scheduledMaintenanceId: scheduledMaintenanceId?.toString(),
|
|
892
|
+
} as LogAttributes);
|
|
841
893
|
}
|
|
842
894
|
}
|
|
843
895
|
|
|
@@ -2,7 +2,7 @@ import CreateBy from "../Types/Database/CreateBy";
|
|
|
2
2
|
import DeleteBy from "../Types/Database/DeleteBy";
|
|
3
3
|
import { OnCreate, OnDelete } from "../Types/Database/Hooks";
|
|
4
4
|
import GreenlockUtil from "../Utils/Greenlock/Greenlock";
|
|
5
|
-
import logger from "../Utils/Logger";
|
|
5
|
+
import logger, { LogAttributes } from "../Utils/Logger";
|
|
6
6
|
import DatabaseService from "./DatabaseService";
|
|
7
7
|
import DomainService from "./DomainService";
|
|
8
8
|
import HTTPErrorResponse from "../../Types/API/HTTPErrorResponse";
|
|
@@ -164,6 +164,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
164
164
|
|
|
165
165
|
logger.debug(
|
|
166
166
|
"Ordering SSL for domain: " + statusPageDomain.fullDomain,
|
|
167
|
+
{ fullDomain: statusPageDomain.fullDomain } as LogAttributes,
|
|
167
168
|
);
|
|
168
169
|
|
|
169
170
|
await GreenlockUtil.orderCert({
|
|
@@ -175,6 +176,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
175
176
|
|
|
176
177
|
logger.debug(
|
|
177
178
|
"SSL ordered for domain: " + statusPageDomain.fullDomain,
|
|
179
|
+
{ fullDomain: statusPageDomain.fullDomain } as LogAttributes,
|
|
178
180
|
);
|
|
179
181
|
|
|
180
182
|
// update the order.
|
|
@@ -244,7 +246,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
244
246
|
|
|
245
247
|
return true;
|
|
246
248
|
} catch (err) {
|
|
247
|
-
logger.error(err);
|
|
249
|
+
logger.error(err, { fullDomain: fulldomain } as LogAttributes);
|
|
248
250
|
return false;
|
|
249
251
|
}
|
|
250
252
|
}
|
|
@@ -288,7 +290,9 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
288
290
|
try {
|
|
289
291
|
// get the token from the domain.
|
|
290
292
|
|
|
291
|
-
logger.debug("Checking for CNAME " + fullDomain
|
|
293
|
+
logger.debug("Checking for CNAME " + fullDomain, {
|
|
294
|
+
fullDomain,
|
|
295
|
+
} as LogAttributes);
|
|
292
296
|
|
|
293
297
|
const statusPageDomain: StatusPageDomain | null = await this.findOneBy({
|
|
294
298
|
query: {
|
|
@@ -309,7 +313,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
309
313
|
|
|
310
314
|
const token: string = statusPageDomain.cnameVerificationToken!;
|
|
311
315
|
|
|
312
|
-
logger.debug(
|
|
316
|
+
logger.debug(
|
|
317
|
+
"Checking for CNAME " + fullDomain + " with token " + token,
|
|
318
|
+
{ fullDomain } as LogAttributes,
|
|
319
|
+
);
|
|
313
320
|
|
|
314
321
|
try {
|
|
315
322
|
const result: HTTPErrorResponse | HTTPResponse<JSONObject> =
|
|
@@ -322,8 +329,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
322
329
|
),
|
|
323
330
|
});
|
|
324
331
|
|
|
325
|
-
logger.debug("CNAME verification result"
|
|
326
|
-
|
|
332
|
+
logger.debug("CNAME verification result", {
|
|
333
|
+
fullDomain,
|
|
334
|
+
} as LogAttributes);
|
|
335
|
+
logger.debug(result, { fullDomain } as LogAttributes);
|
|
327
336
|
|
|
328
337
|
if (result.isSuccess()) {
|
|
329
338
|
await this.updateCnameStatusForStatusPageDomain({
|
|
@@ -334,8 +343,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
334
343
|
return true;
|
|
335
344
|
}
|
|
336
345
|
} catch (err) {
|
|
337
|
-
logger.debug("Failed checking for CNAME " + fullDomain
|
|
338
|
-
|
|
346
|
+
logger.debug("Failed checking for CNAME " + fullDomain, {
|
|
347
|
+
fullDomain,
|
|
348
|
+
} as LogAttributes);
|
|
349
|
+
logger.debug(err, { fullDomain } as LogAttributes);
|
|
339
350
|
}
|
|
340
351
|
|
|
341
352
|
// try with https
|
|
@@ -351,8 +362,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
351
362
|
),
|
|
352
363
|
});
|
|
353
364
|
|
|
354
|
-
logger.debug("CNAME verification result for https"
|
|
355
|
-
|
|
365
|
+
logger.debug("CNAME verification result for https", {
|
|
366
|
+
fullDomain,
|
|
367
|
+
} as LogAttributes);
|
|
368
|
+
logger.debug(resultHttps, { fullDomain } as LogAttributes);
|
|
356
369
|
|
|
357
370
|
if (resultHttps.isSuccess()) {
|
|
358
371
|
await this.updateCnameStatusForStatusPageDomain({
|
|
@@ -363,8 +376,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
363
376
|
return true;
|
|
364
377
|
}
|
|
365
378
|
} catch (err) {
|
|
366
|
-
logger.debug("Failed checking for CNAME " + fullDomain
|
|
367
|
-
|
|
379
|
+
logger.debug("Failed checking for CNAME " + fullDomain, {
|
|
380
|
+
fullDomain,
|
|
381
|
+
} as LogAttributes);
|
|
382
|
+
logger.debug(err, { fullDomain } as LogAttributes);
|
|
368
383
|
}
|
|
369
384
|
|
|
370
385
|
try {
|
|
@@ -383,6 +398,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
383
398
|
if (!cnameRecord) {
|
|
384
399
|
logger.debug(
|
|
385
400
|
`No CNAME record found for ${fullDomain}. Expected record: ${StatusPageCNameRecord}`,
|
|
401
|
+
{ fullDomain } as LogAttributes,
|
|
386
402
|
);
|
|
387
403
|
await this.updateCnameStatusForStatusPageDomain({
|
|
388
404
|
domain: fullDomain,
|
|
@@ -398,6 +414,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
398
414
|
) {
|
|
399
415
|
logger.debug(
|
|
400
416
|
`CNAME record for ${fullDomain} matches the expected record: ${StatusPageCNameRecord}`,
|
|
417
|
+
{ fullDomain } as LogAttributes,
|
|
401
418
|
);
|
|
402
419
|
|
|
403
420
|
await this.updateCnameStatusForStatusPageDomain({
|
|
@@ -410,11 +427,14 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
410
427
|
|
|
411
428
|
logger.debug(
|
|
412
429
|
`CNAME record for ${fullDomain} is ${cnameRecord} and it does not match the expected record: ${StatusPageCNameRecord}`,
|
|
430
|
+
{ fullDomain } as LogAttributes,
|
|
413
431
|
);
|
|
414
432
|
}
|
|
415
433
|
} catch (err) {
|
|
416
|
-
logger.debug("Failed checking for CNAME " + fullDomain
|
|
417
|
-
|
|
434
|
+
logger.debug("Failed checking for CNAME " + fullDomain, {
|
|
435
|
+
fullDomain,
|
|
436
|
+
} as LogAttributes);
|
|
437
|
+
logger.debug(err, { fullDomain } as LogAttributes);
|
|
418
438
|
}
|
|
419
439
|
|
|
420
440
|
await this.updateCnameStatusForStatusPageDomain({
|
|
@@ -424,8 +444,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
424
444
|
|
|
425
445
|
return false;
|
|
426
446
|
} catch (err) {
|
|
427
|
-
logger.debug("Failed checking for CNAME " + fullDomain
|
|
428
|
-
|
|
447
|
+
logger.debug("Failed checking for CNAME " + fullDomain, {
|
|
448
|
+
fullDomain,
|
|
449
|
+
} as LogAttributes);
|
|
450
|
+
logger.debug(err, { fullDomain } as LogAttributes);
|
|
429
451
|
|
|
430
452
|
await this.updateCnameStatusForStatusPageDomain({
|
|
431
453
|
domain: fullDomain,
|
|
@@ -464,6 +486,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
464
486
|
|
|
465
487
|
logger.debug(
|
|
466
488
|
`StatusPageCerts:RemoveCerts - Checking CNAME ${statusPageDomain.fullDomain}`,
|
|
489
|
+
{ fullDomain: statusPageDomain.fullDomain } as LogAttributes,
|
|
467
490
|
);
|
|
468
491
|
|
|
469
492
|
// Check CNAME validation and if that fails. Remove certs from Greenlock.
|
|
@@ -496,8 +519,11 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
496
519
|
} catch (err) {
|
|
497
520
|
logger.error(
|
|
498
521
|
"Cannot order cert for domain: " + statusPageDomain.fullDomain,
|
|
522
|
+
{ fullDomain: statusPageDomain.fullDomain } as LogAttributes,
|
|
499
523
|
);
|
|
500
|
-
logger.error(err
|
|
524
|
+
logger.error(err, {
|
|
525
|
+
fullDomain: statusPageDomain.fullDomain,
|
|
526
|
+
} as LogAttributes);
|
|
501
527
|
}
|
|
502
528
|
}
|
|
503
529
|
} else {
|
|
@@ -538,10 +564,14 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
538
564
|
|
|
539
565
|
for (const domain of domains) {
|
|
540
566
|
try {
|
|
541
|
-
logger.debug("Ordering SSL for domain: " + domain.fullDomain
|
|
567
|
+
logger.debug("Ordering SSL for domain: " + domain.fullDomain, {
|
|
568
|
+
fullDomain: domain.fullDomain,
|
|
569
|
+
} as LogAttributes);
|
|
542
570
|
await this.orderCert(domain);
|
|
543
571
|
} catch (e) {
|
|
544
|
-
logger.error(e
|
|
572
|
+
logger.error(e, {
|
|
573
|
+
fullDomain: domain.fullDomain,
|
|
574
|
+
} as LogAttributes);
|
|
545
575
|
}
|
|
546
576
|
}
|
|
547
577
|
|
|
@@ -579,7 +609,9 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
579
609
|
try {
|
|
580
610
|
await this.isCnameValid(domain.fullDomain as string); // this will also upate the status.
|
|
581
611
|
} catch (e) {
|
|
582
|
-
logger.error(e
|
|
612
|
+
logger.error(e, {
|
|
613
|
+
fullDomain: domain.fullDomain as string,
|
|
614
|
+
} as LogAttributes);
|
|
583
615
|
}
|
|
584
616
|
}
|
|
585
617
|
}
|
|
@@ -605,7 +637,9 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
605
637
|
},
|
|
606
638
|
});
|
|
607
639
|
|
|
608
|
-
logger.debug(`DomainModel removed from greenlock: ${domain}
|
|
640
|
+
logger.debug(`DomainModel removed from greenlock: ${domain}`, {
|
|
641
|
+
fullDomain: domain,
|
|
642
|
+
} as LogAttributes);
|
|
609
643
|
},
|
|
610
644
|
});
|
|
611
645
|
}
|
|
@@ -653,8 +687,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
|
|
|
653
687
|
// order cert again.
|
|
654
688
|
await this.orderCert(domain);
|
|
655
689
|
} catch (err) {
|
|
656
|
-
logger.error("Cannot order cert for domain: " + domain.fullDomain
|
|
657
|
-
|
|
690
|
+
logger.error("Cannot order cert for domain: " + domain.fullDomain, {
|
|
691
|
+
fullDomain: domain.fullDomain,
|
|
692
|
+
} as LogAttributes);
|
|
693
|
+
logger.error(err, { fullDomain: domain.fullDomain } as LogAttributes);
|
|
658
694
|
}
|
|
659
695
|
}
|
|
660
696
|
}
|
|
@@ -5,7 +5,7 @@ import UpdateBy from "../Types/Database/UpdateBy";
|
|
|
5
5
|
import CookieUtil from "../Utils/Cookie";
|
|
6
6
|
import { ExpressRequest } from "../Utils/Express";
|
|
7
7
|
import JSONWebToken from "../Utils/JsonWebToken";
|
|
8
|
-
import logger from "../Utils/Logger";
|
|
8
|
+
import logger, { LogAttributes } from "../Utils/Logger";
|
|
9
9
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
10
10
|
import DatabaseService from "./DatabaseService";
|
|
11
11
|
import MonitorStatusService from "./MonitorStatusService";
|
|
@@ -217,7 +217,10 @@ export class Service extends DatabaseService<StatusPage> {
|
|
|
217
217
|
false,
|
|
218
218
|
onCreate.createBy.props,
|
|
219
219
|
).catch((error: Error) => {
|
|
220
|
-
logger.error(`Error in StatusPageService owner assignment: ${error}
|
|
220
|
+
logger.error(`Error in StatusPageService owner assignment: ${error}`, {
|
|
221
|
+
projectId: createdItem.projectId?.toString(),
|
|
222
|
+
statusPageId: createdItem.id?.toString(),
|
|
223
|
+
} as LogAttributes);
|
|
221
224
|
});
|
|
222
225
|
}
|
|
223
226
|
|
|
@@ -405,7 +408,9 @@ export class Service extends DatabaseService<StatusPage> {
|
|
|
405
408
|
req.ips[0];
|
|
406
409
|
|
|
407
410
|
if (!ipAccessedFrom) {
|
|
408
|
-
logger.error("IP address not found in request."
|
|
411
|
+
logger.error("IP address not found in request.", {
|
|
412
|
+
statusPageId: statusPageId?.toString(),
|
|
413
|
+
} as LogAttributes);
|
|
409
414
|
return {
|
|
410
415
|
hasReadAccess: false,
|
|
411
416
|
error: new ForbiddenException(
|
|
@@ -425,6 +430,7 @@ export class Service extends DatabaseService<StatusPage> {
|
|
|
425
430
|
if (!isIPWhitelisted) {
|
|
426
431
|
logger.error(
|
|
427
432
|
`IP address ${ipAccessedFrom} is not whitelisted for status page ${statusPageId.toString()}.`,
|
|
433
|
+
{ statusPageId: statusPageId?.toString() } as LogAttributes,
|
|
428
434
|
);
|
|
429
435
|
|
|
430
436
|
return {
|
|
@@ -460,7 +466,9 @@ export class Service extends DatabaseService<StatusPage> {
|
|
|
460
466
|
};
|
|
461
467
|
}
|
|
462
468
|
} catch (err) {
|
|
463
|
-
logger.error(err
|
|
469
|
+
logger.error(err, {
|
|
470
|
+
statusPageId: statusPageId?.toString(),
|
|
471
|
+
} as LogAttributes);
|
|
464
472
|
}
|
|
465
473
|
}
|
|
466
474
|
|
|
@@ -492,7 +500,9 @@ export class Service extends DatabaseService<StatusPage> {
|
|
|
492
500
|
};
|
|
493
501
|
}
|
|
494
502
|
} catch (err) {
|
|
495
|
-
logger.error(err
|
|
503
|
+
logger.error(err, {
|
|
504
|
+
statusPageId: statusPageId?.toString(),
|
|
505
|
+
} as LogAttributes);
|
|
496
506
|
}
|
|
497
507
|
|
|
498
508
|
return {
|
|
@@ -524,7 +534,9 @@ export class Service extends DatabaseService<StatusPage> {
|
|
|
524
534
|
payload["type"] === MASTER_PASSWORD_COOKIE_IDENTIFIER
|
|
525
535
|
);
|
|
526
536
|
} catch (err) {
|
|
527
|
-
logger.error(err
|
|
537
|
+
logger.error(err, {
|
|
538
|
+
statusPageId: data.statusPageId?.toString(),
|
|
539
|
+
} as LogAttributes);
|
|
528
540
|
}
|
|
529
541
|
|
|
530
542
|
return false;
|
|
@@ -841,7 +853,10 @@ export class Service extends DatabaseService<StatusPage> {
|
|
|
841
853
|
statusPageId: statuspage.id!,
|
|
842
854
|
},
|
|
843
855
|
).catch((err: Error) => {
|
|
844
|
-
logger.error(err
|
|
856
|
+
logger.error(err, {
|
|
857
|
+
projectId: statuspage.projectId?.toString(),
|
|
858
|
+
statusPageId: statuspage.id?.toString(),
|
|
859
|
+
} as LogAttributes);
|
|
845
860
|
});
|
|
846
861
|
};
|
|
847
862
|
|
|
@@ -889,7 +904,10 @@ export class Service extends DatabaseService<StatusPage> {
|
|
|
889
904
|
continue; // Cant send Status Page reports to SMS subscribers.
|
|
890
905
|
}
|
|
891
906
|
} catch (err) {
|
|
892
|
-
logger.error(err
|
|
907
|
+
logger.error(err, {
|
|
908
|
+
projectId: statuspage.projectId?.toString(),
|
|
909
|
+
statusPageId: statuspage.id?.toString(),
|
|
910
|
+
} as LogAttributes);
|
|
893
911
|
}
|
|
894
912
|
}
|
|
895
913
|
}
|