@oneuptime/common 12.0.24 → 12.0.26
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/Index.ts +2 -0
- package/Models/AnalyticsModels/Span.ts +101 -0
- package/Models/AnalyticsModels/ThreatIntelIndicator.ts +413 -0
- package/Models/DatabaseModels/AlertSeverity.ts +4 -1
- package/Models/DatabaseModels/CephClusterFeed.ts +625 -0
- package/Models/DatabaseModels/CloudResourceFeed.ts +625 -0
- package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +13 -0
- package/Models/DatabaseModels/DetectionRule.ts +9 -3
- package/Models/DatabaseModels/DockerHostFeed.ts +625 -0
- package/Models/DatabaseModels/DockerSwarmClusterFeed.ts +628 -0
- package/Models/DatabaseModels/GoogleSecOpsConnection.ts +9 -3
- package/Models/DatabaseModels/HostFeed.ts +625 -0
- package/Models/DatabaseModels/IncidentSeverity.ts +4 -1
- package/Models/DatabaseModels/Index.ts +22 -0
- package/Models/DatabaseModels/KubernetesClusterFeed.ts +628 -0
- package/Models/DatabaseModels/Monitor.ts +87 -0
- package/Models/DatabaseModels/NetworkDevice.ts +96 -5
- package/Models/DatabaseModels/NetworkDeviceAutoImportRule.ts +92 -6
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +301 -31
- package/Models/DatabaseModels/NetworkSite.ts +120 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +1 -0
- package/Models/DatabaseModels/PodmanHostFeed.ts +625 -0
- package/Models/DatabaseModels/ProxmoxClusterFeed.ts +626 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +67 -0
- package/Models/DatabaseModels/ServiceFeed.ts +625 -0
- package/Models/DatabaseModels/TelemetrySourceMap.ts +474 -0
- package/Models/DatabaseModels/ThreatIntelFeed.ts +758 -0
- package/Models/DatabaseModels/UserOnCallLog.ts +1 -0
- package/Models/DatabaseModels/UserTotpAuth.ts +1 -0
- package/Models/DatabaseModels/UserWebAuthn.ts +1 -0
- package/Server/API/AlertAPI.ts +23 -1
- package/Server/API/BaseAPI.ts +14 -27
- package/Server/API/IncidentAPI.ts +41 -1
- package/Server/API/IncidentEpisodeAPI.ts +23 -1
- package/Server/API/MicrosoftTeamsAPI.ts +31 -2
- package/Server/API/ScheduledMaintenanceAPI.ts +23 -1
- package/Server/API/SlackAPI.ts +48 -2
- package/Server/API/TelemetryAPI.ts +167 -42
- package/Server/API/UserOnCallLogTimelineAPI.ts +75 -61
- package/Server/API/UserTotpAuthAPI.ts +67 -1
- package/Server/API/UserWebAuthnAPI.ts +44 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.ts +57 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.ts +49 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.ts +129 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.ts +54 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.ts +64 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.ts +64 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.ts +72 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.ts +489 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +18 -0
- package/Server/Middleware/IdentityRateLimit.ts +53 -3
- package/Server/Middleware/SlackAuthorization.ts +96 -18
- package/Server/Services/AIService.ts +181 -41
- package/Server/Services/CephClusterFeedService.ts +99 -0
- package/Server/Services/CephClusterLabelRuleEngineService.ts +29 -0
- package/Server/Services/CephClusterOwnerRuleEngineService.ts +23 -0
- package/Server/Services/CephClusterOwnerTeamService.ts +129 -0
- package/Server/Services/CephClusterOwnerUserService.ts +123 -0
- package/Server/Services/CephClusterService.ts +223 -2
- package/Server/Services/CloudResourceFeedService.ts +99 -0
- package/Server/Services/CloudResourceLabelRuleEngineService.ts +30 -0
- package/Server/Services/CloudResourceOwnerRuleEngineService.ts +33 -0
- package/Server/Services/CloudResourceOwnerTeamService.ts +129 -0
- package/Server/Services/CloudResourceOwnerUserService.ts +123 -0
- package/Server/Services/CloudResourceService.ts +227 -2
- package/Server/Services/DatabaseService.ts +265 -0
- package/Server/Services/DockerHostFeedService.ts +99 -0
- package/Server/Services/DockerHostLabelRuleEngineService.ts +29 -0
- package/Server/Services/DockerHostOwnerRuleEngineService.ts +23 -0
- package/Server/Services/DockerHostOwnerTeamService.ts +129 -0
- package/Server/Services/DockerHostOwnerUserService.ts +123 -0
- package/Server/Services/DockerHostService.ts +227 -2
- package/Server/Services/DockerSwarmClusterFeedService.ts +102 -0
- package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +30 -0
- package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +24 -0
- package/Server/Services/DockerSwarmClusterOwnerTeamService.ts +133 -0
- package/Server/Services/DockerSwarmClusterOwnerUserService.ts +127 -0
- package/Server/Services/DockerSwarmClusterService.ts +229 -2
- package/Server/Services/EnterpriseLicenseService.ts +15 -7
- package/Server/Services/ExceptionAggregationService.ts +12 -2
- package/Server/Services/HostFeedService.ts +99 -0
- package/Server/Services/HostLabelRuleEngineService.ts +29 -0
- package/Server/Services/HostOwnerRuleEngineService.ts +23 -0
- package/Server/Services/HostOwnerTeamService.ts +129 -0
- package/Server/Services/HostOwnerUserService.ts +123 -0
- package/Server/Services/HostService.ts +215 -2
- package/Server/Services/IncidentService.ts +11 -0
- package/Server/Services/Index.ts +24 -0
- package/Server/Services/KubernetesClusterFeedService.ts +99 -0
- package/Server/Services/KubernetesClusterLabelRuleEngineService.ts +30 -0
- package/Server/Services/KubernetesClusterOwnerRuleEngineService.ts +24 -0
- package/Server/Services/KubernetesClusterOwnerTeamService.ts +133 -0
- package/Server/Services/KubernetesClusterOwnerUserService.ts +127 -0
- package/Server/Services/KubernetesClusterService.ts +231 -2
- package/Server/Services/LogAggregationService.ts +23 -280
- package/Server/Services/MetricAggregationService.ts +98 -1
- package/Server/Services/MonitorService.ts +177 -13
- package/Server/Services/MonitorTemplateService.ts +111 -0
- package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +777 -86
- package/Server/Services/NetworkDeviceAutoImportRuleService.ts +199 -16
- package/Server/Services/NetworkDeviceDiscoveryScanService.ts +1055 -14
- package/Server/Services/NetworkDeviceService.ts +750 -4
- package/Server/Services/NetworkInterfaceService.ts +415 -0
- package/Server/Services/NetworkSiteService.ts +485 -52
- package/Server/Services/PodmanHostFeedService.ts +99 -0
- package/Server/Services/PodmanHostLabelRuleEngineService.ts +29 -0
- package/Server/Services/PodmanHostOwnerRuleEngineService.ts +23 -0
- package/Server/Services/PodmanHostOwnerTeamService.ts +129 -0
- package/Server/Services/PodmanHostOwnerUserService.ts +123 -0
- package/Server/Services/PodmanHostService.ts +227 -2
- package/Server/Services/ProjectService.ts +16 -10
- package/Server/Services/ProxmoxClusterFeedService.ts +99 -0
- package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +30 -0
- package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +24 -0
- package/Server/Services/ProxmoxClusterOwnerTeamService.ts +131 -0
- package/Server/Services/ProxmoxClusterOwnerUserService.ts +124 -0
- package/Server/Services/ProxmoxClusterService.ts +225 -2
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +61 -0
- package/Server/Services/ServiceFeedService.ts +99 -0
- package/Server/Services/ServiceLabelRuleEngineService.ts +29 -0
- package/Server/Services/ServiceOwnerRuleEngineService.ts +26 -0
- package/Server/Services/ServiceOwnerTeamService.ts +129 -0
- package/Server/Services/ServiceOwnerUserService.ts +123 -0
- package/Server/Services/ServiceService.ts +227 -3
- package/Server/Services/StatusPageSubscriberService.ts +7 -0
- package/Server/Services/TelemetryAttributeService.ts +13 -3
- package/Server/Services/TelemetrySourceMapService.ts +307 -0
- package/Server/Services/ThreatIntelFeedService.ts +222 -0
- package/Server/Services/ThreatIntelIndicatorService.ts +428 -0
- package/Server/Services/TraceAggregationService.ts +101 -11
- package/Server/Services/UserService.ts +13 -6
- package/Server/Services/UserTwoFactorBackupCodeService.ts +127 -0
- package/Server/Services/UserWebhookService.ts +11 -2
- package/Server/Static/Brand/README.md +38 -0
- package/Server/Static/Brand/favicons/apple-touch-icon.png +0 -0
- package/Server/Static/Brand/favicons/favicon-16x16.png +0 -0
- package/Server/Static/Brand/favicons/favicon-32x32.png +0 -0
- package/Server/Static/Brand/favicons/favicon.ico +0 -0
- package/Server/Static/Brand/favicons/safari-pinned-tab.svg +31 -0
- package/Server/Static/Brand/hou-wb.svg +1 -0
- package/Server/Static/Brand/oneuptime-logo.svg +1 -0
- package/Server/Static/Brand/ou-wb.svg +1 -0
- package/Server/Static/Vendor/README.md +4 -0
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +13 -3
- package/Server/Types/Database/AggregateBy.ts +83 -0
- package/Server/Types/Database/AggregateResultUtil.ts +126 -0
- package/Server/Types/Database/JSONColumnQuery.ts +18 -0
- package/Server/Types/Database/QueryHelper.ts +40 -0
- package/Server/Types/Database/QueryUtil.ts +26 -0
- package/Server/Types/Workflow/Components/API/Utils.ts +10 -1
- package/Server/Types/Workflow/Components/JavaScript.ts +8 -0
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +9 -0
- package/Server/Utils/AI/SRE/InvestigationGrader.ts +18 -0
- package/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.ts +422 -0
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +176 -0
- package/Server/Utils/DataSource/HttpFetch.ts +18 -0
- package/Server/Utils/Database/RelationIdUtil.ts +42 -0
- package/Server/Utils/Marketing/MarketingEventUtil.ts +38 -9
- package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +34 -3
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +9 -1
- package/Server/Utils/Monitor/Criteria/SyntheticMonitor.ts +28 -10
- package/Server/Utils/Monitor/MonitorAlert.ts +541 -332
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +330 -64
- package/Server/Utils/Monitor/MonitorIncident.ts +640 -434
- package/Server/Utils/Monitor/MonitorResource.ts +226 -49
- package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +46 -3
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +23 -102
- package/Server/Utils/Monitor/PerEntityCriteriaFanOut.ts +329 -0
- package/Server/Utils/NetworkDevice/DeviceHealthAggregation.ts +427 -0
- package/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.ts +310 -0
- package/Server/Utils/OnCallNotificationContext.ts +686 -0
- package/Server/Utils/PrivateNetworkWebhookConfig.ts +549 -0
- package/Server/Utils/ResourceFeed/ResourceFeedUtil.ts +139 -0
- package/Server/Utils/Response.ts +11 -1
- package/Server/Utils/SSRFProtection.ts +230 -60
- package/Server/Utils/SecurityEvent/ConnectorErrorMessage.ts +106 -0
- package/Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts +84 -284
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +47 -20
- package/Server/Utils/SecurityEvent/SecurityEventAlerting.ts +318 -0
- package/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.ts +199 -0
- package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.ts +252 -0
- package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.ts +739 -0
- package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.ts +533 -0
- package/Server/Utils/StartServer.ts +83 -56
- package/Server/Utils/StatusPageSubscriberWebhook.ts +3 -0
- package/Server/Utils/Telemetry/LlmMetricSpend.ts +56 -5
- package/Server/Utils/Telemetry/LlmSpan.ts +46 -0
- package/Server/Utils/Telemetry/SourceMapResolver.ts +480 -0
- package/Server/Utils/TwoFactorBackupCodeNotification.ts +106 -0
- package/Server/Utils/VM/VMAPI.ts +3 -0
- package/Server/Utils/VM/VMRunner.ts +27 -1
- package/Server/Utils/VendorAssets.ts +42 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +136 -6
- package/Server/Utils/Workspace/Slack/Actions/Auth.ts +0 -12
- package/Server/Views/AcknowledgeUserOnCallNotification.ejs +11 -9
- package/Server/Views/Partials/Head.ejs +9 -9
- package/Server/Views/Partials/OnCallNotificationDetails.ejs +48 -0
- package/Server/Views/ViewMessage.ejs +11 -9
- package/Tests/App/Accounts/LoginTwoFactorRecovery.test.tsx +972 -0
- package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +401 -0
- package/Tests/App/Dashboard/DiscoveryScanEditForm.test.tsx +707 -0
- package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +1908 -18
- package/Tests/App/Dashboard/LlmCallsTableIdentity.test.tsx +322 -0
- package/Tests/App/Dashboard/LlmOverview.test.tsx +335 -0
- package/Tests/App/Dashboard/LlmSpanDisplay.test.ts +391 -0
- package/Tests/App/Dashboard/LlmUsageBreakdown.test.tsx +1007 -0
- package/Tests/App/Dashboard/ResourceFeed.test.tsx +230 -0
- package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +216 -0
- package/Tests/App/Dashboard/TopologyAddToMonitoring.test.tsx +192 -0
- package/Tests/App/Dashboard/WorkspaceNotificationRuleConditions.test.tsx +439 -0
- package/Tests/Models/DatabaseModels/DateColumnDeserialization.test.ts +182 -0
- package/Tests/Models/DatabaseModels/RelationColumnModelTypeCoverage.test.ts +82 -0
- package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +398 -0
- package/Tests/Models/DiscoveryScanNameColumn.test.ts +151 -16
- package/Tests/Models/DiscoveryScanSnmpEnabledColumn.test.ts +593 -0
- package/Tests/Models/NetworkDeviceCreateContract.test.ts +102 -0
- package/Tests/Server/API/AIGenerationProjectAIToggle.test.ts +607 -0
- package/Tests/Server/API/AIGenerationRequestBudget.test.ts +355 -0
- package/Tests/Server/API/AIKillSwitchBackstop.test.ts +602 -0
- package/Tests/Server/API/BaseAPI.test.ts +41 -0
- package/Tests/Server/API/BaseAPIUpdateDateColumns.test.ts +154 -0
- package/Tests/Server/API/BaseAPIUpdatePayloadValidation.test.ts +9 -16
- package/Tests/Server/API/MicrosoftTeamsBotTestEndpoint.test.ts +335 -0
- package/Tests/Server/API/UserOnCallLogTimelineAcknowledgePage.test.ts +611 -0
- package/Tests/Server/API/UserTotpAuthAPI.test.ts +498 -4
- package/Tests/Server/API/UserWebAuthnBackupCodeMinting.test.ts +682 -0
- package/Tests/Server/Infrastructure/ExampleDockerfiles.test.ts +595 -0
- package/Tests/Server/Middleware/SlackAuthorization.test.ts +262 -5
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +9 -0
- package/Tests/Server/Services/AIServiceProjectAccess.test.ts +6 -0
- package/Tests/Server/Services/AutoImportScanCredentialSelect.test.ts +18 -0
- package/Tests/Server/Services/DatabaseServiceAggregateBy.test.ts +590 -0
- package/Tests/Server/Services/DatabaseServiceUpdateWriteRouting.test.ts +12 -0
- package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +162 -26
- package/Tests/Server/Services/EnterpriseLicenseServiceCreate.test.ts +292 -0
- package/Tests/Server/Services/FeedRetentionConsistency.test.ts +119 -12
- package/Tests/Server/Services/LogAggregationAttributeOperators.test.ts +109 -0
- package/Tests/Server/Services/MetricAggregationAttributeOperators.test.ts +170 -0
- package/Tests/Server/Services/MonitorTemplateServiceNetworkDeviceSync.test.ts +383 -0
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +997 -3
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +830 -0
- package/Tests/Server/Services/NetworkDeviceAutoMonitorLifecycle.test.ts +528 -0
- package/Tests/Server/Services/NetworkDeviceDiscoveryScanService.test.ts +3141 -1
- package/Tests/Server/Services/NetworkDeviceRegisteredHostnames.test.ts +1023 -0
- package/Tests/Server/Services/NetworkDeviceSiteAssignmentRuleSkip.test.ts +728 -0
- package/Tests/Server/Services/NetworkInterfaceServiceUpsert.test.ts +795 -0
- package/Tests/Server/Services/NetworkSiteRollupPolicyAndMaintenance.test.ts +903 -0
- package/Tests/Server/Services/NetworkSiteService.test.ts +165 -24
- package/Tests/Server/Services/ProjectServiceChangePlan.test.ts +5 -3
- package/Tests/Server/Services/ProjectServiceCreateSubscriptionStarted.test.ts +5 -2
- package/Tests/Server/Services/ResourceCreationFeedWrites.test.ts +304 -0
- package/Tests/Server/Services/ResourceFeedServices.test.ts +269 -0
- package/Tests/Server/Services/ResourceOwnerFeedWrites.test.ts +245 -0
- package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +792 -0
- package/Tests/Server/Services/TelemetrySourceMapService.test.ts +483 -0
- package/Tests/Server/Services/ThreatIntelFeedService.test.ts +351 -0
- package/Tests/Server/Services/ThreatIntelIndicatorService.test.ts +366 -0
- package/Tests/Server/Services/TraceAggregationAttributeOperators.test.ts +507 -0
- package/Tests/Server/Services/UserTwoFactorBackupCodeGenerateIfNone.test.ts +705 -0
- package/Tests/Server/Services/WorkspaceNotificationRuleOnCallDutyPolicy.test.ts +306 -0
- package/Tests/Server/Types/Database/AggregateResultUtil.test.ts +386 -0
- package/Tests/Server/Types/Database/Permissions/SelectRejectionMessageContract.test.ts +424 -0
- package/Tests/Server/Types/Database/QueryHelperWildcard.test.ts +142 -0
- package/Tests/Server/Types/Workflow/Components/ApiComponentPrivateNetwork.test.ts +163 -0
- package/Tests/Server/Types/Workflow/Components/JavaScriptPrivateNetwork.test.ts +124 -0
- package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +5 -0
- package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +39 -1
- package/Tests/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.test.ts +338 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGeneratorWildcard.test.ts +383 -0
- package/Tests/Server/Utils/Marketing/EmittedMarketingEvent.ts +23 -0
- package/Tests/Server/Utils/Marketing/MarketingEventUtil.test.ts +51 -0
- package/Tests/Server/Utils/Monitor/Criteria/SyntheticMonitorCriteria.test.ts +259 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPerSeriesFanout.test.ts +557 -0
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +12 -2
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkLogWritePath.test.ts +404 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +8 -2
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +125 -98
- package/Tests/Server/Utils/Monitor/PerEntityCriteriaFanOut.test.ts +444 -0
- package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1112 -0
- package/Tests/Server/Utils/NetworkDevice/DeviceHealthAggregation.test.ts +717 -0
- package/Tests/Server/Utils/NetworkDevice/RulePatternValidator.test.ts +78 -0
- package/Tests/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.test.ts +363 -0
- package/Tests/Server/Utils/OfflineAssetHygiene.test.ts +35 -0
- package/Tests/Server/Utils/OnCallNotificationContext.test.ts +908 -0
- package/Tests/Server/Utils/PrivateNetworkWebhookConfig.test.ts +423 -0
- package/Tests/Server/Utils/ResourceFeed/ResourceFeedUtil.test.ts +191 -0
- package/Tests/Server/Utils/SSRFProtectionPrivateNetwork.test.ts +597 -0
- package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +819 -0
- package/Tests/Server/Utils/SecurityEvent/DetectionRuleEvaluator.test.ts +381 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +417 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +819 -0
- package/Tests/Server/Utils/SecurityEvent/SecurityEventAlerting.test.ts +246 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.test.ts +282 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.test.ts +312 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.test.ts +854 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.test.ts +437 -0
- package/Tests/Server/Utils/StartServerErrorStatus.test.ts +225 -0
- package/Tests/Server/Utils/StatusPage/MonitorRulePatternValidator.test.ts +62 -0
- package/Tests/Server/Utils/StatusPageSubscriberWebhookPrivateNetwork.test.ts +119 -0
- package/Tests/Server/Utils/Telemetry/LlmCostBudgetEvaluator.test.ts +37 -18
- package/Tests/Server/Utils/Telemetry/LlmMetricSpend.test.ts +143 -2
- package/Tests/Server/Utils/Telemetry/LlmSpan.test.ts +804 -0
- package/Tests/Server/Utils/Telemetry/SourceMapResolver.test.ts +542 -0
- package/Tests/Server/Utils/TwoFactorBackupCodeNotification.test.ts +272 -0
- package/Tests/Server/Utils/VM/VMRunnerPrivateNetworkWiring.test.ts +111 -0
- package/Tests/Server/Utils/VendorAssets.test.ts +117 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +101 -4
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsInstallStateDiagnostics.test.ts +922 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsRosterDiagnosticMessages.test.ts +642 -0
- package/Tests/Server/Views/OnCallAcknowledgePage.test.ts +430 -0
- package/Tests/Types/API/URLQueryString.test.ts +472 -0
- package/Tests/Types/BaseDatabase/Wildcard.test.ts +163 -0
- package/Tests/Types/BaseDatabase/WildcardPattern.test.ts +149 -0
- package/Tests/Types/Database/DateColumnValue.test.ts +265 -0
- package/Tests/Types/DateToIsoStringOrNull.test.ts +67 -0
- package/Tests/Types/Log/LogQueryToFilter.test.ts +218 -43
- package/Tests/Types/Monitor/KubernetesTemplateGroupByKeys.test.ts +225 -0
- package/Tests/Types/Monitor/TemplateGroupByKeys.test.ts +296 -0
- package/Tests/Types/NetworkAutomation/RuleRunResult.test.ts +102 -0
- package/Tests/Types/NetworkAutomation/RuleRunResultDescribe.test.ts +145 -0
- package/Tests/Types/NetworkSite/SiteHealthRollupPolicy.test.ts +58 -0
- package/Tests/Types/SerializableObjectDictionaryImportCycle.test.ts +15 -0
- package/Tests/Types/Telemetry/LlmMetricConventions.test.ts +391 -0
- package/Tests/Types/Telemetry/TelemetrySearchQuery.test.ts +620 -0
- package/Tests/Types/WhatsApp/WhatsAppTemplates.test.ts +110 -0
- package/Tests/Types/Workspace/NotificationRuleConditionUtil.test.ts +76 -6
- package/Tests/Types/Workspace/NotificationRules/NotificationRuleCondition.test.ts +16 -4
- package/Tests/Types/Workspace/NotificationRules/OnCallDutyPolicyConditions.test.ts +669 -0
- package/Tests/UI/Components/DictionaryFilterOperatorWildcard.test.ts +175 -0
- package/Tests/UI/Components/IconOpticalSize.test.tsx +377 -0
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardInstallGuidance.test.tsx +332 -0
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsInstallGuidanceContent.test.tsx +643 -0
- package/Tests/Utils/Monitor/InterfaceInventoryUtil.test.ts +824 -0
- package/Tests/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.test.ts +626 -0
- package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +718 -0
- package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +59 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +287 -2
- package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +73 -0
- package/Tests/Utils/NetworkDiscovery/PingMonitorBuilder.test.ts +317 -0
- package/Tests/Utils/NetworkDiscovery/RescanIntervalUtil.test.ts +262 -0
- package/Tests/Utils/NetworkDiscovery/ScanModeUtil.test.ts +474 -0
- package/Tests/Utils/NetworkDiscovery/SnmpScanConfigUtil.test.ts +2442 -0
- package/Tests/Utils/NetworkSite/SiteMaintenanceUtil.test.ts +188 -0
- package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +522 -0
- package/Tests/Utils/NetworkSite/SiteUptimeUtil.test.ts +694 -0
- package/Tests/Utils/SecurityEvent/ThreatIntel/StixPatternParser.test.ts +281 -0
- package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +87 -67
- package/Tests/Utils/Telemetry/LlmMetricQuery.test.ts +298 -0
- package/Types/API/URL.ts +45 -10
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +8 -0
- package/Types/BaseDatabase/NotWildcard.ts +86 -0
- package/Types/BaseDatabase/Wildcard.ts +89 -0
- package/Types/BaseDatabase/WildcardPattern.ts +176 -0
- package/Types/Database/DateColumnValue.ts +184 -0
- package/Types/Database/TableColumn.ts +40 -5
- package/Types/Date.ts +37 -0
- package/Types/Email/EmailTemplateType.ts +1 -0
- package/Types/JSON.ts +8 -0
- package/Types/Log/LogQueryToFilter.ts +167 -129
- package/Types/Monitor/DockerAlertTemplates.ts +43 -12
- package/Types/Monitor/HostAlertTemplates.ts +31 -3
- package/Types/Monitor/KubernetesAlertTemplates.ts +98 -0
- package/Types/Monitor/MonitorStep.ts +49 -0
- package/Types/Monitor/PodmanAlertTemplates.ts +39 -12
- package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +14 -0
- package/Types/Monitor/SnmpMonitor/LldpNeighbor.ts +11 -0
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +11 -4
- package/Types/NetworkAutomation/RuleRunResult.ts +191 -2
- package/Types/NetworkSite/SiteHealthRollupPolicy.ts +96 -0
- package/Types/Permission.ts +411 -0
- package/Types/Probe/ProbeApiIngestResponse.ts +42 -0
- package/Types/SecurityEvent/ThreatIntelConstants.ts +118 -0
- package/Types/SerializableObjectDictionary.ts +8 -0
- package/Types/Telemetry/LlmConventions.ts +255 -0
- package/Types/Telemetry/LlmMetricConventions.ts +212 -7
- package/Types/Telemetry/SourceMap.ts +56 -0
- package/Types/Telemetry/TelemetrySearchQuery.ts +949 -0
- package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +12 -1
- package/UI/Components/Dictionary/DictionaryFilterOperator.ts +83 -0
- package/UI/Components/Icon/Icon.tsx +28 -1
- package/UI/Components/LogsViewer/components/LogSearchBar.tsx +26 -4
- package/UI/Components/LogsViewer/components/LogSearchHelp.tsx +34 -16
- package/UI/Components/TelemetryViewer/components/TelemetrySearchBar.tsx +15 -2
- package/Utils/Metrics/MetricExplorerUrl.ts +77 -15
- package/Utils/Monitor/InterfaceInventoryUtil.ts +251 -0
- package/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.ts +333 -0
- package/Utils/Monitor/NetworkTopologyUtil.ts +249 -28
- package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +14 -6
- package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +2 -0
- package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +49 -18
- package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +215 -0
- package/Utils/NetworkDiscovery/RescanIntervalUtil.ts +148 -0
- package/Utils/NetworkDiscovery/ScanModeUtil.ts +105 -0
- package/Utils/NetworkDiscovery/SnmpScanConfigUtil.ts +827 -0
- package/Utils/NetworkSite/SiteMaintenanceUtil.ts +110 -0
- package/Utils/NetworkSite/SiteStatusRollupUtil.ts +350 -19
- package/Utils/NetworkSite/SiteUptimeUtil.ts +422 -21
- package/Utils/SecurityEvent/ThreatIntel/StixPatternParser.ts +383 -0
- package/Utils/Telemetry/CrossSignalScope.ts +37 -39
- package/Utils/Telemetry/LlmMetricQuery.ts +83 -0
- package/build/dist/Models/AnalyticsModels/Index.js +2 -0
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Span.js +89 -0
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js +325 -0
- package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +4 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephClusterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/CephClusterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CloudResourceFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/CloudResourceFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +11 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DetectionRule.js +9 -3
- package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHostFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/DockerHostFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +9 -3
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
- package/build/dist/Models/DatabaseModels/HostFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/HostFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +4 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +22 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/KubernetesClusterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Monitor.js +81 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +103 -7
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js +91 -6
- package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +276 -31
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSite.js +124 -1
- package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PodmanHostFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/PodmanHostFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +66 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/ServiceFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TelemetrySourceMap.js +496 -0
- package/build/dist/Models/DatabaseModels/TelemetrySourceMap.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js +800 -0
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserTotpAuth.js +1 -0
- package/build/dist/Models/DatabaseModels/UserTotpAuth.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js +1 -0
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
- package/build/dist/Server/API/AlertAPI.js +18 -1
- package/build/dist/Server/API/AlertAPI.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +11 -20
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentAPI.js +35 -1
- package/build/dist/Server/API/IncidentAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js +18 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +30 -2
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js +18 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +45 -2
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +100 -35
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +64 -59
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
- package/build/dist/Server/API/UserTotpAuthAPI.js +65 -1
- package/build/dist/Server/API/UserTotpAuthAPI.js.map +1 -1
- package/build/dist/Server/API/UserWebAuthnAPI.js +42 -1
- package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.js +88 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.js +39 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.js +61 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.js +23 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.js +179 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/IdentityRateLimit.js +40 -3
- package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
- package/build/dist/Server/Middleware/SlackAuthorization.js +58 -7
- package/build/dist/Server/Middleware/SlackAuthorization.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +177 -30
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterFeedService.js +89 -0
- package/build/dist/Server/Services/CephClusterFeedService.js.map +1 -0
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/CephClusterOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerUserService.js +113 -0
- package/build/dist/Server/Services/CephClusterOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterService.js +175 -1
- package/build/dist/Server/Services/CephClusterService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceFeedService.js +89 -0
- package/build/dist/Server/Services/CloudResourceFeedService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +28 -3
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/CloudResourceOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerUserService.js +113 -0
- package/build/dist/Server/Services/CloudResourceOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceService.js +177 -1
- package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +201 -0
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostFeedService.js +89 -0
- package/build/dist/Server/Services/DockerHostFeedService.js.map +1 -0
- package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/DockerHostOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerUserService.js +113 -0
- package/build/dist/Server/Services/DockerHostOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostService.js +177 -1
- package/build/dist/Server/Services/DockerHostService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterFeedService.js +90 -0
- package/build/dist/Server/Services/DockerSwarmClusterFeedService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js +113 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js +175 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
- package/build/dist/Server/Services/EnterpriseLicenseService.js +40 -30
- package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
- package/build/dist/Server/Services/ExceptionAggregationService.js +8 -2
- package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
- package/build/dist/Server/Services/HostFeedService.js +89 -0
- package/build/dist/Server/Services/HostFeedService.js.map +1 -0
- package/build/dist/Server/Services/HostLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/HostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/HostOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerUserService.js +113 -0
- package/build/dist/Server/Services/HostOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +175 -1
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +10 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +24 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterFeedService.js +89 -0
- package/build/dist/Server/Services/KubernetesClusterFeedService.js.map +1 -0
- package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js +113 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterService.js +177 -1
- package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +19 -196
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +59 -0
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +115 -13
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +86 -0
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +561 -67
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +130 -16
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js +850 -8
- package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceService.js +594 -5
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkInterfaceService.js +306 -0
- package/build/dist/Server/Services/NetworkInterfaceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteService.js +408 -47
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostFeedService.js +89 -0
- package/build/dist/Server/Services/PodmanHostFeedService.js.map +1 -0
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/PodmanHostOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerUserService.js +113 -0
- package/build/dist/Server/Services/PodmanHostOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostService.js +177 -1
- package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +40 -30
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterFeedService.js +89 -0
- package/build/dist/Server/Services/ProxmoxClusterFeedService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js +113 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterService.js +175 -1
- package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +56 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceFeedService.js +89 -0
- package/build/dist/Server/Services/ServiceFeedService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/ServiceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +24 -0
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/ServiceOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerUserService.js +113 -0
- package/build/dist/Server/Services/ServiceOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/ServiceService.js +173 -2
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageSubscriberService.js +7 -0
- package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryAttributeService.js +9 -3
- package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
- package/build/dist/Server/Services/TelemetrySourceMapService.js +265 -0
- package/build/dist/Server/Services/TelemetrySourceMapService.js.map +1 -0
- package/build/dist/Server/Services/ThreatIntelFeedService.js +157 -0
- package/build/dist/Server/Services/ThreatIntelFeedService.js.map +1 -0
- package/build/dist/Server/Services/ThreatIntelIndicatorService.js +276 -0
- package/build/dist/Server/Services/ThreatIntelIndicatorService.js.map +1 -0
- package/build/dist/Server/Services/TraceAggregationService.js +62 -6
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +22 -13
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js +120 -0
- package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js.map +1 -1
- package/build/dist/Server/Services/UserWebhookService.js +11 -2
- package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +12 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/AggregateBy.js +2 -0
- package/build/dist/Server/Types/Database/AggregateBy.js.map +1 -0
- package/build/dist/Server/Types/Database/AggregateResultUtil.js +90 -0
- package/build/dist/Server/Types/Database/AggregateResultUtil.js.map +1 -0
- package/build/dist/Server/Types/Database/JSONColumnQuery.js +14 -0
- package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +42 -0
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryUtil.js +18 -0
- package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Utils.js +10 -1
- package/build/dist/Server/Types/Workflow/Components/API/Utils.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/JavaScript.js +8 -0
- package/build/dist/Server/Types/Workflow/Components/JavaScript.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +8 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +15 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.js +266 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.js.map +1 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +134 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/DataSource/HttpFetch.js +8 -0
- package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
- package/build/dist/Server/Utils/Database/RelationIdUtil.js +31 -0
- package/build/dist/Server/Utils/Database/RelationIdUtil.js.map +1 -1
- package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js +26 -8
- package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +42 -17
- package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +9 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SyntheticMonitor.js +15 -2
- package/build/dist/Server/Utils/Monitor/Criteria/SyntheticMonitor.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +386 -271
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +278 -64
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +469 -350
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +183 -44
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +46 -3
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +18 -91
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/PerEntityCriteriaFanOut.js +194 -0
- package/build/dist/Server/Utils/Monitor/PerEntityCriteriaFanOut.js.map +1 -0
- package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +332 -0
- package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -0
- package/build/dist/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.js +279 -0
- package/build/dist/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.js.map +1 -0
- package/build/dist/Server/Utils/OnCallNotificationContext.js +415 -0
- package/build/dist/Server/Utils/OnCallNotificationContext.js.map +1 -0
- package/build/dist/Server/Utils/PrivateNetworkWebhookConfig.js +424 -0
- package/build/dist/Server/Utils/PrivateNetworkWebhookConfig.js.map +1 -0
- package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js +108 -0
- package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js.map +1 -0
- package/build/dist/Server/Utils/Response.js +12 -1
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/SSRFProtection.js +160 -58
- package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js +89 -0
- package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +75 -234
- package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +41 -16
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/SecurityEventAlerting.js +217 -0
- package/build/dist/Server/Utils/SecurityEvent/SecurityEventAlerting.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.js +103 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.js +168 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js +527 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js +376 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js.map +1 -0
- package/build/dist/Server/Utils/StartServer.js +70 -44
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js +3 -0
- package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/LlmMetricSpend.js +52 -3
- package/build/dist/Server/Utils/Telemetry/LlmMetricSpend.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/LlmSpan.js +24 -1
- package/build/dist/Server/Utils/Telemetry/LlmSpan.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js +327 -0
- package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js.map +1 -0
- package/build/dist/Server/Utils/TwoFactorBackupCodeNotification.js +84 -0
- package/build/dist/Server/Utils/TwoFactorBackupCodeNotification.js.map +1 -0
- package/build/dist/Server/Utils/VM/VMAPI.js.map +1 -1
- package/build/dist/Server/Utils/VM/VMRunner.js +10 -1
- package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
- package/build/dist/Server/Utils/VendorAssets.js +29 -0
- package/build/dist/Server/Utils/VendorAssets.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +121 -6
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js +0 -10
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js.map +1 -1
- package/build/dist/Types/API/URL.js +40 -10
- package/build/dist/Types/API/URL.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +8 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotWildcard.js +72 -0
- package/build/dist/Types/BaseDatabase/NotWildcard.js.map +1 -0
- package/build/dist/Types/BaseDatabase/Wildcard.js +75 -0
- package/build/dist/Types/BaseDatabase/Wildcard.js.map +1 -0
- package/build/dist/Types/BaseDatabase/WildcardPattern.js +137 -0
- package/build/dist/Types/BaseDatabase/WildcardPattern.js.map +1 -0
- package/build/dist/Types/Database/DateColumnValue.js +125 -0
- package/build/dist/Types/Database/DateColumnValue.js.map +1 -0
- package/build/dist/Types/Database/TableColumn.js +18 -2
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/Date.js +31 -0
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/JSON.js +2 -0
- package/build/dist/Types/JSON.js.map +1 -1
- package/build/dist/Types/Log/LogQueryToFilter.js +111 -108
- package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
- package/build/dist/Types/Monitor/DockerAlertTemplates.js +40 -16
- package/build/dist/Types/Monitor/DockerAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/HostAlertTemplates.js +29 -7
- package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +98 -4
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +40 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/PodmanAlertTemplates.js +36 -16
- package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -1
- package/build/dist/Types/NetworkAutomation/RuleRunResult.js +90 -0
- package/build/dist/Types/NetworkAutomation/RuleRunResult.js.map +1 -1
- package/build/dist/Types/NetworkSite/SiteHealthRollupPolicy.js +84 -0
- package/build/dist/Types/NetworkSite/SiteHealthRollupPolicy.js.map +1 -0
- package/build/dist/Types/Permission.js +354 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js +100 -0
- package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js.map +1 -0
- package/build/dist/Types/SerializableObjectDictionary.js +8 -0
- package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
- package/build/dist/Types/Telemetry/LlmConventions.js +236 -0
- package/build/dist/Types/Telemetry/LlmConventions.js.map +1 -1
- package/build/dist/Types/Telemetry/LlmMetricConventions.js +197 -5
- package/build/dist/Types/Telemetry/LlmMetricConventions.js.map +1 -1
- package/build/dist/Types/Telemetry/SourceMap.js +9 -0
- package/build/dist/Types/Telemetry/SourceMap.js.map +1 -0
- package/build/dist/Types/Telemetry/TelemetrySearchQuery.js +661 -0
- package/build/dist/Types/Telemetry/TelemetrySearchQuery.js.map +1 -0
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +12 -1
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
- package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js +67 -0
- package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +28 -1
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +25 -4
- package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js +36 -16
- package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js +14 -2
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js.map +1 -1
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js +54 -9
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -1
- package/build/dist/Utils/Monitor/InterfaceInventoryUtil.js +128 -0
- package/build/dist/Utils/Monitor/InterfaceInventoryUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js +190 -0
- package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +206 -28
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +14 -7
- package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +34 -18
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +163 -0
- package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/RescanIntervalUtil.js +99 -0
- package/build/dist/Utils/NetworkDiscovery/RescanIntervalUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/ScanModeUtil.js +85 -0
- package/build/dist/Utils/NetworkDiscovery/ScanModeUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/SnmpScanConfigUtil.js +560 -0
- package/build/dist/Utils/NetworkDiscovery/SnmpScanConfigUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteMaintenanceUtil.js +56 -0
- package/build/dist/Utils/NetworkSite/SiteMaintenanceUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +185 -10
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
- package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js +248 -21
- package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js.map +1 -1
- package/build/dist/Utils/SecurityEvent/ThreatIntel/StixPatternParser.js +255 -0
- package/build/dist/Utils/SecurityEvent/ThreatIntel/StixPatternParser.js.map +1 -0
- package/build/dist/Utils/Telemetry/CrossSignalScope.js +27 -30
- package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
- package/build/dist/Utils/Telemetry/LlmMetricQuery.js +57 -1
- package/build/dist/Utils/Telemetry/LlmMetricQuery.js.map +1 -1
- package/package.json +2 -1
- package/Tests/Types/Log/LogQueryParser.test.ts +0 -186
- package/Types/Log/LogQueryParser.ts +0 -252
- package/build/dist/Types/Log/LogQueryParser.js +0 -200
- package/build/dist/Types/Log/LogQueryParser.js.map +0 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import Hostname from "../../Types/API/Hostname";
|
|
2
|
+
import Protocol from "../../Types/API/Protocol";
|
|
3
|
+
import Route from "../../Types/API/Route";
|
|
4
|
+
import URL from "../../Types/API/URL";
|
|
5
|
+
import OneUptimeDate from "../../Types/Date";
|
|
6
|
+
import EmailTemplateType from "../../Types/Email/EmailTemplateType";
|
|
7
|
+
import ObjectID from "../../Types/ObjectID";
|
|
8
|
+
import { DashboardRoute } from "../../ServiceRoute";
|
|
9
|
+
import User from "../../Models/DatabaseModels/User";
|
|
10
|
+
import DatabaseConfig from "../DatabaseConfig";
|
|
11
|
+
import MailService from "../Services/MailService";
|
|
12
|
+
import UserService from "../Services/UserService";
|
|
13
|
+
import logger from "./Logger";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Tell the account holder, at their own address, that a set of recovery codes
|
|
17
|
+
* was just created for them.
|
|
18
|
+
*
|
|
19
|
+
* WHY THIS EXISTS AT ALL
|
|
20
|
+
*
|
|
21
|
+
* Backup codes are sign-in credentials. The self-service regenerate route has
|
|
22
|
+
* always mailed the owner when a set changed -- not to prevent anything, but
|
|
23
|
+
* so that a change the owner did not make is VISIBLE to them, at an address
|
|
24
|
+
* rather than in the browser that made it. Enrolment now mints codes too, and
|
|
25
|
+
* it mints them on a route authenticated by a session alone: somebody holding
|
|
26
|
+
* a stolen session can register a security key of their own and walk away with
|
|
27
|
+
* ten recovery codes for an account they do not own. Without this mail the
|
|
28
|
+
* real owner finds out at the sign-in they cannot complete.
|
|
29
|
+
*
|
|
30
|
+
* NOTHING SENSITIVE TRAVELS. The codes themselves are never mailed -- a count
|
|
31
|
+
* and a timestamp, and a link to the page where the owner can replace the set.
|
|
32
|
+
* Mailing a recovery credential would hand the account to whoever later reads
|
|
33
|
+
* the mailbox, which is exactly the second factor's job to prevent.
|
|
34
|
+
*
|
|
35
|
+
* NEVER FATAL. Every caller invokes this without awaiting it. The codes are
|
|
36
|
+
* already written and already on their way to the user's screen by the time it
|
|
37
|
+
* runs, so an unreachable mail server must not fail the request that carries
|
|
38
|
+
* the only copy of them.
|
|
39
|
+
*/
|
|
40
|
+
export default class TwoFactorBackupCodeNotification {
|
|
41
|
+
public static async sendCodesCreatedEmail(data: {
|
|
42
|
+
userId: ObjectID;
|
|
43
|
+
codeCount: number;
|
|
44
|
+
}): Promise<void> {
|
|
45
|
+
/*
|
|
46
|
+
* The address is read off the account rather than taken from the caller.
|
|
47
|
+
* The caller proved which user they are; it did not prove where that
|
|
48
|
+
* user's mail should go, and this notice is worth nothing if it can be
|
|
49
|
+
* pointed somewhere else.
|
|
50
|
+
*/
|
|
51
|
+
const user: User | null = await UserService.findOneById({
|
|
52
|
+
id: data.userId,
|
|
53
|
+
select: {
|
|
54
|
+
email: true,
|
|
55
|
+
},
|
|
56
|
+
props: {
|
|
57
|
+
isRoot: true,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
if (!user || !user.email) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const host: Hostname = await DatabaseConfig.getHost();
|
|
66
|
+
const httpProtocol: Protocol = await DatabaseConfig.getHttpProtocol();
|
|
67
|
+
|
|
68
|
+
await MailService.sendMail({
|
|
69
|
+
toEmail: user.email,
|
|
70
|
+
subject: "Backup codes were created for your OneUptime account",
|
|
71
|
+
templateType: EmailTemplateType.TwoFactorBackupCodesCreated,
|
|
72
|
+
vars: {
|
|
73
|
+
generatedAt: OneUptimeDate.getCurrentDateAsFormattedString(),
|
|
74
|
+
newCodeCount: data.codeCount.toString(),
|
|
75
|
+
twoFactorAuthUrl: new URL(
|
|
76
|
+
httpProtocol,
|
|
77
|
+
host,
|
|
78
|
+
new Route(DashboardRoute.toString()).addRoute(
|
|
79
|
+
"/user-profile/two-factor-auth",
|
|
80
|
+
),
|
|
81
|
+
).toString(),
|
|
82
|
+
homeUrl: new URL(httpProtocol, host).toString(),
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Fire-and-forget wrapper, so a caller does not have to repeat the same
|
|
89
|
+
* detached-and-logged shape at every mint site.
|
|
90
|
+
*
|
|
91
|
+
* Deliberately returns void rather than the promise: a caller holding one
|
|
92
|
+
* would be tempted to await it, and awaiting is the thing this must never
|
|
93
|
+
* do. The mint sites run inside requests whose response carries the only
|
|
94
|
+
* copy of the codes.
|
|
95
|
+
*/
|
|
96
|
+
public static notifyCodesCreated(data: {
|
|
97
|
+
userId: ObjectID;
|
|
98
|
+
codeCount: number;
|
|
99
|
+
}): void {
|
|
100
|
+
TwoFactorBackupCodeNotification.sendCodesCreatedEmail(data).catch(
|
|
101
|
+
(err: Error) => {
|
|
102
|
+
logger.error(err);
|
|
103
|
+
},
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
}
|
package/Server/Utils/VM/VMAPI.ts
CHANGED
|
@@ -11,6 +11,9 @@ export default class VMUtil {
|
|
|
11
11
|
options: {
|
|
12
12
|
args?: JSONObject | undefined;
|
|
13
13
|
timeout?: number;
|
|
14
|
+
// See VMRunner.runCodeInSandbox — decided by the caller, not here.
|
|
15
|
+
allowPrivateNetworkRequests?: boolean | undefined;
|
|
16
|
+
privateNetworkHint?: string | undefined;
|
|
14
17
|
};
|
|
15
18
|
}): Promise<ReturnResult> {
|
|
16
19
|
return VMRunner.runCodeInSandbox(data);
|
|
@@ -61,6 +61,22 @@ export default class VMRunner {
|
|
|
61
61
|
options: {
|
|
62
62
|
timeout?: number;
|
|
63
63
|
args?: JSONObject | undefined;
|
|
64
|
+
/*
|
|
65
|
+
* Passed straight through to the SSRF guard on the axios bridge below.
|
|
66
|
+
* Decided by the CALLER, never here: this runner is shared between the
|
|
67
|
+
* workflow Custom JavaScript component, where the policy comes from the
|
|
68
|
+
* API server's environment, and the Probe's custom code monitor, where
|
|
69
|
+
* it comes from the probe's own environment — a different process on a
|
|
70
|
+
* different machine, usually owned by a different person. Absent ⇒ the
|
|
71
|
+
* strict policy, which is what a caller that says nothing should get.
|
|
72
|
+
*/
|
|
73
|
+
allowPrivateNetworkRequests?: boolean | undefined;
|
|
74
|
+
/*
|
|
75
|
+
* Overrides the sentence a private-tier refusal appends, telling the
|
|
76
|
+
* operator which setting would permit it. Whoever runs this sandbox
|
|
77
|
+
* knows which process's environment that is; the guard does not.
|
|
78
|
+
*/
|
|
79
|
+
privateNetworkHint?: string | undefined;
|
|
64
80
|
};
|
|
65
81
|
}): Promise<ReturnResult> {
|
|
66
82
|
const { code, options } = data;
|
|
@@ -419,7 +435,17 @@ export default class VMRunner {
|
|
|
419
435
|
config,
|
|
420
436
|
});
|
|
421
437
|
|
|
422
|
-
await SSRFProtection.validateWebhookTargetIsSafe(effectiveUrl
|
|
438
|
+
await SSRFProtection.validateWebhookTargetIsSafe(effectiveUrl, {
|
|
439
|
+
allowPrivateNetworkTargets:
|
|
440
|
+
options.allowPrivateNetworkRequests === true,
|
|
441
|
+
/*
|
|
442
|
+
* "Webhook URL" is wrong here in both directions: sandboxed code
|
|
443
|
+
* requests whatever it likes, and one of this runner's two callers
|
|
444
|
+
* is a monitor, not a webhook.
|
|
445
|
+
*/
|
|
446
|
+
targetLabel: "Request URL",
|
|
447
|
+
privateNetworkHint: options.privateNetworkHint,
|
|
448
|
+
});
|
|
423
449
|
|
|
424
450
|
/*
|
|
425
451
|
* The URL that was just validated has to be the URL that gets
|
|
@@ -44,6 +44,29 @@ export const VendorAssetsPath: string = path.resolve(
|
|
|
44
44
|
"Vendor",
|
|
45
45
|
);
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* OneUptime's own brand images, served under the same prefix.
|
|
49
|
+
*
|
|
50
|
+
* Not third-party, so they do not belong in Static/Vendor, but they have the
|
|
51
|
+
* identical problem: the server-rendered pages that carry the logo (the on-call
|
|
52
|
+
* acknowledge page, the SSO message page) come out of the App container, and
|
|
53
|
+
* `/img/...` is served by Home. nginx sends "/" to App on every install with
|
|
54
|
+
* billing off - which is every self-hosted install - so the logo those pages
|
|
55
|
+
* asked for 404'd and rendered as a broken image.
|
|
56
|
+
* See https://github.com/OneUptime/oneuptime/issues/3457.
|
|
57
|
+
*/
|
|
58
|
+
export const BrandAssetsRouteSegment: string = "brand";
|
|
59
|
+
|
|
60
|
+
export const BrandAssetsPath: string = path.resolve(
|
|
61
|
+
__dirname,
|
|
62
|
+
"..",
|
|
63
|
+
"Static",
|
|
64
|
+
"Brand",
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
/** Host-relative URL of the OneUptime wordmark, for use in a view's <img src>. */
|
|
68
|
+
export const OneUptimeLogoUrl: string = `${VendorAssetsRoute}/${BrandAssetsRouteSegment}/oneuptime-logo.svg`;
|
|
69
|
+
|
|
47
70
|
/**
|
|
48
71
|
* Mermaid is a dependency of Common already (Common/UI renders diagrams in
|
|
49
72
|
* markdown with it), so it is on disk in every image and there is no reason to
|
|
@@ -114,6 +137,25 @@ const mountVendorAssets: MountVendorAssetsFunction = (
|
|
|
114
137
|
);
|
|
115
138
|
}
|
|
116
139
|
|
|
140
|
+
if (fs.existsSync(BrandAssetsPath)) {
|
|
141
|
+
/*
|
|
142
|
+
* Revalidating rather than immutable: the filename carries no version, so
|
|
143
|
+
* a rebrand must not be stuck behind a year-old cache entry.
|
|
144
|
+
*/
|
|
145
|
+
app.use(
|
|
146
|
+
`${VendorAssetsRoute}/${BrandAssetsRouteSegment}`,
|
|
147
|
+
ExpressStatic(BrandAssetsPath, {
|
|
148
|
+
maxAge: REVALIDATE_CACHE_MAX_AGE_MILLISECONDS,
|
|
149
|
+
index: false,
|
|
150
|
+
redirect: false,
|
|
151
|
+
}) as RequestHandler,
|
|
152
|
+
);
|
|
153
|
+
} else {
|
|
154
|
+
logger.error(
|
|
155
|
+
`OneUptime brand images are missing at ${BrandAssetsPath}. Server-rendered pages will render without a logo.`,
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
|
|
117
159
|
const mermaidDistPath: string | null = getMermaidDistPath();
|
|
118
160
|
|
|
119
161
|
if (mermaidDistPath) {
|
|
@@ -108,6 +108,7 @@ import MicrosoftTeamsOnCallDutyActions from "./Actions/OnCallDutyPolicy";
|
|
|
108
108
|
*/
|
|
109
109
|
import type { ObservabilityAssistantResult } from "../../AI/Chat/ObservabilityAssistant";
|
|
110
110
|
import AccessTokenService from "../../../Services/AccessTokenService";
|
|
111
|
+
import AIService, { AI_DISABLED_MESSAGE } from "../../../Services/AIService";
|
|
111
112
|
import DatabaseCommonInteractionProps from "../../../../Types/BaseDatabase/DatabaseCommonInteractionProps";
|
|
112
113
|
import { AIChatCitation } from "../../../../Types/AI/AIChatTypes";
|
|
113
114
|
|
|
@@ -134,13 +135,33 @@ export interface MicrosoftTeamsTenantResolution {
|
|
|
134
135
|
* Graph permission that deployments connected before it was documented have not
|
|
135
136
|
* consented to, and a tenant that answers "I won't tell you" must never be
|
|
136
137
|
* reported to an admin as "the app is not installed".
|
|
138
|
+
*
|
|
139
|
+
* PermissionDenied is that same "I won't tell you", separated out because it is
|
|
140
|
+
* the one flavour of Unknown the admin can fix in a minute — Microsoft is not
|
|
141
|
+
* failing, it is refusing, and it names the grant that would stop it. Folding it
|
|
142
|
+
* in with transport errors is what left admins reading a list of four possible
|
|
143
|
+
* causes when OneUptime could have told them which one it was.
|
|
137
144
|
*/
|
|
138
145
|
export enum MicrosoftTeamsAppInstallState {
|
|
139
146
|
Installed = "Installed",
|
|
140
147
|
NotInstalled = "NotInstalled",
|
|
148
|
+
PermissionDenied = "PermissionDenied",
|
|
141
149
|
Unknown = "Unknown",
|
|
142
150
|
}
|
|
143
151
|
|
|
152
|
+
/*
|
|
153
|
+
* The Graph application permission that lets OneUptime read a team's installed
|
|
154
|
+
* apps, and so tell "the app is missing" apart from "the app is there but is a
|
|
155
|
+
* different package".
|
|
156
|
+
*
|
|
157
|
+
* Server-side error text builds off this constant. The setup documentation and
|
|
158
|
+
* the docs site still spell it out literally, because prose there explains the
|
|
159
|
+
* permission rather than just naming it — if you rename it here, grep for the
|
|
160
|
+
* literal too.
|
|
161
|
+
*/
|
|
162
|
+
export const MICROSOFT_TEAMS_INSTALL_READ_PERMISSION: string =
|
|
163
|
+
"TeamsAppInstallation.ReadForTeam.All";
|
|
164
|
+
|
|
144
165
|
/*
|
|
145
166
|
* Microsoft's wording when the Bot Framework refuses a proactive post because
|
|
146
167
|
* the app is not a member of the target conversation. Matched case-insensitively
|
|
@@ -1861,11 +1882,27 @@ export default class MicrosoftTeamsUtil extends WorkspaceBase {
|
|
|
1861
1882
|
channelName: string;
|
|
1862
1883
|
membershipType?: string | undefined;
|
|
1863
1884
|
}): string {
|
|
1885
|
+
/*
|
|
1886
|
+
* "Not installed" here means no installed app carries THIS deployment's
|
|
1887
|
+
* app id — which is also what a OneUptime tile from the Teams store looks
|
|
1888
|
+
* like. Saying only "add OneUptime" to an admin who is looking straight at
|
|
1889
|
+
* a OneUptime tile reads as nonsense and sends them round the loop again,
|
|
1890
|
+
* so name that case explicitly.
|
|
1891
|
+
*/
|
|
1892
|
+
const wrongPackageNote: string = `If a tile named OneUptime is already listed there, it is a different package — the app from the Teams store points at OneUptime Cloud's bot and will never accept posts from this deployment. Remove it, then upload the manifest from Project Settings > Workspace > Microsoft Teams, which is the only package built with this deployment's MICROSOFT_TEAMS_APP_CLIENT_ID.`;
|
|
1893
|
+
|
|
1894
|
+
/*
|
|
1895
|
+
* No wrong-package note for private channels. The install check reads
|
|
1896
|
+
* /teams/{id}/installedApps — team scope — and a private channel needs its
|
|
1897
|
+
* own channel-scope install, so a correct channel install still reads as
|
|
1898
|
+
* "not installed" here. Telling that admin their package is the wrong one
|
|
1899
|
+
* and to remove it would destroy a working install to fix nothing.
|
|
1900
|
+
*/
|
|
1864
1901
|
if (data.membershipType === "private") {
|
|
1865
1902
|
return `The OneUptime app is not installed in the private channel "${data.channelName}". In Microsoft Teams, open the channel, click the "..." menu, then Manage channel > Apps > Add an app, and add OneUptime. Installing OneUptime in the parent team does not cover private channels.`;
|
|
1866
1903
|
}
|
|
1867
1904
|
|
|
1868
|
-
return `The OneUptime app is not installed in the Microsoft Teams team that owns "${data.channelName}". In Microsoft Teams, click the "..." next to the team name, then Manage team > Apps > More apps, and add OneUptime. Installing OneUptime for yourself or in a chat is not the same as adding it to the team
|
|
1905
|
+
return `The OneUptime app is not installed in the Microsoft Teams team that owns "${data.channelName}". In Microsoft Teams, click the "..." next to the team name, then Manage team > Apps > More apps, and add OneUptime. Installing OneUptime for yourself or in a chat is not the same as adding it to the team. ${wrongPackageNote}`;
|
|
1869
1906
|
}
|
|
1870
1907
|
|
|
1871
1908
|
/*
|
|
@@ -1889,8 +1926,18 @@ export default class MicrosoftTeamsUtil extends WorkspaceBase {
|
|
|
1889
1926
|
`"${data.channelName}" is a private channel, which needs the app installed into the channel itself (channel "..." > Manage channel > Apps > Add an app) — a team-level install does not cover it`,
|
|
1890
1927
|
);
|
|
1891
1928
|
} else if (data.installState === MicrosoftTeamsAppInstallState.Installed) {
|
|
1929
|
+
/*
|
|
1930
|
+
* Graph confirmed a package carrying THIS deployment's app id is in the
|
|
1931
|
+
* team, so the usual suspect — a OneUptime package from somewhere else —
|
|
1932
|
+
* is largely ruled out and should not lead. "Largely", not "entirely":
|
|
1933
|
+
* the check matches teamsApp.externalId, which is the manifest id, and
|
|
1934
|
+
* only OneUptime's own generator guarantees that equals the bot id. A
|
|
1935
|
+
* hand-edited manifest can satisfy this and still carry a foreign bot, so
|
|
1936
|
+
* the wording stays probabilistic rather than promising the admin the
|
|
1937
|
+
* package is fine.
|
|
1938
|
+
*/
|
|
1892
1939
|
causes.push(
|
|
1893
|
-
"the app
|
|
1940
|
+
"the app installed in this team already matches this deployment's MICROSOFT_TEAMS_APP_CLIENT_ID, so the package is probably not the problem — the most likely remaining cause is the Azure Bot resource, below",
|
|
1894
1941
|
);
|
|
1895
1942
|
} else {
|
|
1896
1943
|
causes.push(
|
|
@@ -1902,6 +1949,23 @@ export default class MicrosoftTeamsUtil extends WorkspaceBase {
|
|
|
1902
1949
|
"the Azure Bot resource for this deployment does not have the Microsoft Teams channel enabled",
|
|
1903
1950
|
);
|
|
1904
1951
|
|
|
1952
|
+
/*
|
|
1953
|
+
* The list above is a guess, and it only has to be a guess because Graph
|
|
1954
|
+
* would not tell us. Say so, and say what turns it into an answer — this is
|
|
1955
|
+
* the single cheapest step an admin reading this can take.
|
|
1956
|
+
*
|
|
1957
|
+
* The promise is hedged for private channels: the grant unlocks a
|
|
1958
|
+
* team-scope read, and for a private channel the deciding fact is the
|
|
1959
|
+
* channel-scope install, which that read cannot see. Worth granting anyway,
|
|
1960
|
+
* just not worth promising it settles this particular send.
|
|
1961
|
+
*/
|
|
1962
|
+
const suffixHint: string =
|
|
1963
|
+
data.installState === MicrosoftTeamsAppInstallState.PermissionDenied
|
|
1964
|
+
? data.membershipType === "private"
|
|
1965
|
+
? ` OneUptime could not narrow this down because Microsoft Graph denied the installed-apps check: granting the ${MICROSOFT_TEAMS_INSTALL_READ_PERMISSION} application permission to this deployment's app registration restores that check for team-level installs, though a private channel's own install still has to be confirmed in Microsoft Teams.`
|
|
1966
|
+
: ` OneUptime could not narrow this down because Microsoft Graph denied the installed-apps check: grant the ${MICROSOFT_TEAMS_INSTALL_READ_PERMISSION} application permission to this deployment's app registration, re-grant admin consent, and try again to be told which cause it is.`
|
|
1967
|
+
: "";
|
|
1968
|
+
|
|
1905
1969
|
const microsoftMessage: string =
|
|
1906
1970
|
data.microsoftError instanceof Error
|
|
1907
1971
|
? data.microsoftError.message
|
|
@@ -1911,7 +1975,43 @@ export default class MicrosoftTeamsUtil extends WorkspaceBase {
|
|
|
1911
1975
|
? ` Microsoft's response was: "${microsoftMessage}"`
|
|
1912
1976
|
: "";
|
|
1913
1977
|
|
|
1914
|
-
return `Microsoft Teams refused the message to "${data.channelName}" because the OneUptime bot is not a member of that conversation. Likely causes: ${causes.join("; ")}.${suffix}`;
|
|
1978
|
+
return `Microsoft Teams refused the message to "${data.channelName}" because the OneUptime bot is not a member of that conversation. Likely causes: ${causes.join("; ")}.${suffixHint}${suffix}`;
|
|
1979
|
+
}
|
|
1980
|
+
|
|
1981
|
+
/*
|
|
1982
|
+
* True when Graph refused a read rather than failing it.
|
|
1983
|
+
*
|
|
1984
|
+
* 403 only, deliberately. Graph answers a missing application permission with
|
|
1985
|
+
* 403 and reserves 401 for a token it would not accept — an expired secret, a
|
|
1986
|
+
* cached app token we did not re-check (see getValidAccessToken, which returns
|
|
1987
|
+
* a stored token unvalidated when miscData carries no expiry). Treating 401 as
|
|
1988
|
+
* a permission problem would send an admin off to grant a Graph permission
|
|
1989
|
+
* when their credential had simply gone stale, which is the same species of
|
|
1990
|
+
* wrong-but-confident answer this whole diagnostic exists to stop producing.
|
|
1991
|
+
*
|
|
1992
|
+
* The error codes are still matched at any status, so a permission refusal
|
|
1993
|
+
* that arrives with an unexpected status is not missed.
|
|
1994
|
+
*/
|
|
1995
|
+
public static isGraphPermissionDeniedResponse(
|
|
1996
|
+
response: HTTPErrorResponse,
|
|
1997
|
+
): boolean {
|
|
1998
|
+
if (response.statusCode === 403) {
|
|
1999
|
+
return true;
|
|
2000
|
+
}
|
|
2001
|
+
|
|
2002
|
+
const message: string = (response.message || "").toLowerCase();
|
|
2003
|
+
|
|
2004
|
+
if (!message) {
|
|
2005
|
+
return false;
|
|
2006
|
+
}
|
|
2007
|
+
|
|
2008
|
+
return [
|
|
2009
|
+
"authorization_requestdenied",
|
|
2010
|
+
"accessdenied",
|
|
2011
|
+
"insufficient privileges",
|
|
2012
|
+
].some((fragment: string) => {
|
|
2013
|
+
return message.includes(fragment);
|
|
2014
|
+
});
|
|
1915
2015
|
}
|
|
1916
2016
|
|
|
1917
2017
|
/*
|
|
@@ -1924,9 +2024,11 @@ export default class MicrosoftTeamsUtil extends WorkspaceBase {
|
|
|
1924
2024
|
* not the weaker one an admin can answer by eye ("is something called
|
|
1925
2025
|
* OneUptime in the app list?").
|
|
1926
2026
|
*
|
|
1927
|
-
*
|
|
1928
|
-
* which deployments connected before it
|
|
1929
|
-
*
|
|
2027
|
+
* No failure is ever reported as NotInstalled. The call needs
|
|
2028
|
+
* TeamsAppInstallation.ReadForTeam.All, which deployments connected before it
|
|
2029
|
+
* was documented have not granted, and a missing permission must not be
|
|
2030
|
+
* reported as a missing install. A refusal comes back as PermissionDenied so
|
|
2031
|
+
* the admin is told which grant to add; everything else is Unknown.
|
|
1930
2032
|
*/
|
|
1931
2033
|
@CaptureSpan()
|
|
1932
2034
|
public static async isAppInstalledInTeam(data: {
|
|
@@ -1968,6 +2070,19 @@ export default class MicrosoftTeamsUtil extends WorkspaceBase {
|
|
|
1968
2070
|
});
|
|
1969
2071
|
|
|
1970
2072
|
if (response instanceof HTTPErrorResponse) {
|
|
2073
|
+
/*
|
|
2074
|
+
* A refusal is not a failure. That distinction is the whole value of
|
|
2075
|
+
* this call: it is the difference between "we cannot tell you which of
|
|
2076
|
+
* four causes this is" and "grant this one permission and we will tell
|
|
2077
|
+
* you".
|
|
2078
|
+
*/
|
|
2079
|
+
if (this.isGraphPermissionDeniedResponse(response)) {
|
|
2080
|
+
logger.warn(
|
|
2081
|
+
`Cannot read installed apps for team ${data.teamId}: Microsoft Graph denied the request. Grant the ${MICROSOFT_TEAMS_INSTALL_READ_PERMISSION} application permission to this app registration and re-grant admin consent so OneUptime can verify Teams app installs.`,
|
|
2082
|
+
);
|
|
2083
|
+
return MicrosoftTeamsAppInstallState.PermissionDenied;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
1971
2086
|
logger.debug(
|
|
1972
2087
|
`Could not read installed apps for team ${data.teamId}; treating installation as unknown.`,
|
|
1973
2088
|
);
|
|
@@ -3232,6 +3347,21 @@ export default class MicrosoftTeamsUtil extends WorkspaceBase {
|
|
|
3232
3347
|
return;
|
|
3233
3348
|
}
|
|
3234
3349
|
|
|
3350
|
+
/*
|
|
3351
|
+
* The project's AI kill switch, read before we acknowledge. The catch
|
|
3352
|
+
* around the assistant below answers every failure with the same generic
|
|
3353
|
+
* "I ran into a problem" — true for a provider outage, actively wrong for
|
|
3354
|
+
* a setting somebody chose on purpose. Reading the switch here lets us
|
|
3355
|
+
* say what actually happened, and where to undo it.
|
|
3356
|
+
*/
|
|
3357
|
+
if (!(await AIService.isProjectAIEnabled(projectId))) {
|
|
3358
|
+
logger.debug("AI Ops declined: AI is disabled for this project", {
|
|
3359
|
+
projectId: projectId.toString(),
|
|
3360
|
+
});
|
|
3361
|
+
await turnContext.sendActivity(AI_DISABLED_MESSAGE);
|
|
3362
|
+
return;
|
|
3363
|
+
}
|
|
3364
|
+
|
|
3235
3365
|
/*
|
|
3236
3366
|
* Let the user know we're working on it. The assistant runs a bounded,
|
|
3237
3367
|
* tool-grounded agent loop and can take several seconds, so send a quick
|
|
@@ -65,8 +65,6 @@ export default class SlackAuthAction {
|
|
|
65
65
|
const { req } = data;
|
|
66
66
|
|
|
67
67
|
logger.debug("Starting Slack request authorization");
|
|
68
|
-
logger.debug(`Request body: `);
|
|
69
|
-
logger.debug(req.body);
|
|
70
68
|
|
|
71
69
|
let payload: JSONObject = req.body;
|
|
72
70
|
|
|
@@ -74,9 +72,6 @@ export default class SlackAuthAction {
|
|
|
74
72
|
payload = JSON.parse(payload["payload"]);
|
|
75
73
|
}
|
|
76
74
|
|
|
77
|
-
logger.debug(`Payload: `);
|
|
78
|
-
logger.debug(payload);
|
|
79
|
-
|
|
80
75
|
let slackUserId: string | undefined = (
|
|
81
76
|
(payload as JSONObject)["user"] as JSONObject
|
|
82
77
|
)?.["id"] as string;
|
|
@@ -216,11 +211,6 @@ export default class SlackAuthAction {
|
|
|
216
211
|
};
|
|
217
212
|
|
|
218
213
|
actions.push(action);
|
|
219
|
-
logger.debug("View values: ");
|
|
220
|
-
logger.debug(viewValues);
|
|
221
|
-
|
|
222
|
-
logger.debug("Actions: ");
|
|
223
|
-
logger.debug(actions);
|
|
224
214
|
}
|
|
225
215
|
|
|
226
216
|
if (payload["callback_id"]) {
|
|
@@ -296,8 +286,6 @@ export default class SlackAuthAction {
|
|
|
296
286
|
logger.debug("Slack request authorized successfully", {
|
|
297
287
|
projectId: projectId.toString(),
|
|
298
288
|
});
|
|
299
|
-
logger.debug("Slack request: ");
|
|
300
|
-
logger.debug(slackRequest);
|
|
301
289
|
|
|
302
290
|
return slackRequest;
|
|
303
291
|
}
|
|
@@ -9,29 +9,31 @@
|
|
|
9
9
|
|
|
10
10
|
<div class="h-full">
|
|
11
11
|
|
|
12
|
-
<main class="mx-auto max-w-
|
|
13
|
-
|
|
12
|
+
<main class="mx-auto max-w-3xl pb-10 lg:py-12 lg:px-8">
|
|
13
|
+
|
|
14
14
|
<div class="sm:mx-auto sm:w-full sm:max-w-md flex justify-center mt-10 mb-10">
|
|
15
15
|
<img
|
|
16
16
|
class="mx-auto h-12 w-auto"
|
|
17
|
-
src="/
|
|
17
|
+
src="/oneuptime-assets/brand/oneuptime-logo.svg"
|
|
18
18
|
alt="OneUptime"
|
|
19
19
|
/>
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
<div class="">
|
|
24
|
-
<!-- Payment details -->
|
|
25
24
|
<div class="space-y-6 sm:px-6 lg:col-span-9 lg:px-0">
|
|
26
|
-
<section aria-labelledby="
|
|
27
|
-
|
|
25
|
+
<section aria-labelledby="acknowledge-heading">
|
|
26
|
+
|
|
28
27
|
<div class="shadow sm:overflow-hidden sm:rounded-md">
|
|
29
28
|
<div class="bg-white py-6 px-4 sm:p-6">
|
|
30
29
|
<div>
|
|
31
|
-
<h2 id="
|
|
30
|
+
<h2 id="acknowledge-heading"
|
|
32
31
|
class="text-lg font-medium leading-6 text-gray-900"><%= title %></h2>
|
|
33
32
|
<p class="mt-1 text-sm text-gray-500"><%= message %></p>
|
|
34
33
|
</div>
|
|
34
|
+
|
|
35
|
+
<%- include('./Partials/OnCallNotificationDetails.ejs') -%>
|
|
36
|
+
|
|
35
37
|
<div>
|
|
36
38
|
<div class="mt-6">
|
|
37
39
|
<a href="<%= acknowledgeUrl %>"
|
|
@@ -42,7 +44,7 @@
|
|
|
42
44
|
</div>
|
|
43
45
|
</div>
|
|
44
46
|
</div>
|
|
45
|
-
|
|
47
|
+
|
|
46
48
|
</section>
|
|
47
49
|
|
|
48
50
|
|
|
@@ -53,4 +55,4 @@
|
|
|
53
55
|
|
|
54
56
|
</body>
|
|
55
57
|
|
|
56
|
-
</html>
|
|
58
|
+
</html>
|
|
@@ -74,15 +74,15 @@
|
|
|
74
74
|
|
|
75
75
|
<meta charset="utf-8" />
|
|
76
76
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
77
|
-
<link rel="shortcut icon" href="/
|
|
78
|
-
<link rel="apple-touch-icon" sizes="180x180" href="/
|
|
79
|
-
<link rel="icon" type="image/png" sizes="32x32" href="/
|
|
80
|
-
<link rel="icon" type="image/png" sizes="16x16" href="/
|
|
81
|
-
<link rel="mask-icon" href="/
|
|
77
|
+
<link rel="shortcut icon" href="/oneuptime-assets/brand/favicons/favicon.ico">
|
|
78
|
+
<link rel="apple-touch-icon" sizes="180x180" href="/oneuptime-assets/brand/favicons/apple-touch-icon.png">
|
|
79
|
+
<link rel="icon" type="image/png" sizes="32x32" href="/oneuptime-assets/brand/favicons/favicon-32x32.png">
|
|
80
|
+
<link rel="icon" type="image/png" sizes="16x16" href="/oneuptime-assets/brand/favicons/favicon-16x16.png">
|
|
81
|
+
<link rel="mask-icon" href="/oneuptime-assets/brand/favicons/safari-pinned-tab.svg" color="#32335b">
|
|
82
82
|
<meta name="msapplication-TileColor" content="#32335b">
|
|
83
|
-
<link rel="apple-touch-icon-precomposed" href="/
|
|
84
|
-
<link rel="icon" href="/
|
|
85
|
-
<link rel="image_src" type="image/png" href="/
|
|
83
|
+
<link rel="apple-touch-icon-precomposed" href="/oneuptime-assets/brand/ou-wb.svg">
|
|
84
|
+
<link rel="icon" href="/oneuptime-assets/brand/ou-wb.svg">
|
|
85
|
+
<link rel="image_src" type="image/png" href="/oneuptime-assets/brand/hou-wb.svg">
|
|
86
86
|
<link rel="manifest" href="/manifest.json">
|
|
87
87
|
<meta property="og:title" content="OneUptime - One Complete Observability platform.">
|
|
88
88
|
<meta property="og:url" content="https://oneuptime.com">
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
|
|
94
94
|
<meta name="twitter:card" content="summary">
|
|
95
95
|
<meta name="theme-color" content="#000000">
|
|
96
|
-
<meta name="twitter:image" content="/
|
|
96
|
+
<meta name="twitter:image" content="/oneuptime-assets/brand/ou-wb.svg">
|
|
97
97
|
<meta name="twitter:site" content="@oneuptimeinc">
|
|
98
98
|
<meta name="twitter:title" content="OneUptime - One Complete Observability platform.">
|
|
99
99
|
<meta name="twitter:description"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<%
|
|
2
|
+
/*
|
|
3
|
+
* Context for the resource an on-call notification was raised for, so the
|
|
4
|
+
* person following an acknowledge link from an SMS at 3am can see what they
|
|
5
|
+
* are acknowledging before they acknowledge it.
|
|
6
|
+
* See https://github.com/OneUptime/oneuptime/issues/3457.
|
|
7
|
+
*
|
|
8
|
+
* Every local is optional: these pages still render when the resource has been
|
|
9
|
+
* deleted, and a missing description must never block the acknowledgement.
|
|
10
|
+
*/
|
|
11
|
+
var hasResourceNumber = typeof resourceNumber !== 'undefined' && resourceNumber;
|
|
12
|
+
var hasResourceTitle = typeof resourceTitle !== 'undefined' && resourceTitle;
|
|
13
|
+
var hasResourceDescription = typeof resourceDescription !== 'undefined' && resourceDescription;
|
|
14
|
+
var resourceDetails = (typeof details !== 'undefined' && details) ? details : [];
|
|
15
|
+
var hasAnyContext = hasResourceTitle || hasResourceDescription || resourceDetails.length > 0;
|
|
16
|
+
%>
|
|
17
|
+
<% if (hasAnyContext) { %>
|
|
18
|
+
<div class="mt-6 border-t border-gray-200 pt-6">
|
|
19
|
+
<% if (hasResourceTitle) { %>
|
|
20
|
+
<div class="flex flex-wrap items-center">
|
|
21
|
+
<% if (hasResourceNumber) { %>
|
|
22
|
+
<span class="mr-2 inline-flex items-center rounded-md bg-gray-100 px-2 py-1 text-xs font-medium text-gray-600"><%= resourceNumber %></span>
|
|
23
|
+
<% } %>
|
|
24
|
+
<h3 class="text-base font-semibold leading-6 text-gray-900"><%= resourceTitle %></h3>
|
|
25
|
+
</div>
|
|
26
|
+
<% } %>
|
|
27
|
+
|
|
28
|
+
<% if (hasResourceDescription) { %>
|
|
29
|
+
<p class="mt-2 whitespace-pre-line text-sm text-gray-600"><%= resourceDescription %></p>
|
|
30
|
+
<% } %>
|
|
31
|
+
|
|
32
|
+
<% if (resourceDetails.length > 0) { %>
|
|
33
|
+
<dl class="mt-5 grid grid-cols-1 gap-x-6 gap-y-4 sm:grid-cols-2">
|
|
34
|
+
<% resourceDetails.forEach(function (detail) { %>
|
|
35
|
+
<div>
|
|
36
|
+
<dt class="text-xs font-medium uppercase tracking-wide text-gray-500"><%= detail.label %></dt>
|
|
37
|
+
<dd class="mt-1 flex items-center text-sm text-gray-900">
|
|
38
|
+
<% if (detail.color) { %>
|
|
39
|
+
<span class="mr-2 inline-block h-2.5 w-2.5 flex-none rounded-full" style="background-color: <%= detail.color %>"></span>
|
|
40
|
+
<% } %>
|
|
41
|
+
<span><%= detail.value %></span>
|
|
42
|
+
</dd>
|
|
43
|
+
</div>
|
|
44
|
+
<% }); %>
|
|
45
|
+
</dl>
|
|
46
|
+
<% } %>
|
|
47
|
+
</div>
|
|
48
|
+
<% } %>
|
|
@@ -9,29 +9,31 @@
|
|
|
9
9
|
|
|
10
10
|
<div class="h-full">
|
|
11
11
|
|
|
12
|
-
<main class="mx-auto max-w-
|
|
13
|
-
|
|
12
|
+
<main class="mx-auto max-w-3xl pb-10 lg:py-12 lg:px-8">
|
|
13
|
+
|
|
14
14
|
<div class="sm:mx-auto sm:w-full sm:max-w-md flex justify-center mt-10 mb-10">
|
|
15
15
|
<img
|
|
16
16
|
class="mx-auto h-12 w-auto"
|
|
17
|
-
src="/
|
|
17
|
+
src="/oneuptime-assets/brand/oneuptime-logo.svg"
|
|
18
18
|
alt="OneUptime"
|
|
19
19
|
/>
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
<div class="">
|
|
24
|
-
<!-- Payment details -->
|
|
25
24
|
<div class="space-y-6 sm:px-6 lg:col-span-9 lg:px-0">
|
|
26
|
-
<section aria-labelledby="
|
|
27
|
-
|
|
25
|
+
<section aria-labelledby="message-heading">
|
|
26
|
+
|
|
28
27
|
<div class="shadow sm:overflow-hidden sm:rounded-md">
|
|
29
28
|
<div class="bg-white py-6 px-4 sm:p-6">
|
|
30
29
|
<div>
|
|
31
|
-
<h2 id="
|
|
30
|
+
<h2 id="message-heading"
|
|
32
31
|
class="text-lg font-medium leading-6 text-gray-900"><%= title %></h2>
|
|
33
32
|
<p class="mt-1 text-sm text-gray-500"><%= message %></p>
|
|
34
33
|
</div>
|
|
34
|
+
|
|
35
|
+
<%- include('./Partials/OnCallNotificationDetails.ejs') -%>
|
|
36
|
+
|
|
35
37
|
<div>
|
|
36
38
|
<div class="mt-6">
|
|
37
39
|
<a href="<%= viewDetailsUrl %>"
|
|
@@ -42,7 +44,7 @@
|
|
|
42
44
|
</div>
|
|
43
45
|
</div>
|
|
44
46
|
</div>
|
|
45
|
-
|
|
47
|
+
|
|
46
48
|
</section>
|
|
47
49
|
|
|
48
50
|
|
|
@@ -53,4 +55,4 @@
|
|
|
53
55
|
|
|
54
56
|
</body>
|
|
55
57
|
|
|
56
|
-
</html>
|
|
58
|
+
</html>
|