@oneuptime/common 12.0.29 → 12.0.31
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/SecurityEvent.ts +48 -16
- package/Models/AnalyticsModels/ThreatIntelIndicator.ts +10 -5
- package/Models/DatabaseModels/AlertSeverity.ts +44 -0
- package/Models/DatabaseModels/DetectionRule.ts +16 -5
- package/Models/DatabaseModels/GoogleSecOpsConnection.ts +14 -5
- package/Models/DatabaseModels/IncidentSeverity.ts +44 -0
- package/Models/DatabaseModels/Index.ts +13 -0
- package/Models/DatabaseModels/NetworkDevice.ts +113 -3
- package/Models/DatabaseModels/NetworkDeviceAutoImportRule.ts +88 -0
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +22 -0
- package/Models/DatabaseModels/NetworkDeviceOidTemplate.ts +499 -0
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +43 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.ts +662 -0
- package/Models/DatabaseModels/ProjectOnCallCalendarFeed.ts +584 -0
- package/Models/DatabaseModels/ThreatIntelFeed.ts +16 -5
- package/Models/DatabaseModels/UserOnCallCalendarFeed.ts +546 -0
- package/Models/DatabaseModels/UserOnCallShiftReminder.ts +231 -0
- package/Models/DatabaseModels/UserOnCallShiftReminderLog.ts +331 -0
- package/Server/API/GlobalConfigAPI.ts +362 -183
- package/Server/API/OnCallCalendarAPI.ts +2194 -0
- package/Server/API/TelemetryAPI.ts +42 -4
- package/Server/EnvironmentConfig.ts +250 -0
- package/Server/Infrastructure/OnCallCalendarFeedCache.ts +1050 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.ts +253 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790500000000-AddNetworkDeviceOidTemplate.ts +59 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790600000000-AddAutoImportRuleOidTemplate.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Middleware/MultipartFormData.ts +118 -32
- package/Server/Middleware/OnCallCalendarFeedRateLimit.ts +487 -0
- package/Server/Services/AlertEpisodeLabelRuleEngineService.ts +9 -1
- package/Server/Services/AlertEpisodeOnCallRuleEngineService.ts +9 -1
- package/Server/Services/AlertEpisodeOwnerRuleEngineService.ts +9 -1
- package/Server/Services/AlertEpisodePrivacyRuleEngineService.ts +9 -1
- package/Server/Services/AlertGroupingEngineService.ts +9 -1
- package/Server/Services/AlertLabelRuleEngineService.ts +9 -1
- package/Server/Services/AlertOnCallRuleEngineService.ts +9 -1
- package/Server/Services/AlertOwnerRuleEngineService.ts +9 -1
- package/Server/Services/AlertPrivacyRuleEngineService.ts +9 -1
- package/Server/Services/AlertReminderRuleService.ts +9 -1
- package/Server/Services/AutoRemediationRuleEngineService.ts +9 -1
- package/Server/Services/CephClusterLabelRuleEngineService.ts +9 -1
- package/Server/Services/CephClusterOwnerRuleEngineService.ts +9 -1
- package/Server/Services/CloudResourceLabelRuleEngineService.ts +9 -1
- package/Server/Services/CloudResourceOwnerRuleEngineService.ts +9 -1
- package/Server/Services/DashboardLabelRuleEngineService.ts +9 -1
- package/Server/Services/DashboardOwnerRuleEngineService.ts +9 -1
- package/Server/Services/DockerHostLabelRuleEngineService.ts +9 -1
- package/Server/Services/DockerHostOwnerRuleEngineService.ts +9 -1
- package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +9 -1
- package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +9 -1
- package/Server/Services/HostLabelRuleEngineService.ts +9 -1
- package/Server/Services/HostOwnerRuleEngineService.ts +9 -1
- package/Server/Services/IncidentEpisodeLabelRuleEngineService.ts +9 -1
- package/Server/Services/IncidentEpisodeOnCallRuleEngineService.ts +9 -1
- package/Server/Services/IncidentEpisodeOwnerRuleEngineService.ts +9 -1
- package/Server/Services/IncidentEpisodePrivacyRuleEngineService.ts +9 -1
- package/Server/Services/IncidentGroupingEngineService.ts +9 -1
- package/Server/Services/IncidentLabelRuleEngineService.ts +9 -1
- package/Server/Services/IncidentOnCallRuleEngineService.ts +9 -1
- package/Server/Services/IncidentOwnerRuleEngineService.ts +9 -1
- package/Server/Services/IncidentPrivacyRuleEngineService.ts +9 -1
- package/Server/Services/IncidentReminderRuleService.ts +9 -1
- package/Server/Services/IncidentSlaRuleService.ts +9 -1
- package/Server/Services/IncomingCallPolicyLabelRuleEngineService.ts +9 -1
- package/Server/Services/IncomingCallPolicyOwnerRuleEngineService.ts +9 -1
- package/Server/Services/Index.ts +14 -0
- package/Server/Services/IoTFleetLabelRuleEngineService.ts +9 -1
- package/Server/Services/IoTFleetOwnerRuleEngineService.ts +9 -1
- package/Server/Services/KubernetesClusterLabelRuleEngineService.ts +9 -1
- package/Server/Services/KubernetesClusterOwnerRuleEngineService.ts +9 -1
- package/Server/Services/KubernetesResourceService.ts +5 -1
- package/Server/Services/MonitorLabelRuleEngineService.ts +9 -1
- package/Server/Services/MonitorOwnerRuleEngineService.ts +9 -1
- package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +35 -0
- package/Server/Services/NetworkDeviceAutoImportRuleService.ts +96 -0
- package/Server/Services/NetworkDeviceLabelRuleEngineService.ts +9 -1
- package/Server/Services/NetworkDeviceOidTemplateService.ts +201 -0
- package/Server/Services/NetworkDeviceOwnerRuleEngineService.ts +9 -1
- package/Server/Services/NetworkDeviceService.ts +209 -1
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +32 -0
- package/Server/Services/OnCallDutyPolicyLabelRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.ts +260 -0
- package/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyScheduleLayerService.ts +70 -3
- package/Server/Services/OnCallDutyPolicyScheduleLayerUserService.ts +138 -3
- package/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +1465 -134
- package/Server/Services/OnCallDutyPolicyUserOverrideService.ts +167 -31
- package/Server/Services/PodmanHostLabelRuleEngineService.ts +9 -1
- package/Server/Services/PodmanHostOwnerRuleEngineService.ts +9 -1
- package/Server/Services/ProjectOnCallCalendarFeedService.ts +192 -0
- package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +9 -1
- package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +9 -1
- package/Server/Services/RumApplicationLabelRuleEngineService.ts +9 -1
- package/Server/Services/RumApplicationOwnerRuleEngineService.ts +9 -1
- package/Server/Services/RunbookLabelRuleEngineService.ts +9 -1
- package/Server/Services/RunbookOwnerRuleEngineService.ts +9 -1
- package/Server/Services/RunbookRuleEngineService.ts +9 -1
- package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +9 -1
- package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +9 -1
- package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +9 -1
- package/Server/Services/ServerlessFunctionLabelRuleEngineService.ts +9 -1
- package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +9 -1
- package/Server/Services/ServiceLabelRuleEngineService.ts +9 -1
- package/Server/Services/ServiceOwnerRuleEngineService.ts +9 -1
- package/Server/Services/StatusPageLabelRuleEngineService.ts +9 -1
- package/Server/Services/StatusPageMonitorRuleEngineService.ts +7 -0
- package/Server/Services/StatusPageOwnerRuleEngineService.ts +9 -1
- package/Server/Services/TeamMemberService.ts +489 -1
- package/Server/Services/TeamService.ts +50 -0
- package/Server/Services/TelemetrySourceMapService.ts +266 -23
- package/Server/Services/UserNotificationSettingService.ts +44 -1
- package/Server/Services/UserOnCallCalendarFeedService.ts +159 -0
- package/Server/Services/UserOnCallShiftReminderLogService.ts +151 -0
- package/Server/Services/UserOnCallShiftReminderService.ts +112 -0
- package/Server/Services/UserService.ts +27 -0
- package/Server/Services/WorkflowLabelRuleEngineService.ts +9 -1
- package/Server/Services/WorkflowOwnerRuleEngineService.ts +9 -1
- package/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.ts +186 -0
- package/Server/Utils/Monitor/CapturedMetricAttributeUtil.ts +245 -0
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +21 -2
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +55 -21
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +32 -0
- package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +15 -2
- package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +18 -1
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +10 -0
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +34 -0
- package/Server/Utils/OnCall/CalendarFeedToken.ts +241 -0
- package/Server/Utils/OnCall/OnCallCalendarFeedRenderer.ts +1488 -0
- package/Server/Utils/OnCall/OnCallCalendarFeedUrls.ts +230 -0
- package/Server/Utils/OnCall/OnCallShiftChangeListeners.ts +227 -0
- package/Server/Utils/OnCall/OnCallShiftMaterializer.ts +1127 -0
- package/Server/Utils/OnCall/OnCallShiftReminderListener.ts +174 -0
- package/Server/Utils/OnCall/OnCallShiftReminderRunner.ts +2584 -0
- package/Server/Utils/Response.ts +134 -0
- package/Server/Utils/Rules/RuleEngineRuleRead.ts +48 -0
- package/Server/Utils/StartServer.ts +10 -0
- package/Server/Utils/Telemetry/AppMetrics.ts +51 -0
- package/Server/Utils/Telemetry/ExceptionSanitizer.ts +14 -1
- package/Server/Utils/Telemetry/LogExceptionExtractor.ts +14 -2
- package/Server/Utils/Telemetry/SourceMapResolver.ts +16 -5
- package/Server/Utils/Telemetry/StackTraceParser.ts +399 -0
- package/Tests/App/Dashboard/EventOverlayHook.test.tsx +125 -0
- package/Tests/App/Dashboard/HeaderImageAssets.test.tsx +93 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedLinks.test.tsx +229 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedPlanGate.test.tsx +489 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedSideMenus.test.tsx +149 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedUtil.test.ts +855 -0
- package/Tests/App/Dashboard/OnCallPersonalCalendarFeed.test.tsx +1209 -0
- package/Tests/App/Dashboard/OnCallReadinessSurfaces.test.tsx +3 -3
- package/Tests/App/Dashboard/OnCallSharedCalendarFeedCard.test.tsx +1019 -0
- package/Tests/App/Dashboard/OnCallShiftRemindersAndUpcomingShifts.test.tsx +655 -0
- package/Tests/App/Dashboard/UserElementEmail.test.tsx +12 -4
- package/Tests/App/Dashboard/UserEmailCallSites.test.tsx +1 -1
- package/Tests/App/Dashboard/UserSettingsSetupChecklistModel.test.ts +73 -0
- package/Tests/Models/DatabaseModels/DomainRoleTierCoverage.test.ts +14 -0
- package/Tests/Models/DatabaseModels/ModelRegistryInvariants.test.ts +469 -0
- package/Tests/Models/OnCallCalendarFeedModels.test.ts +642 -0
- package/Tests/Models/OnCallDutyPolicyScheduleCalendarFeed.test.ts +288 -0
- package/Tests/Models/OnCallDutyPolicyScheduleShiftConfigVersion.test.ts +88 -0
- package/Tests/Models/SecurityDomainAccessControl.test.ts +429 -0
- package/Tests/Models/UserOnCallShiftReminderModels.test.ts +368 -0
- package/Tests/Server/API/GlobalConfigLicense.test.ts +657 -0
- package/Tests/Server/API/Helpers.ts +8 -0
- package/Tests/Server/API/OnCallCalendarAPI.test.ts +4461 -0
- package/Tests/Server/API/SecurityEventAttributesAPI.test.ts +84 -6
- package/Tests/Server/API/TelemetryResolveStackTraceAPI.test.ts +805 -0
- package/Tests/Server/EnvironmentConfigOnCallCalendarFeed.test.ts +357 -0
- package/Tests/Server/Infrastructure/OnCallCalendarFeedCache.test.ts +1589 -0
- package/Tests/Server/Infrastructure/Postgres/AddOnCallCalendarFeedsMigration.test.ts +394 -0
- package/Tests/Server/Middleware/IdentityRateLimit.test.ts +1144 -0
- package/Tests/Server/Middleware/MultipartFormData.test.ts +618 -3
- package/Tests/Server/Middleware/OnCallCalendarFeedRateLimit.test.ts +1365 -0
- package/Tests/Server/Services/FeedRetentionConsistency.test.ts +70 -0
- package/Tests/Server/Services/MonitorLabelRuleEngineScale.test.ts +520 -0
- package/Tests/Server/Services/NetworkDeviceOidTemplateService.test.ts +332 -0
- package/Tests/Server/Services/NetworkDeviceOidTemplateWriteGuards.test.ts +409 -0
- package/Tests/Server/Services/OnCallCalendarFeedServices.test.ts +1103 -0
- package/Tests/Server/Services/OnCallDutyPolicyScheduleResolver.test.ts +1037 -0
- package/Tests/Server/Services/OnCallShiftConfigPropagation.test.ts +1270 -0
- package/Tests/Server/Services/RuleEngineRuleFetchLimit.test.ts +239 -0
- package/Tests/Server/Services/TeamDeleteMemberCleanup.test.ts +156 -0
- package/Tests/Server/Services/TeamMemberOnCallCleanup.test.ts +755 -0
- package/Tests/Server/Services/TelemetrySourceMapService.test.ts +1210 -2
- package/Tests/Server/Services/UserNotificationSettingShiftReminderDefaults.test.ts +267 -0
- package/Tests/Server/Services/UserOnCallShiftReminderServices.test.ts +583 -0
- package/Tests/Server/Services/UserServiceSeatLimit.test.ts +182 -0
- package/Tests/Server/Types/AnalyticsDatabase/SecurityEventModelPermission.test.ts +255 -0
- package/Tests/Server/Types/Database/Permissions/OnCallCalendarFeedPermissions.test.ts +254 -0
- package/Tests/Server/Types/Database/Permissions/ReadBlockPermission.test.ts +212 -0
- package/Tests/Server/Types/Database/Permissions/SecurityRoleAccess.test.ts +413 -0
- package/Tests/Server/Utils/CodeRepository.test.ts +689 -0
- package/Tests/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.test.ts +495 -0
- package/Tests/Server/Utils/ExceptionSanitizer.test.ts +77 -0
- package/Tests/Server/Utils/Monitor/CapturedMetricAttributeUtil.test.ts +284 -0
- package/Tests/Server/Utils/Monitor/MonitorCustomMetricAttributes.test.ts +503 -0
- package/Tests/Server/Utils/Monitor/MonitorTemplatePrototypePollution.test.ts +106 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkLogWritePath.test.ts +33 -4
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +14 -4
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +44 -0
- package/Tests/Server/Utils/OnCall/CalendarFeedToken.test.ts +467 -0
- package/Tests/Server/Utils/OnCall/OnCallCalendarFeedRenderer.test.ts +2142 -0
- package/Tests/Server/Utils/OnCall/OnCallCalendarFeedUrls.test.ts +278 -0
- package/Tests/Server/Utils/OnCall/OnCallResolverTestHarness.ts +440 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftChangeListeners.test.ts +314 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftMaterializer.test.ts +1502 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderListener.test.ts +491 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderRunner.test.ts +3088 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderTestHarness.ts +910 -0
- package/Tests/Server/Utils/OpenAPISpec.test.ts +536 -0
- package/Tests/Server/Utils/ResponseSendCalendarResponse.test.ts +561 -0
- package/Tests/Server/Utils/Rules/RuleEngineRuleRead.test.ts +115 -0
- package/Tests/Server/Utils/StackTraceParser.test.ts +610 -0
- package/Tests/Server/Utils/StartServerEncryptionSecretWarning.test.ts +64 -0
- package/Tests/Server/Utils/Telemetry/AppMetrics.test.ts +29 -0
- package/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.ts +0 -0
- package/Tests/Server/Utils/Telemetry/SourceMapLimits.test.ts +656 -0
- package/Tests/Server/Utils/Telemetry/SourceMapResolver.test.ts +100 -0
- package/Tests/Types/Calendar/ICalendar.test.ts +488 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpOidListUtil.test.ts +454 -0
- package/Tests/Types/NotificationSetting/NotificationSettingEventType.test.ts +53 -0
- package/Tests/Types/OnCallDutyPolicy/CalendarFeedTestFixtures.ts +310 -0
- package/Tests/Types/OnCallDutyPolicy/CalendarFeedWindow.test.ts +205 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilLayerMetaAndIterationCap.test.ts +458 -0
- package/Tests/Types/OnCallDutyPolicy/MaterializedShift.test.ts +197 -0
- package/Tests/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.test.ts +1986 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleShiftUtilGroupKey.test.ts +678 -0
- package/Tests/Types/OnCallDutyPolicy/ShiftSeamUtil.test.ts +417 -0
- package/Tests/Types/SecurityRolePermissions.test.ts +193 -0
- package/Tests/UI/Components/Charts/AnnotationLayout.test.ts +773 -0
- package/Tests/UI/Components/Charts/ChartAnnotationRail.test.tsx +789 -0
- package/Tests/UI/Components/Charts/ChartBucketIdentity.test.ts +254 -0
- package/Tests/UI/Components/Charts/TimeAnnotation.test.ts +471 -0
- package/Tests/UI/Components/EditionLabelLicenseRefresh.test.tsx +405 -0
- package/Tests/UI/Components/ErrorMessageRefreshControl.test.tsx +83 -0
- package/Tests/UI/Components/MarkdownConverters.test.ts +686 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableDeleteAndEmptyStates.test.tsx +341 -0
- package/Tests/UI/Components/OrderedStatesList.test.tsx +5 -5
- package/Tests/UI/Components/PendingProjectInvitations.test.tsx +1 -1
- package/Tests/UI/Components/TableSortAndMobileColumns.test.tsx +195 -0
- package/Tests/UI/Components/XAxis.test.ts +270 -5
- package/Tests/UI/Components/XAxisDaylightSaving.test.ts +113 -0
- package/Tests/UI/Styles/ChartFocusRing.test.ts +153 -0
- package/Tests/UI/Styles/ChartFocusRingCoverage.test.tsx +377 -0
- package/Tests/UI/Styles/ThemeStylesheet.ts +162 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +10 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
- package/Tests/Utils/EnterpriseLicenseSeats.test.ts +507 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +951 -1
- package/Tests/Utils/NetworkDiscovery/DiscoveredHostUtil.test.ts +238 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +1056 -0
- package/Tests/Utils/NetworkDiscovery/ReverseDnsNameUtil.test.ts +882 -0
- package/Types/Calendar/ICalendar.ts +442 -0
- package/Types/Date.ts +39 -0
- package/Types/Email/EmailTemplateType.ts +2 -0
- package/Types/Monitor/SnmpMonitor/SnmpOidListUtil.ts +333 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
- package/Types/OnCallDutyPolicy/CalendarFeedWindow.ts +140 -0
- package/Types/OnCallDutyPolicy/Layer.ts +190 -35
- package/Types/OnCallDutyPolicy/MaterializedShift.ts +274 -0
- package/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.ts +1415 -0
- package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +159 -4
- package/Types/OnCallDutyPolicy/ShiftSeamUtil.ts +106 -0
- package/Types/Permission.ts +96 -0
- package/Types/Rum/SessionReplay.ts +21 -0
- package/Types/Telemetry/SourceMap.ts +8 -0
- package/UI/Components/Charts/ChartLibrary/Annotations/AnnotationHoverCard.tsx +176 -0
- package/UI/Components/Charts/ChartLibrary/Annotations/AnnotationLayout.ts +745 -0
- package/UI/Components/Charts/ChartLibrary/Annotations/ChartAnnotationLayer.tsx +576 -0
- package/UI/Components/Charts/ChartLibrary/Annotations/UseChartAnnotations.tsx +204 -0
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +491 -544
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +324 -372
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +487 -540
- package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +7 -3
- package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +14 -3
- package/UI/Components/Charts/Types/ChartEventKind.ts +13 -0
- package/UI/Components/Charts/Types/ReferenceRegionProps.ts +6 -0
- package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +20 -3
- package/UI/Components/Charts/Utils/TimeAnnotation.ts +69 -35
- package/UI/Components/Charts/Utils/XAxis.ts +125 -18
- package/UI/Components/EditionLabel/EditionLabel.tsx +280 -26
- package/UI/Components/ErrorMessage/ErrorMessage.tsx +21 -10
- package/UI/Components/Feed/FeedItem.tsx +4 -5
- package/UI/Components/Header/HeaderIconDropdownButton.tsx +1 -2
- package/UI/Components/Header/UserProfile/UserProfile.tsx +1 -2
- package/UI/Components/Image/Image.tsx +20 -3
- package/UI/Components/Markdown.tsx/MarkdownConverters.ts +0 -0
- package/UI/Components/MemberRoleAssignment/MemberRoleAssignment.tsx +1 -2
- package/UI/Components/ModelTable/BaseModelTable.tsx +150 -24
- package/UI/Components/Table/TableHeader.tsx +64 -48
- package/UI/Components/Table/TableRow.tsx +13 -3
- package/UI/Styles/Theme.css +38 -0
- package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +271 -0
- package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +6 -0
- package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +141 -10
- package/Utils/NetworkDiscovery/DiscoveredHostUtil.ts +55 -3
- package/Utils/NetworkDiscovery/ReverseDnsNameUtil.ts +151 -0
- package/Utils/Rules/RuleEngineLimits.ts +32 -0
- package/build/dist/Models/AnalyticsModels/SecurityEvent.js +48 -16
- package/build/dist/Models/AnalyticsModels/SecurityEvent.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js +10 -5
- package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +46 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DetectionRule.js +16 -5
- package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +14 -5
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +46 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +13 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +115 -3
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js +88 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOidTemplate.js +519 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOidTemplate.js.map +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +44 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js +699 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js +620 -0
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js +16 -5
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js +585 -0
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js +247 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js +355 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js.map +1 -0
- package/build/dist/Server/API/GlobalConfigAPI.js +293 -176
- package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
- package/build/dist/Server/API/OnCallCalendarAPI.js +1371 -0
- package/build/dist/Server/API/OnCallCalendarAPI.js.map +1 -0
- package/build/dist/Server/API/TelemetryAPI.js +31 -3
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +185 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js +663 -0
- package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js +103 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790500000000-AddNetworkDeviceOidTemplate.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790500000000-AddNetworkDeviceOidTemplate.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790600000000-AddAutoImportRuleOidTemplate.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790600000000-AddAutoImportRuleOidTemplate.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/MultipartFormData.js +93 -28
- package/build/dist/Server/Middleware/MultipartFormData.js.map +1 -1
- package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js +342 -0
- package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js.map +1 -0
- package/build/dist/Server/Services/AlertEpisodeLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertEpisodeLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeOnCallRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertEpisodeOnCallRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertEpisodeOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodePrivacyRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertEpisodePrivacyRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertGroupingEngineService.js +8 -1
- package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertOnCallRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertOnCallRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertPrivacyRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertPrivacyRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertReminderRuleService.js +8 -1
- package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DashboardLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DashboardLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/HostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentEpisodeLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeOnCallRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentEpisodeOnCallRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodePrivacyRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentEpisodePrivacyRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentGroupingEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentOnCallRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentOnCallRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentPrivacyRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentPrivacyRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentReminderRuleService.js +8 -1
- package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/IncidentSlaRuleService.js +8 -1
- package/build/dist/Server/Services/IncidentSlaRuleService.js.map +1 -1
- package/build/dist/Server/Services/IncomingCallPolicyLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncomingCallPolicyLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +14 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IoTFleetLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesResourceService.js +5 -1
- package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -1
- package/build/dist/Server/Services/MonitorLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/MonitorLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/MonitorOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +30 -21
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +64 -0
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceOidTemplateService.js +180 -0
- package/build/dist/Server/Services/NetworkDeviceOidTemplateService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceService.js +154 -1
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +20 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js +219 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js +47 -3
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js +112 -3
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +955 -9
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js +93 -6
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js +157 -0
- package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RunbookLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RunbookLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RunbookRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RunbookRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +8 -1
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ServiceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/StatusPageLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +6 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/StatusPageOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +396 -1
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TeamService.js +43 -0
- package/build/dist/Server/Services/TeamService.js.map +1 -1
- package/build/dist/Server/Services/TelemetrySourceMapService.js +213 -19
- package/build/dist/Server/Services/TelemetrySourceMapService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +26 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallCalendarFeedService.js +140 -0
- package/build/dist/Server/Services/UserOnCallCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js +116 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js.map +1 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderService.js +92 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderService.js.map +1 -0
- package/build/dist/Server/Services/UserService.js +25 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/WorkflowLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/WorkflowLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.js +145 -0
- package/build/dist/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/CapturedMetricAttributeUtil.js +201 -0
- package/build/dist/Server/Utils/Monitor/CapturedMetricAttributeUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +19 -2
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +42 -23
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +29 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +11 -2
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +16 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +10 -0
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +33 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
- package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js +161 -0
- package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js +983 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js +155 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js +145 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js +752 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js +92 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js +1786 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js.map +1 -0
- package/build/dist/Server/Utils/Response.js +97 -0
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/Rules/RuleEngineRuleRead.js +37 -0
- package/build/dist/Server/Utils/Rules/RuleEngineRuleRead.js.map +1 -0
- package/build/dist/Server/Utils/StartServer.js +9 -1
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js +41 -0
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ExceptionSanitizer.js +12 -1
- package/build/dist/Server/Utils/Telemetry/ExceptionSanitizer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js +14 -2
- package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js +15 -5
- package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/StackTraceParser.js +307 -0
- package/build/dist/Server/Utils/Telemetry/StackTraceParser.js.map +1 -1
- package/build/dist/Types/Calendar/ICalendar.js +290 -0
- package/build/dist/Types/Calendar/ICalendar.js.map +1 -0
- package/build/dist/Types/Date.js +27 -0
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +2 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpOidListUtil.js +253 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpOidListUtil.js.map +1 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js +97 -0
- package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/Layer.js +113 -19
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js +134 -0
- package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js +800 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +97 -3
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js +77 -0
- package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js.map +1 -0
- package/build/dist/Types/Permission.js +86 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplay.js +19 -0
- package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/AnnotationHoverCard.js +83 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/AnnotationHoverCard.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/AnnotationLayout.js +531 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/AnnotationLayout.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/ChartAnnotationLayer.js +264 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/ChartAnnotationLayer.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/UseChartAnnotations.js +122 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/UseChartAnnotations.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +213 -233
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +139 -152
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +212 -232
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Types/ChartEventKind.js +14 -0
- package/build/dist/UI/Components/Charts/Types/ChartEventKind.js.map +1 -0
- package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +57 -28
- package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/XAxis.js +103 -17
- package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +198 -23
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js +15 -5
- package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js.map +1 -1
- package/build/dist/UI/Components/Feed/FeedItem.js +4 -5
- package/build/dist/UI/Components/Feed/FeedItem.js.map +1 -1
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +1 -2
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
- package/build/dist/UI/Components/Header/UserProfile/UserProfile.js.map +1 -1
- package/build/dist/UI/Components/Image/Image.js +6 -1
- package/build/dist/UI/Components/Image/Image.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js +0 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js.map +1 -1
- package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js +1 -2
- package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +104 -23
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/Table/TableHeader.js +20 -22
- package/build/dist/UI/Components/Table/TableHeader.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +13 -4
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +153 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +127 -7
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js +50 -3
- package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/ReverseDnsNameUtil.js +132 -0
- package/build/dist/Utils/NetworkDiscovery/ReverseDnsNameUtil.js.map +1 -0
- package/build/dist/Utils/Rules/RuleEngineLimits.js +31 -0
- package/build/dist/Utils/Rules/RuleEngineLimits.js.map +1 -0
- package/jest.config.json +1 -0
- package/package.json +2 -2
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import ChartReferenceRegionProps from "../../Types/ReferenceRegionProps";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* A time-anchored shaded region whose endpoints have been
|
|
5
|
-
* (and clamped
|
|
6
|
-
*
|
|
4
|
+
* A time-anchored shaded region whose endpoints have been resolved onto
|
|
5
|
+
* (and clamped into) the chart's categorical x-axis. Used internally by
|
|
6
|
+
* chart library components.
|
|
7
7
|
*/
|
|
8
8
|
export default interface FormattedReferenceRegion {
|
|
9
9
|
/** The formatted x-axis label of the region start bucket */
|
|
10
10
|
formattedX1: string;
|
|
11
11
|
/** The formatted x-axis label of the region end bucket */
|
|
12
12
|
formattedX2: string;
|
|
13
|
+
/** Index of the start label in the chart's category list. */
|
|
14
|
+
startBucketIndex: number;
|
|
15
|
+
/** Index of the end label in the chart's category list. */
|
|
16
|
+
endBucketIndex: number;
|
|
13
17
|
/** The original annotation for label/color/click handling */
|
|
14
18
|
original: ChartReferenceRegionProps;
|
|
15
19
|
}
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
import ChartTimeReferenceLineProps from "../../Types/TimeReferenceLineProps";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* A time-anchored
|
|
5
|
-
*
|
|
6
|
-
* library components.
|
|
4
|
+
* A time-anchored event marker resolved onto the chart's categorical
|
|
5
|
+
* x-axis. Used internally by chart library components.
|
|
7
6
|
*/
|
|
8
7
|
export default interface FormattedTimeReferenceLine {
|
|
9
8
|
/** The formatted x-axis label (e.g. "12:30", "22 Feb") */
|
|
10
9
|
formattedX: string;
|
|
10
|
+
/**
|
|
11
|
+
* Index of that label in the chart's category list.
|
|
12
|
+
*
|
|
13
|
+
* The renderer positions markers from this, not from the label.
|
|
14
|
+
* recharts' categorical scale refuses to resolve *any* label once its
|
|
15
|
+
* domain holds a duplicate, so a label-keyed marker does not land in
|
|
16
|
+
* the wrong place — it disappears from the chart entirely. Sub-hour
|
|
17
|
+
* axes used to produce exactly that domain over a multi-day window;
|
|
18
|
+
* XAxisUtil keeps the labels distinct now, and this index means a
|
|
19
|
+
* regression there could never take the overlay down with it.
|
|
20
|
+
*/
|
|
21
|
+
bucketIndex: number;
|
|
11
22
|
/** The original annotation for label/color/click handling */
|
|
12
23
|
original: ChartTimeReferenceLineProps;
|
|
13
24
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a chart event marker represents. Drives the marker's ordering when
|
|
3
|
+
* several markers collapse into one cluster (an incident outranks an alert,
|
|
4
|
+
* which outranks a deploy) and the fallback colour when a caller gives none.
|
|
5
|
+
*/
|
|
6
|
+
enum ChartEventKind {
|
|
7
|
+
Incident = "incident",
|
|
8
|
+
Alert = "alert",
|
|
9
|
+
Change = "change",
|
|
10
|
+
Generic = "generic",
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default ChartEventKind;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import ChartEventKind from "./ChartEventKind";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* A time-anchored shaded region (e.g. an incident or maintenance window).
|
|
3
5
|
* Endpoints are clamped to the nearest in-window x-axis buckets, so a
|
|
@@ -9,4 +11,8 @@ export default interface ChartReferenceRegionProps {
|
|
|
9
11
|
label?: string | undefined;
|
|
10
12
|
color?: string | undefined; // CSS color, e.g. "#6366f1" or "red"
|
|
11
13
|
onClick?: (() => void) | undefined;
|
|
14
|
+
/** What the region represents. Defaults to Generic. */
|
|
15
|
+
kind?: ChartEventKind | undefined;
|
|
16
|
+
/** Second line in the region's hover card. */
|
|
17
|
+
subtitle?: string | undefined;
|
|
12
18
|
}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
import ChartEventKind from "./ChartEventKind";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
* A time-anchored
|
|
3
|
-
*
|
|
4
|
-
*
|
|
4
|
+
* A time-anchored event marker (e.g. a deploy or an incident start). The
|
|
5
|
+
* date is snapped to the chart's categorical x-axis buckets before
|
|
6
|
+
* rendering.
|
|
7
|
+
*
|
|
8
|
+
* Markers draw as a hairline through the plot topped by a chip on the
|
|
9
|
+
* annotation rail above it; the label is never painted over the series —
|
|
10
|
+
* it lives in the chip's hover card, so it can be as long as the record's
|
|
11
|
+
* real title.
|
|
5
12
|
*/
|
|
6
13
|
export default interface ChartTimeReferenceLineProps {
|
|
7
14
|
date: Date;
|
|
@@ -9,4 +16,14 @@ export default interface ChartTimeReferenceLineProps {
|
|
|
9
16
|
color?: string | undefined; // CSS color, e.g. "#f59e0b" or "red"
|
|
10
17
|
strokeDasharray?: string | undefined; // e.g. "4 4" for dashed
|
|
11
18
|
onClick?: (() => void) | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* What the marker represents. Sorts markers inside a cluster and picks
|
|
21
|
+
* the cluster's chip colour. Defaults to Generic.
|
|
22
|
+
*/
|
|
23
|
+
kind?: ChartEventKind | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Second line in the hover card — severity, service, monitor name. Kept
|
|
26
|
+
* out of `label` so the primary line stays scannable.
|
|
27
|
+
*/
|
|
28
|
+
subtitle?: string | undefined;
|
|
12
29
|
}
|
|
@@ -8,7 +8,13 @@ import XAxisUtil from "./XAxis";
|
|
|
8
8
|
interface AxisBuckets {
|
|
9
9
|
intervals: Array<Date>;
|
|
10
10
|
labels: Array<string>;
|
|
11
|
-
|
|
11
|
+
/*
|
|
12
|
+
* First index each label appears at. DataPointUtil places a series row
|
|
13
|
+
* by finding the first row with a matching label, so an annotation that
|
|
14
|
+
* resolves through the formatter has to land on that same first index to
|
|
15
|
+
* sit with its data.
|
|
16
|
+
*/
|
|
17
|
+
labelToIndex: Map<string, number>;
|
|
12
18
|
formatter: (value: Date) => string;
|
|
13
19
|
}
|
|
14
20
|
|
|
@@ -25,7 +31,14 @@ export default class TimeAnnotationUtil {
|
|
|
25
31
|
const labels: Array<string> = intervals.map((interval: Date) => {
|
|
26
32
|
return formatter(interval);
|
|
27
33
|
});
|
|
28
|
-
|
|
34
|
+
const labelToIndex: Map<string, number> = new Map<string, number>();
|
|
35
|
+
for (let index: number = 0; index < labels.length; index++) {
|
|
36
|
+
const label: string = labels[index]!;
|
|
37
|
+
if (!labelToIndex.has(label)) {
|
|
38
|
+
labelToIndex.set(label, index);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { intervals, labels, labelToIndex, formatter };
|
|
29
42
|
}
|
|
30
43
|
|
|
31
44
|
/*
|
|
@@ -65,19 +78,36 @@ export default class TimeAnnotationUtil {
|
|
|
65
78
|
}
|
|
66
79
|
|
|
67
80
|
/*
|
|
68
|
-
* Resolve a date to a bucket
|
|
69
|
-
* categorical x-axis
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
81
|
+
* Resolve a date to a bucket that is guaranteed to exist on the
|
|
82
|
+
* categorical x-axis, as an INDEX into that axis rather than a label.
|
|
83
|
+
*
|
|
84
|
+
* The index is what the renderer needs: a sub-hour axis over a
|
|
85
|
+
* multi-day window repeats its labels, and recharts' categorical scale
|
|
86
|
+
* cannot resolve any label once its domain holds a duplicate, so a
|
|
87
|
+
* label is not a usable position there.
|
|
88
|
+
*
|
|
89
|
+
* Prefer formatter output — series datapoints are bucketed by the exact
|
|
90
|
+
* same formatter, so annotations land where data with the same timestamp
|
|
91
|
+
* lands. The formatter floors to wall-clock boundaries while buckets
|
|
92
|
+
* start at the raw window start, so its output can match no bucket; fall
|
|
93
|
+
* back to the bucket containing the date. Returns null when the date is
|
|
94
|
+
* outside the charted window.
|
|
95
|
+
*
|
|
96
|
+
* The first-occurrence lookup is deliberate, and it has to stay tied to
|
|
97
|
+
* DataPointUtil, which places series rows by the very same
|
|
98
|
+
* first-match-on-label rule. Whatever bucket a timestamp's DATA lands
|
|
99
|
+
* in, its marker has to land in too — resolving a marker to some
|
|
100
|
+
* "truer" bucket than its data would park it over empty space. Sub-hour
|
|
101
|
+
* axes used to repeat their labels, which sent day-two markers and
|
|
102
|
+
* day-two data onto day one together; XAxisUtil now keeps them
|
|
103
|
+
* distinct, so both sides land where they belong. They still move
|
|
104
|
+
* together, which is the point.
|
|
75
105
|
*/
|
|
76
|
-
private static
|
|
106
|
+
private static resolveBucketIndex(data: {
|
|
77
107
|
date: Date;
|
|
78
108
|
buckets: AxisBuckets;
|
|
79
|
-
}):
|
|
80
|
-
const { intervals,
|
|
109
|
+
}): number | null {
|
|
110
|
+
const { intervals, labelToIndex, formatter } = data.buckets;
|
|
81
111
|
|
|
82
112
|
const firstInterval: Date | undefined = intervals[0];
|
|
83
113
|
if (!firstInterval || data.date.getTime() < firstInterval.getTime()) {
|
|
@@ -87,19 +117,14 @@ export default class TimeAnnotationUtil {
|
|
|
87
117
|
return null;
|
|
88
118
|
}
|
|
89
119
|
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
return formatted;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const bucketIndex: number | null = this.getBucketIndexForDate(
|
|
96
|
-
intervals,
|
|
97
|
-
data.date,
|
|
120
|
+
const formattedIndex: number | undefined = labelToIndex.get(
|
|
121
|
+
formatter(data.date),
|
|
98
122
|
);
|
|
99
|
-
if (
|
|
100
|
-
return
|
|
123
|
+
if (formattedIndex !== undefined) {
|
|
124
|
+
return formattedIndex;
|
|
101
125
|
}
|
|
102
|
-
|
|
126
|
+
|
|
127
|
+
return this.getBucketIndexForDate(intervals, data.date);
|
|
103
128
|
}
|
|
104
129
|
|
|
105
130
|
public static formatTimeReferenceLines(data: {
|
|
@@ -110,14 +135,18 @@ export default class TimeAnnotationUtil {
|
|
|
110
135
|
|
|
111
136
|
const formatted: Array<FormattedTimeReferenceLine> = [];
|
|
112
137
|
for (const timeReferenceLine of data.timeReferenceLines) {
|
|
113
|
-
const
|
|
138
|
+
const bucketIndex: number | null = this.resolveBucketIndex({
|
|
114
139
|
date: timeReferenceLine.date,
|
|
115
140
|
buckets,
|
|
116
141
|
});
|
|
117
|
-
if (
|
|
142
|
+
if (bucketIndex === null) {
|
|
118
143
|
continue; // outside the charted window
|
|
119
144
|
}
|
|
120
|
-
|
|
145
|
+
const formattedX: string | undefined = buckets.labels[bucketIndex];
|
|
146
|
+
if (formattedX === undefined) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
formatted.push({ formattedX, bucketIndex, original: timeReferenceLine });
|
|
121
150
|
}
|
|
122
151
|
return formatted;
|
|
123
152
|
}
|
|
@@ -128,8 +157,8 @@ export default class TimeAnnotationUtil {
|
|
|
128
157
|
}): Array<FormattedReferenceRegion> {
|
|
129
158
|
const buckets: AxisBuckets = this.getAxisBuckets(data.xAxis);
|
|
130
159
|
const firstInterval: Date | undefined = buckets.intervals[0];
|
|
131
|
-
const
|
|
132
|
-
|
|
160
|
+
const lastIndex: number = buckets.labels.length - 1;
|
|
161
|
+
const lastLabel: string | undefined = buckets.labels[lastIndex];
|
|
133
162
|
if (!firstInterval || lastLabel === undefined) {
|
|
134
163
|
return [];
|
|
135
164
|
}
|
|
@@ -155,14 +184,19 @@ export default class TimeAnnotationUtil {
|
|
|
155
184
|
* A region overlapping the window edge clamps to the nearest
|
|
156
185
|
* in-window bucket rather than vanishing.
|
|
157
186
|
*/
|
|
158
|
-
const
|
|
159
|
-
this.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
lastLabel;
|
|
187
|
+
const startBucketIndex: number =
|
|
188
|
+
this.resolveBucketIndex({ date: new Date(startInMs), buckets }) ?? 0;
|
|
189
|
+
const endBucketIndex: number =
|
|
190
|
+
this.resolveBucketIndex({ date: new Date(endInMs), buckets }) ??
|
|
191
|
+
lastIndex;
|
|
164
192
|
|
|
165
|
-
formatted.push({
|
|
193
|
+
formatted.push({
|
|
194
|
+
formattedX1: buckets.labels[startBucketIndex]!,
|
|
195
|
+
formattedX2: buckets.labels[endBucketIndex]!,
|
|
196
|
+
startBucketIndex,
|
|
197
|
+
endBucketIndex,
|
|
198
|
+
original: referenceRegion,
|
|
199
|
+
});
|
|
166
200
|
}
|
|
167
201
|
return formatted;
|
|
168
202
|
}
|
|
@@ -8,6 +8,105 @@ export default class XAxisUtil {
|
|
|
8
8
|
return new Date(value.getTime());
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/*
|
|
12
|
+
* A chart's x-axis label is not decoration — it IS the identity of its
|
|
13
|
+
* bucket. DataPointUtil places a series row by finding the first row
|
|
14
|
+
* whose label matches, TimeAnnotationUtil resolves an event marker the
|
|
15
|
+
* same way, and recharts' categorical scale resolves no category at all
|
|
16
|
+
* once its domain holds a duplicate. So a repeated label does not just
|
|
17
|
+
* read ambiguously: it merges other days' data into the first day's
|
|
18
|
+
* buckets and silently drops the annotations that land on them.
|
|
19
|
+
*
|
|
20
|
+
* Everything from EVERY_HOUR up already carries the date for exactly
|
|
21
|
+
* this reason. These two helpers decide when the finer tiers must too.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
private static readonly MILLISECONDS_IN_A_DAY: number = 24 * 60 * 60 * 1000;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* How much a wall-clock label has to say before it names exactly one
|
|
28
|
+
* instant inside this window.
|
|
29
|
+
*
|
|
30
|
+
* Two ways that happens:
|
|
31
|
+
*
|
|
32
|
+
* 1. The window is at least a day long, so the clock wraps. Measured:
|
|
33
|
+
* a 23h window at the fifteen-minute tier yields 93 intervals and 93
|
|
34
|
+
* distinct labels, while 24h yields 97 and 96 — the first and last
|
|
35
|
+
* tick both read "00:00". A 48h window at the thirty-minute tier
|
|
36
|
+
* yields 97 intervals and only 48 distinct labels.
|
|
37
|
+
*
|
|
38
|
+
* 2. The clocks go back inside the window, which replays a wall-clock
|
|
39
|
+
* hour, and no duration is short enough to be safe from it.
|
|
40
|
+
*
|
|
41
|
+
* It only bites when the configured timezone is not the one the
|
|
42
|
+
* browser reports: intervals are stepped in browser wall-clock time
|
|
43
|
+
* while labels are read in the configured zone, so a transition the
|
|
44
|
+
* browser cannot see gets walked straight through. Measured on a 4h
|
|
45
|
+
* window across London's fall-back — browser UTC, configured London:
|
|
46
|
+
* 49 intervals, 37 distinct. With both zones London the walker steps
|
|
47
|
+
* over the repeated hour itself and the same window measures 37 and
|
|
48
|
+
* 37, so the zone suffix is redundant there but never wrong.
|
|
49
|
+
*/
|
|
50
|
+
private static getWallClockLabelDetail(data: {
|
|
51
|
+
xAxisMin: XAxisMaxMin;
|
|
52
|
+
xAxisMax: XAxisMaxMin;
|
|
53
|
+
}): { withDate: boolean; withZone: boolean } {
|
|
54
|
+
if (
|
|
55
|
+
typeof data.xAxisMin === "number" ||
|
|
56
|
+
typeof data.xAxisMax === "number"
|
|
57
|
+
) {
|
|
58
|
+
return { withDate: false, withZone: false };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const startDate: Date = data.xAxisMin;
|
|
62
|
+
const endDate: Date = data.xAxisMax;
|
|
63
|
+
|
|
64
|
+
const wrapsTheClock: boolean =
|
|
65
|
+
endDate.getTime() - startDate.getTime() >=
|
|
66
|
+
XAxisUtil.MILLISECONDS_IN_A_DAY;
|
|
67
|
+
|
|
68
|
+
/*
|
|
69
|
+
* A drop in the offset is a fall-back; a rise is a spring-forward,
|
|
70
|
+
* which skips an hour rather than repeating one and is harmless.
|
|
71
|
+
*
|
|
72
|
+
* The date does not settle a fall-back — both 01:00s are on the same
|
|
73
|
+
* day — so the zone abbreviation goes on too, which is the only thing
|
|
74
|
+
* that tells "01:00 BST" from "01:00 GMT".
|
|
75
|
+
*/
|
|
76
|
+
const clocksGoBack: boolean =
|
|
77
|
+
OneUptimeDate.getTimezoneOffsetInMinutes(endDate) <
|
|
78
|
+
OneUptimeDate.getTimezoneOffsetInMinutes(startDate);
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
withDate: wrapsTheClock || clocksGoBack,
|
|
82
|
+
withZone: clocksGoBack,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The label for a bucket finer than an hour: a bare wall clock where
|
|
88
|
+
* that is unambiguous, and a day-qualified one where it is not.
|
|
89
|
+
*/
|
|
90
|
+
private static getWallClockLabel(
|
|
91
|
+
value: Date,
|
|
92
|
+
detail: { withDate: boolean; withZone: boolean },
|
|
93
|
+
options?: { includeSeconds?: boolean | undefined },
|
|
94
|
+
): string {
|
|
95
|
+
const includeSeconds: boolean = options?.includeSeconds ?? false;
|
|
96
|
+
|
|
97
|
+
const base: string = detail.withDate
|
|
98
|
+
? OneUptimeDate.getDateAsLocalDayMonthTimeString(value, {
|
|
99
|
+
includeSeconds,
|
|
100
|
+
})
|
|
101
|
+
: OneUptimeDate.getLocalTimeString(value, { includeSeconds });
|
|
102
|
+
|
|
103
|
+
if (!detail.withZone) {
|
|
104
|
+
return base;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return `${base} ${OneUptimeDate.getLocalZoneAbbr(value)}`;
|
|
108
|
+
}
|
|
109
|
+
|
|
11
110
|
public static getPrecision(data: {
|
|
12
111
|
xAxisMin: XAxisMaxMin;
|
|
13
112
|
xAxisMax: XAxisMaxMin;
|
|
@@ -187,10 +286,17 @@ export default class XAxisUtil {
|
|
|
187
286
|
}): (value: Date) => string {
|
|
188
287
|
const precision: XAxisPrecision = XAxisUtil.getPrecision(data);
|
|
189
288
|
|
|
289
|
+
/*
|
|
290
|
+
* Computed once here rather than per tick: every sub-hour tier below
|
|
291
|
+
* needs the same answer, and it does not vary within a window.
|
|
292
|
+
*/
|
|
293
|
+
const labelDetail: { withDate: boolean; withZone: boolean } =
|
|
294
|
+
XAxisUtil.getWallClockLabelDetail(data);
|
|
295
|
+
|
|
190
296
|
switch (precision) {
|
|
191
297
|
case XAxisPrecision.EVERY_SECOND:
|
|
192
298
|
return (value: Date) => {
|
|
193
|
-
return
|
|
299
|
+
return XAxisUtil.getWallClockLabel(value, labelDetail, {
|
|
194
300
|
includeSeconds: true,
|
|
195
301
|
});
|
|
196
302
|
};
|
|
@@ -202,7 +308,7 @@ export default class XAxisUtil {
|
|
|
202
308
|
const roundedSeconds: number = Math.floor(seconds / 5) * 5;
|
|
203
309
|
roundedValue.setSeconds(roundedSeconds, 0);
|
|
204
310
|
|
|
205
|
-
return
|
|
311
|
+
return XAxisUtil.getWallClockLabel(roundedValue, labelDetail, {
|
|
206
312
|
includeSeconds: true,
|
|
207
313
|
});
|
|
208
314
|
};
|
|
@@ -214,7 +320,7 @@ export default class XAxisUtil {
|
|
|
214
320
|
const roundedSeconds: number = Math.floor(seconds / 10) * 10;
|
|
215
321
|
roundedValue.setSeconds(roundedSeconds, 0);
|
|
216
322
|
|
|
217
|
-
return
|
|
323
|
+
return XAxisUtil.getWallClockLabel(roundedValue, labelDetail, {
|
|
218
324
|
includeSeconds: true,
|
|
219
325
|
});
|
|
220
326
|
};
|
|
@@ -226,14 +332,14 @@ export default class XAxisUtil {
|
|
|
226
332
|
const roundedSeconds: number = Math.floor(seconds / 30) * 30;
|
|
227
333
|
roundedValue.setSeconds(roundedSeconds, 0);
|
|
228
334
|
|
|
229
|
-
return
|
|
335
|
+
return XAxisUtil.getWallClockLabel(roundedValue, labelDetail, {
|
|
230
336
|
includeSeconds: true,
|
|
231
337
|
});
|
|
232
338
|
};
|
|
233
339
|
case XAxisPrecision.EVERY_MINUTE:
|
|
234
340
|
// round down to nearest minute
|
|
235
341
|
return (value: Date) => {
|
|
236
|
-
return
|
|
342
|
+
return XAxisUtil.getWallClockLabel(value, labelDetail);
|
|
237
343
|
};
|
|
238
344
|
case XAxisPrecision.EVERY_FIVE_MINUTES:
|
|
239
345
|
// round down to nearest 5 minutes
|
|
@@ -243,7 +349,7 @@ export default class XAxisUtil {
|
|
|
243
349
|
const roundedMinutes: number = Math.floor(minutes / 5) * 5;
|
|
244
350
|
roundedValue.setMinutes(roundedMinutes, 0, 0);
|
|
245
351
|
|
|
246
|
-
return
|
|
352
|
+
return XAxisUtil.getWallClockLabel(roundedValue, labelDetail);
|
|
247
353
|
};
|
|
248
354
|
case XAxisPrecision.EVERY_TEN_MINUTES:
|
|
249
355
|
// round down to nearest 10 minutes
|
|
@@ -253,7 +359,7 @@ export default class XAxisUtil {
|
|
|
253
359
|
const roundedMinutes: number = Math.floor(minutes / 10) * 10;
|
|
254
360
|
roundedValue.setMinutes(roundedMinutes, 0, 0);
|
|
255
361
|
|
|
256
|
-
return
|
|
362
|
+
return XAxisUtil.getWallClockLabel(roundedValue, labelDetail);
|
|
257
363
|
};
|
|
258
364
|
case XAxisPrecision.EVERY_FIFTEEN_MINUTES:
|
|
259
365
|
// round down to nearest 15 minutes
|
|
@@ -263,7 +369,7 @@ export default class XAxisUtil {
|
|
|
263
369
|
const roundedMinutes: number = Math.floor(minutes / 15) * 15;
|
|
264
370
|
roundedValue.setMinutes(roundedMinutes, 0, 0);
|
|
265
371
|
|
|
266
|
-
return
|
|
372
|
+
return XAxisUtil.getWallClockLabel(roundedValue, labelDetail);
|
|
267
373
|
};
|
|
268
374
|
case XAxisPrecision.EVERY_THIRTY_MINUTES:
|
|
269
375
|
// round down to nearest 30 minutes
|
|
@@ -273,7 +379,7 @@ export default class XAxisUtil {
|
|
|
273
379
|
const roundedMinutes: number = Math.floor(minutes / 30) * 30;
|
|
274
380
|
roundedValue.setMinutes(roundedMinutes, 0, 0);
|
|
275
381
|
|
|
276
|
-
return
|
|
382
|
+
return XAxisUtil.getWallClockLabel(roundedValue, labelDetail);
|
|
277
383
|
};
|
|
278
384
|
case XAxisPrecision.EVERY_HOUR:
|
|
279
385
|
/*
|
|
@@ -340,12 +446,14 @@ export default class XAxisUtil {
|
|
|
340
446
|
return OneUptimeDate.getDateAsLocalDayMonthString(roundedValue);
|
|
341
447
|
};
|
|
342
448
|
case XAxisPrecision.EVERY_WEEK:
|
|
343
|
-
|
|
449
|
+
/*
|
|
450
|
+
* Day and month both read in the configured timezone. These used
|
|
451
|
+
* to be mixed inside one label — value.getDate() is the BROWSER's
|
|
452
|
+
* day — so a user whose zone put the tick on the other side of
|
|
453
|
+
* midnight got a day from one date and a month from another.
|
|
454
|
+
*/
|
|
344
455
|
return (value: Date) => {
|
|
345
|
-
|
|
346
|
-
const month: string =
|
|
347
|
-
OneUptimeDate.getLocalShortMonthNameFromDate(value);
|
|
348
|
-
return `${day} ${month}`;
|
|
456
|
+
return OneUptimeDate.getDateAsLocalDayMonthString(value);
|
|
349
457
|
};
|
|
350
458
|
case XAxisPrecision.EVERY_TWO_WEEKS:
|
|
351
459
|
// round down to nearest 2 weeks. // DD MMM
|
|
@@ -354,10 +462,9 @@ export default class XAxisUtil {
|
|
|
354
462
|
const days: number = roundedValue.getDate();
|
|
355
463
|
const roundedDays: number = Math.floor(days / 2) * 2;
|
|
356
464
|
roundedValue.setDate(roundedDays);
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
return `${day} ${month}`;
|
|
465
|
+
|
|
466
|
+
// Day and month both in the configured zone; see EVERY_WEEK.
|
|
467
|
+
return OneUptimeDate.getDateAsLocalDayMonthString(roundedValue);
|
|
361
468
|
};
|
|
362
469
|
case XAxisPrecision.EVERY_MONTH:
|
|
363
470
|
// round down to nearest month // MM YYYY
|