@oneuptime/common 12.0.30 → 12.0.32
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/AlertState.ts +0 -2
- package/Models/DatabaseModels/DetectionRule.ts +16 -5
- package/Models/DatabaseModels/Domain.ts +1 -1
- package/Models/DatabaseModels/GoogleSecOpsConnection.ts +14 -5
- package/Models/DatabaseModels/Incident.ts +1 -1
- package/Models/DatabaseModels/IncidentSeverity.ts +44 -0
- package/Models/DatabaseModels/IncidentTemplate.ts +1 -1
- package/Models/DatabaseModels/Index.ts +4 -0
- package/Models/DatabaseModels/MetricType.ts +0 -2
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +0 -2
- package/Models/DatabaseModels/MonitorTest.ts +0 -2
- package/Models/DatabaseModels/NetworkDevice.ts +234 -5
- package/Models/DatabaseModels/NetworkDeviceAutoImportRule.ts +88 -0
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +22 -0
- package/Models/DatabaseModels/NetworkDeviceOidTemplate.ts +501 -0
- package/Models/DatabaseModels/NetworkDeviceRole.ts +648 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +1 -1
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +1 -1
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +0 -2
- package/Models/DatabaseModels/StatusPageAnnouncementTemplate.ts +0 -2
- package/Models/DatabaseModels/StatusPagePrivateUser.ts +0 -2
- package/Models/DatabaseModels/StatusPageResource.ts +0 -2
- package/Models/DatabaseModels/StatusPageSubscriber.ts +0 -2
- package/Models/DatabaseModels/ThreatIntelFeed.ts +16 -5
- package/Server/API/GlobalConfigAPI.ts +362 -183
- package/Server/API/TelemetryAPI.ts +42 -4
- package/Server/EnvironmentConfig.ts +112 -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/1790800000000-AddNetworkDeviceRoleTable.ts +72 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Middleware/MultipartFormData.ts +118 -32
- 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/DatabaseService.ts +39 -9
- 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 +4 -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/NetworkDeviceRoleService.ts +90 -0
- package/Server/Services/NetworkDeviceService.ts +209 -1
- package/Server/Services/OnCallDutyPolicyLabelRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.ts +9 -1
- package/Server/Services/PodmanHostLabelRuleEngineService.ts +9 -1
- package/Server/Services/PodmanHostOwnerRuleEngineService.ts +9 -1
- package/Server/Services/ProjectService.ts +85 -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/TelemetrySourceMapService.ts +266 -23
- package/Server/Services/UserNotificationSettingService.ts +0 -6
- 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/Rules/RuleEngineRuleRead.ts +48 -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/AddNeighborToMonitoringModal.test.tsx +31 -1
- package/Tests/App/Dashboard/DashboardChartWidgetZoom.test.tsx +35 -8
- package/Tests/App/Dashboard/DashboardCommandPalette.test.tsx +107 -3
- package/Tests/App/Dashboard/DashboardWideChartZoom.test.tsx +401 -0
- package/Tests/App/Dashboard/EventOverlayHook.test.tsx +125 -0
- package/Tests/App/Dashboard/HeaderImageAssets.test.tsx +93 -0
- package/Tests/App/Dashboard/MonitorTemplateColumnAndFacet.test.tsx +318 -0
- package/Tests/App/Dashboard/NetworkDeviceBulkDelete.test.tsx +357 -0
- package/Tests/App/Dashboard/NetworkSideMenu.test.tsx +590 -0
- package/Tests/App/Dashboard/OnCallReadinessSurfaces.test.tsx +3 -3
- package/Tests/App/Dashboard/SideMenuHarness.tsx +11 -3
- package/Tests/App/Dashboard/UserElementEmail.test.tsx +12 -4
- package/Tests/App/Dashboard/UserEmailCallSites.test.tsx +1 -1
- package/Tests/Models/DatabaseModels/DomainRoleTierCoverage.test.ts +14 -0
- package/Tests/Models/DatabaseModels/ModelRegistryInvariants.test.ts +543 -0
- package/Tests/Models/SecurityDomainAccessControl.test.ts +429 -0
- package/Tests/Server/API/GlobalConfigLicense.test.ts +657 -0
- package/Tests/Server/API/SecurityEventAttributesAPI.test.ts +84 -6
- package/Tests/Server/API/TelemetryResolveStackTraceAPI.test.ts +805 -0
- package/Tests/Server/Infrastructure/Postgres/AddOnCallCalendarFeedsMigration.test.ts +32 -7
- package/Tests/Server/Infrastructure/Postgres/NetworkDeviceRoleTableMigration.test.ts +476 -0
- package/Tests/Server/Middleware/IdentityRateLimit.test.ts +1144 -0
- package/Tests/Server/Middleware/MultipartFormData.test.ts +618 -3
- package/Tests/Server/Services/DatabaseServiceGenerateSlug.test.ts +215 -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/NetworkDeviceRoleModel.test.ts +672 -0
- package/Tests/Server/Services/NetworkDeviceRuleEngines.test.ts +1 -1
- package/Tests/Server/Services/ProjectServiceCreateSubscriptionStarted.test.ts +67 -4
- package/Tests/Server/Services/RuleEngineRuleFetchLimit.test.ts +239 -0
- package/Tests/Server/Services/ScheduledMaintenanceSubscriberEndTime.test.ts +369 -0
- package/Tests/Server/Services/TelemetrySourceMapService.test.ts +1210 -2
- package/Tests/Server/Services/UserNotificationSettingMonitorDefaults.test.ts +248 -0
- package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +43 -2
- 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/ReadBlockPermission.test.ts +212 -0
- package/Tests/Server/Types/Database/Permissions/SecurityRoleAccess.test.ts +413 -0
- package/Tests/Server/Utils/BasicCron.test.ts +283 -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/IncomingCallPhoneNumber.test.ts +174 -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/OpenAPISpec.test.ts +536 -0
- package/Tests/Server/Utils/Rules/RuleEngineRuleRead.test.ts +115 -0
- package/Tests/Server/Utils/StackTraceParser.test.ts +610 -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/Monitor/SnmpMonitor/SnmpOidListUtil.test.ts +454 -0
- package/Tests/Types/NetworkDevice/DefaultNetworkDeviceRole.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/ChartClickDoubleClickDisambiguation.test.tsx +221 -0
- package/Tests/UI/Components/Charts/ChartDoubleClickReset.test.tsx +220 -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/BaseModelTableBulkDelete.test.tsx +751 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +475 -43
- package/Tests/UI/Components/ModelTable/BaseModelTableDeleteAndEmptyStates.test.tsx +341 -0
- package/Tests/UI/Components/ModelTable/ColumnPreference.test.ts +89 -0
- package/Tests/UI/Components/NavBarCommandKGating.test.tsx +103 -8
- package/Tests/UI/Components/OrderedStatesList.test.tsx +5 -5
- package/Tests/UI/Components/PendingProjectInvitations.test.tsx +1 -1
- package/Tests/UI/Components/SideMenuItem.test.tsx +30 -0
- 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/TableColumnsToCsv.test.ts +30 -0
- package/Tests/UI/Utils/UseDashboardTimeRangeZoom.test.tsx +187 -0
- package/Tests/Utils/Dashboard/DashboardResourceListSharedArgs.test.ts +302 -0
- package/Tests/Utils/Dashboard/DashboardTimeRangeZoom.test.ts +242 -0
- package/Tests/Utils/EnterpriseLicenseSeats.test.ts +507 -0
- package/Tests/Utils/Monitor/NetworkDeviceRoleCatalog.test.ts +981 -0
- package/Tests/Utils/Monitor/NetworkTopologyRoleCatalog.test.ts +865 -0
- package/Tests/Utils/NetworkDevice/DeviceRoleKeyUtil.test.ts +538 -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/Tests/Utils/Slo/SloEvaluation.test.ts +171 -0
- package/Tests/Utils/Slug.test.ts +61 -1
- package/Tests/jest.setup.ts +19 -0
- package/Types/Date.ts +39 -0
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +61 -0
- package/Types/Monitor/SnmpMonitor/SnmpOidListUtil.ts +333 -0
- package/Types/NetworkDevice/DefaultNetworkDeviceRole.ts +145 -0
- package/Types/Permission.ts +141 -0
- package/Types/Rum/SessionReplay.ts +21 -0
- package/Types/Telemetry/SourceMap.ts +8 -0
- package/UI/Components/Charts/Area/AreaChart.tsx +7 -0
- package/UI/Components/Charts/Bar/BarChart.tsx +6 -0
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +9 -1
- 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 +554 -545
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +337 -371
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +549 -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/ChartLibrary/Utils/DoubleClick.ts +13 -0
- package/UI/Components/Charts/Line/LineChart.tsx +7 -0
- 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 +200 -39
- package/UI/Components/Navbar/NavBar.tsx +62 -13
- package/UI/Components/Navbar/NavBarMenuModal.tsx +7 -2
- package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +2 -0
- package/UI/Components/SideMenu/SideMenu.tsx +12 -2
- package/UI/Components/SideMenu/SideMenuItem.tsx +4 -1
- package/UI/Components/SideMenu/SideMenuSection.tsx +14 -2
- package/UI/Components/Table/TableHeader.tsx +64 -48
- package/UI/Components/Table/TableRow.tsx +13 -3
- package/UI/Styles/Theme.css +38 -0
- package/UI/Utils/UseDashboardTimeRangeZoom.ts +77 -0
- package/Utils/Dashboard/DashboardTimeRangeZoom.ts +118 -0
- package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +271 -0
- package/Utils/Monitor/NetworkDeviceRoleCatalog.ts +232 -0
- package/Utils/Monitor/NetworkDeviceRoleUtil.ts +2 -1
- package/Utils/Monitor/NetworkTopologyUtil.ts +116 -33
- package/Utils/NetworkDevice/DeviceRoleKeyUtil.ts +137 -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/Utils/Rules/RulePatternMatchUtil.ts +1 -1
- package/Utils/Slug.ts +34 -1
- 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/AlertState.js +0 -2
- package/build/dist/Models/DatabaseModels/AlertState.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/Domain.js +1 -1
- package/build/dist/Models/DatabaseModels/Domain.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/Incident.js +1 -1
- package/build/dist/Models/DatabaseModels/Incident.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/IncidentTemplate.js +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +4 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MetricType.js +0 -2
- package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +0 -2
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTest.js +0 -2
- package/build/dist/Models/DatabaseModels/MonitorTest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +239 -6
- 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 +521 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOidTemplate.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceRole.js +677 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceRole.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js +16 -5
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js.map +1 -1
- package/build/dist/Server/API/GlobalConfigAPI.js +293 -176
- package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
- 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 +83 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- 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/1790800000000-AddNetworkDeviceRoleTable.js +39 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790800000000-AddNetworkDeviceRoleTable.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/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/DatabaseService.js +31 -5
- package/build/dist/Server/Services/DatabaseService.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 +4 -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/NetworkDeviceRoleService.js +70 -0
- package/build/dist/Server/Services/NetworkDeviceRoleService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceService.js +154 -1
- package/build/dist/Server/Services/NetworkDeviceService.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/OnCallDutyPolicyScheduleLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.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/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/ProjectService.js +65 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- 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/TelemetrySourceMapService.js +213 -19
- package/build/dist/Server/Services/TelemetrySourceMapService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +0 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- 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/Rules/RuleEngineRuleRead.js +37 -0
- package/build/dist/Server/Utils/Rules/RuleEngineRuleRead.js.map +1 -0
- 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/Date.js +27 -0
- package/build/dist/Types/Date.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/NetworkDevice/DefaultNetworkDeviceRole.js +105 -0
- package/build/dist/Types/NetworkDevice/DefaultNetworkDeviceRole.js.map +1 -0
- package/build/dist/Types/Permission.js +126 -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/Area/AreaChart.js +1 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +6 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.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 +262 -234
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +146 -153
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +261 -233
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js +14 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js.map +1 -0
- package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
- package/build/dist/UI/Components/Charts/Line/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 +143 -36
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBar.js +44 -9
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +2 -2
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js +1 -1
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenu.js +9 -6
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuItem.js +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuSection.js +7 -2
- package/build/dist/UI/Components/SideMenu/SideMenuSection.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/UI/Utils/UseDashboardTimeRangeZoom.js +42 -0
- package/build/dist/UI/Utils/UseDashboardTimeRangeZoom.js.map +1 -0
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js +74 -0
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js.map +1 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +153 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleCatalog.js +126 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleCatalog.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js +2 -1
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +67 -32
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceRoleKeyUtil.js +114 -0
- package/build/dist/Utils/NetworkDevice/DeviceRoleKeyUtil.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/build/dist/Utils/Rules/RulePatternMatchUtil.js +1 -1
- package/build/dist/Utils/Slug.js +31 -1
- package/build/dist/Utils/Slug.js.map +1 -1
- package/jest.config.json +1 -0
- package/package.json +2 -2
|
@@ -26,6 +26,13 @@ import CidrMatchUtil from "../../Utils/NetworkSite/CidrMatchUtil";
|
|
|
26
26
|
import { SiteAssignmentRuleRunResult } from "../../Types/NetworkAutomation/RuleRunResult";
|
|
27
27
|
import { NetworkDeviceMonitoringMethodUtil } from "../../Types/NetworkDevice/NetworkDeviceMonitoringMethod";
|
|
28
28
|
import RelationIdUtil from "../Utils/Database/RelationIdUtil";
|
|
29
|
+
import NetworkDeviceOidTemplate from "../../Models/DatabaseModels/NetworkDeviceOidTemplate";
|
|
30
|
+
import NetworkDeviceOidTemplateService from "./NetworkDeviceOidTemplateService";
|
|
31
|
+
import SnmpOid from "../../Types/Monitor/SnmpMonitor/SnmpOid";
|
|
32
|
+
import SnmpOidListUtil, {
|
|
33
|
+
MAX_DEVICE_SPECIFIC_OIDS,
|
|
34
|
+
MAX_EFFECTIVE_OIDS_PER_DEVICE,
|
|
35
|
+
} from "../../Types/Monitor/SnmpMonitor/SnmpOidListUtil";
|
|
29
36
|
import { EntityManager } from "typeorm";
|
|
30
37
|
import ModelPermission from "../Types/Database/Permissions/Index";
|
|
31
38
|
import QueryHelper from "../Types/Database/QueryHelper";
|
|
@@ -106,6 +113,30 @@ function readSiteIdFromData(data: Record<string, unknown>): ObjectID | null {
|
|
|
106
113
|
// Both spellings of "the monitor that reports this device's health".
|
|
107
114
|
const MONITOR_KEYS: Array<string> = ["monitorId", "monitor"];
|
|
108
115
|
|
|
116
|
+
/*
|
|
117
|
+
* Both spellings of "the OID Collection Template this device collects". The
|
|
118
|
+
* settings page posts the `oidTemplate` relation and the bulk action posts
|
|
119
|
+
* the `oidTemplateId` column, so a guard that watched only one of them would
|
|
120
|
+
* be trivially bypassable from the UI.
|
|
121
|
+
*/
|
|
122
|
+
const OID_TEMPLATE_KEYS: Array<string> = ["oidTemplateId", "oidTemplate"];
|
|
123
|
+
|
|
124
|
+
function readOidTemplateIdFromData(
|
|
125
|
+
data: Record<string, unknown>,
|
|
126
|
+
): ObjectID | null {
|
|
127
|
+
/*
|
|
128
|
+
* readConsistent, not read: a payload that writes BOTH spellings with
|
|
129
|
+
* different ids would otherwise have one of them validated and the other
|
|
130
|
+
* persisted, which turns the cross-project guard below into something a
|
|
131
|
+
* caller can steer. It refuses the contradiction instead of picking.
|
|
132
|
+
*/
|
|
133
|
+
return RelationIdUtil.readConsistent(
|
|
134
|
+
data,
|
|
135
|
+
OID_TEMPLATE_KEYS,
|
|
136
|
+
"OID Collection Template",
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
109
140
|
function readMonitorIdFromData(data: Record<string, unknown>): ObjectID | null {
|
|
110
141
|
return RelationIdUtil.read(data, MONITOR_KEYS);
|
|
111
142
|
}
|
|
@@ -838,6 +869,50 @@ export class Service extends DatabaseService<Model> {
|
|
|
838
869
|
}
|
|
839
870
|
}
|
|
840
871
|
|
|
872
|
+
/*
|
|
873
|
+
* Same hole as siteId, and it matters more here: the FK behind
|
|
874
|
+
* oidTemplateId only requires the row to exist, not that it belongs to the
|
|
875
|
+
* device's project. Tenant scoping is applied to the ROOT query only, so a
|
|
876
|
+
* device pointed at another project's template would leak that template's
|
|
877
|
+
* name and OID list through every nested `select: { oidTemplate: ... }` the
|
|
878
|
+
* dashboard makes - and the poll would ship those OIDs to this project's
|
|
879
|
+
* probe. Refuse the link at the point it is written, rather than auditing
|
|
880
|
+
* it afterwards at poll time.
|
|
881
|
+
*/
|
|
882
|
+
private async assertOidTemplateBelongsToProject(data: {
|
|
883
|
+
oidTemplateId: ObjectID;
|
|
884
|
+
projectId: ObjectID | undefined;
|
|
885
|
+
}): Promise<void> {
|
|
886
|
+
if (!data.projectId) {
|
|
887
|
+
return;
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
const oidTemplate: NetworkDeviceOidTemplate | null =
|
|
891
|
+
await NetworkDeviceOidTemplateService.findOneById({
|
|
892
|
+
id: data.oidTemplateId,
|
|
893
|
+
select: {
|
|
894
|
+
_id: true,
|
|
895
|
+
projectId: true,
|
|
896
|
+
},
|
|
897
|
+
props: {
|
|
898
|
+
isRoot: true,
|
|
899
|
+
},
|
|
900
|
+
});
|
|
901
|
+
|
|
902
|
+
if (!oidTemplate) {
|
|
903
|
+
throw new BadDataException("OID Collection Template not found.");
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
if (
|
|
907
|
+
oidTemplate.projectId &&
|
|
908
|
+
oidTemplate.projectId.toString() !== data.projectId.toString()
|
|
909
|
+
) {
|
|
910
|
+
throw new BadDataException(
|
|
911
|
+
"OID Collection Template must belong to the same project.",
|
|
912
|
+
);
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
|
|
841
916
|
/*
|
|
842
917
|
* onBeforeUpdate runs before DatabaseService permission-checks the query,
|
|
843
918
|
* so reading the raw client query as root would hand the hook rows from
|
|
@@ -877,6 +952,30 @@ export class Service extends DatabaseService<Model> {
|
|
|
877
952
|
});
|
|
878
953
|
}
|
|
879
954
|
|
|
955
|
+
const createOidTemplateId: ObjectID | null = readOidTemplateIdFromData(
|
|
956
|
+
createBy.data as unknown as Record<string, unknown>,
|
|
957
|
+
);
|
|
958
|
+
|
|
959
|
+
if (createOidTemplateId) {
|
|
960
|
+
await this.assertOidTemplateBelongsToProject({
|
|
961
|
+
oidTemplateId: createOidTemplateId,
|
|
962
|
+
projectId: createBy.data.projectId,
|
|
963
|
+
});
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
if (createBy.data.snmpOids !== undefined) {
|
|
967
|
+
// Same budget rule as onBeforeUpdate: the tight cap is what linking costs.
|
|
968
|
+
createBy.data.snmpOids = SnmpOidListUtil.validateOidList(
|
|
969
|
+
createBy.data.snmpOids,
|
|
970
|
+
{
|
|
971
|
+
max: createOidTemplateId
|
|
972
|
+
? MAX_DEVICE_SPECIFIC_OIDS
|
|
973
|
+
: MAX_EFFECTIVE_OIDS_PER_DEVICE,
|
|
974
|
+
label: "Device-Specific Health OIDs",
|
|
975
|
+
},
|
|
976
|
+
);
|
|
977
|
+
}
|
|
978
|
+
|
|
880
979
|
if (
|
|
881
980
|
NetworkDeviceMonitoringMethodUtil.isMonitorBacked(
|
|
882
981
|
createBy.data.monitoringMethod,
|
|
@@ -1098,8 +1197,34 @@ export class Service extends DatabaseService<Model> {
|
|
|
1098
1197
|
return dataKeys.includes(column);
|
|
1099
1198
|
},
|
|
1100
1199
|
);
|
|
1200
|
+
/*
|
|
1201
|
+
* The OID writes have to get past this return too, and that is the whole
|
|
1202
|
+
* reason they are named here.
|
|
1203
|
+
*
|
|
1204
|
+
* The early return exists so a write that changes neither site nor
|
|
1205
|
+
* identity skips a read it does not need — but linking a template and
|
|
1206
|
+
* editing snmpOids are EXACTLY such writes, so a guard placed below the
|
|
1207
|
+
* return would be dead code on the only path it exists for. Both need the
|
|
1208
|
+
* read: the tenancy check needs each matched device's projectId, and the
|
|
1209
|
+
* OID cap needs to know whether the device is linked to a template.
|
|
1210
|
+
*
|
|
1211
|
+
* `!== undefined` rather than truthiness for the OID list: every poll
|
|
1212
|
+
* writes device columns through this path (NetworkInventoryUtil), and an
|
|
1213
|
+
* explicit empty array is a legitimate "collect nothing device-specific"
|
|
1214
|
+
* edit.
|
|
1215
|
+
*/
|
|
1216
|
+
const isOidTemplateChange: boolean = RelationIdUtil.isWritten(
|
|
1217
|
+
dataKeys,
|
|
1218
|
+
OID_TEMPLATE_KEYS,
|
|
1219
|
+
);
|
|
1220
|
+
const isDeviceOidsChange: boolean = updateBy.data.snmpOids !== undefined;
|
|
1101
1221
|
|
|
1102
|
-
if (
|
|
1222
|
+
if (
|
|
1223
|
+
!isSiteChange &&
|
|
1224
|
+
!isIdentityChange &&
|
|
1225
|
+
!isOidTemplateChange &&
|
|
1226
|
+
!isDeviceOidsChange
|
|
1227
|
+
) {
|
|
1103
1228
|
return { updateBy, carryForward: null };
|
|
1104
1229
|
}
|
|
1105
1230
|
|
|
@@ -1112,6 +1237,9 @@ export class Service extends DatabaseService<Model> {
|
|
|
1112
1237
|
hostname: true,
|
|
1113
1238
|
name: true,
|
|
1114
1239
|
sysName: true,
|
|
1240
|
+
// Decide which OID budget applies below, and whether a link would truncate.
|
|
1241
|
+
oidTemplateId: true,
|
|
1242
|
+
snmpOids: true,
|
|
1115
1243
|
},
|
|
1116
1244
|
limit: LIMIT_MAX,
|
|
1117
1245
|
skip: 0,
|
|
@@ -1143,6 +1271,86 @@ export class Service extends DatabaseService<Model> {
|
|
|
1143
1271
|
}
|
|
1144
1272
|
}
|
|
1145
1273
|
|
|
1274
|
+
const newOidTemplateId: ObjectID | null = readOidTemplateIdFromData(
|
|
1275
|
+
updateBy.data as unknown as Record<string, unknown>,
|
|
1276
|
+
);
|
|
1277
|
+
|
|
1278
|
+
/*
|
|
1279
|
+
* Same shape as the site guard above: one check per distinct project in
|
|
1280
|
+
* the matched set, because a single updateBy can span devices from more
|
|
1281
|
+
* than one project when a root caller issues it.
|
|
1282
|
+
*/
|
|
1283
|
+
if (newOidTemplateId) {
|
|
1284
|
+
const checkedTemplateProjectIds: Set<string> = new Set();
|
|
1285
|
+
|
|
1286
|
+
for (const previousDevice of previousDevices) {
|
|
1287
|
+
if (
|
|
1288
|
+
!previousDevice.projectId ||
|
|
1289
|
+
checkedTemplateProjectIds.has(previousDevice.projectId.toString())
|
|
1290
|
+
) {
|
|
1291
|
+
continue;
|
|
1292
|
+
}
|
|
1293
|
+
checkedTemplateProjectIds.add(previousDevice.projectId.toString());
|
|
1294
|
+
|
|
1295
|
+
await this.assertOidTemplateBelongsToProject({
|
|
1296
|
+
oidTemplateId: newOidTemplateId,
|
|
1297
|
+
projectId: previousDevice.projectId,
|
|
1298
|
+
});
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
/*
|
|
1303
|
+
* How many OIDs a device may carry of its own.
|
|
1304
|
+
*
|
|
1305
|
+
* The tight budget is a consequence of ADOPTING a template, not a
|
|
1306
|
+
* retroactive limit on every device that already exists. A device with no
|
|
1307
|
+
* template collects only its own list, so its ceiling is the full
|
|
1308
|
+
* per-device budget; the moment it links to one, template plus
|
|
1309
|
+
* device-specific has to fit inside that same ceiling, and the
|
|
1310
|
+
* device-specific half is what gives.
|
|
1311
|
+
*
|
|
1312
|
+
* Enforcing the tight budget unconditionally would have been hostile in
|
|
1313
|
+
* exactly the wrong direction: a device that predates this feature, with a
|
|
1314
|
+
* long hand-built list, could no longer save ANY polling setting — the
|
|
1315
|
+
* fleet in issue #3507 being the likeliest example.
|
|
1316
|
+
*/
|
|
1317
|
+
/*
|
|
1318
|
+
* Linking a device whose STORED list already exceeds the device-specific
|
|
1319
|
+
* budget would leave the merge over the effective ceiling, and truncation
|
|
1320
|
+
* drops from the end — so the operator's own OIDs would silently stop
|
|
1321
|
+
* being polled, on a write that never mentioned them. Refuse the link and
|
|
1322
|
+
* say what to trim, rather than accepting it and losing data at poll time.
|
|
1323
|
+
*/
|
|
1324
|
+
if (isOidTemplateChange && newOidTemplateId && !isDeviceOidsChange) {
|
|
1325
|
+
for (const previousDevice of previousDevices) {
|
|
1326
|
+
const storedOidCount: number = (previousDevice.snmpOids || []).length;
|
|
1327
|
+
|
|
1328
|
+
if (storedOidCount > MAX_DEVICE_SPECIFIC_OIDS) {
|
|
1329
|
+
throw new BadDataException(
|
|
1330
|
+
`This device has ${storedOidCount} device-specific Health OIDs, and a device linked to an OID Collection Template may keep at most ${MAX_DEVICE_SPECIFIC_OIDS} of its own. Remove ${storedOidCount - MAX_DEVICE_SPECIFIC_OIDS} of them - or move them onto the template - before linking it.`,
|
|
1331
|
+
);
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
if (isDeviceOidsChange) {
|
|
1337
|
+
const becomesLinked: boolean = isOidTemplateChange
|
|
1338
|
+
? Boolean(newOidTemplateId)
|
|
1339
|
+
: previousDevices.some((previousDevice: Model) => {
|
|
1340
|
+
return Boolean(previousDevice.oidTemplateId);
|
|
1341
|
+
});
|
|
1342
|
+
|
|
1343
|
+
updateBy.data.snmpOids = SnmpOidListUtil.validateOidList(
|
|
1344
|
+
updateBy.data.snmpOids as Array<SnmpOid>,
|
|
1345
|
+
{
|
|
1346
|
+
max: becomesLinked
|
|
1347
|
+
? MAX_DEVICE_SPECIFIC_OIDS
|
|
1348
|
+
: MAX_EFFECTIVE_OIDS_PER_DEVICE,
|
|
1349
|
+
label: "Device-Specific Health OIDs",
|
|
1350
|
+
},
|
|
1351
|
+
);
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1146
1354
|
return {
|
|
1147
1355
|
updateBy,
|
|
1148
1356
|
carryForward: {
|
|
@@ -6,6 +6,8 @@ import OnCallDutyPolicyService from "./OnCallDutyPolicyService";
|
|
|
6
6
|
import ObjectID from "../../Types/ObjectID";
|
|
7
7
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
8
8
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
9
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
10
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
9
11
|
|
|
10
12
|
class OnCallDutyPolicyLabelRuleEngineServiceClass {
|
|
11
13
|
@CaptureSpan()
|
|
@@ -32,10 +34,16 @@ class OnCallDutyPolicyLabelRuleEngineServiceClass {
|
|
|
32
34
|
onCallDutyPolicyDescriptionPattern: true,
|
|
33
35
|
labelsToAdd: { _id: true },
|
|
34
36
|
},
|
|
35
|
-
limit:
|
|
37
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
36
38
|
skip: 0,
|
|
37
39
|
});
|
|
38
40
|
|
|
41
|
+
logIfRuleReadWasTruncated({
|
|
42
|
+
ruleKind: "OnCallDutyPolicyLabelRule",
|
|
43
|
+
projectId: onCallDutyPolicy.projectId,
|
|
44
|
+
rulesRead: rules.length,
|
|
45
|
+
});
|
|
46
|
+
|
|
39
47
|
if (rules.length === 0) {
|
|
40
48
|
return;
|
|
41
49
|
}
|
|
@@ -10,6 +10,8 @@ import OnCallDutyPolicyService from "./OnCallDutyPolicyService";
|
|
|
10
10
|
import ObjectID from "../../Types/ObjectID";
|
|
11
11
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
12
12
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
13
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
14
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
13
15
|
|
|
14
16
|
class OnCallDutyPolicyOwnerRuleEngineServiceClass {
|
|
15
17
|
@CaptureSpan()
|
|
@@ -38,10 +40,16 @@ class OnCallDutyPolicyOwnerRuleEngineServiceClass {
|
|
|
38
40
|
ownerUsers: { _id: true },
|
|
39
41
|
ownerTeams: { _id: true },
|
|
40
42
|
},
|
|
41
|
-
limit:
|
|
43
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
42
44
|
skip: 0,
|
|
43
45
|
});
|
|
44
46
|
|
|
47
|
+
logIfRuleReadWasTruncated({
|
|
48
|
+
ruleKind: "OnCallDutyPolicyOwnerRule",
|
|
49
|
+
projectId: onCallDutyPolicy.projectId,
|
|
50
|
+
rulesRead: rules.length,
|
|
51
|
+
});
|
|
52
|
+
|
|
45
53
|
if (rules.length === 0) {
|
|
46
54
|
return;
|
|
47
55
|
}
|
|
@@ -6,6 +6,8 @@ import OnCallDutyPolicyScheduleService from "./OnCallDutyPolicyScheduleService";
|
|
|
6
6
|
import ObjectID from "../../Types/ObjectID";
|
|
7
7
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
8
8
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
9
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
10
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
9
11
|
|
|
10
12
|
class OnCallDutyPolicyScheduleLabelRuleEngineServiceClass {
|
|
11
13
|
@CaptureSpan()
|
|
@@ -32,10 +34,16 @@ class OnCallDutyPolicyScheduleLabelRuleEngineServiceClass {
|
|
|
32
34
|
onCallDutyPolicyScheduleDescriptionPattern: true,
|
|
33
35
|
labelsToAdd: { _id: true },
|
|
34
36
|
},
|
|
35
|
-
limit:
|
|
37
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
36
38
|
skip: 0,
|
|
37
39
|
});
|
|
38
40
|
|
|
41
|
+
logIfRuleReadWasTruncated({
|
|
42
|
+
ruleKind: "OnCallDutyPolicyScheduleLabelRule",
|
|
43
|
+
projectId: schedule.projectId,
|
|
44
|
+
rulesRead: rules.length,
|
|
45
|
+
});
|
|
46
|
+
|
|
39
47
|
if (rules.length === 0) {
|
|
40
48
|
return;
|
|
41
49
|
}
|
|
@@ -10,6 +10,8 @@ import OnCallDutyPolicyScheduleService from "./OnCallDutyPolicyScheduleService";
|
|
|
10
10
|
import ObjectID from "../../Types/ObjectID";
|
|
11
11
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
12
12
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
13
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
14
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
13
15
|
|
|
14
16
|
class OnCallDutyPolicyScheduleOwnerRuleEngineServiceClass {
|
|
15
17
|
@CaptureSpan()
|
|
@@ -38,10 +40,16 @@ class OnCallDutyPolicyScheduleOwnerRuleEngineServiceClass {
|
|
|
38
40
|
ownerUsers: { _id: true },
|
|
39
41
|
ownerTeams: { _id: true },
|
|
40
42
|
},
|
|
41
|
-
limit:
|
|
43
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
42
44
|
skip: 0,
|
|
43
45
|
});
|
|
44
46
|
|
|
47
|
+
logIfRuleReadWasTruncated({
|
|
48
|
+
ruleKind: "OnCallDutyPolicyScheduleOwnerRule",
|
|
49
|
+
projectId: schedule.projectId,
|
|
50
|
+
rulesRead: rules.length,
|
|
51
|
+
});
|
|
52
|
+
|
|
45
53
|
if (rules.length === 0) {
|
|
46
54
|
return;
|
|
47
55
|
}
|
|
@@ -9,6 +9,8 @@ import { Purple500 } from "../../Types/BrandColors";
|
|
|
9
9
|
import ObjectID from "../../Types/ObjectID";
|
|
10
10
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
11
11
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
12
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
13
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
12
14
|
|
|
13
15
|
class PodmanHostLabelRuleEngineServiceClass {
|
|
14
16
|
/**
|
|
@@ -38,10 +40,16 @@ class PodmanHostLabelRuleEngineServiceClass {
|
|
|
38
40
|
podmanHostDescriptionPattern: true,
|
|
39
41
|
labelsToAdd: { _id: true },
|
|
40
42
|
},
|
|
41
|
-
limit:
|
|
43
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
42
44
|
skip: 0,
|
|
43
45
|
});
|
|
44
46
|
|
|
47
|
+
logIfRuleReadWasTruncated({
|
|
48
|
+
ruleKind: "PodmanHostLabelRule",
|
|
49
|
+
projectId: podmanHost.projectId,
|
|
50
|
+
rulesRead: rules.length,
|
|
51
|
+
});
|
|
52
|
+
|
|
45
53
|
if (rules.length === 0) {
|
|
46
54
|
return;
|
|
47
55
|
}
|
|
@@ -13,6 +13,8 @@ import { Purple500 } from "../../Types/BrandColors";
|
|
|
13
13
|
import ObjectID from "../../Types/ObjectID";
|
|
14
14
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
15
15
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
16
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
17
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
16
18
|
|
|
17
19
|
class PodmanHostOwnerRuleEngineServiceClass {
|
|
18
20
|
/**
|
|
@@ -45,10 +47,16 @@ class PodmanHostOwnerRuleEngineServiceClass {
|
|
|
45
47
|
ownerUsers: { _id: true },
|
|
46
48
|
ownerTeams: { _id: true },
|
|
47
49
|
},
|
|
48
|
-
limit:
|
|
50
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
49
51
|
skip: 0,
|
|
50
52
|
});
|
|
51
53
|
|
|
54
|
+
logIfRuleReadWasTruncated({
|
|
55
|
+
ruleKind: "PodmanHostOwnerRule",
|
|
56
|
+
projectId: podmanHost.projectId,
|
|
57
|
+
rulesRead: rules.length,
|
|
58
|
+
});
|
|
59
|
+
|
|
52
60
|
if (rules.length === 0) {
|
|
53
61
|
return;
|
|
54
62
|
}
|
|
@@ -34,6 +34,7 @@ import IncidentStateService from "./IncidentStateService";
|
|
|
34
34
|
import IncidentRoleService from "./IncidentRoleService";
|
|
35
35
|
import MailService from "./MailService";
|
|
36
36
|
import MonitorStatusService from "./MonitorStatusService";
|
|
37
|
+
import NetworkDeviceRoleService from "./NetworkDeviceRoleService";
|
|
37
38
|
import NetworkSiteTypeService from "./NetworkSiteTypeService";
|
|
38
39
|
import NotificationService from "./NotificationService";
|
|
39
40
|
import PromoCodeService from "./PromoCodeService";
|
|
@@ -79,6 +80,11 @@ import IncidentRole from "../../Models/DatabaseModels/IncidentRole";
|
|
|
79
80
|
import MonitorStatus from "../../Models/DatabaseModels/MonitorStatus";
|
|
80
81
|
import NetworkSiteType from "../../Models/DatabaseModels/NetworkSiteType";
|
|
81
82
|
import DefaultNetworkSiteType from "../../Types/NetworkSite/DefaultNetworkSiteType";
|
|
83
|
+
import NetworkDeviceRole from "../../Models/DatabaseModels/NetworkDeviceRole";
|
|
84
|
+
import {
|
|
85
|
+
DEFAULT_NETWORK_DEVICE_ROLES,
|
|
86
|
+
DefaultNetworkDeviceRole,
|
|
87
|
+
} from "../../Types/NetworkDevice/DefaultNetworkDeviceRole";
|
|
82
88
|
import Model from "../../Models/DatabaseModels/Project";
|
|
83
89
|
import BaseModel from "../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
|
|
84
90
|
import PromoCode from "../../Models/DatabaseModels/PromoCode";
|
|
@@ -1444,6 +1450,7 @@ These are no longer recorded against the project and have to be cancelled by han
|
|
|
1444
1450
|
this.addDefaultAlertState(createdItem),
|
|
1445
1451
|
this.addDefaultIncidentRoles(createdItem),
|
|
1446
1452
|
this.addDefaultNetworkSiteTypes(createdItem),
|
|
1453
|
+
this.addDefaultNetworkDeviceRoles(createdItem),
|
|
1447
1454
|
]);
|
|
1448
1455
|
|
|
1449
1456
|
if (createdItem.createdOwnerEmail) {
|
|
@@ -2007,6 +2014,84 @@ These are no longer recorded against the project and have to be cancelled by han
|
|
|
2007
2014
|
return createdItem;
|
|
2008
2015
|
}
|
|
2009
2016
|
|
|
2017
|
+
/**
|
|
2018
|
+
* Seeds the per-project network device role lookup table.
|
|
2019
|
+
*
|
|
2020
|
+
* Device roles used to be a fixed union with the label, the silhouette and
|
|
2021
|
+
* the "is this a core device?" flag hardcoded in three different modules.
|
|
2022
|
+
* They are now a configurable per-project table, so a project can rename
|
|
2023
|
+
* "Wireless AP" to "Access Point", draw firewalls as something else, or add
|
|
2024
|
+
* a role of its own - which means every project needs its own seeded copy of
|
|
2025
|
+
* the defaults.
|
|
2026
|
+
*
|
|
2027
|
+
* Public for the same reason addDefaultNetworkSiteTypes is: the
|
|
2028
|
+
* BackfillNetworkDeviceRoles data migration calls it to seed roles into
|
|
2029
|
+
* projects that existed before the table did, so the defaults are defined
|
|
2030
|
+
* once and cannot drift between project creation and the backfill.
|
|
2031
|
+
*
|
|
2032
|
+
* The key is passed explicitly rather than derived from the name. It has to
|
|
2033
|
+
* be exactly what the SNMP classifier emits - "wirelessAccessPoint", which
|
|
2034
|
+
* no derivation from "Wireless AP" would produce - or a classified access
|
|
2035
|
+
* point would match no row.
|
|
2036
|
+
*/
|
|
2037
|
+
@CaptureSpan()
|
|
2038
|
+
public async addDefaultNetworkDeviceRoles(
|
|
2039
|
+
createdItem: Model,
|
|
2040
|
+
): Promise<Model> {
|
|
2041
|
+
const projectId: ObjectID = createdItem.id!;
|
|
2042
|
+
|
|
2043
|
+
// Idempotent - see getExistingProjectScopedNames.
|
|
2044
|
+
const existingNames: Set<string | undefined> =
|
|
2045
|
+
await this.getExistingProjectScopedNames(
|
|
2046
|
+
NetworkDeviceRoleService,
|
|
2047
|
+
projectId,
|
|
2048
|
+
);
|
|
2049
|
+
|
|
2050
|
+
/*
|
|
2051
|
+
* Also guarded on the key, not just the name: a project that renamed the
|
|
2052
|
+
* seeded "Router" to "Edge Router" must not get a second row called
|
|
2053
|
+
* "Router" the next time this runs, and the key is the identity that
|
|
2054
|
+
* survives the rename.
|
|
2055
|
+
*/
|
|
2056
|
+
const existingKeys: Set<string> =
|
|
2057
|
+
await NetworkDeviceRoleService.getKeysInProject(projectId);
|
|
2058
|
+
|
|
2059
|
+
for (
|
|
2060
|
+
let index: number = 0;
|
|
2061
|
+
index < DEFAULT_NETWORK_DEVICE_ROLES.length;
|
|
2062
|
+
index++
|
|
2063
|
+
) {
|
|
2064
|
+
const defaultRole: DefaultNetworkDeviceRole =
|
|
2065
|
+
DEFAULT_NETWORK_DEVICE_ROLES[index]!;
|
|
2066
|
+
|
|
2067
|
+
if (
|
|
2068
|
+
existingNames.has(defaultRole.name) ||
|
|
2069
|
+
existingKeys.has(defaultRole.key)
|
|
2070
|
+
) {
|
|
2071
|
+
continue;
|
|
2072
|
+
}
|
|
2073
|
+
|
|
2074
|
+
const networkDeviceRole: NetworkDeviceRole = new NetworkDeviceRole();
|
|
2075
|
+
networkDeviceRole.name = defaultRole.name;
|
|
2076
|
+
networkDeviceRole.key = defaultRole.key;
|
|
2077
|
+
networkDeviceRole.description = defaultRole.description;
|
|
2078
|
+
networkDeviceRole.topologyShape = defaultRole.topologyShape;
|
|
2079
|
+
networkDeviceRole.isCoreLayer = defaultRole.isCoreLayer;
|
|
2080
|
+
networkDeviceRole.isSnmpWalkable = defaultRole.isSnmpWalkable;
|
|
2081
|
+
networkDeviceRole.projectId = projectId;
|
|
2082
|
+
networkDeviceRole.order = index + 1;
|
|
2083
|
+
|
|
2084
|
+
await NetworkDeviceRoleService.create({
|
|
2085
|
+
data: networkDeviceRole,
|
|
2086
|
+
props: {
|
|
2087
|
+
isRoot: true,
|
|
2088
|
+
},
|
|
2089
|
+
});
|
|
2090
|
+
}
|
|
2091
|
+
|
|
2092
|
+
return createdItem;
|
|
2093
|
+
}
|
|
2094
|
+
|
|
2010
2095
|
private async addDefaultProjectTeams(createdItem: Model): Promise<Model> {
|
|
2011
2096
|
// add a team member.
|
|
2012
2097
|
|
|
@@ -9,6 +9,8 @@ import { Purple500 } from "../../Types/BrandColors";
|
|
|
9
9
|
import ObjectID from "../../Types/ObjectID";
|
|
10
10
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
11
11
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
12
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
13
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
12
14
|
|
|
13
15
|
class ProxmoxClusterLabelRuleEngineServiceClass {
|
|
14
16
|
/**
|
|
@@ -40,10 +42,16 @@ class ProxmoxClusterLabelRuleEngineServiceClass {
|
|
|
40
42
|
proxmoxClusterDescriptionPattern: true,
|
|
41
43
|
labelsToAdd: { _id: true },
|
|
42
44
|
},
|
|
43
|
-
limit:
|
|
45
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
44
46
|
skip: 0,
|
|
45
47
|
});
|
|
46
48
|
|
|
49
|
+
logIfRuleReadWasTruncated({
|
|
50
|
+
ruleKind: "ProxmoxClusterLabelRule",
|
|
51
|
+
projectId: proxmoxCluster.projectId,
|
|
52
|
+
rulesRead: rules.length,
|
|
53
|
+
});
|
|
54
|
+
|
|
47
55
|
if (rules.length === 0) {
|
|
48
56
|
return;
|
|
49
57
|
}
|
|
@@ -13,6 +13,8 @@ import { Purple500 } from "../../Types/BrandColors";
|
|
|
13
13
|
import ObjectID from "../../Types/ObjectID";
|
|
14
14
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
15
15
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
16
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
17
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
16
18
|
|
|
17
19
|
class ProxmoxClusterOwnerRuleEngineServiceClass {
|
|
18
20
|
/**
|
|
@@ -47,10 +49,16 @@ class ProxmoxClusterOwnerRuleEngineServiceClass {
|
|
|
47
49
|
ownerUsers: { _id: true },
|
|
48
50
|
ownerTeams: { _id: true },
|
|
49
51
|
},
|
|
50
|
-
limit:
|
|
52
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
51
53
|
skip: 0,
|
|
52
54
|
});
|
|
53
55
|
|
|
56
|
+
logIfRuleReadWasTruncated({
|
|
57
|
+
ruleKind: "ProxmoxClusterOwnerRule",
|
|
58
|
+
projectId: proxmoxCluster.projectId,
|
|
59
|
+
rulesRead: rules.length,
|
|
60
|
+
});
|
|
61
|
+
|
|
54
62
|
if (rules.length === 0) {
|
|
55
63
|
return;
|
|
56
64
|
}
|
|
@@ -6,6 +6,8 @@ import RumApplicationService from "./RumApplicationService";
|
|
|
6
6
|
import ObjectID from "../../Types/ObjectID";
|
|
7
7
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
8
8
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
9
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
10
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
9
11
|
|
|
10
12
|
class RumApplicationLabelRuleEngineServiceClass {
|
|
11
13
|
/**
|
|
@@ -37,10 +39,16 @@ class RumApplicationLabelRuleEngineServiceClass {
|
|
|
37
39
|
descriptionRegexPattern: true,
|
|
38
40
|
labelsToAdd: { _id: true },
|
|
39
41
|
},
|
|
40
|
-
limit:
|
|
42
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
41
43
|
skip: 0,
|
|
42
44
|
});
|
|
43
45
|
|
|
46
|
+
logIfRuleReadWasTruncated({
|
|
47
|
+
ruleKind: "RumApplicationLabelRule",
|
|
48
|
+
projectId: rumApplication.projectId,
|
|
49
|
+
rulesRead: rules.length,
|
|
50
|
+
});
|
|
51
|
+
|
|
44
52
|
if (rules.length === 0) {
|
|
45
53
|
return;
|
|
46
54
|
}
|
|
@@ -10,6 +10,8 @@ import RumApplicationService from "./RumApplicationService";
|
|
|
10
10
|
import ObjectID from "../../Types/ObjectID";
|
|
11
11
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
12
12
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
13
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
14
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
13
15
|
|
|
14
16
|
class RumApplicationOwnerRuleEngineServiceClass {
|
|
15
17
|
/**
|
|
@@ -43,10 +45,16 @@ class RumApplicationOwnerRuleEngineServiceClass {
|
|
|
43
45
|
ownerUsers: { _id: true },
|
|
44
46
|
ownerTeams: { _id: true },
|
|
45
47
|
},
|
|
46
|
-
limit:
|
|
48
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
47
49
|
skip: 0,
|
|
48
50
|
});
|
|
49
51
|
|
|
52
|
+
logIfRuleReadWasTruncated({
|
|
53
|
+
ruleKind: "RumApplicationOwnerRule",
|
|
54
|
+
projectId: rumApplication.projectId,
|
|
55
|
+
rulesRead: rules.length,
|
|
56
|
+
});
|
|
57
|
+
|
|
50
58
|
if (rules.length === 0) {
|
|
51
59
|
return;
|
|
52
60
|
}
|
|
@@ -6,6 +6,8 @@ import RunbookService from "./RunbookService";
|
|
|
6
6
|
import ObjectID from "../../Types/ObjectID";
|
|
7
7
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
8
8
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
9
|
+
import { MAX_RULES_EVALUATED_PER_PROJECT } from "../../Utils/Rules/RuleEngineLimits";
|
|
10
|
+
import logIfRuleReadWasTruncated from "../Utils/Rules/RuleEngineRuleRead";
|
|
9
11
|
|
|
10
12
|
class RunbookLabelRuleEngineServiceClass {
|
|
11
13
|
/**
|
|
@@ -35,10 +37,16 @@ class RunbookLabelRuleEngineServiceClass {
|
|
|
35
37
|
runbookDescriptionPattern: true,
|
|
36
38
|
labelsToAdd: { _id: true },
|
|
37
39
|
},
|
|
38
|
-
limit:
|
|
40
|
+
limit: MAX_RULES_EVALUATED_PER_PROJECT,
|
|
39
41
|
skip: 0,
|
|
40
42
|
});
|
|
41
43
|
|
|
44
|
+
logIfRuleReadWasTruncated({
|
|
45
|
+
ruleKind: "RunbookLabelRule",
|
|
46
|
+
projectId: runbook.projectId,
|
|
47
|
+
rulesRead: rules.length,
|
|
48
|
+
});
|
|
49
|
+
|
|
42
50
|
if (rules.length === 0) {
|
|
43
51
|
return;
|
|
44
52
|
}
|