@oneuptime/common 12.0.30 → 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 +2 -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/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/Index.ts +4 -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/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 +2 -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/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/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/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/EventOverlayHook.test.tsx +125 -0
- package/Tests/App/Dashboard/HeaderImageAssets.test.tsx +93 -0
- package/Tests/App/Dashboard/OnCallReadinessSurfaces.test.tsx +3 -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 +469 -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/Middleware/IdentityRateLimit.test.ts +1144 -0
- package/Tests/Server/Middleware/MultipartFormData.test.ts +618 -3
- 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/RuleEngineRuleFetchLimit.test.ts +239 -0
- package/Tests/Server/Services/TelemetrySourceMapService.test.ts +1210 -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/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/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/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/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/Date.ts +39 -0
- package/Types/Monitor/SnmpMonitor/SnmpOidListUtil.ts +333 -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 +2 -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/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/Index.js +4 -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/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 +2 -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/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/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/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/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
|
@@ -7,7 +7,6 @@ import AnalyticsTableColumn, {
|
|
|
7
7
|
} from "../../Types/AnalyticsDatabase/TableColumn";
|
|
8
8
|
import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
9
9
|
import { ColumnAccessControl } from "../../Types/BaseDatabase/AccessControl";
|
|
10
|
-
import OperationalResource from "../../Types/Database/AccessControl/OperationalResource";
|
|
11
10
|
import OwnedThrough from "../../Types/Database/AccessControl/OwnedThrough";
|
|
12
11
|
import { JSONObject } from "../../Types/JSON";
|
|
13
12
|
import ObjectID from "../../Types/ObjectID";
|
|
@@ -31,23 +30,41 @@ import ServiceType from "../../Types/Telemetry/ServiceType";
|
|
|
31
30
|
* ("everything mentioning this host") cheap.
|
|
32
31
|
*/
|
|
33
32
|
|
|
33
|
+
/*
|
|
34
|
+
* Security events read through the Security tiers and nothing broader.
|
|
35
|
+
*
|
|
36
|
+
* The layout mirrors Log, but the access list deliberately does not: Log names
|
|
37
|
+
* ProjectMember, the project-wide Viewer and the three Telemetry tiers, and if
|
|
38
|
+
* this table did the same then every principal in the project could read the
|
|
39
|
+
* SIEM. A Telemetry Admin is trusted with logs, metrics and traces; that is not
|
|
40
|
+
* the same decision as being trusted with authentication failures, privilege
|
|
41
|
+
* escalations and the detections written over them, and an organisation running
|
|
42
|
+
* a SIEM needs to be able to make the second decision separately from the first.
|
|
43
|
+
*
|
|
44
|
+
* ProjectOwner and ProjectAdmin stay so a project is never locked out of its own
|
|
45
|
+
* data - they are the principals who can grant the Security tiers in the first
|
|
46
|
+
* place, so excluding them would only mean nobody could open the door.
|
|
47
|
+
*/
|
|
34
48
|
const readPermissions: Array<Permission> = [
|
|
35
49
|
Permission.ProjectOwner,
|
|
36
50
|
Permission.ProjectAdmin,
|
|
37
|
-
Permission.
|
|
38
|
-
Permission.
|
|
39
|
-
Permission.
|
|
40
|
-
Permission.TelemetryMember,
|
|
41
|
-
Permission.TelemetryViewer,
|
|
51
|
+
Permission.SecurityAdmin,
|
|
52
|
+
Permission.SecurityMember,
|
|
53
|
+
Permission.SecurityViewer,
|
|
42
54
|
Permission.ReadSecurityEvent,
|
|
43
55
|
];
|
|
44
56
|
|
|
57
|
+
/*
|
|
58
|
+
* Rows normally arrive through the SecOps poller, the detection-rule evaluator
|
|
59
|
+
* and the threat-intel matcher, all of which insert as root and never reach
|
|
60
|
+
* this list. It gates the CRUD API only, which is why it stops at the tiers
|
|
61
|
+
* that administer the SIEM.
|
|
62
|
+
*/
|
|
45
63
|
const createPermissions: Array<Permission> = [
|
|
46
64
|
Permission.ProjectOwner,
|
|
47
65
|
Permission.ProjectAdmin,
|
|
48
|
-
Permission.
|
|
49
|
-
Permission.
|
|
50
|
-
Permission.TelemetryMember,
|
|
66
|
+
Permission.SecurityAdmin,
|
|
67
|
+
Permission.SecurityMember,
|
|
51
68
|
Permission.CreateSecurityEvent,
|
|
52
69
|
];
|
|
53
70
|
|
|
@@ -149,7 +166,19 @@ function arrayTextColumn(
|
|
|
149
166
|
});
|
|
150
167
|
}
|
|
151
168
|
|
|
152
|
-
|
|
169
|
+
/*
|
|
170
|
+
* Not @OperationalResource, which Log and Span both are.
|
|
171
|
+
*
|
|
172
|
+
* That decorator's only effect on an analytics model is to widen the table's
|
|
173
|
+
* permission list with the *AllOperationalResources wildcards - the grant whose
|
|
174
|
+
* own description reads "all operational resources in this project (Monitor,
|
|
175
|
+
* Incident, Alert, StatusPage, etc.)". Nobody handing that to an integration is
|
|
176
|
+
* deciding to hand it the SIEM, and leaving it on would have left one door open
|
|
177
|
+
* behind the Security tiers.
|
|
178
|
+
*
|
|
179
|
+
* @OwnedThrough stays: owned-scope filtering keys off it alone, so a Security
|
|
180
|
+
* role granted with scope=Owned still narrows to the services it owns.
|
|
181
|
+
*/
|
|
153
182
|
@OwnedThrough("primaryEntityId", Service, { includeProjectScope: true })
|
|
154
183
|
export default class SecurityEvent extends AnalyticsBaseModel {
|
|
155
184
|
public constructor() {
|
|
@@ -450,17 +479,20 @@ export default class SecurityEvent extends AnalyticsBaseModel {
|
|
|
450
479
|
update: [
|
|
451
480
|
Permission.ProjectOwner,
|
|
452
481
|
Permission.ProjectAdmin,
|
|
453
|
-
Permission.
|
|
454
|
-
Permission.
|
|
455
|
-
Permission.TelemetryMember,
|
|
482
|
+
Permission.SecurityAdmin,
|
|
483
|
+
Permission.SecurityMember,
|
|
456
484
|
Permission.EditSecurityEvent,
|
|
457
485
|
],
|
|
486
|
+
/*
|
|
487
|
+
* Deleting a security event destroys the record of something that
|
|
488
|
+
* happened, which is the one thing a SIEM exists to keep. It sits on
|
|
489
|
+
* the Admin tier rather than Member for the same reason the retention
|
|
490
|
+
* policy does.
|
|
491
|
+
*/
|
|
458
492
|
delete: [
|
|
459
493
|
Permission.ProjectOwner,
|
|
460
494
|
Permission.ProjectAdmin,
|
|
461
|
-
Permission.
|
|
462
|
-
Permission.TelemetryAdmin,
|
|
463
|
-
Permission.TelemetryMember,
|
|
495
|
+
Permission.SecurityAdmin,
|
|
464
496
|
Permission.DeleteSecurityEvent,
|
|
465
497
|
],
|
|
466
498
|
},
|
|
@@ -30,14 +30,18 @@ import Permission from "../../Types/Permission";
|
|
|
30
30
|
* lazy garbage collection, not expiry enforcement.
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
|
+
/*
|
|
34
|
+
* Indicators read through the Security tiers, like every other SIEM table.
|
|
35
|
+
* Which IOCs a project subscribes to is itself intelligence about what it is
|
|
36
|
+
* defending against, so it follows the security events it is matched against
|
|
37
|
+
* rather than the telemetry it sits beside in ClickHouse.
|
|
38
|
+
*/
|
|
33
39
|
const readPermissions: Array<Permission> = [
|
|
34
40
|
Permission.ProjectOwner,
|
|
35
41
|
Permission.ProjectAdmin,
|
|
36
|
-
Permission.
|
|
37
|
-
Permission.
|
|
38
|
-
Permission.
|
|
39
|
-
Permission.TelemetryMember,
|
|
40
|
-
Permission.TelemetryViewer,
|
|
42
|
+
Permission.SecurityAdmin,
|
|
43
|
+
Permission.SecurityMember,
|
|
44
|
+
Permission.SecurityViewer,
|
|
41
45
|
Permission.ReadProjectThreatIntelFeed,
|
|
42
46
|
];
|
|
43
47
|
|
|
@@ -258,6 +262,7 @@ export default class ThreatIntelIndicator extends AnalyticsBaseModel {
|
|
|
258
262
|
delete: [
|
|
259
263
|
Permission.ProjectOwner,
|
|
260
264
|
Permission.ProjectAdmin,
|
|
265
|
+
Permission.SecurityAdmin,
|
|
261
266
|
Permission.DeleteProjectThreatIntelFeed,
|
|
262
267
|
],
|
|
263
268
|
},
|
|
@@ -33,6 +33,14 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
33
33
|
})
|
|
34
34
|
@EnableDocumentation()
|
|
35
35
|
@EnableMCP()
|
|
36
|
+
/*
|
|
37
|
+
* The Security tiers read this table but hold none of the alert permissions.
|
|
38
|
+
* A Sigma detection rule and a threat-intel feed each choose the severity of
|
|
39
|
+
* the alert they open, so the SIEM's own forms select from here; without the
|
|
40
|
+
* read grant the dropdown 500s and the rule cannot be configured at all.
|
|
41
|
+
* Read-only, and only on the severity list itself - it says nothing about
|
|
42
|
+
* which alerts a Security role may see.
|
|
43
|
+
*/
|
|
36
44
|
@TenantColumn("projectId")
|
|
37
45
|
@TableAccessControl({
|
|
38
46
|
create: [
|
|
@@ -49,6 +57,9 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
49
57
|
Permission.AlertAdmin,
|
|
50
58
|
Permission.AlertMember,
|
|
51
59
|
Permission.AlertViewer,
|
|
60
|
+
Permission.SecurityAdmin,
|
|
61
|
+
Permission.SecurityMember,
|
|
62
|
+
Permission.SecurityViewer,
|
|
52
63
|
Permission.ReadAlertSeverity,
|
|
53
64
|
],
|
|
54
65
|
delete: [
|
|
@@ -100,6 +111,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
100
111
|
Permission.AlertAdmin,
|
|
101
112
|
Permission.AlertMember,
|
|
102
113
|
Permission.AlertViewer,
|
|
114
|
+
Permission.SecurityAdmin,
|
|
115
|
+
Permission.SecurityMember,
|
|
116
|
+
Permission.SecurityViewer,
|
|
103
117
|
Permission.ReadAlertSeverity,
|
|
104
118
|
],
|
|
105
119
|
update: [],
|
|
@@ -143,6 +157,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
143
157
|
Permission.AlertAdmin,
|
|
144
158
|
Permission.AlertMember,
|
|
145
159
|
Permission.AlertViewer,
|
|
160
|
+
Permission.SecurityAdmin,
|
|
161
|
+
Permission.SecurityMember,
|
|
162
|
+
Permission.SecurityViewer,
|
|
146
163
|
Permission.ReadAlertSeverity,
|
|
147
164
|
],
|
|
148
165
|
update: [],
|
|
@@ -178,6 +195,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
178
195
|
Permission.AlertAdmin,
|
|
179
196
|
Permission.AlertMember,
|
|
180
197
|
Permission.AlertViewer,
|
|
198
|
+
Permission.SecurityAdmin,
|
|
199
|
+
Permission.SecurityMember,
|
|
200
|
+
Permission.SecurityViewer,
|
|
181
201
|
Permission.ReadAlertSeverity,
|
|
182
202
|
],
|
|
183
203
|
update: [
|
|
@@ -213,6 +233,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
213
233
|
Permission.AlertAdmin,
|
|
214
234
|
Permission.AlertMember,
|
|
215
235
|
Permission.AlertViewer,
|
|
236
|
+
Permission.SecurityAdmin,
|
|
237
|
+
Permission.SecurityMember,
|
|
238
|
+
Permission.SecurityViewer,
|
|
216
239
|
Permission.ReadAlertSeverity,
|
|
217
240
|
],
|
|
218
241
|
update: [],
|
|
@@ -247,6 +270,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
247
270
|
Permission.AlertAdmin,
|
|
248
271
|
Permission.AlertMember,
|
|
249
272
|
Permission.AlertViewer,
|
|
273
|
+
Permission.SecurityAdmin,
|
|
274
|
+
Permission.SecurityMember,
|
|
275
|
+
Permission.SecurityViewer,
|
|
250
276
|
Permission.ReadAlertSeverity,
|
|
251
277
|
],
|
|
252
278
|
update: [
|
|
@@ -286,6 +312,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
286
312
|
Permission.AlertAdmin,
|
|
287
313
|
Permission.AlertMember,
|
|
288
314
|
Permission.AlertViewer,
|
|
315
|
+
Permission.SecurityAdmin,
|
|
316
|
+
Permission.SecurityMember,
|
|
317
|
+
Permission.SecurityViewer,
|
|
289
318
|
Permission.ReadAlertSeverity,
|
|
290
319
|
],
|
|
291
320
|
update: [],
|
|
@@ -327,6 +356,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
327
356
|
Permission.AlertAdmin,
|
|
328
357
|
Permission.AlertMember,
|
|
329
358
|
Permission.AlertViewer,
|
|
359
|
+
Permission.SecurityAdmin,
|
|
360
|
+
Permission.SecurityMember,
|
|
361
|
+
Permission.SecurityViewer,
|
|
330
362
|
Permission.ReadAlertSeverity,
|
|
331
363
|
],
|
|
332
364
|
update: [],
|
|
@@ -354,6 +386,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
354
386
|
Permission.AlertAdmin,
|
|
355
387
|
Permission.AlertMember,
|
|
356
388
|
Permission.AlertViewer,
|
|
389
|
+
Permission.SecurityAdmin,
|
|
390
|
+
Permission.SecurityMember,
|
|
391
|
+
Permission.SecurityViewer,
|
|
357
392
|
Permission.ReadAlertSeverity,
|
|
358
393
|
],
|
|
359
394
|
update: [],
|
|
@@ -391,6 +426,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
391
426
|
Permission.AlertAdmin,
|
|
392
427
|
Permission.AlertMember,
|
|
393
428
|
Permission.AlertViewer,
|
|
429
|
+
Permission.SecurityAdmin,
|
|
430
|
+
Permission.SecurityMember,
|
|
431
|
+
Permission.SecurityViewer,
|
|
394
432
|
Permission.ReadAlertSeverity,
|
|
395
433
|
],
|
|
396
434
|
update: [],
|
|
@@ -423,6 +461,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
423
461
|
Permission.AlertAdmin,
|
|
424
462
|
Permission.AlertMember,
|
|
425
463
|
Permission.AlertViewer,
|
|
464
|
+
Permission.SecurityAdmin,
|
|
465
|
+
Permission.SecurityMember,
|
|
466
|
+
Permission.SecurityViewer,
|
|
426
467
|
Permission.ReadAlertSeverity,
|
|
427
468
|
],
|
|
428
469
|
update: [
|
|
@@ -466,6 +507,9 @@ export default class AlertSeverity extends BaseModel {
|
|
|
466
507
|
Permission.AlertAdmin,
|
|
467
508
|
Permission.AlertMember,
|
|
468
509
|
Permission.AlertViewer,
|
|
510
|
+
Permission.SecurityAdmin,
|
|
511
|
+
Permission.SecurityMember,
|
|
512
|
+
Permission.SecurityViewer,
|
|
469
513
|
Permission.ReadAlertSeverity,
|
|
470
514
|
],
|
|
471
515
|
update: [
|
|
@@ -22,26 +22,35 @@ import Permission from "../../Types/Permission";
|
|
|
22
22
|
import { PlanType } from "../../Types/Billing/SubscriptionPlan";
|
|
23
23
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
24
24
|
|
|
25
|
+
/*
|
|
26
|
+
* Part of the SIEM, so it reads and is administered through the Security
|
|
27
|
+
* tiers rather than the Telemetry ones it used to share a list with. A
|
|
28
|
+
* detection rule and a threat-intel subscription describe what a project is
|
|
29
|
+
* watching for and what it believes it is up against, which is security
|
|
30
|
+
* posture rather than observability configuration.
|
|
31
|
+
*/
|
|
25
32
|
const createPermissions: Array<Permission> = [
|
|
26
33
|
Permission.ProjectOwner,
|
|
27
34
|
Permission.ProjectAdmin,
|
|
35
|
+
Permission.SecurityAdmin,
|
|
36
|
+
Permission.SecurityMember,
|
|
28
37
|
Permission.CreateProjectDetectionRule,
|
|
29
38
|
];
|
|
30
39
|
|
|
31
40
|
const readPermissions: Array<Permission> = [
|
|
32
41
|
Permission.ProjectOwner,
|
|
33
42
|
Permission.ProjectAdmin,
|
|
34
|
-
Permission.
|
|
35
|
-
Permission.
|
|
36
|
-
Permission.
|
|
37
|
-
Permission.TelemetryMember,
|
|
38
|
-
Permission.TelemetryViewer,
|
|
43
|
+
Permission.SecurityAdmin,
|
|
44
|
+
Permission.SecurityMember,
|
|
45
|
+
Permission.SecurityViewer,
|
|
39
46
|
Permission.ReadProjectDetectionRule,
|
|
40
47
|
];
|
|
41
48
|
|
|
42
49
|
const updatePermissions: Array<Permission> = [
|
|
43
50
|
Permission.ProjectOwner,
|
|
44
51
|
Permission.ProjectAdmin,
|
|
52
|
+
Permission.SecurityAdmin,
|
|
53
|
+
Permission.SecurityMember,
|
|
45
54
|
Permission.EditProjectDetectionRule,
|
|
46
55
|
];
|
|
47
56
|
|
|
@@ -84,6 +93,8 @@ const updatePermissions: Array<Permission> = [
|
|
|
84
93
|
delete: [
|
|
85
94
|
Permission.ProjectOwner,
|
|
86
95
|
Permission.ProjectAdmin,
|
|
96
|
+
Permission.SecurityAdmin,
|
|
97
|
+
Permission.SecurityMember,
|
|
87
98
|
Permission.DeleteProjectDetectionRule,
|
|
88
99
|
],
|
|
89
100
|
update: updatePermissions,
|
|
@@ -19,19 +19,28 @@ import Permission from "../../Types/Permission";
|
|
|
19
19
|
import { PlanType } from "../../Types/Billing/SubscriptionPlan";
|
|
20
20
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
21
21
|
|
|
22
|
+
/*
|
|
23
|
+
* Configuring the connector means pointing the project at someone's Chronicle
|
|
24
|
+
* instance and holding the service-account key that reads it, so it stays on
|
|
25
|
+
* the Admin tiers. SecurityAdmin joins them: this is the SIEM's own plumbing,
|
|
26
|
+
* and the role that runs the SIEM is the one that should be able to connect it
|
|
27
|
+
* to a source without also being a project administrator.
|
|
28
|
+
*
|
|
29
|
+
* The key itself is not covered by any of these - serviceAccountJson declares
|
|
30
|
+
* `read: []` and is never returned by the API.
|
|
31
|
+
*/
|
|
22
32
|
const adminPermissions: Array<Permission> = [
|
|
23
33
|
Permission.ProjectOwner,
|
|
24
34
|
Permission.ProjectAdmin,
|
|
35
|
+
Permission.SecurityAdmin,
|
|
25
36
|
];
|
|
26
37
|
|
|
27
38
|
const readPermissions: Array<Permission> = [
|
|
28
39
|
Permission.ProjectOwner,
|
|
29
40
|
Permission.ProjectAdmin,
|
|
30
|
-
Permission.
|
|
31
|
-
Permission.
|
|
32
|
-
Permission.
|
|
33
|
-
Permission.TelemetryMember,
|
|
34
|
-
Permission.TelemetryViewer,
|
|
41
|
+
Permission.SecurityAdmin,
|
|
42
|
+
Permission.SecurityMember,
|
|
43
|
+
Permission.SecurityViewer,
|
|
35
44
|
];
|
|
36
45
|
|
|
37
46
|
/*
|
|
@@ -33,6 +33,14 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
33
33
|
})
|
|
34
34
|
@EnableDocumentation()
|
|
35
35
|
@EnableMCP()
|
|
36
|
+
/*
|
|
37
|
+
* The Security tiers read this table but hold none of the incident permissions.
|
|
38
|
+
* A Sigma detection rule and a threat-intel feed each choose the severity of
|
|
39
|
+
* the incident they open, so the SIEM's own forms select from here; without the
|
|
40
|
+
* read grant the dropdown 500s and the rule cannot be configured at all.
|
|
41
|
+
* Read-only, and only on the severity list itself - it says nothing about
|
|
42
|
+
* which incidents a Security role may see.
|
|
43
|
+
*/
|
|
36
44
|
@TenantColumn("projectId")
|
|
37
45
|
@TableAccessControl({
|
|
38
46
|
create: [
|
|
@@ -49,6 +57,9 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
49
57
|
Permission.IncidentAdmin,
|
|
50
58
|
Permission.IncidentMember,
|
|
51
59
|
Permission.IncidentViewer,
|
|
60
|
+
Permission.SecurityAdmin,
|
|
61
|
+
Permission.SecurityMember,
|
|
62
|
+
Permission.SecurityViewer,
|
|
52
63
|
Permission.ReadIncidentSeverity,
|
|
53
64
|
],
|
|
54
65
|
delete: [
|
|
@@ -100,6 +111,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
100
111
|
Permission.IncidentAdmin,
|
|
101
112
|
Permission.IncidentMember,
|
|
102
113
|
Permission.IncidentViewer,
|
|
114
|
+
Permission.SecurityAdmin,
|
|
115
|
+
Permission.SecurityMember,
|
|
116
|
+
Permission.SecurityViewer,
|
|
103
117
|
Permission.ReadIncidentSeverity,
|
|
104
118
|
],
|
|
105
119
|
update: [],
|
|
@@ -143,6 +157,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
143
157
|
Permission.IncidentAdmin,
|
|
144
158
|
Permission.IncidentMember,
|
|
145
159
|
Permission.IncidentViewer,
|
|
160
|
+
Permission.SecurityAdmin,
|
|
161
|
+
Permission.SecurityMember,
|
|
162
|
+
Permission.SecurityViewer,
|
|
146
163
|
Permission.ReadIncidentSeverity,
|
|
147
164
|
],
|
|
148
165
|
update: [],
|
|
@@ -178,6 +195,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
178
195
|
Permission.IncidentAdmin,
|
|
179
196
|
Permission.IncidentMember,
|
|
180
197
|
Permission.IncidentViewer,
|
|
198
|
+
Permission.SecurityAdmin,
|
|
199
|
+
Permission.SecurityMember,
|
|
200
|
+
Permission.SecurityViewer,
|
|
181
201
|
Permission.ReadIncidentSeverity,
|
|
182
202
|
],
|
|
183
203
|
update: [
|
|
@@ -213,6 +233,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
213
233
|
Permission.IncidentAdmin,
|
|
214
234
|
Permission.IncidentMember,
|
|
215
235
|
Permission.IncidentViewer,
|
|
236
|
+
Permission.SecurityAdmin,
|
|
237
|
+
Permission.SecurityMember,
|
|
238
|
+
Permission.SecurityViewer,
|
|
216
239
|
Permission.ReadIncidentSeverity,
|
|
217
240
|
],
|
|
218
241
|
update: [],
|
|
@@ -247,6 +270,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
247
270
|
Permission.IncidentAdmin,
|
|
248
271
|
Permission.IncidentMember,
|
|
249
272
|
Permission.IncidentViewer,
|
|
273
|
+
Permission.SecurityAdmin,
|
|
274
|
+
Permission.SecurityMember,
|
|
275
|
+
Permission.SecurityViewer,
|
|
250
276
|
Permission.ReadIncidentSeverity,
|
|
251
277
|
],
|
|
252
278
|
update: [
|
|
@@ -286,6 +312,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
286
312
|
Permission.IncidentAdmin,
|
|
287
313
|
Permission.IncidentMember,
|
|
288
314
|
Permission.IncidentViewer,
|
|
315
|
+
Permission.SecurityAdmin,
|
|
316
|
+
Permission.SecurityMember,
|
|
317
|
+
Permission.SecurityViewer,
|
|
289
318
|
Permission.ReadIncidentSeverity,
|
|
290
319
|
],
|
|
291
320
|
update: [],
|
|
@@ -327,6 +356,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
327
356
|
Permission.IncidentAdmin,
|
|
328
357
|
Permission.IncidentMember,
|
|
329
358
|
Permission.IncidentViewer,
|
|
359
|
+
Permission.SecurityAdmin,
|
|
360
|
+
Permission.SecurityMember,
|
|
361
|
+
Permission.SecurityViewer,
|
|
330
362
|
Permission.ReadIncidentSeverity,
|
|
331
363
|
],
|
|
332
364
|
update: [],
|
|
@@ -354,6 +386,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
354
386
|
Permission.IncidentAdmin,
|
|
355
387
|
Permission.IncidentMember,
|
|
356
388
|
Permission.IncidentViewer,
|
|
389
|
+
Permission.SecurityAdmin,
|
|
390
|
+
Permission.SecurityMember,
|
|
391
|
+
Permission.SecurityViewer,
|
|
357
392
|
Permission.ReadIncidentSeverity,
|
|
358
393
|
],
|
|
359
394
|
update: [],
|
|
@@ -391,6 +426,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
391
426
|
Permission.IncidentAdmin,
|
|
392
427
|
Permission.IncidentMember,
|
|
393
428
|
Permission.IncidentViewer,
|
|
429
|
+
Permission.SecurityAdmin,
|
|
430
|
+
Permission.SecurityMember,
|
|
431
|
+
Permission.SecurityViewer,
|
|
394
432
|
Permission.ReadIncidentSeverity,
|
|
395
433
|
],
|
|
396
434
|
update: [],
|
|
@@ -423,6 +461,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
423
461
|
Permission.IncidentAdmin,
|
|
424
462
|
Permission.IncidentMember,
|
|
425
463
|
Permission.IncidentViewer,
|
|
464
|
+
Permission.SecurityAdmin,
|
|
465
|
+
Permission.SecurityMember,
|
|
466
|
+
Permission.SecurityViewer,
|
|
426
467
|
Permission.ReadIncidentSeverity,
|
|
427
468
|
],
|
|
428
469
|
update: [
|
|
@@ -466,6 +507,9 @@ export default class IncidentSeverity extends BaseModel {
|
|
|
466
507
|
Permission.IncidentAdmin,
|
|
467
508
|
Permission.IncidentMember,
|
|
468
509
|
Permission.IncidentViewer,
|
|
510
|
+
Permission.SecurityAdmin,
|
|
511
|
+
Permission.SecurityMember,
|
|
512
|
+
Permission.SecurityViewer,
|
|
469
513
|
Permission.ReadIncidentSeverity,
|
|
470
514
|
],
|
|
471
515
|
update: [
|
|
@@ -12,6 +12,7 @@ import NetworkDeviceOwnerUser from "./NetworkDeviceOwnerUser";
|
|
|
12
12
|
import NetworkDeviceOwnerRule from "./NetworkDeviceOwnerRule";
|
|
13
13
|
import NetworkDeviceLabelRule from "./NetworkDeviceLabelRule";
|
|
14
14
|
import NetworkDeviceAutoImportRule from "./NetworkDeviceAutoImportRule";
|
|
15
|
+
import NetworkDeviceOidTemplate from "./NetworkDeviceOidTemplate";
|
|
15
16
|
import NetworkDeviceDiscoveryScan from "./NetworkDeviceDiscoveryScan";
|
|
16
17
|
import NetworkInterface from "./NetworkInterface";
|
|
17
18
|
import NetworkSite from "./NetworkSite";
|
|
@@ -878,6 +879,7 @@ const AllModelTypes: Array<{
|
|
|
878
879
|
NetworkDeviceOwnerRule,
|
|
879
880
|
NetworkDeviceLabelRule,
|
|
880
881
|
NetworkDeviceAutoImportRule,
|
|
882
|
+
NetworkDeviceOidTemplate,
|
|
881
883
|
NetworkDeviceDiscoveryScan,
|
|
882
884
|
NetworkInterface,
|
|
883
885
|
NetworkSite,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Label from "./Label";
|
|
2
2
|
import Monitor from "./Monitor";
|
|
3
3
|
import MonitorStatus from "./MonitorStatus";
|
|
4
|
+
import NetworkDeviceOidTemplate from "./NetworkDeviceOidTemplate";
|
|
4
5
|
import NetworkSite from "./NetworkSite";
|
|
5
6
|
import Probe from "./Probe";
|
|
6
7
|
import Project from "./Project";
|
|
@@ -116,6 +117,18 @@ import {
|
|
|
116
117
|
* free to maintain and the alternative is a full scan per rollup.
|
|
117
118
|
*/
|
|
118
119
|
@Index(["projectId", "siteId"])
|
|
120
|
+
/*
|
|
121
|
+
* "Which devices use this OID Collection Template?" - the count on the
|
|
122
|
+
* template page, the Template column's filter on the device list, and the
|
|
123
|
+
* FK's own ON DELETE SET NULL scan.
|
|
124
|
+
*
|
|
125
|
+
* Project-prefixed and composite, like every other index on this table and
|
|
126
|
+
* for the reason written at the top of this block: a bare column index on a
|
|
127
|
+
* nullable FK is one btree entry per row of the product's hottest table,
|
|
128
|
+
* paid on every poll, to serve queries that all carry a projectId anyway.
|
|
129
|
+
* This is the same shape siteId gets above, and deliberately so.
|
|
130
|
+
*/
|
|
131
|
+
@Index(["projectId", "oidTemplateId"])
|
|
119
132
|
/*
|
|
120
133
|
* The other half of the Overview's attention list: reachable devices with the
|
|
121
134
|
* most dark ports.
|
|
@@ -588,6 +601,103 @@ export default class NetworkDevice extends BaseModel {
|
|
|
588
601
|
})
|
|
589
602
|
public siteId?: ObjectID = undefined;
|
|
590
603
|
|
|
604
|
+
@ColumnAccessControl({
|
|
605
|
+
create: [
|
|
606
|
+
Permission.ProjectOwner,
|
|
607
|
+
Permission.ProjectAdmin,
|
|
608
|
+
Permission.ProjectMember,
|
|
609
|
+
Permission.SettingsAdmin,
|
|
610
|
+
Permission.SettingsMember,
|
|
611
|
+
Permission.CreateNetworkDevice,
|
|
612
|
+
],
|
|
613
|
+
read: [
|
|
614
|
+
Permission.ProjectOwner,
|
|
615
|
+
Permission.ProjectAdmin,
|
|
616
|
+
Permission.ProjectMember,
|
|
617
|
+
Permission.Viewer,
|
|
618
|
+
Permission.SettingsAdmin,
|
|
619
|
+
Permission.SettingsMember,
|
|
620
|
+
Permission.SettingsViewer,
|
|
621
|
+
Permission.ReadNetworkDevice,
|
|
622
|
+
],
|
|
623
|
+
update: [
|
|
624
|
+
Permission.ProjectOwner,
|
|
625
|
+
Permission.ProjectAdmin,
|
|
626
|
+
Permission.ProjectMember,
|
|
627
|
+
Permission.SettingsAdmin,
|
|
628
|
+
Permission.SettingsMember,
|
|
629
|
+
Permission.EditNetworkDevice,
|
|
630
|
+
],
|
|
631
|
+
})
|
|
632
|
+
@TableColumn({
|
|
633
|
+
manyToOneRelationColumn: "oidTemplateId",
|
|
634
|
+
type: TableColumnType.Entity,
|
|
635
|
+
modelType: NetworkDeviceOidTemplate,
|
|
636
|
+
title: "OID Collection Template",
|
|
637
|
+
description:
|
|
638
|
+
"The OID Collection Template this device collects, on top of any device-specific Health OIDs below. The link is live: editing the template changes what this device collects on its next poll.",
|
|
639
|
+
})
|
|
640
|
+
@ManyToOne(
|
|
641
|
+
() => {
|
|
642
|
+
return NetworkDeviceOidTemplate;
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
eager: false,
|
|
646
|
+
nullable: true,
|
|
647
|
+
onDelete: "SET NULL",
|
|
648
|
+
orphanedRowAction: "nullify",
|
|
649
|
+
},
|
|
650
|
+
)
|
|
651
|
+
@JoinColumn({ name: "oidTemplateId" })
|
|
652
|
+
public oidTemplate?: NetworkDeviceOidTemplate = undefined;
|
|
653
|
+
|
|
654
|
+
@ColumnAccessControl({
|
|
655
|
+
create: [
|
|
656
|
+
Permission.ProjectOwner,
|
|
657
|
+
Permission.ProjectAdmin,
|
|
658
|
+
Permission.ProjectMember,
|
|
659
|
+
Permission.SettingsAdmin,
|
|
660
|
+
Permission.SettingsMember,
|
|
661
|
+
Permission.CreateNetworkDevice,
|
|
662
|
+
],
|
|
663
|
+
read: [
|
|
664
|
+
Permission.ProjectOwner,
|
|
665
|
+
Permission.ProjectAdmin,
|
|
666
|
+
Permission.ProjectMember,
|
|
667
|
+
Permission.Viewer,
|
|
668
|
+
Permission.SettingsAdmin,
|
|
669
|
+
Permission.SettingsMember,
|
|
670
|
+
Permission.SettingsViewer,
|
|
671
|
+
Permission.ReadNetworkDevice,
|
|
672
|
+
],
|
|
673
|
+
update: [
|
|
674
|
+
Permission.ProjectOwner,
|
|
675
|
+
Permission.ProjectAdmin,
|
|
676
|
+
Permission.ProjectMember,
|
|
677
|
+
Permission.SettingsAdmin,
|
|
678
|
+
Permission.SettingsMember,
|
|
679
|
+
Permission.EditNetworkDevice,
|
|
680
|
+
],
|
|
681
|
+
})
|
|
682
|
+
/*
|
|
683
|
+
* No column-level index here on purpose - the composite
|
|
684
|
+
* (projectId, oidTemplateId) declared at the top of the class serves every
|
|
685
|
+
* reader. See the comment there.
|
|
686
|
+
*/
|
|
687
|
+
@TableColumn({
|
|
688
|
+
type: TableColumnType.ObjectID,
|
|
689
|
+
required: false,
|
|
690
|
+
canReadOnRelationQuery: true,
|
|
691
|
+
title: "OID Collection Template ID",
|
|
692
|
+
description: "ID of the OID Collection Template this device collects",
|
|
693
|
+
})
|
|
694
|
+
@Column({
|
|
695
|
+
type: ColumnType.ObjectID,
|
|
696
|
+
nullable: true,
|
|
697
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
698
|
+
})
|
|
699
|
+
public oidTemplateId?: ObjectID = undefined;
|
|
700
|
+
|
|
591
701
|
@ColumnAccessControl({
|
|
592
702
|
create: [],
|
|
593
703
|
read: [
|
|
@@ -1474,9 +1584,9 @@ export default class NetworkDevice extends BaseModel {
|
|
|
1474
1584
|
@TableColumn({
|
|
1475
1585
|
type: TableColumnType.JSON,
|
|
1476
1586
|
required: false,
|
|
1477
|
-
title: "Health OIDs",
|
|
1587
|
+
title: "Device-Specific Health OIDs",
|
|
1478
1588
|
description:
|
|
1479
|
-
"SNMP OIDs
|
|
1589
|
+
"SNMP OIDs collected on each poll for this device ALONE, on top of whatever its OID Collection Template collects. Values are recorded as metrics and can be alerted on through monitor criteria. If several devices need the same OID, put it on a template instead.",
|
|
1480
1590
|
})
|
|
1481
1591
|
@Column({
|
|
1482
1592
|
type: ColumnType.JSON,
|
|
@@ -1608,7 +1718,7 @@ export default class NetworkDevice extends BaseModel {
|
|
|
1608
1718
|
required: false,
|
|
1609
1719
|
title: "Last Walk Log",
|
|
1610
1720
|
description:
|
|
1611
|
-
"The previous poll's
|
|
1721
|
+
"The previous poll's interface counters. Kept so interface rates (bandwidth, utilization, errors/sec) can be computed as counter deltas between polls, and stores nothing else - the rest of the walk response has no reader and this column is rewritten on every poll of every device. Managed by the server.",
|
|
1612
1722
|
})
|
|
1613
1723
|
@Column({
|
|
1614
1724
|
type: ColumnType.JSON,
|