@oneuptime/common 10.0.52 → 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/TelemetryAPI.ts +81 -0
- 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/LabelService.ts +14 -1
- package/Server/Services/MonitorFeedService.ts +33 -9
- package/Server/Services/MonitorProbeService.ts +31 -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 +29 -11
- 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/TelemetryAttributeService.ts +117 -4
- 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/BulkUpdate/BulkUpdateForm.tsx +60 -38
- 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/Dictionary/Dictionary.tsx +13 -1
- package/UI/Components/Filters/FiltersForm.tsx +2 -0
- package/UI/Components/Filters/JSONFilter.tsx +5 -1
- package/UI/Components/Filters/Types/Filter.ts +2 -0
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +3 -3
- package/UI/Components/ModelTable/BaseModelTable.tsx +10 -6
- 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/TelemetryAPI.js +39 -0
- package/build/dist/Server/API/TelemetryAPI.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/LabelService.js +10 -1
- package/build/dist/Server/Services/LabelService.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 +23 -3
- 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 +41 -21
- 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/TelemetryAttributeService.js +83 -6
- package/build/dist/Server/Services/TelemetryAttributeService.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/BulkUpdate/BulkUpdateForm.js +31 -30
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.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/Dictionary/Dictionary.js +9 -1
- package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
- package/build/dist/UI/Components/Filters/FiltersForm.js +1 -1
- package/build/dist/UI/Components/Filters/FiltersForm.js.map +1 -1
- package/build/dist/UI/Components/Filters/JSONFilter.js +1 -1
- package/build/dist/UI/Components/Filters/JSONFilter.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +3 -3
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +9 -5
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- 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
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
ExpressResponse,
|
|
36
36
|
NextFunction,
|
|
37
37
|
} from "../Utils/Express";
|
|
38
|
-
import logger from "../Utils/Logger";
|
|
38
|
+
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
39
39
|
import Response from "../Utils/Response";
|
|
40
40
|
import BaseAPI from "./BaseAPI";
|
|
41
41
|
import BaseModel from "../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
|
|
@@ -205,8 +205,9 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
205
205
|
} catch (err) {
|
|
206
206
|
logger.error(
|
|
207
207
|
`Error converting statusPageIdOrDomain to ObjectID: ${statusPageIdOrDomain}`,
|
|
208
|
+
getLogAttributesFromRequest(req as any),
|
|
208
209
|
);
|
|
209
|
-
logger.error(err);
|
|
210
|
+
logger.error(err, getLogAttributesFromRequest(req as any));
|
|
210
211
|
return Response.sendErrorResponse(
|
|
211
212
|
req,
|
|
212
213
|
res,
|
|
@@ -275,7 +276,10 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
275
276
|
});
|
|
276
277
|
|
|
277
278
|
if (!statusPage || !statusPage.faviconFile) {
|
|
278
|
-
logger.debug(
|
|
279
|
+
logger.debug(
|
|
280
|
+
"Favicon file not found. Returning default favicon.",
|
|
281
|
+
getLogAttributesFromRequest(req as any),
|
|
282
|
+
);
|
|
279
283
|
|
|
280
284
|
return Response.sendFileByPath(
|
|
281
285
|
req,
|
|
@@ -286,6 +290,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
286
290
|
|
|
287
291
|
logger.debug(
|
|
288
292
|
`Favicon file found. Sending file: ${statusPage.faviconFile.name}`,
|
|
293
|
+
getLogAttributesFromRequest(req as any),
|
|
289
294
|
);
|
|
290
295
|
|
|
291
296
|
return Response.sendFileResponse(req, res, statusPage.faviconFile);
|
|
@@ -294,7 +299,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
294
299
|
return Response.sendErrorResponse(req, res, error);
|
|
295
300
|
}
|
|
296
301
|
|
|
297
|
-
logger.error(error);
|
|
302
|
+
logger.error(error, getLogAttributesFromRequest(req as any));
|
|
298
303
|
return Response.sendErrorResponse(
|
|
299
304
|
req,
|
|
300
305
|
res,
|
|
@@ -344,7 +349,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
344
349
|
return Response.sendErrorResponse(req, res, error);
|
|
345
350
|
}
|
|
346
351
|
|
|
347
|
-
logger.error(error);
|
|
352
|
+
logger.error(error, getLogAttributesFromRequest(req as any));
|
|
348
353
|
return Response.sendErrorResponse(
|
|
349
354
|
req,
|
|
350
355
|
res,
|
|
@@ -394,7 +399,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
394
399
|
return Response.sendErrorResponse(req, res, error);
|
|
395
400
|
}
|
|
396
401
|
|
|
397
|
-
logger.error(error);
|
|
402
|
+
logger.error(error, getLogAttributesFromRequest(req as any));
|
|
398
403
|
return Response.sendErrorResponse(
|
|
399
404
|
req,
|
|
400
405
|
res,
|
|
@@ -604,7 +609,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
604
609
|
res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
|
605
610
|
return res.send(svg);
|
|
606
611
|
} catch (err) {
|
|
607
|
-
logger.error(err);
|
|
612
|
+
logger.error(err, getLogAttributesFromRequest(req as any));
|
|
608
613
|
return res.status(500).send("Internal Server Error");
|
|
609
614
|
}
|
|
610
615
|
},
|
|
@@ -684,7 +689,10 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
684
689
|
|
|
685
690
|
const token: string = req.params["token"] as string;
|
|
686
691
|
|
|
687
|
-
logger.debug(
|
|
692
|
+
logger.debug(
|
|
693
|
+
`CNAME Verification: Host:${host} - Token:${token}`,
|
|
694
|
+
getLogAttributesFromRequest(req as any),
|
|
695
|
+
);
|
|
688
696
|
|
|
689
697
|
const domain: StatusPageDomain | null =
|
|
690
698
|
await StatusPageDomainService.findOneBy({
|
|
@@ -720,6 +728,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
720
728
|
async (req: ExpressRequest, res: ExpressResponse) => {
|
|
721
729
|
logger.debug(
|
|
722
730
|
`ACME challenge validation request received for token: ${req.params["token"]} from host: ${req.headers["host"]}`,
|
|
731
|
+
getLogAttributesFromRequest(req as any),
|
|
723
732
|
);
|
|
724
733
|
|
|
725
734
|
const challenge: AcmeChallenge | null =
|
|
@@ -738,6 +747,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
738
747
|
if (!challenge) {
|
|
739
748
|
logger.error(
|
|
740
749
|
`ACME challenge not found for token: ${req.params["token"]} from host: ${req.headers["host"]}`,
|
|
750
|
+
getLogAttributesFromRequest(req as any),
|
|
741
751
|
);
|
|
742
752
|
return Response.sendErrorResponse(
|
|
743
753
|
req,
|
|
@@ -3106,6 +3116,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3106
3116
|
|
|
3107
3117
|
logger.debug(
|
|
3108
3118
|
`Managing Existing Subscription for Status Page: ${statusPageId}`,
|
|
3119
|
+
getLogAttributesFromRequest(req as any),
|
|
3109
3120
|
);
|
|
3110
3121
|
|
|
3111
3122
|
await this.checkHasReadAccess({
|
|
@@ -3134,20 +3145,27 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3134
3145
|
});
|
|
3135
3146
|
|
|
3136
3147
|
if (!statusPage) {
|
|
3137
|
-
logger.debug(
|
|
3148
|
+
logger.debug(
|
|
3149
|
+
`Status page not found with ID: ${statusPageId}`,
|
|
3150
|
+
getLogAttributesFromRequest(req as any),
|
|
3151
|
+
);
|
|
3138
3152
|
throw new BadDataException("Status Page not found");
|
|
3139
3153
|
}
|
|
3140
3154
|
|
|
3141
3155
|
if (!statusPage.showSubscriberPageOnStatusPage) {
|
|
3142
3156
|
logger.debug(
|
|
3143
3157
|
`Subscriber page not enabled for status page with ID: ${statusPageId}`,
|
|
3158
|
+
getLogAttributesFromRequest(req as any),
|
|
3144
3159
|
);
|
|
3145
3160
|
throw new BadDataException(
|
|
3146
3161
|
"Subscribes not enabled for this status page.",
|
|
3147
3162
|
);
|
|
3148
3163
|
}
|
|
3149
3164
|
|
|
3150
|
-
logger.debug(
|
|
3165
|
+
logger.debug(
|
|
3166
|
+
`Status page found: ${JSON.stringify(statusPage)}`,
|
|
3167
|
+
getLogAttributesFromRequest(req as any),
|
|
3168
|
+
);
|
|
3151
3169
|
|
|
3152
3170
|
if (
|
|
3153
3171
|
req.body.data["subscriberEmail"] &&
|
|
@@ -3155,6 +3173,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3155
3173
|
) {
|
|
3156
3174
|
logger.debug(
|
|
3157
3175
|
`Email subscribers not enabled for status page with ID: ${statusPageId}`,
|
|
3176
|
+
getLogAttributesFromRequest(req as any),
|
|
3158
3177
|
);
|
|
3159
3178
|
throw new BadDataException(
|
|
3160
3179
|
"Email subscribers not enabled for this status page.",
|
|
@@ -3167,6 +3186,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3167
3186
|
) {
|
|
3168
3187
|
logger.debug(
|
|
3169
3188
|
`Slack subscribers not enabled for status page with ID: ${statusPageId}`,
|
|
3189
|
+
getLogAttributesFromRequest(req as any),
|
|
3170
3190
|
);
|
|
3171
3191
|
throw new BadDataException(
|
|
3172
3192
|
"Slack subscribers not enabled for this status page.",
|
|
@@ -3176,6 +3196,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3176
3196
|
if (req.body.data["subscriberPhone"] && !statusPage.enableSmsSubscribers) {
|
|
3177
3197
|
logger.debug(
|
|
3178
3198
|
`SMS subscribers not enabled for status page with ID: ${statusPageId}`,
|
|
3199
|
+
getLogAttributesFromRequest(req as any),
|
|
3179
3200
|
);
|
|
3180
3201
|
throw new BadDataException(
|
|
3181
3202
|
"SMS subscribers not enabled for this status page.",
|
|
@@ -3191,6 +3212,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3191
3212
|
) {
|
|
3192
3213
|
logger.debug(
|
|
3193
3214
|
`No email, slack workspace name or phone provided for subscription to status page with ID: ${statusPageId}`,
|
|
3215
|
+
getLogAttributesFromRequest(req as any),
|
|
3194
3216
|
);
|
|
3195
3217
|
throw new BadDataException(
|
|
3196
3218
|
"Email, phone or slack workspace name is required to subscribe to this status page.",
|
|
@@ -3214,7 +3236,10 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3214
3236
|
let statusPageSubscriber: StatusPageSubscriber | null = null;
|
|
3215
3237
|
|
|
3216
3238
|
if (email) {
|
|
3217
|
-
logger.debug(
|
|
3239
|
+
logger.debug(
|
|
3240
|
+
`Setting subscriber email: ${email}`,
|
|
3241
|
+
getLogAttributesFromRequest(req as any),
|
|
3242
|
+
);
|
|
3218
3243
|
statusPageSubscriber = await StatusPageSubscriberService.findOneBy({
|
|
3219
3244
|
query: {
|
|
3220
3245
|
subscriberEmail: email,
|
|
@@ -3231,7 +3256,10 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3231
3256
|
}
|
|
3232
3257
|
|
|
3233
3258
|
if (phone) {
|
|
3234
|
-
logger.debug(
|
|
3259
|
+
logger.debug(
|
|
3260
|
+
`Setting subscriber phone: ${phone}`,
|
|
3261
|
+
getLogAttributesFromRequest(req as any),
|
|
3262
|
+
);
|
|
3235
3263
|
statusPageSubscriber = await StatusPageSubscriberService.findOneBy({
|
|
3236
3264
|
query: {
|
|
3237
3265
|
subscriberPhone: phone,
|
|
@@ -3248,7 +3276,10 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3248
3276
|
}
|
|
3249
3277
|
|
|
3250
3278
|
if (slackWorkspaceName) {
|
|
3251
|
-
logger.debug(
|
|
3279
|
+
logger.debug(
|
|
3280
|
+
`Setting subscriber slack workspace: ${slackWorkspaceName}`,
|
|
3281
|
+
getLogAttributesFromRequest(req as any),
|
|
3282
|
+
);
|
|
3252
3283
|
statusPageSubscriber = await StatusPageSubscriberService.findOneBy({
|
|
3253
3284
|
query: {
|
|
3254
3285
|
slackWorkspaceName: slackWorkspaceName,
|
|
@@ -3269,6 +3300,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3269
3300
|
// not found, return bad data
|
|
3270
3301
|
logger.debug(
|
|
3271
3302
|
`Subscriber not found for email: ${email}, phone: ${phone}, or slack workspace: ${slackWorkspaceName}`,
|
|
3303
|
+
getLogAttributesFromRequest(req as any),
|
|
3272
3304
|
);
|
|
3273
3305
|
|
|
3274
3306
|
let identifierType: string = "email";
|
|
@@ -3355,7 +3387,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3355
3387
|
),
|
|
3356
3388
|
statusPageId: statusPage.id!,
|
|
3357
3389
|
}).catch((err: Error) => {
|
|
3358
|
-
logger.error(err);
|
|
3390
|
+
logger.error(err, getLogAttributesFromRequest(req as any));
|
|
3359
3391
|
});
|
|
3360
3392
|
}
|
|
3361
3393
|
|
|
@@ -3366,12 +3398,13 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3366
3398
|
url: statusPageSubscriber.slackIncomingWebhookUrl,
|
|
3367
3399
|
text: slackMessage,
|
|
3368
3400
|
}).catch((err: Error) => {
|
|
3369
|
-
logger.error(err);
|
|
3401
|
+
logger.error(err, getLogAttributesFromRequest(req as any));
|
|
3370
3402
|
});
|
|
3371
3403
|
}
|
|
3372
3404
|
|
|
3373
3405
|
logger.debug(
|
|
3374
3406
|
`Subscription management link sent to subscriber with ID: ${statusPageSubscriber.id}`,
|
|
3407
|
+
getLogAttributesFromRequest(req as any),
|
|
3375
3408
|
);
|
|
3376
3409
|
}
|
|
3377
3410
|
}
|
|
@@ -3382,7 +3415,10 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3382
3415
|
req.params["statusPageId"] as string,
|
|
3383
3416
|
);
|
|
3384
3417
|
|
|
3385
|
-
logger.debug(
|
|
3418
|
+
logger.debug(
|
|
3419
|
+
`Subscribing to status page with ID: ${objectId}`,
|
|
3420
|
+
getLogAttributesFromRequest(req as any),
|
|
3421
|
+
);
|
|
3386
3422
|
|
|
3387
3423
|
await this.checkHasReadAccess({
|
|
3388
3424
|
statusPageId: objectId,
|
|
@@ -3410,20 +3446,27 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3410
3446
|
});
|
|
3411
3447
|
|
|
3412
3448
|
if (!statusPage) {
|
|
3413
|
-
logger.debug(
|
|
3449
|
+
logger.debug(
|
|
3450
|
+
`Status page not found with ID: ${objectId}`,
|
|
3451
|
+
getLogAttributesFromRequest(req as any),
|
|
3452
|
+
);
|
|
3414
3453
|
throw new BadDataException("Status Page not found");
|
|
3415
3454
|
}
|
|
3416
3455
|
|
|
3417
3456
|
if (!statusPage.showSubscriberPageOnStatusPage) {
|
|
3418
3457
|
logger.debug(
|
|
3419
3458
|
`Subscriber page not enabled for status page with ID: ${objectId}`,
|
|
3459
|
+
getLogAttributesFromRequest(req as any),
|
|
3420
3460
|
);
|
|
3421
3461
|
throw new BadDataException(
|
|
3422
3462
|
"Subscribes not enabled for this status page.",
|
|
3423
3463
|
);
|
|
3424
3464
|
}
|
|
3425
3465
|
|
|
3426
|
-
logger.debug(
|
|
3466
|
+
logger.debug(
|
|
3467
|
+
`Status page found: ${JSON.stringify(statusPage)}`,
|
|
3468
|
+
getLogAttributesFromRequest(req as any),
|
|
3469
|
+
);
|
|
3427
3470
|
|
|
3428
3471
|
if (
|
|
3429
3472
|
req.body.data["subscriberEmail"] &&
|
|
@@ -3431,6 +3474,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3431
3474
|
) {
|
|
3432
3475
|
logger.debug(
|
|
3433
3476
|
`Email subscribers not enabled for status page with ID: ${objectId}`,
|
|
3477
|
+
getLogAttributesFromRequest(req as any),
|
|
3434
3478
|
);
|
|
3435
3479
|
throw new BadDataException(
|
|
3436
3480
|
"Email subscribers not enabled for this status page.",
|
|
@@ -3440,6 +3484,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3440
3484
|
if (req.body.data["subscriberPhone"] && !statusPage.enableSmsSubscribers) {
|
|
3441
3485
|
logger.debug(
|
|
3442
3486
|
`SMS subscribers not enabled for status page with ID: ${objectId}`,
|
|
3487
|
+
getLogAttributesFromRequest(req as any),
|
|
3443
3488
|
);
|
|
3444
3489
|
throw new BadDataException(
|
|
3445
3490
|
"SMS subscribers not enabled for this status page.",
|
|
@@ -3454,6 +3499,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3454
3499
|
) {
|
|
3455
3500
|
logger.debug(
|
|
3456
3501
|
`Slack subscribers not enabled for status page with ID: ${objectId}`,
|
|
3502
|
+
getLogAttributesFromRequest(req as any),
|
|
3457
3503
|
);
|
|
3458
3504
|
throw new BadDataException(
|
|
3459
3505
|
"Slack subscribers not enabled for this status page.",
|
|
@@ -3466,6 +3512,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3466
3512
|
) {
|
|
3467
3513
|
logger.debug(
|
|
3468
3514
|
`Microsoft Teams subscribers not enabled for status page with ID: ${objectId}`,
|
|
3515
|
+
getLogAttributesFromRequest(req as any),
|
|
3469
3516
|
);
|
|
3470
3517
|
throw new BadDataException(
|
|
3471
3518
|
"Microsoft Teams subscribers not enabled for this status page.",
|
|
@@ -3480,6 +3527,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3480
3527
|
) {
|
|
3481
3528
|
logger.debug(
|
|
3482
3529
|
`No email, phone, slack workspace name, or Microsoft Teams workspace name provided for subscription to status page with ID: ${objectId}`,
|
|
3530
|
+
getLogAttributesFromRequest(req as any),
|
|
3483
3531
|
);
|
|
3484
3532
|
throw new BadDataException(
|
|
3485
3533
|
"Email, phone, slack workspace name, or Microsoft Teams workspace name is required to subscribe to this status page.",
|
|
@@ -3525,6 +3573,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3525
3573
|
if (!req.params["subscriberId"]) {
|
|
3526
3574
|
logger.debug(
|
|
3527
3575
|
`Creating new subscriber for status page with ID: ${objectId}`,
|
|
3576
|
+
getLogAttributesFromRequest(req as any),
|
|
3528
3577
|
);
|
|
3529
3578
|
statusPageSubscriber = new StatusPageSubscriber();
|
|
3530
3579
|
} else {
|
|
@@ -3534,6 +3583,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3534
3583
|
|
|
3535
3584
|
logger.debug(
|
|
3536
3585
|
`Updating existing subscriber with ID: ${subscriberId} for status page with ID: ${objectId}`,
|
|
3586
|
+
getLogAttributesFromRequest(req as any),
|
|
3537
3587
|
);
|
|
3538
3588
|
statusPageSubscriber = await StatusPageSubscriberService.findOneBy({
|
|
3539
3589
|
query: {
|
|
@@ -3545,7 +3595,10 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3545
3595
|
});
|
|
3546
3596
|
|
|
3547
3597
|
if (!statusPageSubscriber) {
|
|
3548
|
-
logger.debug(
|
|
3598
|
+
logger.debug(
|
|
3599
|
+
`Subscriber not found with ID: ${subscriberId}`,
|
|
3600
|
+
getLogAttributesFromRequest(req as any),
|
|
3601
|
+
);
|
|
3549
3602
|
throw new BadDataException("Subscriber not found");
|
|
3550
3603
|
}
|
|
3551
3604
|
|
|
@@ -3553,17 +3606,26 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3553
3606
|
}
|
|
3554
3607
|
|
|
3555
3608
|
if (email) {
|
|
3556
|
-
logger.debug(
|
|
3609
|
+
logger.debug(
|
|
3610
|
+
`Setting subscriber email: ${email}`,
|
|
3611
|
+
getLogAttributesFromRequest(req as any),
|
|
3612
|
+
);
|
|
3557
3613
|
statusPageSubscriber.subscriberEmail = email;
|
|
3558
3614
|
}
|
|
3559
3615
|
|
|
3560
3616
|
if (phone) {
|
|
3561
|
-
logger.debug(
|
|
3617
|
+
logger.debug(
|
|
3618
|
+
`Setting subscriber phone: ${phone}`,
|
|
3619
|
+
getLogAttributesFromRequest(req as any),
|
|
3620
|
+
);
|
|
3562
3621
|
statusPageSubscriber.subscriberPhone = phone;
|
|
3563
3622
|
}
|
|
3564
3623
|
|
|
3565
3624
|
if (slackIncomingWebhookUrl) {
|
|
3566
|
-
logger.debug(
|
|
3625
|
+
logger.debug(
|
|
3626
|
+
`Setting subscriber slack: ${slackIncomingWebhookUrl}`,
|
|
3627
|
+
getLogAttributesFromRequest(req as any),
|
|
3628
|
+
);
|
|
3567
3629
|
statusPageSubscriber.slackIncomingWebhookUrl = URL.fromString(
|
|
3568
3630
|
slackIncomingWebhookUrl,
|
|
3569
3631
|
);
|
|
@@ -3572,6 +3634,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3572
3634
|
if (slackWorkspaceName) {
|
|
3573
3635
|
logger.debug(
|
|
3574
3636
|
`Setting subscriber slack workspace name: ${slackWorkspaceName}`,
|
|
3637
|
+
getLogAttributesFromRequest(req as any),
|
|
3575
3638
|
);
|
|
3576
3639
|
statusPageSubscriber.slackWorkspaceName = slackWorkspaceName;
|
|
3577
3640
|
}
|
|
@@ -3579,6 +3642,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3579
3642
|
if (microsoftTeamsIncomingWebhookUrl) {
|
|
3580
3643
|
logger.debug(
|
|
3581
3644
|
`Setting subscriber Microsoft Teams webhook: ${microsoftTeamsIncomingWebhookUrl}`,
|
|
3645
|
+
getLogAttributesFromRequest(req as any),
|
|
3582
3646
|
);
|
|
3583
3647
|
statusPageSubscriber.microsoftTeamsIncomingWebhookUrl = URL.fromString(
|
|
3584
3648
|
microsoftTeamsIncomingWebhookUrl,
|
|
@@ -3588,6 +3652,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3588
3652
|
if (microsoftTeamsWorkspaceName) {
|
|
3589
3653
|
logger.debug(
|
|
3590
3654
|
`Setting subscriber Microsoft Teams workspace name: ${microsoftTeamsWorkspaceName}`,
|
|
3655
|
+
getLogAttributesFromRequest(req as any),
|
|
3591
3656
|
);
|
|
3592
3657
|
statusPageSubscriber.microsoftTeamsWorkspaceName =
|
|
3593
3658
|
microsoftTeamsWorkspaceName;
|
|
@@ -3599,6 +3664,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3599
3664
|
) {
|
|
3600
3665
|
logger.debug(
|
|
3601
3666
|
`Subscribers not allowed to choose resources for status page with ID: ${objectId}`,
|
|
3667
|
+
getLogAttributesFromRequest(req as any),
|
|
3602
3668
|
);
|
|
3603
3669
|
throw new BadDataException(
|
|
3604
3670
|
"Subscribers are not allowed to choose resources for this status page.",
|
|
@@ -3611,6 +3677,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3611
3677
|
) {
|
|
3612
3678
|
logger.debug(
|
|
3613
3679
|
`Subscribers not allowed to choose event types for status page with ID: ${objectId}`,
|
|
3680
|
+
getLogAttributesFromRequest(req as any),
|
|
3614
3681
|
);
|
|
3615
3682
|
throw new BadDataException(
|
|
3616
3683
|
"Subscribers are not allowed to choose event types for this status page.",
|
|
@@ -3634,6 +3701,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3634
3701
|
) {
|
|
3635
3702
|
logger.debug(
|
|
3636
3703
|
`Setting subscriber resources: ${JSON.stringify(req.body.data["statusPageResources"])}`,
|
|
3704
|
+
getLogAttributesFromRequest(req as any),
|
|
3637
3705
|
);
|
|
3638
3706
|
statusPageSubscriber.statusPageResources = req.body.data[
|
|
3639
3707
|
"statusPageResources"
|
|
@@ -3646,6 +3714,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3646
3714
|
) {
|
|
3647
3715
|
logger.debug(
|
|
3648
3716
|
`Setting subscriber event types: ${JSON.stringify(req.body.data["statusPageEventTypes"])}`,
|
|
3717
|
+
getLogAttributesFromRequest(req as any),
|
|
3649
3718
|
);
|
|
3650
3719
|
statusPageSubscriber.statusPageEventTypes = req.body.data[
|
|
3651
3720
|
"statusPageEventTypes"
|
|
@@ -3654,7 +3723,10 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3654
3723
|
|
|
3655
3724
|
if (isUpdate) {
|
|
3656
3725
|
// check isUnsubscribed is set to false.
|
|
3657
|
-
logger.debug(
|
|
3726
|
+
logger.debug(
|
|
3727
|
+
`Updating subscriber with ID: ${statusPageSubscriber.id}`,
|
|
3728
|
+
getLogAttributesFromRequest(req as any),
|
|
3729
|
+
);
|
|
3658
3730
|
statusPageSubscriber.isUnsubscribed = Boolean(
|
|
3659
3731
|
req.body.data["isUnsubscribed"],
|
|
3660
3732
|
);
|
|
@@ -3674,6 +3746,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3674
3746
|
} else {
|
|
3675
3747
|
logger.debug(
|
|
3676
3748
|
`Creating new subscriber: ${JSON.stringify(statusPageSubscriber)}`,
|
|
3749
|
+
getLogAttributesFromRequest(req as any),
|
|
3677
3750
|
);
|
|
3678
3751
|
await StatusPageSubscriberService.create({
|
|
3679
3752
|
data: statusPageSubscriber,
|
|
@@ -3685,6 +3758,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
3685
3758
|
|
|
3686
3759
|
logger.debug(
|
|
3687
3760
|
`Subscription process completed for status page with ID: ${objectId}`,
|
|
3761
|
+
getLogAttributesFromRequest(req as any),
|
|
3688
3762
|
);
|
|
3689
3763
|
}
|
|
3690
3764
|
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
ExpressResponse,
|
|
9
9
|
NextFunction,
|
|
10
10
|
} from "../Utils/Express";
|
|
11
|
-
import logger from "../Utils/Logger";
|
|
11
|
+
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
12
12
|
import Response from "../Utils/Response";
|
|
13
13
|
import BaseAPI from "./BaseAPI";
|
|
14
14
|
import CommonAPI from "./CommonAPI";
|
|
@@ -223,12 +223,15 @@ export default class StatusPageDomainAPI extends BaseAPI<
|
|
|
223
223
|
);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
logger.debug("Ordering SSL");
|
|
226
|
+
logger.debug("Ordering SSL", getLogAttributesFromRequest(req as any));
|
|
227
227
|
|
|
228
228
|
// provision SSL
|
|
229
229
|
await StatusPageDomainService.orderCert(domain);
|
|
230
230
|
|
|
231
|
-
logger.debug(
|
|
231
|
+
logger.debug(
|
|
232
|
+
"SSL Provisioned for domain - " + domain.fullDomain,
|
|
233
|
+
getLogAttributesFromRequest(req as any),
|
|
234
|
+
);
|
|
232
235
|
|
|
233
236
|
return Response.sendEmptySuccessResponse(req, res);
|
|
234
237
|
} catch (e) {
|
|
@@ -54,6 +54,14 @@ router.post(
|
|
|
54
54
|
},
|
|
55
55
|
);
|
|
56
56
|
|
|
57
|
+
router.post(
|
|
58
|
+
"/telemetry/metrics/get-attribute-values",
|
|
59
|
+
UserMiddleware.getUserMiddleware,
|
|
60
|
+
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
61
|
+
return getAttributeValues(req, res, next, TelemetryType.Metric);
|
|
62
|
+
},
|
|
63
|
+
);
|
|
64
|
+
|
|
57
65
|
router.post(
|
|
58
66
|
"/telemetry/logs/get-attributes",
|
|
59
67
|
UserMiddleware.getUserMiddleware,
|
|
@@ -103,10 +111,16 @@ const getAttributes: GetAttributesFunction = async (
|
|
|
103
111
|
);
|
|
104
112
|
}
|
|
105
113
|
|
|
114
|
+
const metricName: string | undefined =
|
|
115
|
+
req.body["metricName"] && typeof req.body["metricName"] === "string"
|
|
116
|
+
? (req.body["metricName"] as string)
|
|
117
|
+
: undefined;
|
|
118
|
+
|
|
106
119
|
const attributes: string[] =
|
|
107
120
|
await TelemetryAttributeService.fetchAttributes({
|
|
108
121
|
projectId: databaseProps.tenantId,
|
|
109
122
|
telemetryType,
|
|
123
|
+
metricName,
|
|
110
124
|
});
|
|
111
125
|
|
|
112
126
|
return Response.sendJsonObjectResponse(req, res, {
|
|
@@ -117,6 +131,73 @@ const getAttributes: GetAttributesFunction = async (
|
|
|
117
131
|
}
|
|
118
132
|
};
|
|
119
133
|
|
|
134
|
+
type GetAttributeValuesFunction = (
|
|
135
|
+
req: ExpressRequest,
|
|
136
|
+
res: ExpressResponse,
|
|
137
|
+
next: NextFunction,
|
|
138
|
+
telemetryType: TelemetryType,
|
|
139
|
+
) => Promise<void>;
|
|
140
|
+
|
|
141
|
+
const getAttributeValues: GetAttributeValuesFunction = async (
|
|
142
|
+
req: ExpressRequest,
|
|
143
|
+
res: ExpressResponse,
|
|
144
|
+
next: NextFunction,
|
|
145
|
+
telemetryType: TelemetryType,
|
|
146
|
+
) => {
|
|
147
|
+
try {
|
|
148
|
+
const databaseProps: DatabaseCommonInteractionProps =
|
|
149
|
+
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
150
|
+
|
|
151
|
+
if (!databaseProps) {
|
|
152
|
+
return Response.sendErrorResponse(
|
|
153
|
+
req,
|
|
154
|
+
res,
|
|
155
|
+
new BadDataException("Invalid User Session"),
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (!databaseProps.tenantId) {
|
|
160
|
+
return Response.sendErrorResponse(
|
|
161
|
+
req,
|
|
162
|
+
res,
|
|
163
|
+
new BadDataException("Invalid Project ID"),
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const attributeKey: string | undefined =
|
|
168
|
+
req.body["attributeKey"] && typeof req.body["attributeKey"] === "string"
|
|
169
|
+
? (req.body["attributeKey"] as string)
|
|
170
|
+
: undefined;
|
|
171
|
+
|
|
172
|
+
if (!attributeKey) {
|
|
173
|
+
return Response.sendErrorResponse(
|
|
174
|
+
req,
|
|
175
|
+
res,
|
|
176
|
+
new BadDataException("attributeKey is required"),
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const metricName: string | undefined =
|
|
181
|
+
req.body["metricName"] && typeof req.body["metricName"] === "string"
|
|
182
|
+
? (req.body["metricName"] as string)
|
|
183
|
+
: undefined;
|
|
184
|
+
|
|
185
|
+
const values: string[] =
|
|
186
|
+
await TelemetryAttributeService.fetchAttributeValues({
|
|
187
|
+
projectId: databaseProps.tenantId,
|
|
188
|
+
telemetryType,
|
|
189
|
+
metricName,
|
|
190
|
+
attributeKey,
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
return Response.sendJsonObjectResponse(req, res, {
|
|
194
|
+
values: values,
|
|
195
|
+
});
|
|
196
|
+
} catch (err: any) {
|
|
197
|
+
next(err);
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
|
|
120
201
|
// --- Log Histogram Endpoint ---
|
|
121
202
|
|
|
122
203
|
router.post(
|
package/Server/API/UserAPI.ts
CHANGED
|
@@ -5,7 +5,7 @@ import UserService, {
|
|
|
5
5
|
Service as UserServiceType,
|
|
6
6
|
} from "../Services/UserService";
|
|
7
7
|
import { ExpressRequest, ExpressResponse } from "../Utils/Express";
|
|
8
|
-
import logger from "../Utils/Logger";
|
|
8
|
+
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
9
9
|
import Response from "../Utils/Response";
|
|
10
10
|
import BaseAPI from "./BaseAPI";
|
|
11
11
|
|
|
@@ -71,7 +71,7 @@ export default class UserAPI extends BaseAPI<User, UserServiceType> {
|
|
|
71
71
|
|
|
72
72
|
return this.sendBlankProfile(req, res);
|
|
73
73
|
} catch (error) {
|
|
74
|
-
logger.error(error);
|
|
74
|
+
logger.error(error, getLogAttributesFromRequest(req as any));
|
|
75
75
|
return this.sendBlankProfile(req, res);
|
|
76
76
|
}
|
|
77
77
|
},
|
|
@@ -84,7 +84,7 @@ export default class UserAPI extends BaseAPI<User, UserServiceType> {
|
|
|
84
84
|
try {
|
|
85
85
|
Response.sendFileByPath(req, res, BLANK_PROFILE_PICTURE_PATH);
|
|
86
86
|
} catch (error) {
|
|
87
|
-
logger.error(error);
|
|
87
|
+
logger.error(error, getLogAttributesFromRequest(req as any));
|
|
88
88
|
Response.sendErrorResponse(
|
|
89
89
|
req,
|
|
90
90
|
res,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
OneUptimeRequest,
|
|
11
11
|
} from "../Utils/Express";
|
|
12
12
|
import Response from "../Utils/Response";
|
|
13
|
-
import logger from "../Utils/Logger";
|
|
13
|
+
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
14
14
|
import BaseAPI from "./BaseAPI";
|
|
15
15
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
16
16
|
import ObjectID from "../../Types/ObjectID";
|
|
@@ -111,7 +111,10 @@ export default class UserCallAPI extends BaseAPI<
|
|
|
111
111
|
},
|
|
112
112
|
);
|
|
113
113
|
} catch (e) {
|
|
114
|
-
logger.error(
|
|
114
|
+
logger.error(
|
|
115
|
+
e,
|
|
116
|
+
getLogAttributesFromRequest(req as OneUptimeRequest),
|
|
117
|
+
);
|
|
115
118
|
}
|
|
116
119
|
|
|
117
120
|
return Response.sendEmptySuccessResponse(req, res);
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
OneUptimeRequest,
|
|
11
11
|
} from "../Utils/Express";
|
|
12
12
|
import Response from "../Utils/Response";
|
|
13
|
-
import logger from "../Utils/Logger";
|
|
13
|
+
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
14
14
|
import BaseAPI from "./BaseAPI";
|
|
15
15
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
16
16
|
import ObjectID from "../../Types/ObjectID";
|
|
@@ -110,7 +110,10 @@ export default class UserEmailAPI extends BaseAPI<
|
|
|
110
110
|
},
|
|
111
111
|
);
|
|
112
112
|
} catch (e) {
|
|
113
|
-
logger.error(
|
|
113
|
+
logger.error(
|
|
114
|
+
e,
|
|
115
|
+
getLogAttributesFromRequest(req as OneUptimeRequest),
|
|
116
|
+
);
|
|
114
117
|
}
|
|
115
118
|
|
|
116
119
|
return Response.sendEmptySuccessResponse(req, res);
|
|
@@ -5,7 +5,7 @@ import UserPushService, {
|
|
|
5
5
|
import UserNotificationRuleService from "../Services/UserNotificationRuleService";
|
|
6
6
|
import PushNotificationService from "../Services/PushNotificationService";
|
|
7
7
|
import PushNotificationUtil from "../Utils/PushNotificationUtil";
|
|
8
|
-
import logger from "../Utils/Logger";
|
|
8
|
+
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
9
9
|
import {
|
|
10
10
|
ExpressRequest,
|
|
11
11
|
ExpressResponse,
|
|
@@ -131,7 +131,10 @@ export default class UserPushAPI extends BaseAPI<
|
|
|
131
131
|
},
|
|
132
132
|
);
|
|
133
133
|
} catch (e) {
|
|
134
|
-
logger.error(
|
|
134
|
+
logger.error(
|
|
135
|
+
e,
|
|
136
|
+
getLogAttributesFromRequest(req as OneUptimeRequest),
|
|
137
|
+
);
|
|
135
138
|
}
|
|
136
139
|
|
|
137
140
|
return Response.sendJsonObjectResponse(req, res, {
|
|
@@ -346,7 +349,10 @@ export default class UserPushAPI extends BaseAPI<
|
|
|
346
349
|
},
|
|
347
350
|
);
|
|
348
351
|
} catch (e) {
|
|
349
|
-
logger.error(
|
|
352
|
+
logger.error(
|
|
353
|
+
e,
|
|
354
|
+
getLogAttributesFromRequest(req as OneUptimeRequest),
|
|
355
|
+
);
|
|
350
356
|
}
|
|
351
357
|
|
|
352
358
|
return Response.sendEmptySuccessResponse(req, res);
|