@oneuptime/common 14.0.9 → 14.0.11
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/DatabaseModels/AIConversation.ts +127 -1
- package/Models/DatabaseModels/AutoRemediationSuggestion.ts +60 -0
- package/Models/DatabaseModels/CephCluster.ts +225 -0
- package/Models/DatabaseModels/CloudResource.ts +12 -0
- package/Models/DatabaseModels/DatabaseServer.ts +225 -0
- package/Models/DatabaseModels/DockerHost.ts +225 -0
- package/Models/DatabaseModels/DockerSwarmCluster.ts +225 -0
- package/Models/DatabaseModels/GlobalConfig.ts +1 -1
- package/Models/DatabaseModels/GlobalOidc.ts +0 -4
- package/Models/DatabaseModels/GlobalOidcProject.ts +0 -4
- package/Models/DatabaseModels/GlobalSso.ts +0 -4
- package/Models/DatabaseModels/GlobalSsoProject.ts +0 -4
- package/Models/DatabaseModels/Host.ts +225 -0
- package/Models/DatabaseModels/IncidentForm.ts +594 -0
- package/Models/DatabaseModels/IncidentFormSubmission.ts +283 -0
- package/Models/DatabaseModels/IncidentTemplate.ts +59 -0
- package/Models/DatabaseModels/Index.ts +16 -0
- package/Models/DatabaseModels/IoTFleet.ts +12 -0
- package/Models/DatabaseModels/KubernetesCluster.ts +12 -0
- package/Models/DatabaseModels/MessageQueue.ts +1102 -0
- package/Models/DatabaseModels/MessageQueueLabelRule.ts +553 -0
- package/Models/DatabaseModels/MessageQueueOwnerRule.ts +633 -0
- package/Models/DatabaseModels/MessageQueueOwnerTeam.ts +491 -0
- package/Models/DatabaseModels/MessageQueueOwnerUser.ts +490 -0
- package/Models/DatabaseModels/PodmanHost.ts +225 -0
- package/Models/DatabaseModels/Project.ts +59 -0
- package/Models/DatabaseModels/ProjectOidc.ts +0 -4
- package/Models/DatabaseModels/ProjectSso.ts +0 -4
- package/Models/DatabaseModels/ProxmoxCluster.ts +225 -0
- package/Models/DatabaseModels/ResourceAiAgent.ts +419 -0
- package/Models/DatabaseModels/RumApplication.ts +12 -0
- package/Models/DatabaseModels/RunnerJob.ts +144 -0
- package/Models/DatabaseModels/ServerlessFunction.ts +12 -0
- package/Models/DatabaseModels/Service.ts +12 -0
- package/Models/DatabaseModels/StatusPageOidc.ts +0 -4
- package/Models/DatabaseModels/StatusPageSso.ts +0 -4
- package/Models/DatabaseModels/TeamComplianceSetting.ts +47 -2
- package/Models/DatabaseModels/VMwareVCenter.ts +225 -0
- package/Server/API/AIChatAPI.ts +13 -114
- package/Server/API/AIInvestigationAPI.ts +3 -3
- package/Server/API/AIInvestigationConversationAPI.ts +266 -0
- package/Server/API/AutoRemediationAPI.ts +392 -1
- package/Server/API/IncidentFormAPI.ts +376 -0
- package/Server/API/ProjectOIDC.ts +16 -25
- package/Server/API/ProjectSSO.ts +16 -24
- package/Server/API/ResourceAiAccessAPI.ts +1669 -0
- package/Server/API/StatusPageAPI.ts +42 -77
- package/Server/Enterprise/EnterpriseEdition.ts +93 -28
- package/Server/Enterprise/EnterpriseFeature.ts +25 -3
- package/Server/Enterprise/EnterpriseLicenseSnapshot.ts +1 -1
- package/Server/Enterprise/EnterpriseServerModule.ts +4 -1
- package/Server/EnvironmentConfig.ts +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.ts +423 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796400000000-AddIncidentForms.ts +129 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796500000000-AddTeamComplianceRuleNotificationChannels.ts +52 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796600000000-AddAIInvestigationConversationAndTimeLimits.ts +75 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796700000000-AddMessageQueueTables.ts +477 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
- package/Server/Infrastructure/Semaphore.ts +22 -0
- package/Server/Middleware/IncidentFormRateLimit.ts +847 -0
- package/Server/Middleware/TelemetryIngest.ts +15 -5
- package/Server/Middleware/UserAuthorization.ts +16 -38
- package/Server/Services/AIService.ts +10 -13
- package/Server/Services/AnalyticsDatabaseService.ts +45 -1
- package/Server/Services/AutoRemediationRuleEngineService.ts +940 -112
- package/Server/Services/CephClusterService.ts +109 -1
- package/Server/Services/DatabaseServerService.ts +116 -1
- package/Server/Services/DockerHostService.ts +109 -1
- package/Server/Services/DockerSwarmClusterService.ts +113 -1
- package/Server/Services/HostService.ts +126 -4
- package/Server/Services/IncidentCustomFieldService.ts +112 -2
- package/Server/Services/IncidentEpisodeMemberService.ts +24 -4
- package/Server/Services/IncidentEpisodeService.ts +10 -1
- package/Server/Services/IncidentFormService.ts +1566 -0
- package/Server/Services/IncidentFormSubmissionService.ts +97 -0
- package/Server/Services/IncidentGroupingEngineService.ts +45 -8
- package/Server/Services/IncidentService.ts +123 -5
- package/Server/Services/IncidentTemplateService.ts +22 -0
- package/Server/Services/Index.ts +14 -0
- package/Server/Services/MessageQueueLabelRuleEngineService.ts +321 -0
- package/Server/Services/MessageQueueLabelRuleService.ts +14 -0
- package/Server/Services/MessageQueueOwnerRuleEngineService.ts +412 -0
- package/Server/Services/MessageQueueOwnerRuleService.ts +14 -0
- package/Server/Services/MessageQueueOwnerTeamService.ts +62 -0
- package/Server/Services/MessageQueueOwnerUserService.ts +62 -0
- package/Server/Services/MessageQueueService.ts +1463 -0
- package/Server/Services/MetricRecordingRuleService.ts +47 -0
- package/Server/Services/OpenTelemetryIngestService.ts +37 -4
- package/Server/Services/PodmanHostService.ts +109 -1
- package/Server/Services/ProjectService.ts +0 -59
- package/Server/Services/ProxmoxClusterService.ts +110 -1
- package/Server/Services/ResourceAiAccessService.ts +1439 -0
- package/Server/Services/ResourceAiAgentJobService.ts +202 -0
- package/Server/Services/ResourceAiAgentService.ts +2432 -0
- package/Server/Services/RunnerJobService.ts +611 -4
- package/Server/Services/StatusPagePrivateUserService.ts +1 -4
- package/Server/Services/StatusPageService.ts +1 -51
- package/Server/Services/TeamComplianceSettingService.ts +163 -42
- package/Server/Services/TelemetryUsageBillingService.ts +28 -0
- package/Server/Services/TraceRecordingRuleService.ts +33 -0
- package/Server/Services/UserNotificationRuleService.ts +8 -1
- package/Server/Services/VMwareVCenterService.ts +110 -1
- package/Server/Services/WorkspaceNotificationSummaryService.ts +12 -3
- package/Server/Types/Database/Permissions/CreatePermission.ts +17 -3
- package/Server/Types/Database/Permissions/EditionPermission.ts +140 -38
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +16 -0
- package/Server/Types/Database/Permissions/TablePermission.ts +3 -3
- package/Server/Types/Database/Permissions/UpdatePermission.ts +20 -6
- package/Server/Utils/AI/Chat/AgentContextCompactor.ts +200 -0
- package/Server/Utils/AI/Chat/ChatAgentRunner.ts +307 -48
- package/Server/Utils/AI/Chat/ChatRunCancellation.ts +156 -0
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +78 -18
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +1 -1
- package/Server/Utils/AI/Chat/ToolOutputPager.ts +322 -0
- package/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.ts +88 -30
- package/Server/Utils/AI/ClusterAccess/KubectlJobRunner.ts +13 -1
- package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +0 -32
- package/Server/Utils/AI/CodeFix/FixRunBudget.ts +27 -25
- package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +1442 -34
- package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +968 -34
- package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +25 -1
- package/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.ts +622 -0
- package/Server/Utils/AI/ResourceAccess/ResourceAccessContext.ts +271 -0
- package/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.ts +45 -0
- package/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.ts +964 -0
- package/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.ts +333 -0
- package/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.ts +882 -0
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +125 -12
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +99 -15
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +99 -15
- package/Server/Utils/AI/SRE/InvestigationQueue.ts +16 -19
- package/Server/Utils/AI/SRE/InvestigationThread.ts +646 -0
- package/Server/Utils/AI/SRE/InvestigationThreadService.ts +715 -0
- package/Server/Utils/AI/Toolbox/Serializer.ts +10 -3
- package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +396 -13
- package/Server/Utils/AutoRemediation/RemediationVerifier.ts +35 -2
- package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +9 -1
- package/Server/Utils/EditionEnforcement.ts +19 -202
- package/Server/Utils/LLM/LLMService.ts +259 -63
- package/Server/Utils/RelaxedScimTeamLocksReport.ts +245 -0
- package/Server/Utils/Rules/RuleRun/RuleRunRegistry.ts +25 -0
- package/Server/Utils/SameOriginRequest.ts +203 -0
- package/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.ts +920 -0
- package/Server/Utils/SessionReplay/SessionReplayUsage.ts +84 -6
- package/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.ts +2 -0
- package/Server/Utils/Telemetry/EntityRegistry.ts +4 -1
- package/Server/Utils/Telemetry/MessageQueueDiscovery.ts +1402 -0
- package/Server/Utils/Telemetry/ResourceEntityFilter.ts +4 -1
- package/Server/Utils/VendorAssets.ts +3 -3
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +35 -15
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +33 -15
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +21 -1
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +301 -225
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +38 -16
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +389 -175
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +376 -144
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.ts +163 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.ts +396 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.ts +418 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.ts +152 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.ts +251 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.ts +214 -0
- package/Tests/App/Accounts/IncidentFormPage.test.tsx +2036 -0
- package/Tests/App/Accounts/IncidentFormServerMessages.test.ts +119 -0
- package/Tests/App/Accounts/IncidentFormUtils.test.ts +1157 -0
- package/Tests/App/Accounts/LoginPasskey.test.tsx +6 -4
- package/Tests/App/Accounts/LoginSso.test.tsx +724 -0
- package/Tests/App/AdminDashboard/AdminAuthenticationRequireSso.test.tsx +338 -0
- package/Tests/App/AdminDashboard/AdminAuthenticationSsoCardLocales.test.tsx +331 -0
- package/Tests/App/AdminDashboard/AdminEnterprisePluginPage.test.tsx +47 -33
- package/Tests/App/AdminDashboard/GlobalSsoOidcPages.test.tsx +1021 -0
- package/Tests/App/Dashboard/AffectedResourcesDisplay.test.tsx +876 -78
- package/Tests/App/Dashboard/AffectedResourcesSlo.test.tsx +20 -3
- package/Tests/App/Dashboard/CephProxmoxVMwareDocumentationCards.test.tsx +359 -0
- package/Tests/App/Dashboard/CephSetupGuide.test.ts +961 -0
- package/Tests/App/Dashboard/CloudDocumentationCard.test.tsx +381 -95
- package/Tests/App/Dashboard/CloudSetupGuide.test.ts +1463 -0
- package/Tests/App/Dashboard/ClusterAccessNotice.test.tsx +267 -12
- package/Tests/App/Dashboard/ContainerSetupGuideCards.test.tsx +345 -0
- package/Tests/App/Dashboard/CoreListEmptyStates.test.tsx +501 -0
- package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +0 -1
- package/Tests/App/Dashboard/DatabaseDocumentationCard.test.tsx +400 -0
- package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +23 -6
- package/Tests/App/Dashboard/DatabaseSetupGuide.test.ts +1869 -0
- package/Tests/App/Dashboard/DatabaseTelemetryScope.test.ts +44 -0
- package/Tests/App/Dashboard/DatabaseTelemetryTabs.test.tsx +50 -9
- package/Tests/App/Dashboard/DockerSetupGuide.test.ts +899 -0
- package/Tests/App/Dashboard/DockerSwarmSetupGuide.test.ts +964 -0
- package/Tests/App/Dashboard/EnterpriseFeatureUpgrade.test.tsx +141 -7
- package/Tests/App/Dashboard/EnterprisePluginPage.test.tsx +52 -39
- package/Tests/App/Dashboard/EventOverviewPages.test.tsx +7 -1
- package/Tests/App/Dashboard/GettingStartedTaskRoutes.test.tsx +331 -0
- package/Tests/App/Dashboard/HomeOverviewStatsFirstRun.test.tsx +925 -0
- package/Tests/App/Dashboard/HostDocumentationCard.test.tsx +225 -0
- package/Tests/App/Dashboard/HostSetupGuide.test.ts +1183 -0
- package/Tests/App/Dashboard/IdentityEnterpriseShells.test.tsx +69 -45
- package/Tests/App/Dashboard/IncidentCreateTemplateCustomFieldSettings.test.tsx +745 -0
- package/Tests/App/Dashboard/IncidentCreateTemplateOwners.test.tsx +414 -0
- package/Tests/App/Dashboard/IncidentCustomFieldCreateSettingsForm.test.ts +1042 -0
- package/Tests/App/Dashboard/IncidentCustomFieldSettingsCard.test.tsx +1816 -0
- package/Tests/App/Dashboard/IncidentFormPlan.test.ts +89 -0
- package/Tests/App/Dashboard/IncidentFormShareLinkCard.test.tsx +846 -0
- package/Tests/App/Dashboard/IncidentFormsPages.test.tsx +1324 -0
- package/Tests/App/Dashboard/IncidentTemplateCustomFieldSettings.test.tsx +630 -0
- package/Tests/App/Dashboard/IncidentsSideMenu.test.tsx +13 -0
- package/Tests/App/Dashboard/IncomingEmailMonitorLinkVerifyHint.test.tsx +104 -0
- package/Tests/App/Dashboard/InvestigationConversation.test.tsx +1107 -0
- package/Tests/App/Dashboard/InvestigationConversationData.test.ts +546 -0
- package/Tests/App/Dashboard/InvestigationEvidenceList.test.tsx +170 -5
- package/Tests/App/Dashboard/InvestigationInfrastructureTools.test.tsx +506 -0
- package/Tests/App/Dashboard/InvestigationNotStarted.test.tsx +207 -2
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +729 -34
- package/Tests/App/Dashboard/InvestigationPanelStatus.test.tsx +9 -21
- package/Tests/App/Dashboard/InvestigationReportView.test.tsx +274 -37
- package/Tests/App/Dashboard/InvestigationStatusBadge.test.tsx +130 -0
- package/Tests/App/Dashboard/IoTDocumentationCard.test.tsx +218 -0
- package/Tests/App/Dashboard/IoTSetupGuide.test.ts +1124 -0
- package/Tests/App/Dashboard/KubernetesClusterAiAccessSettings.test.ts +20 -6
- package/Tests/App/Dashboard/KubernetesClusterAiDocumentationMarkdown.test.ts +107 -83
- package/Tests/App/Dashboard/KubernetesSetupGuide.test.ts +787 -0
- package/Tests/App/Dashboard/MessageQueueBreadcrumbs.test.tsx +228 -0
- package/Tests/App/Dashboard/MessageQueueBrokerHealth.test.tsx +1538 -0
- package/Tests/App/Dashboard/MessageQueueBrokerHealthMetricChart.test.tsx +969 -0
- package/Tests/App/Dashboard/MessageQueueBrokerHealthReads.test.ts +889 -0
- package/Tests/App/Dashboard/MessageQueueBrokerMetricsReach.test.ts +236 -0
- package/Tests/App/Dashboard/MessageQueueDocumentationCard.test.tsx +479 -0
- package/Tests/App/Dashboard/MessageQueueListPages.test.tsx +1232 -0
- package/Tests/App/Dashboard/MessageQueueMetricDescriptions.test.ts +244 -0
- package/Tests/App/Dashboard/MessageQueueMonitorLink.test.ts +952 -0
- package/Tests/App/Dashboard/MessageQueueMonitorLinkMonitorCreate.test.tsx +859 -0
- package/Tests/App/Dashboard/MessageQueueOverview.test.tsx +1773 -0
- package/Tests/App/Dashboard/MessageQueueOverviewPresentation.test.ts +196 -0
- package/Tests/App/Dashboard/MessageQueuePresentation.test.ts +799 -0
- package/Tests/App/Dashboard/MessageQueueProducersConsumers.test.tsx +680 -0
- package/Tests/App/Dashboard/MessageQueueRoutes.test.tsx +383 -0
- package/Tests/App/Dashboard/MessageQueueRulePages.test.tsx +278 -0
- package/Tests/App/Dashboard/MessageQueueSetupGuide.test.ts +2778 -0
- package/Tests/App/Dashboard/MessageQueueSideMenus.test.tsx +273 -0
- package/Tests/App/Dashboard/MessageQueueSpanPopulations.test.ts +930 -0
- package/Tests/App/Dashboard/MessageQueueSpanStore.ts +351 -0
- package/Tests/App/Dashboard/MessageQueueTelemetryScope.test.ts +375 -0
- package/Tests/App/Dashboard/MessageQueueTelemetryScopeTabs.test.tsx +668 -0
- package/Tests/App/Dashboard/MessageQueueViewPages.test.tsx +685 -0
- package/Tests/App/Dashboard/MonitorAndHomeNotOperationalMenus.test.tsx +342 -0
- package/Tests/App/Dashboard/MonitorCreateFirstRunDefaults.test.tsx +623 -0
- package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +442 -0
- package/Tests/App/Dashboard/MonitorLogsPageViewSummary.test.tsx +814 -0
- package/Tests/App/Dashboard/MonitorSetupCardBodies.test.tsx +246 -0
- package/Tests/App/Dashboard/NavigationSearchKeywords.test.tsx +8 -0
- package/Tests/App/Dashboard/OnboardingSsoEmptyState.test.tsx +27 -12
- package/Tests/App/Dashboard/PlanGatedPage.test.tsx +292 -0
- package/Tests/App/Dashboard/PodmanSetupGuide.test.ts +948 -0
- package/Tests/App/Dashboard/ProductOrientation.test.tsx +5 -4
- package/Tests/App/Dashboard/ProductSettingsSectionCollapsed.test.tsx +266 -0
- package/Tests/App/Dashboard/ProxmoxSetupGuide.test.ts +1318 -0
- package/Tests/App/Dashboard/RemediationSuggestionCardDescription.test.tsx +209 -0
- package/Tests/App/Dashboard/RemediationSuggestionCardResource.test.tsx +317 -0
- package/Tests/App/Dashboard/ResourceAiAccessSettingsUtil.test.ts +921 -0
- package/Tests/App/Dashboard/ResourceAiAgentAttentionServerParity.test.ts +555 -0
- package/Tests/App/Dashboard/ResourceAiAgentInstall.test.ts +860 -0
- package/Tests/App/Dashboard/ResourceAiAgentPage.test.tsx +2010 -0
- package/Tests/App/Dashboard/ResourceAiAgentStatus.test.ts +1455 -0
- package/Tests/App/Dashboard/ResourceAiInsightsPage.test.tsx +931 -0
- package/Tests/App/Dashboard/ResourceAiNavigation.test.tsx +575 -0
- package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +16 -0
- package/Tests/App/Dashboard/ResourceConnectionGuideCard.test.tsx +444 -0
- package/Tests/App/Dashboard/ResourceConnectionGuideOverviewsInfra.test.tsx +798 -0
- package/Tests/App/Dashboard/ResourceConnectionGuideOverviewsPlatforms.test.tsx +717 -0
- package/Tests/App/Dashboard/ResourceConnectionGuides.test.ts +981 -0
- package/Tests/App/Dashboard/ResourceConnectionState.test.ts +132 -0
- package/Tests/App/Dashboard/RumDocumentationCard.test.tsx +293 -0
- package/Tests/App/Dashboard/RumSessionReplayRetentionSettings.test.tsx +467 -0
- package/Tests/App/Dashboard/RumSetupGuide.test.ts +758 -0
- package/Tests/App/Dashboard/RunbookStepTypeMaps.test.ts +38 -7
- package/Tests/App/Dashboard/ScheduledMaintenanceOverviewPage.test.tsx +25 -0
- package/Tests/App/Dashboard/ServerlessDocumentationCard.test.tsx +254 -0
- package/Tests/App/Dashboard/ServerlessSetupGuide.test.ts +1074 -0
- package/Tests/App/Dashboard/SetupGuide.test.ts +246 -0
- package/Tests/App/Dashboard/SetupGuideCard.test.tsx +756 -0
- package/Tests/App/Dashboard/SloListSideMenu.test.tsx +120 -0
- package/Tests/App/Dashboard/SsoPages.test.tsx +833 -0
- package/Tests/App/Dashboard/TelemetryDocumentation.test.tsx +253 -0
- package/Tests/App/Dashboard/TelemetryRetentionShells.test.tsx +730 -0
- package/Tests/App/Dashboard/VMwareSetupGuide.test.ts +1033 -0
- package/Tests/App/StatusPage/StatusPageSsoEmptyState.test.tsx +87 -7
- package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +61 -10
- package/Tests/Models/DatabaseModels/IncidentFormModel.test.ts +1250 -0
- package/Tests/Models/DatabaseModels/MessageQueueModels.test.ts +1983 -0
- package/Tests/Models/DatabaseModels/ResourceAiAccessColumns.test.ts +738 -0
- package/Tests/Models/DatabaseModels/ResourceAiAgentModel.test.ts +842 -0
- package/Tests/Models/DatabaseModels/StaticRuleCriteriaInheritance.test.ts +4 -2
- package/Tests/Models/DatabaseModels/TeamComplianceSettingModel.test.ts +190 -14
- package/Tests/Models/IncidentTemplateCustomFieldSettingsColumn.test.ts +291 -0
- package/Tests/Server/API/AIInvestigationConversationAPI.test.ts +412 -0
- package/Tests/Server/API/AutoRemediationApproveResourceRound.test.ts +835 -0
- package/Tests/Server/API/GlobalConfigLicense.test.ts +38 -9
- package/Tests/Server/API/IncidentFormAPI.test.ts +942 -0
- package/Tests/Server/API/IncidentFormPublicRoutes.test.ts +1653 -0
- package/Tests/Server/API/KubernetesClusterAiAccessAPI.test.ts +2 -1
- package/Tests/Server/API/ResourceAiAccessAPI.test.ts +2730 -0
- package/Tests/Server/API/{SsoProviderListingsEdition.test.ts → SsoProviderListings.test.ts} +164 -110
- package/Tests/Server/Enterprise/EnterpriseEdition.test.ts +76 -54
- package/Tests/Server/Enterprise/EnterpriseFeatureActive.test.ts +125 -42
- package/Tests/Server/Enterprise/EnterpriseLicenseSnapshot.test.ts +36 -10
- package/Tests/Server/Enterprise/EnterpriseModelFeatureMap.test.ts +51 -9
- package/Tests/Server/Enterprise/FakeEnterpriseModule.ts +13 -8
- package/Tests/Server/Enterprise/SsoInCommunityEdition.test.ts +540 -0
- package/Tests/Server/Infrastructure/Postgres/AddConfigurableRuleCriteriaMigration.test.ts +3 -0
- package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +60 -0
- package/Tests/Server/Infrastructure/Postgres/AddIncidentFormsMigration.test.ts +438 -0
- package/Tests/Server/Infrastructure/Postgres/AddResourceAiAgentsMigration.test.ts +659 -0
- package/Tests/Server/Infrastructure/Postgres/AddTeamComplianceRuleNotificationChannelsMigration.test.ts +255 -0
- package/Tests/Server/Infrastructure/Postgres/MessageQueueTablesMigration.test.ts +637 -0
- package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +31 -0
- package/Tests/Server/Middleware/IncidentFormRateLimit.test.ts +1630 -0
- package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +63 -5
- package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +103 -5
- package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +19 -1
- package/Tests/Server/Middleware/UserAuthorization.test.ts +16 -17
- package/Tests/Server/Middleware/UserAuthorizationSsoEnforcement.test.ts +544 -0
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +37 -8
- package/Tests/Server/Services/AutoRemediationResourceRuleEngine.test.ts +1279 -0
- package/Tests/Server/Services/DatabaseServerService.test.ts +55 -0
- package/Tests/Server/Services/GroupTelemetryUsageExcludeNames.test.ts +299 -0
- package/Tests/Server/Services/HostServiceFindOrCreateMemo.test.ts +44 -0
- package/Tests/Server/Services/IncidentCreatedFeedTitle.test.ts +212 -0
- package/Tests/Server/Services/IncidentCustomFieldDeleteFormQuestions.test.ts +297 -0
- package/Tests/Server/Services/IncidentFormOwnersCreatedNotification.test.ts +497 -0
- package/Tests/Server/Services/IncidentFormPostgres.test.ts +958 -0
- package/Tests/Server/Services/IncidentFormPublicForm.test.ts +1260 -0
- package/Tests/Server/Services/IncidentFormPublicSubmission.test.ts +2520 -0
- package/Tests/Server/Services/IncidentFormRegistration.test.ts +159 -0
- package/Tests/Server/Services/IncidentFormService.test.ts +663 -0
- package/Tests/Server/Services/IncidentFormSubmissionService.test.ts +430 -0
- package/Tests/Server/Services/IncidentFormSubmissionTemplateBranch.test.ts +473 -0
- package/Tests/Server/Services/IncidentGroupingTemplateSubstitution.test.ts +81 -0
- package/Tests/Server/Services/IncidentTemplateCustomFieldSettings.test.ts +262 -0
- package/Tests/Server/Services/IncidentTemplateOwnersOnDeclare.test.ts +566 -0
- package/Tests/Server/Services/IncidentTitleMarkdownSinks.test.ts +640 -0
- package/Tests/Server/Services/LlmLogServiceTokenAggregateParams.test.ts +3 -3
- package/Tests/Server/Services/MessageQueueOwnerServices.test.ts +440 -0
- package/Tests/Server/Services/MessageQueueRegistries.test.ts +577 -0
- package/Tests/Server/Services/MessageQueueRuleEngines.test.ts +900 -0
- package/Tests/Server/Services/MessageQueueService.test.ts +2210 -0
- package/Tests/Server/Services/MessageQueueSqlPostgres.test.ts +1271 -0
- package/Tests/Server/Services/MonitorProbeServiceIntervalScheduling.test.ts +45 -6
- package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +28 -1
- package/Tests/Server/Services/OpenTelemetryRetentionOverrideEdition.test.ts +474 -0
- package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +21 -0
- package/Tests/Server/Services/OwnerRowUniqueness.test.ts +3 -0
- package/Tests/Server/Services/ProjectServiceAuditLogLicense.test.ts +0 -1
- package/Tests/Server/Services/RecordingRuleReservedMetricName.test.ts +171 -0
- package/Tests/Server/Services/ResourceAiAccessChangeAuthorization.test.ts +256 -0
- package/Tests/Server/Services/ResourceAiAccessService.test.ts +1373 -0
- package/Tests/Server/Services/ResourceAiAgentJobService.test.ts +375 -0
- package/Tests/Server/Services/ResourceAiAgentServiceHelpers.test.ts +1114 -0
- package/Tests/Server/Services/ResourceAiAgentServiceLifecycle.test.ts +1050 -0
- package/Tests/Server/Services/ResourceAiAgentServiceRegister.test.ts +2251 -0
- package/Tests/Server/Services/ResourceAiSettingsCreate.test.ts +373 -0
- package/Tests/Server/Services/ResourceAiSettingsPermission.test.ts +1042 -0
- package/Tests/Server/Services/ResourceServiceDeleteCleansUpAi.test.ts +319 -0
- package/Tests/Server/Services/RuleRun/LabelRuleEnginesGroupBRun.test.ts +56 -6
- package/Tests/Server/Services/RuleRun/OwnerRuleEnginesGroupBRun.test.ts +30 -1
- package/Tests/Server/Services/RunnerJobEnqueueKubectl.test.ts +105 -0
- package/Tests/Server/Services/RunnerJobEnqueueResourceCommand.test.ts +986 -0
- package/Tests/Server/Services/RunnerJobResourceCommandLane.test.ts +211 -0
- package/Tests/Server/Services/RunnerJobResourceCommandTimeoutAndRedaction.test.ts +352 -0
- package/Tests/Server/Services/SsoRequirementReads.test.ts +454 -0
- package/Tests/Server/Services/SsoRequirementWrites.test.ts +529 -0
- package/Tests/Server/Services/StaticRuleCriteriaRuntimeCoverage.test.ts +3 -3
- package/Tests/Server/Services/StatusPagePrivateUserInvitationPolicy.test.ts +107 -89
- package/Tests/Server/Services/TeamComplianceSettingPostgres.test.ts +1068 -176
- package/Tests/Server/Services/TeamComplianceSettingService.test.ts +1962 -200
- package/Tests/Server/Services/TelemetryUsageBillingSloExclusion.test.ts +218 -0
- package/Tests/Server/TestingUtils/Services/FakeRunnerJobCount.ts +145 -0
- package/Tests/Server/Types/Database/Permissions/EditionPermission.test.ts +654 -297
- package/Tests/Server/Types/Database/Permissions/RetentionOverrideColumns.test.ts +784 -0
- package/Tests/Server/Types/Database/Permissions/SsoScalePlanGate.test.ts +418 -0
- package/Tests/Server/Utils/AI/AIAlertGating.test.ts +0 -1
- package/Tests/Server/Utils/AI/AIInvestigationEngineRunLimits.test.ts +136 -0
- package/Tests/Server/Utils/AI/AIInvestigationQueue.test.ts +15 -14
- package/Tests/Server/Utils/AI/AgentContextCompactor.test.ts +351 -0
- package/Tests/Server/Utils/AI/ChatAgentRunnerSharedThread.test.ts +842 -0
- package/Tests/Server/Utils/AI/ChatRunCancellation.test.ts +195 -0
- package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +10 -57
- package/Tests/Server/Utils/AI/FixRunBudget.test.ts +20 -24
- package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +7 -30
- package/Tests/Server/Utils/AI/InvestigationClusterAccessWiring.test.ts +225 -29
- package/Tests/Server/Utils/AI/InvestigationInfrastructureAccessWiring.test.ts +694 -0
- package/Tests/Server/Utils/AI/InvestigationInfrastructureReport.test.ts +721 -0
- package/Tests/Server/Utils/AI/InvestigationThread.test.ts +580 -0
- package/Tests/Server/Utils/AI/InvestigationThreadService.test.ts +801 -0
- package/Tests/Server/Utils/AI/KubectlInvestigationToolkit.test.ts +525 -43
- package/Tests/Server/Utils/AI/KubectlJobRunner.test.ts +4 -2
- package/Tests/Server/Utils/AI/LLMServiceUnreachableProvider.test.ts +435 -0
- package/Tests/Server/Utils/AI/ObservabilityAssistantLimits.test.ts +462 -0
- package/Tests/Server/Utils/AI/RemediationCommandTools.test.ts +94 -1
- package/Tests/Server/Utils/AI/RemediationCommandToolsResource.test.ts +1530 -0
- package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +14 -25
- package/Tests/Server/Utils/AI/RemediationExecutionRunnerResourceMode.test.ts +1251 -0
- package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +117 -0
- package/Tests/Server/Utils/AI/RemediationResourceCopyParity.test.ts +463 -0
- package/Tests/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.test.ts +1004 -0
- package/Tests/Server/Utils/AI/ResourceAccess/ResourceAccessContext.test.ts +266 -0
- package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.test.ts +1220 -0
- package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.test.ts +569 -0
- package/Tests/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.test.ts +834 -0
- package/Tests/Server/Utils/AI/ToolOutputPager.test.ts +382 -0
- package/Tests/Server/Utils/AI/ToolResultSerializer.test.ts +23 -4
- package/Tests/Server/Utils/AI/Toolbox/LogTools.test.ts +25 -6
- package/Tests/Server/Utils/AI/Toolbox/Serializer.test.ts +14 -3
- package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorResource.test.ts +717 -0
- package/Tests/Server/Utils/AutoRemediation/RemediationVerifierResourceFollowUp.test.ts +338 -0
- package/Tests/Server/Utils/EditionEnforcement.test.ts +107 -147
- package/Tests/Server/Utils/Monitor/Criteria/SessionReplayBudgetTemplateCriteria.test.ts +422 -0
- package/Tests/Server/Utils/{CommunityEditionSsoReport.test.ts → RelaxedScimTeamLocksReport.test.ts} +212 -208
- package/Tests/Server/Utils/SameOriginRequest.test.ts +372 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.test.ts +1647 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayUsage.test.ts +143 -1
- package/Tests/Server/Utils/Telemetry/EntityRegistry.test.ts +20 -0
- package/Tests/Server/Utils/Telemetry/MessageQueueDiscovery.test.ts +2590 -0
- package/Tests/Server/Utils/Telemetry/MessageQueueSpanQueryTwin.ts +246 -0
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +23 -0
- package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +33 -3
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsAccountNotLinked.test.ts +1093 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.test.ts +1049 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.test.ts +1676 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCards.test.ts +2884 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.test.ts +2490 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmit.test.ts +2293 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmitServerTimezone.test.ts +386 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.test.ts +1477 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.test.ts +1967 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsStripHtmlTags.test.ts +92 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsSubmittedFormRemoval.test.ts +1819 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.test.ts +1033 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezoneServerZone.test.ts +610 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsBotMessageHandling.test.ts +2610 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsCreateCommandsEndToEnd.test.ts +4672 -0
- package/Tests/Server/Utils/Workspace/WorkspaceCreateProjectReferences.test.ts +190 -65
- package/Tests/Types/AI/AIAgentRunLimits.test.ts +255 -0
- package/Tests/Types/AutoRemediation/AiRemediationCommandPlan.test.ts +10 -4
- package/Tests/Types/AutoRemediation/AiRemediationCommandPlanResourceCommand.test.ts +305 -0
- package/Tests/Types/Code/JsonSyntax.test.ts +1300 -0
- package/Tests/Types/CustomField/CustomFieldCreateSettings.test.ts +1113 -0
- package/Tests/Types/CustomField/CustomFieldMappingCatalog.test.ts +91 -0
- package/Tests/Types/CustomField/CustomFieldValueValidator.test.ts +30 -0
- package/Tests/Types/Incident/IncidentFormIpAllowlist.test.ts +227 -0
- package/Tests/Types/Incident/IncidentFormPublic.test.ts +1916 -0
- package/Tests/Types/MessageQueue/MessageQueueEntityKey.test.ts +916 -0
- package/Tests/Types/MessageQueue/MessageQueueIdentity.test.ts +567 -0
- package/Tests/Types/MessageQueue/MessageQueueManualIdentity.test.ts +686 -0
- package/Tests/Types/MessageQueue/MessageQueueMetricCatalog.test.ts +1726 -0
- package/Tests/Types/MessageQueue/MessageQueueMetricResolution.test.ts +1758 -0
- package/Tests/Types/MessageQueue/MessagingInstrumentationFixtures.test.ts +4686 -0
- package/Tests/Types/MessageQueue/MessagingSystem.test.ts +840 -0
- package/Tests/Types/MessageQueue/MessagingTelemetryFixtures.ts +3287 -0
- package/Tests/Types/MessageQueue/MessagingTelemetryResolver.test.ts +2966 -0
- package/Tests/Types/Monitor/MessageQueueAlertTemplates.test.ts +5401 -0
- package/Tests/Types/Monitor/MetricEngineFold.ts +154 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +277 -13
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +113 -0
- package/Tests/Types/Monitor/RumAlertTemplates.test.ts +773 -2
- package/Tests/Types/ResourceAiAgent/AiResourceType.test.ts +419 -0
- package/Tests/Types/ResourceAiAgent/ResourceAiAccess.test.ts +519 -0
- package/Tests/Types/Runbook/RunbookStepType.test.ts +147 -8
- package/Tests/Types/Team/ComplianceRule.test.ts +588 -37
- package/Tests/Types/Team/TeamComplianceStatus.test.ts +64 -11
- package/Tests/Types/XML.test.ts +51 -0
- package/Tests/UI/Components/CodeEditor/CodeEditor.test.tsx +2362 -0
- package/Tests/UI/Components/CodeEditor/CodeEditorCommands.test.ts +810 -0
- package/Tests/UI/Components/CodeEditor/CodeEditorHighlight.test.ts +338 -0
- package/Tests/UI/Components/CodeEditor/CodeEditorLanguages.test.ts +222 -0
- package/Tests/UI/Components/CodeEditor/CodeEditorStyles.test.ts +807 -0
- package/Tests/UI/Components/CodeEditor/NoMonaco.test.ts +245 -0
- package/Tests/UI/Components/CodeEditor/YamlEditor.test.tsx +729 -0
- package/Tests/UI/Components/CopyTextButton.test.tsx +76 -0
- package/Tests/UI/Components/EditionLabelLapseCopy.ts +51 -14
- package/Tests/UI/Components/EditionLabelLicenseStatus.test.tsx +131 -23
- package/Tests/UI/Components/ErrorMessageAction.test.tsx +142 -0
- package/Tests/UI/Components/FacetSidebarInScope.test.tsx +459 -0
- package/Tests/UI/Components/FacetValuesInScope.test.ts +270 -0
- package/Tests/UI/Components/Forms/FormFieldCodeEditors.test.tsx +294 -0
- package/Tests/UI/Components/Forms/FormFieldMarkdown.test.tsx +126 -0
- package/Tests/UI/Components/Forms/FormFieldYaml.test.tsx +22 -75
- package/Tests/UI/Components/Forms/ModelFormOnBeforeCreateMiscData.test.tsx +254 -0
- package/Tests/UI/Components/Icon.test.tsx +32 -0
- package/Tests/UI/Components/Input.test.tsx +31 -0
- package/Tests/UI/Components/LockedFilterChipScope.test.tsx +501 -0
- package/Tests/UI/Components/MarkdownConverters.test.ts +253 -1
- package/Tests/UI/Components/MarkdownEditor.test.tsx +2785 -2
- package/Tests/UI/Components/MarkdownEditorHistory.test.ts +243 -0
- package/Tests/UI/Components/MarkdownListEditing.test.ts +1118 -0
- package/Tests/UI/Components/MarkdownPaste.test.ts +1180 -0
- package/Tests/UI/Components/MarkdownViewerCopy.test.tsx +466 -0
- package/Tests/UI/Components/MarkdownVisualEditing.test.ts +1089 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableEmptyStateAction.test.tsx +623 -0
- package/Tests/UI/Components/ResetObjectID.test.tsx +282 -0
- package/Tests/UI/Components/RuleCriteria/RuleCriteriaModelTable.test.tsx +3 -3
- package/Tests/UI/Components/Table/EmptyTableMessage.test.ts +439 -0
- package/Tests/UI/Components/Table/TableEmptyState.test.tsx +352 -0
- package/Tests/UI/Components/TableRowMobileTitles.test.tsx +78 -0
- package/Tests/UI/Components/TextArea.test.tsx +19 -0
- package/Tests/UI/Components/Workflow/ModelColumnEditor.render.test.tsx +12 -29
- package/Tests/UI/Components/fixtures/MarkdownPasteFixtures.ts +460 -0
- package/Tests/UI/EsbuildConfig.test.ts +115 -39
- package/Tests/UI/EsbuildEnterpriseAlias.test.ts +4 -4
- package/Tests/UI/Monitor/MonitorLogSummaryRender.test.tsx +377 -0
- package/Tests/UI/Rum/RecordingHealthDashboard.test.tsx +769 -1
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +81 -1
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +17 -0
- package/Tests/Utils/AiRemediation/Resource/CephCommandPolicy.test.ts +1653 -0
- package/Tests/Utils/AiRemediation/Resource/CephOutputRedaction.test.ts +204 -0
- package/Tests/Utils/AiRemediation/Resource/DatabaseCommandPolicy.test.ts +1077 -0
- package/Tests/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.test.ts +558 -0
- package/Tests/Utils/AiRemediation/Resource/DatabaseQueryRedactor.test.ts +834 -0
- package/Tests/Utils/AiRemediation/Resource/DockerCliGrammar.test.ts +747 -0
- package/Tests/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.test.ts +1259 -0
- package/Tests/Utils/AiRemediation/Resource/DockerOutputRedaction.test.ts +386 -0
- package/Tests/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.test.ts +782 -0
- package/Tests/Utils/AiRemediation/Resource/GovcCommandPolicy.test.ts +2259 -0
- package/Tests/Utils/AiRemediation/Resource/HostCommandPolicy.test.ts +2019 -0
- package/Tests/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.test.ts +2497 -0
- package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicy.test.ts +1305 -0
- package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.test.ts +585 -0
- package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactor.test.ts +334 -0
- package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactorCopyParity.test.ts +98 -0
- package/Tests/Utils/AiRemediation/Resource/ResourcePolicyImportClosure.test.ts +391 -0
- package/Tests/Utils/AiRemediation/ResourceAiAgentPolicyCopyParity.test.ts +497 -0
- package/Tests/Utils/LabelRuleImportExport.test.ts +5 -0
- package/Tests/Utils/Markdown/DashboardMarkdownRenderer.ts +81 -0
- package/Tests/Utils/Markdown/UntrustedMarkdown.test.ts +1339 -0
- package/Tests/Utils/Monitor/MonitorLogSummaryUtil.test.ts +862 -0
- package/Tests/Utils/SessionReplay/SessionReplayBudgetMetricType.test.ts +383 -0
- package/Types/AI/AIAgentRunLimits.ts +146 -0
- package/Types/AI/ResourceAiAccessApi.ts +140 -0
- package/Types/AI/ResourceAiAccessPermissions.ts +126 -0
- package/Types/AutoRemediation/AiRemediationCommandPlan.ts +183 -2
- package/Types/Code/CodeType.ts +2 -0
- package/Types/Code/JsonSyntax.ts +923 -0
- package/Types/CustomField/CustomFieldCreateSettings.ts +549 -0
- package/Types/CustomField/CustomFieldMappingCatalog.ts +77 -0
- package/Types/CustomField/CustomFieldValueValidator.ts +10 -7
- package/Types/EnterpriseLicense/EnterpriseLicensePeriods.ts +1 -1
- package/Types/Icon/IconProp.ts +2 -0
- package/Types/Incident/IncidentFormIpAllowlist.ts +206 -0
- package/Types/Incident/IncidentFormPublic.ts +1145 -0
- package/Types/Kubernetes/KubernetesClusterAiAccess.ts +10 -3
- package/Types/MessageQueue/MessageQueueIdentity.ts +256 -0
- package/Types/MessageQueue/MessageQueueManualIdentity.ts +325 -0
- package/Types/MessageQueue/MessageQueueMetricCatalog.ts +1357 -0
- package/Types/MessageQueue/MessagingSystem.ts +518 -0
- package/Types/MessageQueue/MessagingTelemetryResolver.ts +2311 -0
- package/Types/Monitor/MessageQueueAlertTemplates.ts +2128 -0
- package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +55 -22
- package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +35 -3
- package/Types/Monitor/RumAlertTemplates.ts +351 -4
- package/Types/Permission.ts +310 -0
- package/Types/ResourceAiAgent/AiResourceType.ts +310 -0
- package/Types/ResourceAiAgent/ResourceAiAccess.ts +580 -0
- package/Types/Rules/RuleCriteriaFieldRegistry.ts +12 -0
- package/Types/Rules/RuleRun.ts +4 -0
- package/Types/Rum/SessionReplayBudgetMetricType.ts +47 -0
- package/Types/Runbook/RunbookStepType.ts +29 -0
- package/Types/Team/ComplianceNotificationChannel.ts +4 -3
- package/Types/Team/ComplianceRule.ts +71 -18
- package/Types/Team/ComplianceRuleType.ts +2 -2
- package/Types/Team/TeamComplianceStatus.ts +6 -2
- package/Types/Telemetry/EntityType.ts +16 -0
- package/Types/Telemetry/LockedFilterDetail.ts +22 -0
- package/Types/Telemetry/TelemetryIngestSurface.ts +14 -2
- package/Types/XML.ts +26 -0
- package/UI/Components/CodeEditor/CodeEditor.css +379 -0
- package/UI/Components/CodeEditor/CodeEditor.tsx +1128 -294
- package/UI/Components/CodeEditor/CodeEditorCommands.ts +774 -0
- package/UI/Components/CodeEditor/CodeEditorHighlight.ts +106 -0
- package/UI/Components/CodeEditor/CodeEditorLanguages.ts +164 -0
- package/UI/Components/CodeEditor/YamlEditor.tsx +28 -326
- package/UI/Components/CopyTextButton/CopyTextButton.tsx +5 -1
- package/UI/Components/CustomFields/CustomFieldModelFormFields.tsx +6 -25
- package/UI/Components/EditionLabel/EditionLabel.tsx +14 -13
- package/UI/Components/ErrorMessage/ErrorMessage.tsx +11 -1
- package/UI/Components/Forms/Fields/FormField.tsx +8 -0
- package/UI/Components/Forms/Types/Field.ts +8 -0
- package/UI/Components/Icon/Icon.tsx +18 -0
- package/UI/Components/Input/Input.tsx +11 -4
- package/UI/Components/LogsViewer/LogsViewer.tsx +4 -0
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +21 -3
- package/UI/Components/Markdown.tsx/MarkdownConverters.ts +0 -0
- package/UI/Components/Markdown.tsx/MarkdownEditor.tsx +877 -79
- package/UI/Components/Markdown.tsx/MarkdownEditorHistory.ts +284 -0
- package/UI/Components/Markdown.tsx/MarkdownListEditing.ts +1362 -0
- package/UI/Components/Markdown.tsx/MarkdownPaste.ts +1326 -0
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +106 -10
- package/UI/Components/Markdown.tsx/MarkdownVisualEditing.ts +1032 -0
- package/UI/Components/ModelTable/BaseModelTable.tsx +85 -7
- package/UI/Components/ResetObjectID/ResetObjectID.tsx +35 -9
- package/UI/Components/Table/EmptyTableMessage.ts +81 -0
- package/UI/Components/Table/Table.tsx +50 -21
- package/UI/Components/Table/TableRow.tsx +9 -1
- package/UI/Components/TelemetryViewer/FacetVisibility.ts +97 -2
- package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +13 -0
- package/UI/Components/TelemetryViewer/components/LockedFilterChip.tsx +214 -7
- package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +21 -3
- package/UI/Components/TextArea/TextArea.tsx +9 -2
- package/UI/Components/Workflow/ModelFieldPicker.tsx +10 -12
- package/UI/Styles/Theme.css +8 -0
- package/UI/esbuild-config.js +2 -32
- package/Utils/AI/InvestigationReport.ts +121 -15
- package/Utils/AiRemediation/Resource/CephCommandPolicy.ts +1936 -0
- package/Utils/AiRemediation/Resource/DatabaseCommandPolicy.ts +166 -0
- package/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.ts +1532 -0
- package/Utils/AiRemediation/Resource/DatabaseQueryRedactor.ts +1394 -0
- package/Utils/AiRemediation/Resource/DockerCliGrammar.ts +1839 -0
- package/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.ts +490 -0
- package/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.ts +687 -0
- package/Utils/AiRemediation/Resource/GovcCommandPolicy.ts +2096 -0
- package/Utils/AiRemediation/Resource/HostCommandPolicy.ts +2982 -0
- package/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.ts +1679 -0
- package/Utils/AiRemediation/Resource/ResourceCommandPolicy.ts +851 -0
- package/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.ts +593 -0
- package/Utils/AiRemediation/Resource/ResourceOutputRedactor.ts +2812 -0
- package/Utils/LabelRuleImportExport.ts +2 -0
- package/Utils/Markdown/UntrustedMarkdown.ts +1513 -0
- package/Utils/Monitor/IncomingEmailMonitorRequestUtil.ts +41 -0
- package/Utils/Monitor/MonitorLogSummaryUtil.ts +212 -0
- package/Utils/SessionReplay/SessionReplayBudgetMetricType.ts +184 -0
- package/Utils/Telemetry/EntityKey.ts +48 -0
- package/build/dist/Models/DatabaseModels/AIConversation.js +125 -1
- package/build/dist/Models/DatabaseModels/AIConversation.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js +62 -0
- package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephCluster.js +231 -0
- package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResource.js +12 -0
- package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DatabaseServer.js +231 -0
- package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHost.js +231 -0
- package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +231 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalOidc.js +0 -4
- package/build/dist/Models/DatabaseModels/GlobalOidc.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalOidcProject.js +0 -4
- package/build/dist/Models/DatabaseModels/GlobalOidcProject.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalSso.js +0 -4
- package/build/dist/Models/DatabaseModels/GlobalSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalSsoProject.js +0 -4
- package/build/dist/Models/DatabaseModels/GlobalSsoProject.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Host.js +231 -0
- package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentForm.js +605 -0
- package/build/dist/Models/DatabaseModels/IncidentForm.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentFormSubmission.js +299 -0
- package/build/dist/Models/DatabaseModels/IncidentFormSubmission.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js +60 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +16 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IoTFleet.js +12 -0
- package/build/dist/Models/DatabaseModels/IoTFleet.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js +12 -0
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MessageQueue.js +1106 -0
- package/build/dist/Models/DatabaseModels/MessageQueue.js.map +1 -0
- package/build/dist/Models/DatabaseModels/MessageQueueLabelRule.js +562 -0
- package/build/dist/Models/DatabaseModels/MessageQueueLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/MessageQueueOwnerRule.js +643 -0
- package/build/dist/Models/DatabaseModels/MessageQueueOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/MessageQueueOwnerTeam.js +506 -0
- package/build/dist/Models/DatabaseModels/MessageQueueOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/MessageQueueOwnerUser.js +505 -0
- package/build/dist/Models/DatabaseModels/MessageQueueOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/PodmanHost.js +231 -0
- package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +61 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectOidc.js +0 -4
- package/build/dist/Models/DatabaseModels/ProjectOidc.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSso.js +0 -4
- package/build/dist/Models/DatabaseModels/ProjectSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +231 -0
- package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ResourceAiAgent.js +439 -0
- package/build/dist/Models/DatabaseModels/ResourceAiAgent.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RumApplication.js +12 -0
- package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunnerJob.js +145 -0
- package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunction.js +12 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunction.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Service.js +12 -0
- package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOidc.js +0 -4
- package/build/dist/Models/DatabaseModels/StatusPageOidc.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSso.js +0 -4
- package/build/dist/Models/DatabaseModels/StatusPageSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js +49 -3
- package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js.map +1 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenter.js +231 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenter.js.map +1 -1
- package/build/dist/Server/API/AIChatAPI.js +9 -103
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +3 -3
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationConversationAPI.js +162 -0
- package/build/dist/Server/API/AIInvestigationConversationAPI.js.map +1 -0
- package/build/dist/Server/API/AutoRemediationAPI.js +231 -1
- package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentFormAPI.js +245 -0
- package/build/dist/Server/API/IncidentFormAPI.js.map +1 -0
- package/build/dist/Server/API/ProjectOIDC.js +16 -24
- package/build/dist/Server/API/ProjectOIDC.js.map +1 -1
- package/build/dist/Server/API/ProjectSSO.js +16 -24
- package/build/dist/Server/API/ProjectSSO.js.map +1 -1
- package/build/dist/Server/API/ResourceAiAccessAPI.js +1119 -0
- package/build/dist/Server/API/ResourceAiAccessAPI.js.map +1 -0
- package/build/dist/Server/API/StatusPageAPI.js +42 -75
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/Enterprise/EnterpriseEdition.js +79 -25
- package/build/dist/Server/Enterprise/EnterpriseEdition.js.map +1 -1
- package/build/dist/Server/Enterprise/EnterpriseFeature.js +24 -3
- package/build/dist/Server/Enterprise/EnterpriseFeature.js.map +1 -1
- package/build/dist/Server/Enterprise/EnterpriseLicenseSnapshot.js +1 -1
- package/build/dist/Server/Enterprise/EnterpriseServerModule.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js +168 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796400000000-AddIncidentForms.js +63 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796400000000-AddIncidentForms.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796500000000-AddTeamComplianceRuleNotificationChannels.js +41 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796500000000-AddTeamComplianceRuleNotificationChannels.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796600000000-AddAIInvestigationConversationAndTimeLimits.js +40 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796600000000-AddAIInvestigationConversationAndTimeLimits.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796700000000-AddMessageQueueTables.js +183 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796700000000-AddMessageQueueTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Semaphore.js +6 -0
- package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
- package/build/dist/Server/Middleware/IncidentFormRateLimit.js +559 -0
- package/build/dist/Server/Middleware/IncidentFormRateLimit.js.map +1 -0
- package/build/dist/Server/Middleware/TelemetryIngest.js +12 -5
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Middleware/UserAuthorization.js +11 -30
- package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +10 -13
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +26 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +601 -3
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterService.js +104 -0
- package/build/dist/Server/Services/CephClusterService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseServerService.js +99 -0
- package/build/dist/Server/Services/DatabaseServerService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostService.js +104 -0
- package/build/dist/Server/Services/DockerHostService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js +104 -0
- package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +114 -2
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentCustomFieldService.js +83 -0
- package/build/dist/Server/Services/IncidentCustomFieldService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeMemberService.js +8 -4
- package/build/dist/Server/Services/IncidentEpisodeMemberService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeService.js +10 -1
- package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/IncidentFormService.js +1202 -0
- package/build/dist/Server/Services/IncidentFormService.js.map +1 -0
- package/build/dist/Server/Services/IncidentFormSubmissionService.js +91 -0
- package/build/dist/Server/Services/IncidentFormSubmissionService.js.map +1 -0
- package/build/dist/Server/Services/IncidentGroupingEngineService.js +20 -8
- package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +106 -4
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentTemplateService.js +18 -0
- package/build/dist/Server/Services/IncidentTemplateService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +14 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MessageQueueLabelRuleEngineService.js +262 -0
- package/build/dist/Server/Services/MessageQueueLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/MessageQueueLabelRuleService.js +13 -0
- package/build/dist/Server/Services/MessageQueueLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/MessageQueueOwnerRuleEngineService.js +334 -0
- package/build/dist/Server/Services/MessageQueueOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/MessageQueueOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/MessageQueueOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/MessageQueueOwnerTeamService.js +62 -0
- package/build/dist/Server/Services/MessageQueueOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/MessageQueueOwnerUserService.js +62 -0
- package/build/dist/Server/Services/MessageQueueOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/MessageQueueService.js +1140 -0
- package/build/dist/Server/Services/MessageQueueService.js.map +1 -0
- package/build/dist/Server/Services/MetricRecordingRuleService.js +46 -0
- package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +25 -4
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostService.js +104 -0
- package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +0 -54
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterService.js +104 -0
- package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
- package/build/dist/Server/Services/ResourceAiAccessService.js +1028 -0
- package/build/dist/Server/Services/ResourceAiAccessService.js.map +1 -0
- package/build/dist/Server/Services/ResourceAiAgentJobService.js +173 -0
- package/build/dist/Server/Services/ResourceAiAgentJobService.js.map +1 -0
- package/build/dist/Server/Services/ResourceAiAgentService.js +1687 -0
- package/build/dist/Server/Services/ResourceAiAgentService.js.map +1 -0
- package/build/dist/Server/Services/RunnerJobService.js +344 -5
- package/build/dist/Server/Services/RunnerJobService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserService.js +1 -4
- package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +0 -46
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TeamComplianceSettingService.js +120 -31
- package/build/dist/Server/Services/TeamComplianceSettingService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +26 -0
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/TraceRecordingRuleService.js +37 -0
- package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationRuleService.js +8 -1
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/VMwareVCenterService.js +104 -0
- package/build/dist/Server/Services/VMwareVCenterService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js +12 -3
- package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/CreatePermission.js +6 -3
- package/build/dist/Server/Types/Database/Permissions/CreatePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/EditionPermission.js +109 -37
- package/build/dist/Server/Types/Database/Permissions/EditionPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +16 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/TablePermission.js +3 -3
- package/build/dist/Server/Types/Database/Permissions/UpdatePermission.js +9 -6
- package/build/dist/Server/Types/Database/Permissions/UpdatePermission.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/AgentContextCompactor.js +128 -0
- package/build/dist/Server/Utils/AI/Chat/AgentContextCompactor.js.map +1 -0
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +192 -50
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ChatRunCancellation.js +133 -0
- package/build/dist/Server/Utils/AI/Chat/ChatRunCancellation.js.map +1 -0
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +53 -13
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +1 -1
- package/build/dist/Server/Utils/AI/Chat/ToolOutputPager.js +206 -0
- package/build/dist/Server/Utils/AI/Chat/ToolOutputPager.js.map +1 -0
- package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js +53 -26
- package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js.map +1 -1
- package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js +4 -2
- package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +1 -29
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +24 -24
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +1036 -32
- package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +661 -41
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +21 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js +354 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js +160 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js +33 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js +640 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js +226 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js +602 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +90 -14
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +73 -10
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +73 -10
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js +15 -18
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationThread.js +412 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationThread.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationThreadService.js +495 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationThreadService.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Serializer.js +10 -3
- package/build/dist/Server/Utils/AI/Toolbox/Serializer.js.map +1 -1
- package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +290 -13
- package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -1
- package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js +29 -1
- package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js.map +1 -1
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +9 -1
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
- package/build/dist/Server/Utils/EditionEnforcement.js +20 -158
- package/build/dist/Server/Utils/EditionEnforcement.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +193 -54
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/RelaxedScimTeamLocksReport.js +160 -0
- package/build/dist/Server/Utils/RelaxedScimTeamLocksReport.js.map +1 -0
- package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js +25 -0
- package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js.map +1 -1
- package/build/dist/Server/Utils/SameOriginRequest.js +151 -0
- package/build/dist/Server/Utils/SameOriginRequest.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js +627 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js +60 -5
- package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js.map +1 -1
- package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js +2 -0
- package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +4 -1
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/MessageQueueDiscovery.js +1015 -0
- package/build/dist/Server/Utils/Telemetry/MessageQueueDiscovery.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +4 -1
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
- package/build/dist/Server/Utils/VendorAssets.js +3 -3
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +19 -15
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +19 -15
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +17 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +186 -210
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +22 -16
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +233 -167
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +273 -111
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js +129 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js +266 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js +258 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js +104 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js +183 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js +123 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js.map +1 -0
- package/build/dist/Types/AI/AIAgentRunLimits.js +91 -0
- package/build/dist/Types/AI/AIAgentRunLimits.js.map +1 -0
- package/build/dist/Types/AI/ResourceAiAccessApi.js +30 -0
- package/build/dist/Types/AI/ResourceAiAccessApi.js.map +1 -0
- package/build/dist/Types/AI/ResourceAiAccessPermissions.js +98 -0
- package/build/dist/Types/AI/ResourceAiAccessPermissions.js.map +1 -0
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +116 -29
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -1
- package/build/dist/Types/Code/CodeType.js +2 -0
- package/build/dist/Types/Code/CodeType.js.map +1 -1
- package/build/dist/Types/Code/JsonSyntax.js +604 -0
- package/build/dist/Types/Code/JsonSyntax.js.map +1 -0
- package/build/dist/Types/CustomField/CustomFieldCreateSettings.js +310 -0
- package/build/dist/Types/CustomField/CustomFieldCreateSettings.js.map +1 -0
- package/build/dist/Types/CustomField/CustomFieldMappingCatalog.js +38 -0
- package/build/dist/Types/CustomField/CustomFieldMappingCatalog.js.map +1 -1
- package/build/dist/Types/CustomField/CustomFieldValueValidator.js +10 -7
- package/build/dist/Types/CustomField/CustomFieldValueValidator.js.map +1 -1
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicensePeriods.js +1 -1
- package/build/dist/Types/Icon/IconProp.js +2 -0
- package/build/dist/Types/Icon/IconProp.js.map +1 -1
- package/build/dist/Types/Incident/IncidentFormIpAllowlist.js +119 -0
- package/build/dist/Types/Incident/IncidentFormIpAllowlist.js.map +1 -0
- package/build/dist/Types/Incident/IncidentFormPublic.js +678 -0
- package/build/dist/Types/Incident/IncidentFormPublic.js.map +1 -0
- package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js +10 -3
- package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js.map +1 -1
- package/build/dist/Types/MessageQueue/MessageQueueIdentity.js +184 -0
- package/build/dist/Types/MessageQueue/MessageQueueIdentity.js.map +1 -0
- package/build/dist/Types/MessageQueue/MessageQueueManualIdentity.js +190 -0
- package/build/dist/Types/MessageQueue/MessageQueueManualIdentity.js.map +1 -0
- package/build/dist/Types/MessageQueue/MessageQueueMetricCatalog.js +1057 -0
- package/build/dist/Types/MessageQueue/MessageQueueMetricCatalog.js.map +1 -0
- package/build/dist/Types/MessageQueue/MessagingSystem.js +394 -0
- package/build/dist/Types/MessageQueue/MessagingSystem.js.map +1 -0
- package/build/dist/Types/MessageQueue/MessagingTelemetryResolver.js +1768 -0
- package/build/dist/Types/MessageQueue/MessagingTelemetryResolver.js.map +1 -0
- package/build/dist/Types/Monitor/MessageQueueAlertTemplates.js +1207 -0
- package/build/dist/Types/Monitor/MessageQueueAlertTemplates.js.map +1 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +47 -21
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +5 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
- package/build/dist/Types/Monitor/RumAlertTemplates.js +199 -3
- package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -1
- package/build/dist/Types/Permission.js +274 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/ResourceAiAgent/AiResourceType.js +242 -0
- package/build/dist/Types/ResourceAiAgent/AiResourceType.js.map +1 -0
- package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js +281 -0
- package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js.map +1 -0
- package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +12 -0
- package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -1
- package/build/dist/Types/Rules/RuleRun.js +4 -0
- package/build/dist/Types/Rules/RuleRun.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js +45 -0
- package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js.map +1 -0
- package/build/dist/Types/Runbook/RunbookStepType.js +27 -0
- package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
- package/build/dist/Types/Team/ComplianceNotificationChannel.js +4 -3
- package/build/dist/Types/Team/ComplianceNotificationChannel.js.map +1 -1
- package/build/dist/Types/Team/ComplianceRule.js +48 -14
- package/build/dist/Types/Team/ComplianceRule.js.map +1 -1
- package/build/dist/Types/Team/ComplianceRuleType.js +2 -2
- package/build/dist/Types/Telemetry/EntityType.js +16 -0
- package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
- package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +13 -2
- package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -1
- package/build/dist/Types/XML.js +23 -0
- package/build/dist/Types/XML.js.map +1 -1
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js +641 -266
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
- package/build/dist/UI/Components/CodeEditor/CodeEditorCommands.js +464 -0
- package/build/dist/UI/Components/CodeEditor/CodeEditorCommands.js.map +1 -0
- package/build/dist/UI/Components/CodeEditor/CodeEditorHighlight.js +69 -0
- package/build/dist/UI/Components/CodeEditor/CodeEditorHighlight.js.map +1 -0
- package/build/dist/UI/Components/CodeEditor/CodeEditorLanguages.js +108 -0
- package/build/dist/UI/Components/CodeEditor/CodeEditorLanguages.js.map +1 -0
- package/build/dist/UI/Components/CodeEditor/YamlEditor.js +14 -186
- package/build/dist/UI/Components/CodeEditor/YamlEditor.js.map +1 -1
- package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js +5 -1
- package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js.map +1 -1
- package/build/dist/UI/Components/CustomFields/CustomFieldModelFormFields.js +5 -14
- package/build/dist/UI/Components/CustomFields/CustomFieldModelFormFields.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +14 -13
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js +1 -1
- package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js +8 -3
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +8 -0
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/Input/Input.js +11 -3
- package/build/dist/UI/Components/Input/Input.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +2 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +14 -4
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js +0 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js +710 -65
- package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownEditorHistory.js +238 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownEditorHistory.js.map +1 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownListEditing.js +1028 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownListEditing.js.map +1 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownPaste.js +1088 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownPaste.js.map +1 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +70 -10
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownVisualEditing.js +887 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownVisualEditing.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +57 -6
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ResetObjectID/ResetObjectID.js +7 -5
- package/build/dist/UI/Components/ResetObjectID/ResetObjectID.js.map +1 -1
- package/build/dist/UI/Components/Table/EmptyTableMessage.js +51 -0
- package/build/dist/UI/Components/Table/EmptyTableMessage.js.map +1 -0
- package/build/dist/UI/Components/Table/Table.js +30 -11
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +9 -2
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js +63 -1
- package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +4 -2
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js +91 -10
- package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +14 -4
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/TextArea/TextArea.js +9 -3
- package/build/dist/UI/Components/TextArea/TextArea.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ModelFieldPicker.js +1 -2
- package/build/dist/UI/Components/Workflow/ModelFieldPicker.js.map +1 -1
- package/build/dist/Utils/AI/InvestigationReport.js +71 -11
- package/build/dist/Utils/AI/InvestigationReport.js.map +1 -1
- package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js +1462 -0
- package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js +122 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js +1139 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js +1060 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js +1301 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js +370 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js +498 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js +1565 -0
- package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js +2206 -0
- package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js +1129 -0
- package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js +565 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js +408 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js +1910 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js.map +1 -0
- package/build/dist/Utils/LabelRuleImportExport.js +2 -0
- package/build/dist/Utils/LabelRuleImportExport.js.map +1 -1
- package/build/dist/Utils/Markdown/UntrustedMarkdown.js +988 -0
- package/build/dist/Utils/Markdown/UntrustedMarkdown.js.map +1 -0
- package/build/dist/Utils/Monitor/IncomingEmailMonitorRequestUtil.js +34 -0
- package/build/dist/Utils/Monitor/IncomingEmailMonitorRequestUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorLogSummaryUtil.js +148 -0
- package/build/dist/Utils/Monitor/MonitorLogSummaryUtil.js.map +1 -0
- package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js +160 -0
- package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js.map +1 -0
- package/build/dist/Utils/Telemetry/EntityKey.js +36 -0
- package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
- package/package.json +1 -3
- package/Server/Utils/CommunityEditionSsoReport.ts +0 -361
- package/Tests/App/Accounts/LoginSsoEdition.test.tsx +0 -616
- package/Tests/App/AdminDashboard/AdminAuthenticationSsoEdition.test.tsx +0 -217
- package/Tests/App/AdminDashboard/GlobalSSOEnterpriseShells.test.tsx +0 -271
- package/Tests/App/Dashboard/CloudDocumentationMarkdown.test.ts +0 -215
- package/Tests/App/Dashboard/TelemetryResourceRetentionSettings.test.tsx +0 -784
- package/Tests/Server/Middleware/UserAuthorizationEditionEnforcement.test.ts +0 -518
- package/Tests/Server/Services/SsoRequirementReadMasking.test.ts +0 -419
- package/Tests/Server/Services/SsoRequirementWriteGuard.test.ts +0 -769
- package/Tests/UI/Components/CodeEditor.test.tsx +0 -638
- package/Tests/UI/Components/MonacoLoader.test.ts +0 -67
- package/Tests/UI/Components/MonacoRuntime.test.ts +0 -121
- package/Tests/UI/Components/Telemetry/TelemetryRetentionConfigForm.test.tsx +0 -329
- package/Tests/UI/Components/YamlEditor.test.tsx +0 -847
- package/UI/Components/CodeEditor/MonacoLoader.ts +0 -36
- package/UI/Components/Telemetry/TelemetryRetentionConfigForm.tsx +0 -319
- package/UI/Components/Telemetry/TelemetryRetentionConfigSummary.tsx +0 -223
- package/build/dist/Server/Utils/CommunityEditionSsoReport.js +0 -223
- package/build/dist/Server/Utils/CommunityEditionSsoReport.js.map +0 -1
- package/build/dist/UI/Components/CodeEditor/MonacoLoader.js +0 -34
- package/build/dist/UI/Components/CodeEditor/MonacoLoader.js.map +0 -1
- package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigForm.js +0 -171
- package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigForm.js.map +0 -1
- package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigSummary.js +0 -119
- package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigSummary.js.map +0 -1
|
@@ -0,0 +1,559 @@
|
|
|
1
|
+
import Redis from "../Infrastructure/Redis";
|
|
2
|
+
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
3
|
+
import resolveTrustedClientIp from "../Utils/ClientIp";
|
|
4
|
+
import Response from "../Utils/Response";
|
|
5
|
+
import ObjectID from "../../Types/ObjectID";
|
|
6
|
+
import ServiceUnavailableException from "../../Types/Exception/ServiceUnavailableException";
|
|
7
|
+
import TooManyRequestsException from "../../Types/Exception/TooManyRequestsException";
|
|
8
|
+
/*
|
|
9
|
+
* Rate limiting for the public incident form routes:
|
|
10
|
+
*
|
|
11
|
+
* GET /api/incident-form/public/:shareKey (the form's questions)
|
|
12
|
+
* POST /api/incident-form/public/:shareKey/submit (declare an incident)
|
|
13
|
+
*
|
|
14
|
+
* Both are anonymous: anyone holding a form's link can call them, from any
|
|
15
|
+
* network, with no session and no API key. A sibling of
|
|
16
|
+
* PublicDashboardRateLimit rather than a reuse of it, because the two routes
|
|
17
|
+
* here need budgets that differ in kind, not only in size:
|
|
18
|
+
*
|
|
19
|
+
* - reading a form is load control, like reading a public dashboard;
|
|
20
|
+
*
|
|
21
|
+
* - submitting one declares an incident, and every incident pages on-call.
|
|
22
|
+
* The counter there is not protecting a database from load, it is the
|
|
23
|
+
* only thing standing between a leaked link and a night of pages. So the
|
|
24
|
+
* submit budget is sized for people rather than for load, adds a ceiling
|
|
25
|
+
* per form that no number of addresses gets around, and refuses to serve
|
|
26
|
+
* at all when it cannot count (see getMiddleware).
|
|
27
|
+
*
|
|
28
|
+
* The per-address counters are middleware, so a flood is refused before it
|
|
29
|
+
* costs a session lookup, a Postgres read or a captcha round trip. Only the
|
|
30
|
+
* routes' own-page checks come before them (IncidentFormAPI): a request
|
|
31
|
+
* another site's page had a browser send, a read without the header the
|
|
32
|
+
* form's page sends, or a submission that is not JSON, is refused without
|
|
33
|
+
* being counted, so such a page cannot use up the budget its visitors'
|
|
34
|
+
* addresses share. The per-form ceiling is not middleware at all:
|
|
35
|
+
* IncidentFormService spends it (reserveFormSubmission) only for a
|
|
36
|
+
* submission that has passed every other check - the form, its plan, its
|
|
37
|
+
* IP allowlist, the captcha, the answers, the severity - right before the
|
|
38
|
+
* incident is declared. It bounds incidents, so only a submission about to
|
|
39
|
+
* become one may count against it; were every attempt to count, anyone
|
|
40
|
+
* holding the link - even from outside the allowlist, or without solving
|
|
41
|
+
* the captcha - could use it up with requests that are refused, and lock the
|
|
42
|
+
* form for everybody.
|
|
43
|
+
*/
|
|
44
|
+
/*
|
|
45
|
+
* Which counter rejected a request. Every request that reaches the
|
|
46
|
+
* middleware consumes the first two; a submission about to declare an
|
|
47
|
+
* incident consumes the third:
|
|
48
|
+
*
|
|
49
|
+
* - FormAndIp, keyed on the form + client address: the budget one reporter
|
|
50
|
+
* (or one office behind one NAT) gets on one form.
|
|
51
|
+
*
|
|
52
|
+
* - Ip, keyed on the client address alone. Without it the first counter is
|
|
53
|
+
* bypassed by rotating the share key on every request, landing in a
|
|
54
|
+
* fresh bucket each time while still costing a Postgres lookup, 404 or
|
|
55
|
+
* not.
|
|
56
|
+
*
|
|
57
|
+
* - Form, keyed on the form alone, across every address (submissions that
|
|
58
|
+
* passed every check only). The ceiling that survives address rotation:
|
|
59
|
+
* a botnet holding the link gets no more pages out of it than one
|
|
60
|
+
* determined person does.
|
|
61
|
+
*
|
|
62
|
+
* Every counter is incremented on each request that reaches it, including
|
|
63
|
+
* one it rejects, so a client that keeps hammering keeps its window pinned
|
|
64
|
+
* rather than being handed a fresh allowance for free.
|
|
65
|
+
*/
|
|
66
|
+
export var IncidentFormRateLimitScope;
|
|
67
|
+
(function (IncidentFormRateLimitScope) {
|
|
68
|
+
IncidentFormRateLimitScope["FormAndIp"] = "form-and-ip";
|
|
69
|
+
IncidentFormRateLimitScope["Ip"] = "ip";
|
|
70
|
+
IncidentFormRateLimitScope["Form"] = "form";
|
|
71
|
+
})(IncidentFormRateLimitScope || (IncidentFormRateLimitScope = {}));
|
|
72
|
+
export var IncidentFormRateLimitBucket;
|
|
73
|
+
(function (IncidentFormRateLimitBucket) {
|
|
74
|
+
// GET /incident-form/public/:shareKey. Fails open.
|
|
75
|
+
IncidentFormRateLimitBucket["Read"] = "read";
|
|
76
|
+
// POST /incident-form/public/:shareKey/submit. Fails closed.
|
|
77
|
+
IncidentFormRateLimitBucket["Submit"] = "submit";
|
|
78
|
+
})(IncidentFormRateLimitBucket || (IncidentFormRateLimitBucket = {}));
|
|
79
|
+
export var IncidentFormRateLimitOutcome;
|
|
80
|
+
(function (IncidentFormRateLimitOutcome) {
|
|
81
|
+
IncidentFormRateLimitOutcome["Allowed"] = "allowed";
|
|
82
|
+
IncidentFormRateLimitOutcome["RateLimited"] = "rate-limited";
|
|
83
|
+
// Redis is unreachable, so no limit can be honoured either way.
|
|
84
|
+
IncidentFormRateLimitOutcome["CounterUnavailable"] = "counter-unavailable";
|
|
85
|
+
})(IncidentFormRateLimitOutcome || (IncidentFormRateLimitOutcome = {}));
|
|
86
|
+
/*
|
|
87
|
+
* What a refused caller is told. None of them names a number: the limits are
|
|
88
|
+
* for the operator to tune, not for a caller to pace itself against.
|
|
89
|
+
*/
|
|
90
|
+
export const INCIDENT_FORM_READ_RATE_LIMIT_MESSAGE = "Too many requests. Please try again later.";
|
|
91
|
+
export const INCIDENT_FORM_SUBMIT_RATE_LIMIT_MESSAGE = "Too many submissions from your network. Please wait a few minutes and try again.";
|
|
92
|
+
/*
|
|
93
|
+
* The per-form ceiling is not about the caller's network at all, so it gets
|
|
94
|
+
* its own words: telling someone whose first report this is that "your
|
|
95
|
+
* network" sent too many would send them hunting for a problem they do not
|
|
96
|
+
* have.
|
|
97
|
+
*/
|
|
98
|
+
export const INCIDENT_FORM_TOTAL_RATE_LIMIT_MESSAGE = "This form is receiving too many reports right now. Please try again later.";
|
|
99
|
+
export const INCIDENT_FORM_RATE_LIMIT_UNAVAILABLE_MESSAGE = "Reports cannot be accepted right now. Please try again in a few minutes.";
|
|
100
|
+
/*
|
|
101
|
+
* A submission the per-form ceiling refused. Thrown from inside
|
|
102
|
+
* IncidentFormService (reserveFormSubmission), where there is no response to
|
|
103
|
+
* write a header on, so it carries when to come back; the submit route
|
|
104
|
+
* writes that as Retry-After (setRetryAfterFor) before the error handler
|
|
105
|
+
* answers 429.
|
|
106
|
+
*/
|
|
107
|
+
export class IncidentFormCeilingException extends TooManyRequestsException {
|
|
108
|
+
constructor(retryAfterSeconds) {
|
|
109
|
+
super(INCIDENT_FORM_TOTAL_RATE_LIMIT_MESSAGE);
|
|
110
|
+
this.retryAfterSeconds = retryAfterSeconds;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const parsePositiveIntFromEnv = (envKey, fallback) => {
|
|
114
|
+
const rawValue = process.env[envKey];
|
|
115
|
+
if (!rawValue) {
|
|
116
|
+
return fallback;
|
|
117
|
+
}
|
|
118
|
+
const parsedValue = parseInt(rawValue, 10);
|
|
119
|
+
if (!Number.isFinite(parsedValue) || parsedValue <= 0) {
|
|
120
|
+
return fallback;
|
|
121
|
+
}
|
|
122
|
+
return parsedValue;
|
|
123
|
+
};
|
|
124
|
+
/*
|
|
125
|
+
* Read budget: 120 per minute per form + address, 600 per minute per
|
|
126
|
+
* address.
|
|
127
|
+
*
|
|
128
|
+
* The page asks for the form once when it opens, so a real reporter uses one
|
|
129
|
+
* or two of these. The headroom is for a whole office behind one NAT opening
|
|
130
|
+
* the same link during an outage - which is exactly when a form gets used -
|
|
131
|
+
* and the per-address ceiling for that office opening several forms. What
|
|
132
|
+
* matters is that "as fast as a loop runs" becomes a fixed ceiling at all;
|
|
133
|
+
* operators who want it tighter have the environment variables.
|
|
134
|
+
*/
|
|
135
|
+
const READ_BUCKET = {
|
|
136
|
+
windowSeconds: parsePositiveIntFromEnv("INCIDENT_FORM_RATE_LIMIT_WINDOW_SECONDS", 60),
|
|
137
|
+
perFormAndIpLimit: parsePositiveIntFromEnv("INCIDENT_FORM_RATE_LIMIT_PER_FORM_AND_IP_PER_WINDOW", 120),
|
|
138
|
+
perIpLimit: parsePositiveIntFromEnv("INCIDENT_FORM_RATE_LIMIT_PER_IP_PER_WINDOW", 600),
|
|
139
|
+
failsClosed: false,
|
|
140
|
+
};
|
|
141
|
+
/*
|
|
142
|
+
* Submit budget: 10 per 15 minutes per form + address, 30 per 15 minutes
|
|
143
|
+
* per address, and 60 incidents per hour per form across every address.
|
|
144
|
+
*
|
|
145
|
+
* Sized for people. Ten reports to one form from one network in a quarter
|
|
146
|
+
* of an hour already covers a team that all saw the same outage, plus a few
|
|
147
|
+
* attempts that failed validation (those count against the address budgets
|
|
148
|
+
* - the middleware runs before the form is checked). The per-form ceiling
|
|
149
|
+
* is the one that bounds pages: only a submission about to declare an
|
|
150
|
+
* incident counts against it, so an hour of it is sixty incidents, far past
|
|
151
|
+
* the point where more reports add information, and no number of addresses
|
|
152
|
+
* raises it.
|
|
153
|
+
*
|
|
154
|
+
* The per-form ceiling is keyed on the share key, like everything here, so
|
|
155
|
+
* resetting a form's link in the dashboard - the remedy for a link that went
|
|
156
|
+
* somewhere it should not have - also starts the new link with a fresh
|
|
157
|
+
* allowance.
|
|
158
|
+
*/
|
|
159
|
+
const SUBMIT_BUCKET = {
|
|
160
|
+
windowSeconds: parsePositiveIntFromEnv("INCIDENT_FORM_SUBMIT_RATE_LIMIT_WINDOW_SECONDS", 15 * 60),
|
|
161
|
+
perFormAndIpLimit: parsePositiveIntFromEnv("INCIDENT_FORM_SUBMIT_RATE_LIMIT_PER_FORM_AND_IP_PER_WINDOW", 10),
|
|
162
|
+
perIpLimit: parsePositiveIntFromEnv("INCIDENT_FORM_SUBMIT_RATE_LIMIT_PER_IP_PER_WINDOW", 30),
|
|
163
|
+
perForm: {
|
|
164
|
+
windowSeconds: parsePositiveIntFromEnv("INCIDENT_FORM_SUBMIT_RATE_LIMIT_PER_FORM_WINDOW_SECONDS", 60 * 60),
|
|
165
|
+
limit: parsePositiveIntFromEnv("INCIDENT_FORM_SUBMIT_RATE_LIMIT_PER_FORM_PER_WINDOW", 60),
|
|
166
|
+
},
|
|
167
|
+
failsClosed: true,
|
|
168
|
+
};
|
|
169
|
+
/*
|
|
170
|
+
* Redis namespace for every counter here, so a SCAN for incident form keys
|
|
171
|
+
* never shows another surface's, and the two surfaces never share a count.
|
|
172
|
+
*/
|
|
173
|
+
const KEY_PREFIX = "iform:rl:";
|
|
174
|
+
/*
|
|
175
|
+
* Counter keys outlive their window by one full window, so a request landing
|
|
176
|
+
* on a boundary cannot read a key that was reclaimed mid-window.
|
|
177
|
+
*/
|
|
178
|
+
const TTL_MULTIPLIER = 2;
|
|
179
|
+
// Bounds a Redis key built from attacker-supplied request data.
|
|
180
|
+
const MAX_KEY_SEGMENT_LENGTH = 64;
|
|
181
|
+
// How often the "counter unavailable" condition may be logged, per bucket.
|
|
182
|
+
const COUNTER_UNAVAILABLE_LOG_INTERVAL_MS = 60 * 1000;
|
|
183
|
+
class IncidentFormRateLimit {
|
|
184
|
+
// The limits in force for a bucket, for tests and operators' diagnostics.
|
|
185
|
+
static getBucketConfig(bucket) {
|
|
186
|
+
const config = IncidentFormRateLimit.getConfig(bucket);
|
|
187
|
+
return Object.assign(Object.assign({}, config), { perForm: config.perForm ? Object.assign({}, config.perForm) : undefined });
|
|
188
|
+
}
|
|
189
|
+
/*
|
|
190
|
+
* The client address to bill this request to.
|
|
191
|
+
*
|
|
192
|
+
* The shared ClientIp helper reads X-Forwarded-For from the trusted
|
|
193
|
+
* (right-hand) end under the instance-wide TRUSTED_PROXY_HOPS setting -
|
|
194
|
+
* never the leftmost entry, which any caller can set, and which would hand
|
|
195
|
+
* a caller a fresh bucket per request. It is also what IncidentFormService
|
|
196
|
+
* checks the form's IP allowlist against, so the limiter and the allowlist
|
|
197
|
+
* always agree on who is calling.
|
|
198
|
+
*/
|
|
199
|
+
static resolveClientIp(req) {
|
|
200
|
+
const clientIp = resolveTrustedClientIp(req);
|
|
201
|
+
if (clientIp) {
|
|
202
|
+
return IncidentFormRateLimit.sanitizeKeySegment(clientIp);
|
|
203
|
+
}
|
|
204
|
+
/*
|
|
205
|
+
* No address at all. Everything in this state shares one bucket, which
|
|
206
|
+
* is the conservative direction: an unidentifiable caller should not get
|
|
207
|
+
* a private allowance of its own.
|
|
208
|
+
*/
|
|
209
|
+
return "unknown";
|
|
210
|
+
}
|
|
211
|
+
/*
|
|
212
|
+
* The form this request is about, as a key segment.
|
|
213
|
+
*
|
|
214
|
+
* A share key is a UUID, so anything else cannot name a form and every
|
|
215
|
+
* such request shares one "invalid" bucket. That bounds Redis memory
|
|
216
|
+
* against a caller feeding junk path segments, and it is the right grouping
|
|
217
|
+
* anyway: none of them can reach a form. Case and surrounding whitespace do
|
|
218
|
+
* not split a bucket, or varying them would be a way around the limit.
|
|
219
|
+
*
|
|
220
|
+
* The key is used as it is rather than hashed: a share key sits in an
|
|
221
|
+
* address bar and in access logs by design (see IncidentForm.shareKey), so
|
|
222
|
+
* it is a link identifier like a public dashboard id, not a secret.
|
|
223
|
+
*/
|
|
224
|
+
static resolveFormKey(req) {
|
|
225
|
+
var _a;
|
|
226
|
+
return IncidentFormRateLimit.getFormKey((_a = req.params) === null || _a === void 0 ? void 0 : _a["shareKey"]);
|
|
227
|
+
}
|
|
228
|
+
/*
|
|
229
|
+
* The key segment for a share key, however it was read: from the path by
|
|
230
|
+
* the middleware, or handed over by IncidentFormService when it spends the
|
|
231
|
+
* form's ceiling - so both always count the same form under one key.
|
|
232
|
+
*/
|
|
233
|
+
static getFormKey(shareKey) {
|
|
234
|
+
if (typeof shareKey !== "string" || shareKey.trim().length === 0) {
|
|
235
|
+
return "none";
|
|
236
|
+
}
|
|
237
|
+
const value = shareKey.trim();
|
|
238
|
+
if (ObjectID.isValidUUID(value)) {
|
|
239
|
+
return `k:${value.toLowerCase()}`;
|
|
240
|
+
}
|
|
241
|
+
return "invalid";
|
|
242
|
+
}
|
|
243
|
+
static sanitizeKeySegment(value) {
|
|
244
|
+
return (value
|
|
245
|
+
.slice(0, MAX_KEY_SEGMENT_LENGTH)
|
|
246
|
+
/*
|
|
247
|
+
* Redis keys are binary safe, but a predictable charset keeps
|
|
248
|
+
* operational tooling (KEYS/SCAN patterns, dashboards) sane.
|
|
249
|
+
*/
|
|
250
|
+
.replace(/[^a-zA-Z0-9._:%\-[\]]/g, "_"));
|
|
251
|
+
}
|
|
252
|
+
static getConfig(bucket) {
|
|
253
|
+
if (bucket === IncidentFormRateLimitBucket.Submit) {
|
|
254
|
+
return SUBMIT_BUCKET;
|
|
255
|
+
}
|
|
256
|
+
return READ_BUCKET;
|
|
257
|
+
}
|
|
258
|
+
/*
|
|
259
|
+
* Count this request against the two per-address counters and decide.
|
|
260
|
+
*
|
|
261
|
+
* Both go out in one pipeline, so a request costs a single round trip. The
|
|
262
|
+
* form's own ceiling is not counted here, for either bucket: that is
|
|
263
|
+
* spent by a submission that has passed every check (consumeFormCeiling),
|
|
264
|
+
* so a request that is refused - by these counters or by anything after
|
|
265
|
+
* them - never uses up the allowance everybody else shares.
|
|
266
|
+
*/
|
|
267
|
+
static async consume(data) {
|
|
268
|
+
var _a, _b;
|
|
269
|
+
const client = Redis.getClient();
|
|
270
|
+
if (!client || !Redis.isConnected()) {
|
|
271
|
+
return { outcome: IncidentFormRateLimitOutcome.CounterUnavailable };
|
|
272
|
+
}
|
|
273
|
+
const config = IncidentFormRateLimit.getConfig(data.bucket);
|
|
274
|
+
const keyPrefix = `${KEY_PREFIX}${data.bucket}:`;
|
|
275
|
+
const windowIndex = IncidentFormRateLimit.getWindowIndex(config.windowSeconds);
|
|
276
|
+
const formAndIpCounterKey = `${keyPrefix}fi:${data.formKey}:${data.clientIp}:${windowIndex}`;
|
|
277
|
+
const ipCounterKey = `${keyPrefix}i:${data.clientIp}:${windowIndex}`;
|
|
278
|
+
try {
|
|
279
|
+
const addressCounts = await IncidentFormRateLimit.incrementCounters({
|
|
280
|
+
client,
|
|
281
|
+
keys: [formAndIpCounterKey, ipCounterKey],
|
|
282
|
+
windowSeconds: config.windowSeconds,
|
|
283
|
+
});
|
|
284
|
+
const formAndIpCount = (_a = addressCounts[0]) !== null && _a !== void 0 ? _a : 0;
|
|
285
|
+
const ipCount = (_b = addressCounts[1]) !== null && _b !== void 0 ? _b : 0;
|
|
286
|
+
/*
|
|
287
|
+
* The per-form + address counter is reported first when both are over:
|
|
288
|
+
* it is the more specific of the two and the more useful thing to see
|
|
289
|
+
* in a log line.
|
|
290
|
+
*/
|
|
291
|
+
if (formAndIpCount > config.perFormAndIpLimit) {
|
|
292
|
+
return IncidentFormRateLimit.rejected({
|
|
293
|
+
scope: IncidentFormRateLimitScope.FormAndIp,
|
|
294
|
+
count: formAndIpCount,
|
|
295
|
+
limit: config.perFormAndIpLimit,
|
|
296
|
+
windowSeconds: config.windowSeconds,
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
if (ipCount > config.perIpLimit) {
|
|
300
|
+
return IncidentFormRateLimit.rejected({
|
|
301
|
+
scope: IncidentFormRateLimitScope.Ip,
|
|
302
|
+
count: ipCount,
|
|
303
|
+
limit: config.perIpLimit,
|
|
304
|
+
windowSeconds: config.windowSeconds,
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
return { outcome: IncidentFormRateLimitOutcome.Allowed };
|
|
308
|
+
}
|
|
309
|
+
catch (err) {
|
|
310
|
+
/*
|
|
311
|
+
* Throttled for the same reason as the middleware's unavailable
|
|
312
|
+
* branch: whatever broke Redis is unlikely to break it for one request
|
|
313
|
+
* only, and a per-request log line buries the incident it reports.
|
|
314
|
+
*/
|
|
315
|
+
if (IncidentFormRateLimit.shouldLogCounterUnavailable(data.bucket)) {
|
|
316
|
+
logger.warn(`IncidentFormRateLimit: counter failed for incident form ${data.formKey}`);
|
|
317
|
+
logger.warn(err);
|
|
318
|
+
}
|
|
319
|
+
return { outcome: IncidentFormRateLimitOutcome.CounterUnavailable };
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
/*
|
|
323
|
+
* Count one incident against the form's ceiling - across every address,
|
|
324
|
+
* per clock hour - and decide. For a submission that has passed every
|
|
325
|
+
* other check and is about to declare its incident; see
|
|
326
|
+
* reserveFormSubmission, which is what the service calls.
|
|
327
|
+
*/
|
|
328
|
+
static async consumeFormCeiling(data) {
|
|
329
|
+
var _a;
|
|
330
|
+
const client = Redis.getClient();
|
|
331
|
+
if (!client || !Redis.isConnected()) {
|
|
332
|
+
return { outcome: IncidentFormRateLimitOutcome.CounterUnavailable };
|
|
333
|
+
}
|
|
334
|
+
const ceiling = SUBMIT_BUCKET.perForm;
|
|
335
|
+
if (!ceiling) {
|
|
336
|
+
return { outcome: IncidentFormRateLimitOutcome.Allowed };
|
|
337
|
+
}
|
|
338
|
+
const formCounterKey = `${KEY_PREFIX}${IncidentFormRateLimitBucket.Submit}:f:${data.formKey}:${IncidentFormRateLimit.getWindowIndex(ceiling.windowSeconds)}`;
|
|
339
|
+
try {
|
|
340
|
+
const formCounts = await IncidentFormRateLimit.incrementCounters({
|
|
341
|
+
client,
|
|
342
|
+
keys: [formCounterKey],
|
|
343
|
+
windowSeconds: ceiling.windowSeconds,
|
|
344
|
+
});
|
|
345
|
+
const formCount = (_a = formCounts[0]) !== null && _a !== void 0 ? _a : 0;
|
|
346
|
+
if (formCount > ceiling.limit) {
|
|
347
|
+
return IncidentFormRateLimit.rejected({
|
|
348
|
+
scope: IncidentFormRateLimitScope.Form,
|
|
349
|
+
count: formCount,
|
|
350
|
+
limit: ceiling.limit,
|
|
351
|
+
windowSeconds: ceiling.windowSeconds,
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
return { outcome: IncidentFormRateLimitOutcome.Allowed };
|
|
355
|
+
}
|
|
356
|
+
catch (err) {
|
|
357
|
+
if (IncidentFormRateLimit.shouldLogCounterUnavailable(IncidentFormRateLimitBucket.Submit)) {
|
|
358
|
+
logger.warn(`IncidentFormRateLimit: form ceiling counter failed for incident form ${data.formKey}`);
|
|
359
|
+
logger.warn(err);
|
|
360
|
+
}
|
|
361
|
+
return { outcome: IncidentFormRateLimitOutcome.CounterUnavailable };
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/*
|
|
365
|
+
* Spend one of the form's hourly incidents, or refuse: 429
|
|
366
|
+
* (IncidentFormCeilingException, carrying when to come back) once the
|
|
367
|
+
* hour's allowance is used, and 503 when the counter cannot be reached -
|
|
368
|
+
* the ceiling is what bounds the pages a link can cause, so without it the
|
|
369
|
+
* submission fails closed, as the submit middleware does.
|
|
370
|
+
*
|
|
371
|
+
* Called by IncidentFormService.submitPublicForm right before it declares
|
|
372
|
+
* the incident, once the form, its plan, its IP allowlist, the captcha,
|
|
373
|
+
* the answers and the severity have all been checked: a refused request
|
|
374
|
+
* never spends it.
|
|
375
|
+
*/
|
|
376
|
+
static async reserveFormSubmission(data) {
|
|
377
|
+
const formKey = IncidentFormRateLimit.getFormKey(data.shareKey);
|
|
378
|
+
const decision = await IncidentFormRateLimit.consumeFormCeiling({ formKey });
|
|
379
|
+
if (decision.outcome === IncidentFormRateLimitOutcome.RateLimited) {
|
|
380
|
+
if (decision.isFirstRejectionInWindow) {
|
|
381
|
+
logger.warn(`IncidentFormRateLimit: rejected a submission to incident form ${formKey} (${IncidentFormRateLimitScope.Form} limit)`);
|
|
382
|
+
}
|
|
383
|
+
throw new IncidentFormCeilingException(decision.retryAfterSeconds || 1);
|
|
384
|
+
}
|
|
385
|
+
if (decision.outcome === IncidentFormRateLimitOutcome.CounterUnavailable) {
|
|
386
|
+
if (IncidentFormRateLimit.shouldLogCounterUnavailable(IncidentFormRateLimitBucket.Submit)) {
|
|
387
|
+
logger.error(`IncidentFormRateLimit: rate limit counter unavailable, refusing incident form submissions (incident form ${formKey})`);
|
|
388
|
+
}
|
|
389
|
+
throw new ServiceUnavailableException(INCIDENT_FORM_RATE_LIMIT_UNAVAILABLE_MESSAGE);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
/*
|
|
393
|
+
* For the submit route: when the service refused a submission for the
|
|
394
|
+
* form's ceiling, say when to come back, as the middleware does for its
|
|
395
|
+
* own refusals. Anything else is left alone.
|
|
396
|
+
*/
|
|
397
|
+
static setRetryAfterFor(res, error) {
|
|
398
|
+
if (error instanceof IncidentFormCeilingException) {
|
|
399
|
+
IncidentFormRateLimit.setRetryAfterHeader(res, error.retryAfterSeconds);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
/*
|
|
403
|
+
* INCR each key in one pipeline and return the new counts, in order.
|
|
404
|
+
*
|
|
405
|
+
* The expiry is set only on the write that created a key. Re-issuing
|
|
406
|
+
* EXPIRE on every increment would slide the window forward for as long as
|
|
407
|
+
* the load continued, so the counter would never reset and a client that
|
|
408
|
+
* tripped the limit once could never recover.
|
|
409
|
+
*/
|
|
410
|
+
static async incrementCounters(data) {
|
|
411
|
+
const pipeline = data.client.pipeline();
|
|
412
|
+
for (const key of data.keys) {
|
|
413
|
+
pipeline.incr(key);
|
|
414
|
+
}
|
|
415
|
+
const pipelineResults = (await pipeline.exec());
|
|
416
|
+
if (!pipelineResults || pipelineResults.length < data.keys.length) {
|
|
417
|
+
throw new Error("Rate limit pipeline returned no result");
|
|
418
|
+
}
|
|
419
|
+
const counts = data.keys.map((_key, index) => {
|
|
420
|
+
return IncidentFormRateLimit.readCounterResult(pipelineResults[index]);
|
|
421
|
+
});
|
|
422
|
+
const keysToExpire = data.keys.filter((_key, index) => {
|
|
423
|
+
return counts[index] === 1;
|
|
424
|
+
});
|
|
425
|
+
if (keysToExpire.length > 0) {
|
|
426
|
+
const expirePipeline = data.client.pipeline();
|
|
427
|
+
for (const key of keysToExpire) {
|
|
428
|
+
expirePipeline.expire(key, data.windowSeconds * TTL_MULTIPLIER);
|
|
429
|
+
}
|
|
430
|
+
await expirePipeline.exec();
|
|
431
|
+
}
|
|
432
|
+
return counts;
|
|
433
|
+
}
|
|
434
|
+
static rejected(data) {
|
|
435
|
+
return {
|
|
436
|
+
outcome: IncidentFormRateLimitOutcome.RateLimited,
|
|
437
|
+
retryAfterSeconds: IncidentFormRateLimit.getSecondsUntilWindowEnd(data.windowSeconds),
|
|
438
|
+
scope: data.scope,
|
|
439
|
+
isFirstRejectionInWindow: data.count === data.limit + 1,
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
static readCounterResult(result) {
|
|
443
|
+
if (!result) {
|
|
444
|
+
throw new Error("Rate limit counter returned no result");
|
|
445
|
+
}
|
|
446
|
+
const [error, value] = result;
|
|
447
|
+
if (error) {
|
|
448
|
+
throw error;
|
|
449
|
+
}
|
|
450
|
+
if (typeof value !== "number") {
|
|
451
|
+
throw new Error("Rate limit counter returned a non-numeric value");
|
|
452
|
+
}
|
|
453
|
+
return value;
|
|
454
|
+
}
|
|
455
|
+
static getWindowIndex(windowSeconds) {
|
|
456
|
+
return Math.floor(Date.now() / (windowSeconds * 1000));
|
|
457
|
+
}
|
|
458
|
+
/*
|
|
459
|
+
* Remaining seconds in the window of the counter that refused, so a
|
|
460
|
+
* rejected caller is told to come back when that window actually rolls -
|
|
461
|
+
* an hour for the per-form ceiling, a quarter of one for the per-address
|
|
462
|
+
* counters - rather than every caller backing off by one constant and
|
|
463
|
+
* colliding again.
|
|
464
|
+
*/
|
|
465
|
+
static getSecondsUntilWindowEnd(windowSeconds) {
|
|
466
|
+
const windowMs = windowSeconds * 1000;
|
|
467
|
+
const msIntoWindow = Date.now() % windowMs;
|
|
468
|
+
return Math.max(1, Math.ceil((windowMs - msIntoWindow) / 1000));
|
|
469
|
+
}
|
|
470
|
+
/*
|
|
471
|
+
* The middleware only ever refuses on the per-address counters, so a
|
|
472
|
+
* refused submission is always about the caller's network. (The form's
|
|
473
|
+
* own ceiling has its own words: see IncidentFormCeilingException.)
|
|
474
|
+
*/
|
|
475
|
+
static getRateLimitedMessage(bucket) {
|
|
476
|
+
if (bucket === IncidentFormRateLimitBucket.Read) {
|
|
477
|
+
return INCIDENT_FORM_READ_RATE_LIMIT_MESSAGE;
|
|
478
|
+
}
|
|
479
|
+
return INCIDENT_FORM_SUBMIT_RATE_LIMIT_MESSAGE;
|
|
480
|
+
}
|
|
481
|
+
/*
|
|
482
|
+
* Express middleware, mounted on each public form route ahead of
|
|
483
|
+
* UserMiddleware (it reads :shareKey from req.params, so it must sit on
|
|
484
|
+
* the route rather than the router), so a flood is refused before it costs
|
|
485
|
+
* a session lookup, let alone a Postgres read or a captcha check.
|
|
486
|
+
*/
|
|
487
|
+
static getMiddleware(bucket = IncidentFormRateLimitBucket.Read) {
|
|
488
|
+
return async (req, res, next) => {
|
|
489
|
+
const config = IncidentFormRateLimit.getConfig(bucket);
|
|
490
|
+
const formKey = IncidentFormRateLimit.resolveFormKey(req);
|
|
491
|
+
const clientIp = IncidentFormRateLimit.resolveClientIp(req);
|
|
492
|
+
const decision = await IncidentFormRateLimit.consume({
|
|
493
|
+
formKey,
|
|
494
|
+
clientIp,
|
|
495
|
+
bucket,
|
|
496
|
+
});
|
|
497
|
+
if (decision.outcome === IncidentFormRateLimitOutcome.RateLimited) {
|
|
498
|
+
if (decision.retryAfterSeconds) {
|
|
499
|
+
IncidentFormRateLimit.setRetryAfterHeader(res, decision.retryAfterSeconds);
|
|
500
|
+
}
|
|
501
|
+
if (decision.isFirstRejectionInWindow) {
|
|
502
|
+
logger.warn(`IncidentFormRateLimit: rejected ${bucket} request for incident form ${formKey} from ${clientIp} (${decision.scope} limit)`);
|
|
503
|
+
}
|
|
504
|
+
return Response.sendErrorResponse(req, res, new TooManyRequestsException(IncidentFormRateLimit.getRateLimitedMessage(bucket)));
|
|
505
|
+
}
|
|
506
|
+
if (decision.outcome === IncidentFormRateLimitOutcome.CounterUnavailable) {
|
|
507
|
+
/*
|
|
508
|
+
* The two buckets fail in opposite directions, on purpose.
|
|
509
|
+
*
|
|
510
|
+
* Reads fail OPEN. Showing a form's questions is read-only, and the
|
|
511
|
+
* counter there is load control: turning every company's report
|
|
512
|
+
* form into an error page because Redis blipped is worse than an
|
|
513
|
+
* unbounded window for the length of the blip, which is itself
|
|
514
|
+
* alarmed on.
|
|
515
|
+
*
|
|
516
|
+
* Submits fail CLOSED. There the counter is the only bound on how
|
|
517
|
+
* many incidents - and pages - a link can produce. Serving the route
|
|
518
|
+
* without it would serve an unlimited pager, so the reporter gets a
|
|
519
|
+
* 503 and can send the report when Redis is back.
|
|
520
|
+
*/
|
|
521
|
+
if (config.failsClosed) {
|
|
522
|
+
if (IncidentFormRateLimit.shouldLogCounterUnavailable(bucket)) {
|
|
523
|
+
logger.error(`IncidentFormRateLimit: rate limit counter unavailable, refusing incident form submissions (incident form ${formKey})`);
|
|
524
|
+
}
|
|
525
|
+
return Response.sendErrorResponse(req, res, new ServiceUnavailableException(INCIDENT_FORM_RATE_LIMIT_UNAVAILABLE_MESSAGE));
|
|
526
|
+
}
|
|
527
|
+
if (IncidentFormRateLimit.shouldLogCounterUnavailable(bucket)) {
|
|
528
|
+
logger.warn("IncidentFormRateLimit: rate limit counter unavailable, serving incident forms unthrottled");
|
|
529
|
+
logger.warn(getLogAttributesFromRequest(req));
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
return next();
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
/*
|
|
536
|
+
* A Redis outage puts EVERY request on the unavailable path, so an
|
|
537
|
+
* unguarded log line there is one per request for as long as the outage
|
|
538
|
+
* lasts. One line per bucket per interval is enough to make the condition
|
|
539
|
+
* visible without burying everything else.
|
|
540
|
+
*/
|
|
541
|
+
static shouldLogCounterUnavailable(bucket) {
|
|
542
|
+
const now = Date.now();
|
|
543
|
+
const lastLoggedAt = IncidentFormRateLimit.counterUnavailableLastLoggedAt.get(bucket) || 0;
|
|
544
|
+
if (now - lastLoggedAt < COUNTER_UNAVAILABLE_LOG_INTERVAL_MS) {
|
|
545
|
+
return false;
|
|
546
|
+
}
|
|
547
|
+
IncidentFormRateLimit.counterUnavailableLastLoggedAt.set(bucket, now);
|
|
548
|
+
return true;
|
|
549
|
+
}
|
|
550
|
+
static setRetryAfterHeader(res, retryAfterSeconds) {
|
|
551
|
+
const setHeader = res["setHeader"];
|
|
552
|
+
if (typeof setHeader === "function") {
|
|
553
|
+
setHeader.call(res, "Retry-After", String(retryAfterSeconds));
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
IncidentFormRateLimit.counterUnavailableLastLoggedAt = new Map();
|
|
558
|
+
export default IncidentFormRateLimit;
|
|
559
|
+
//# sourceMappingURL=IncidentFormRateLimit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IncidentFormRateLimit.js","sourceRoot":"","sources":["../../../../Server/Middleware/IncidentFormRateLimit.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,8 +38,9 @@ const COUNTER_UNAVAILABLE_LOG_INTERVAL_MS = 60 * 1000;
|
|
|
38
38
|
const UNNAMED_SURFACE_READABLE_NAME = "this ingest endpoint";
|
|
39
39
|
/*
|
|
40
40
|
* The ceiling a server key gets on an identity registration surface
|
|
41
|
-
* (IDENTITY_REGISTRATION_SURFACES: the Kubernetes agent Runner
|
|
42
|
-
* Kubernetes AI agent) when its policy names
|
|
41
|
+
* (IDENTITY_REGISTRATION_SURFACES: the Kubernetes agent Runner, the
|
|
42
|
+
* Kubernetes AI agent and the resource AI agents) when its policy names
|
|
43
|
+
* none. Registration is a handful
|
|
43
44
|
* of calls per pod lifetime (start-up, then heartbeats through the minted
|
|
44
45
|
* identity's own key), so a leaked ingestion key hammering it is abuse, not
|
|
45
46
|
* traffic - unlike OTLP ingest, where "no limit" is the historical contract
|
|
@@ -51,9 +52,14 @@ export const DEFAULT_KUBERNETES_AGENT_RUNNER_REQUESTS_PER_MINUTE = DEFAULT_IDENT
|
|
|
51
52
|
/*
|
|
52
53
|
* The refusal a service-pinned key gets on an identity registration surface.
|
|
53
54
|
* Worded for whichever identity the surface mints, and it never names the
|
|
54
|
-
* key, its pinned service or anything else about it.
|
|
55
|
+
* key, its pinned service or anything else about it. The Kubernetes
|
|
56
|
+
* surfaces keep their wording exactly; a resource AI agent (Docker, Proxmox,
|
|
57
|
+
* a database, a host, ...) is told about infrastructure instead.
|
|
55
58
|
*/
|
|
56
59
|
export const getPinnedKeyRegistrationRefusalMessage = (surface) => {
|
|
60
|
+
if (surface === TelemetryIngestSurface.ResourceAiAgent) {
|
|
61
|
+
return `This telemetry ingestion key is pinned to a single service, so it cannot be used for ${getIngestSurfaceReadableName(surface)}: that grants access to your infrastructure, not to one service's telemetry. Use an unpinned server ingestion key for the AI agent.`;
|
|
62
|
+
}
|
|
57
63
|
return `This telemetry ingestion key is pinned to a single service, so it cannot be used for ${getIngestSurfaceReadableName(surface)}: that grants access to a Kubernetes cluster, not to one service's telemetry. Use an unpinned server ingestion key for the Kubernetes agent.`;
|
|
58
64
|
};
|
|
59
65
|
/*
|
|
@@ -72,8 +78,9 @@ export const getPinnedKeyRegistrationRefusalMessage = (surface) => {
|
|
|
72
78
|
* did not configure a limit" cannot be allowed to mean "unlimited" there.
|
|
73
79
|
*
|
|
74
80
|
* The one surface-dependent case is identity registration
|
|
75
|
-
* (IDENTITY_REGISTRATION_SURFACES: the Kubernetes agent Runner
|
|
76
|
-
* Kubernetes AI agent): a server key with no
|
|
81
|
+
* (IDENTITY_REGISTRATION_SURFACES: the Kubernetes agent Runner, the
|
|
82
|
+
* Kubernetes AI agent and the resource AI agents): a server key with no
|
|
83
|
+
* configured limit is held to a
|
|
77
84
|
* conservative default there (see
|
|
78
85
|
* DEFAULT_IDENTITY_REGISTRATION_REQUESTS_PER_MINUTE), because those
|
|
79
86
|
* endpoints mint identities rather than accepting telemetry. Every other
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelemetryIngest.js","sourceRoot":"","sources":["../../../../Server/Middleware/TelemetryIngest.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,yBAAyB,MAAM,iDAAiD,CAAC;AACxF,OAAO,sBAAsB,MAAM,8CAA8C,CAAC;AAClF,OAAO,wBAAwB,MAAM,gDAAgD,CAAC;AAGtF,OAAO,EACL,2CAA2C,EAC3C,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,+BAA+B,CAAC;AACvC,OAAoC,EAClC,uCAAuC,GACxC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,yBAAyB,MAAM,iDAAiD,CAAC;AACxF,OAAO,sBAAsB,EAAE,EAC7B,+BAA+B,EAC/B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,8CAA8C,CAAC;AACtD,OAAO,eAAe,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAIL,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,4BAA4B,MAAM,oDAAoD,CAAC;AAC9F,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,MAAM,EAAE,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AACnD,OAAO,gCAAgC,EAAE,EAEvC,iCAAiC,GAClC,MAAM,qDAAqD,CAAC;AAwB7D;;;;;;GAMG;AACH,MAAM,mCAAmC,GAAW,EAAE,GAAG,IAAI,CAAC;AAE9D;;;;GAIG;AACH,MAAM,6BAA6B,GAAW,sBAAsB,CAAC;AAErE
|
|
1
|
+
{"version":3,"file":"TelemetryIngest.js","sourceRoot":"","sources":["../../../../Server/Middleware/TelemetryIngest.ts"],"names":[],"mappings":"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"}
|