@oneuptime/common 13.0.6 → 13.0.8
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/AIAgentOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/AIAgentOwnerUser.ts +6 -0
- package/Models/DatabaseModels/Alert.ts +12 -0
- package/Models/DatabaseModels/AlertEpisodeOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/AlertEpisodeOwnerUser.ts +6 -1
- package/Models/DatabaseModels/AlertOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/AlertOwnerUser.ts +6 -1
- package/Models/DatabaseModels/CephClusterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/CephClusterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/CloudResourceOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/CloudResourceOwnerUser.ts +6 -0
- package/Models/DatabaseModels/DashboardOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/DashboardOwnerUser.ts +6 -1
- package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +8 -0
- package/Models/DatabaseModels/DockerHostOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/DockerHostOwnerUser.ts +6 -0
- package/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/DockerSwarmClusterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/HostOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/HostOwnerUser.ts +6 -0
- package/Models/DatabaseModels/Incident.ts +12 -0
- package/Models/DatabaseModels/IncidentEpisodeOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/IncidentEpisodeOwnerUser.ts +6 -1
- package/Models/DatabaseModels/IncidentOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/IncidentOwnerUser.ts +6 -1
- package/Models/DatabaseModels/IncidentTemplateOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/IncidentTemplateOwnerUser.ts +6 -0
- package/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/IncomingCallPolicyOwnerUser.ts +6 -1
- package/Models/DatabaseModels/IoTFleetOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/IoTFleetOwnerUser.ts +6 -0
- package/Models/DatabaseModels/KubernetesClusterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/KubernetesClusterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/Monitor.ts +2 -3
- package/Models/DatabaseModels/MonitorGroupOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/MonitorGroupOwnerUser.ts +6 -0
- package/Models/DatabaseModels/MonitorOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/MonitorOwnerUser.ts +6 -1
- package/Models/DatabaseModels/MonitorTemplate.ts +2 -3
- package/Models/DatabaseModels/NetworkDeviceOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/NetworkDeviceOwnerUser.ts +6 -0
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.ts +6 -1
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.ts +1 -1
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.ts +6 -1
- package/Models/DatabaseModels/PodmanHostOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/PodmanHostOwnerUser.ts +6 -0
- package/Models/DatabaseModels/ProbeOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/ProbeOwnerUser.ts +6 -0
- package/Models/DatabaseModels/ProjectOnCallCalendarFeed.ts +1 -1
- package/Models/DatabaseModels/ProxmoxClusterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/ProxmoxClusterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/RumApplicationOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/RumApplicationOwnerUser.ts +6 -0
- package/Models/DatabaseModels/RunbookOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/RunbookOwnerUser.ts +6 -1
- package/Models/DatabaseModels/RunnerOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/RunnerOwnerUser.ts +6 -1
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.ts +6 -1
- package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.ts +8 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.ts +8 -0
- package/Models/DatabaseModels/ServerlessFunctionOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/ServerlessFunctionOwnerUser.ts +6 -0
- package/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.ts +6 -1
- package/Models/DatabaseModels/ServiceOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/ServiceOwnerUser.ts +6 -0
- package/Models/DatabaseModels/StatusPageOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/StatusPageOwnerUser.ts +6 -1
- package/Models/DatabaseModels/UserOnCallCalendarFeed.ts +1 -1
- package/Models/DatabaseModels/VMwareVCenterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/VMwareVCenterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/WorkflowOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/WorkflowOwnerUser.ts +6 -1
- package/Scripts/benchmark-fanin-capacity.js +2 -2
- package/Server/API/AIAgentDataAPI.ts +1 -1
- package/Server/API/AIBillingAPI.ts +1 -0
- package/Server/API/AIChatAPI.ts +6 -4
- package/Server/API/AIInsightAPI.ts +1 -4
- package/Server/API/AIInvestigationAPI.ts +8 -4
- package/Server/API/AIReadinessAPI.ts +4 -5
- package/Server/API/AlertAPI.ts +1 -0
- package/Server/API/AutoRemediationAPI.ts +1 -4
- package/Server/API/BaseAPI.ts +13 -0
- package/Server/API/BaseAnalyticsAPI.ts +80 -9
- package/Server/API/BillingAPI.ts +2 -0
- package/Server/API/BillingInvoiceAPI.ts +1 -0
- package/Server/API/BillingPaymentMethodAPI.ts +2 -0
- package/Server/API/CodeFixRunAPI.ts +1 -3
- package/Server/API/CommonAPI.ts +68 -4
- package/Server/API/DashboardAPI.ts +12 -12
- package/Server/API/GlobalConfigAPI.ts +17 -0
- package/Server/API/IncidentAPI.ts +2 -0
- package/Server/API/IncidentEpisodeAPI.ts +1 -0
- package/Server/API/NotificationAPI.ts +1 -0
- package/Server/API/OnCallCalendarAPI.ts +4 -5
- package/Server/API/OnCallDutyPolicyAPI.ts +7 -0
- package/Server/API/OnCallReadinessAPI.ts +4 -1
- package/Server/API/OnCallScheduleTimelineAPI.ts +731 -0
- package/Server/API/ProjectAPI.ts +1 -0
- package/Server/API/ScheduledMaintenanceAPI.ts +1 -0
- package/Server/API/StatusPageAPI.ts +174 -32
- package/Server/API/TeamMemberAPI.ts +3 -0
- package/Server/API/UserCallAPI.ts +2 -0
- package/Server/API/UserEmailAPI.ts +2 -0
- package/Server/API/UserIncomingCallNumberAPI.ts +2 -0
- package/Server/API/UserMicrosoftTeamsAPI.ts +1 -0
- package/Server/API/UserSlackAPI.ts +1 -0
- package/Server/API/UserSmsAPI.ts +2 -0
- package/Server/API/UserTotpAuthAPI.ts +1 -0
- package/Server/API/UserWebAuthnAPI.ts +2 -0
- package/Server/API/UserWebhookAPI.ts +1 -0
- package/Server/API/UserWhatsAppAPI.ts +2 -0
- package/Server/Infrastructure/Postgres/LocalMigrationGenerationDataSource.ts +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1793500000000-MakeOwnerRowsUnique.ts +1057 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1793700000000-AddAIInvestigationDecision.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1793800000000-RemoveMonitorDescriptionLengthLimit.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Readme.md +6 -4
- package/Server/Middleware/IdentityRateLimit.ts +34 -1
- package/Server/Middleware/MasterAdminAuthorization.ts +13 -2
- package/Server/Middleware/PublicDashboardRateLimit.ts +169 -39
- package/Server/Middleware/UserAuthorization.ts +79 -5
- package/Server/Services/AlertEpisodeService.ts +13 -34
- package/Server/Services/AlertGroupingEngineService.ts +7 -4
- package/Server/Services/AlertService.ts +13 -32
- package/Server/Services/ApiKeyPermissionService.ts +101 -4
- package/Server/Services/CephClusterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/CloudResourceOwnerRuleEngineService.ts +18 -10
- package/Server/Services/DashboardOwnerRuleEngineService.ts +18 -10
- package/Server/Services/DatabaseService.ts +346 -1
- package/Server/Services/DetectionRuleService.ts +5 -4
- package/Server/Services/DockerHostOwnerRuleEngineService.ts +18 -10
- package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/HostOwnerRuleEngineService.ts +18 -10
- package/Server/Services/IncidentEpisodeOwnerRuleEngineService.ts +6 -4
- package/Server/Services/IncidentEpisodeService.ts +15 -75
- package/Server/Services/IncidentGroupingEngineService.ts +7 -4
- package/Server/Services/IncidentService.ts +13 -32
- package/Server/Services/IncidentTemplateService.ts +13 -36
- package/Server/Services/IncomingCallPolicyOwnerRuleEngineService.ts +18 -10
- package/Server/Services/IoTFleetOwnerRuleEngineService.ts +18 -10
- package/Server/Services/KubernetesClusterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/MonitorService.ts +13 -32
- package/Server/Services/NetworkDeviceOwnerRuleEngineService.ts +18 -10
- package/Server/Services/OnCallDutyPolicyChildService.ts +261 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +2 -2
- package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +2 -2
- package/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.ts +2 -2
- package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +2 -2
- package/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.ts +18 -10
- package/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.ts +18 -10
- package/Server/Services/PayAsYouGoBillingService.ts +23 -28
- package/Server/Services/PodmanHostOwnerRuleEngineService.ts +18 -10
- package/Server/Services/ProjectService.ts +18 -0
- package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/RumApplicationOwnerRuleEngineService.ts +18 -10
- package/Server/Services/RumSessionPinService.ts +274 -22
- package/Server/Services/RunbookOwnerRuleEngineService.ts +18 -10
- package/Server/Services/ScheduledMaintenanceService.ts +13 -34
- package/Server/Services/ScheduledMaintenanceTemplateService.ts +12 -34
- package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +18 -10
- package/Server/Services/ServiceOwnerRuleEngineService.ts +18 -10
- package/Server/Services/StatusPagePrivateUserService.ts +38 -29
- package/Server/Services/StatusPagePrivateUserSessionService.ts +49 -1
- package/Server/Services/StatusPageService.ts +59 -36
- package/Server/Services/TeamPermissionService.ts +120 -26
- package/Server/Services/ThreatIntelFeedService.ts +6 -3
- package/Server/Services/UserSessionService.ts +6 -0
- package/Server/Services/VMwareVCenterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/WorkflowOwnerRuleEngineService.ts +18 -10
- package/Server/Static/Brand/README.md +7 -7
- package/Server/Static/Vendor/README.md +7 -7
- package/Server/Types/Database/Permissions/BasePermission.ts +9 -7
- package/Server/Types/Database/Permissions/Index.ts +75 -11
- package/Server/Types/Database/Permissions/OwnedScopePermission.ts +18 -9
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +82 -0
- package/Server/Types/Database/Permissions/TablePermission.ts +24 -28
- package/Server/Utils/AI/AIChatPrivacyFilter.ts +8 -0
- package/Server/Utils/AI/AIRunPrivacyFilter.ts +8 -0
- package/Server/Utils/AI/Chat/ChatAgentRunner.ts +21 -8
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +41 -4
- package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +1 -1
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +1 -1
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +13 -5
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +53 -13
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +51 -14
- package/Server/Utils/AI/SRE/InvestigationEligibility.ts +292 -0
- package/Server/Utils/AI/SRE/InvestigationQueue.ts +25 -0
- package/Server/Utils/AI/Toolbox/Index.ts +43 -13
- package/Server/Utils/AI/Toolbox/ResourceTools.ts +952 -0
- package/Server/Utils/AI/Toolbox/RumTools.ts +424 -0
- package/Server/Utils/AI/Toolbox/ToolTypes.ts +10 -0
- package/Server/Utils/AI/Toolbox/TraceTools.ts +2 -1
- package/Server/Utils/Database/PostgresErrorTranslator.ts +14 -0
- package/Server/Utils/MasterAdminPageAccess.ts +61 -0
- package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +137 -126
- package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +4 -1
- package/Server/Utils/Monitor/MonitorAlert.ts +3 -1
- package/Server/Utils/Monitor/MonitorIncident.ts +3 -1
- package/Server/Utils/OnCall/OnCallCalendarFeedRenderer.ts +1 -1
- package/Server/Utils/Realtime.ts +163 -45
- package/Server/Utils/Rules/OwnerRuleAssignment.ts +157 -6
- package/Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts +11 -28
- package/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepair.ts +170 -0
- package/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.ts +1 -1
- package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.ts +6 -2
- package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.ts +10 -9
- package/Server/Utils/Telemetry/TelemetryEntity.ts +205 -6
- package/SslCertificates/GlobalSign.crt +26 -0
- package/SslCertificates/Readme.md +3 -0
- package/Tests/App/AdminDashboard/EnterpriseLicenseInstanceActivity.test.tsx +451 -0
- package/Tests/App/Dashboard/AIInsightsChatPanel.test.tsx +881 -0
- package/Tests/App/Dashboard/AIInsightsPageContext.test.ts +458 -0
- package/Tests/App/Dashboard/AIInsightsResourceCitations.test.ts +124 -0
- package/Tests/App/Dashboard/AIInsightsResourcePageContext.test.ts +798 -0
- package/Tests/App/Dashboard/AffectedResourcesPicker.test.tsx +1059 -0
- package/Tests/App/Dashboard/AffectedResourcesPickerEditForm.test.tsx +376 -0
- package/Tests/App/Dashboard/AffectedResourcesPickerHiddenTypes.test.tsx +757 -0
- package/Tests/App/Dashboard/AffectedResourcesSummaryStep.test.tsx +307 -0
- package/Tests/App/Dashboard/ArgumentsFormGroupByUnlistedAttributes.test.tsx +131 -0
- package/Tests/App/Dashboard/AskAiSuggestedPrompts.test.ts +7 -0
- package/Tests/App/Dashboard/DashboardChartWidgetZoom.test.tsx +104 -0
- package/Tests/App/Dashboard/DashboardCommandPalette.test.tsx +156 -64
- package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +1 -1
- package/Tests/App/Dashboard/DashboardMonitorLabelVariable.test.tsx +9 -1
- package/Tests/App/Dashboard/DashboardVariableAllContract.test.tsx +24 -0
- package/Tests/App/Dashboard/DashboardVariableSelector.test.tsx +162 -8
- package/Tests/App/Dashboard/DiscoveryScanStatusMessage.test.tsx +970 -0
- package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +406 -12
- package/Tests/App/Dashboard/EmbeddedMetricEventScope.test.tsx +358 -0
- package/Tests/App/Dashboard/EntityFilterDropdownArchivedSlos.test.tsx +105 -6
- package/Tests/App/Dashboard/EntityFilterDropdownUnlistedSelection.test.tsx +434 -0
- package/Tests/App/Dashboard/ErrorPatternEventScope.test.tsx +148 -0
- package/Tests/App/Dashboard/EscalationRuleReadiness.test.tsx +276 -1
- package/Tests/App/Dashboard/EventOverlayAdditionalResourceScope.test.ts +255 -0
- package/Tests/App/Dashboard/EventOverlayScope.test.ts +845 -0
- package/Tests/App/Dashboard/EventOverlayScopeHook.test.tsx +903 -0
- package/Tests/App/Dashboard/ExternalStatusPageCriteriaFilter.test.ts +3 -3
- package/Tests/App/Dashboard/InvestigationDrawer.test.tsx +21 -0
- package/Tests/App/Dashboard/InvestigationNotStarted.test.tsx +761 -0
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +7 -4
- package/Tests/App/Dashboard/InvestigationPanelStatus.test.tsx +15 -7
- package/Tests/App/Dashboard/MetricsViewerEventScopeNavigation.test.tsx +264 -0
- package/Tests/App/Dashboard/MonitorSummaryTestMonitorButton.test.tsx +342 -0
- package/Tests/App/Dashboard/MonitorTestForm.test.tsx +612 -0
- package/Tests/App/Dashboard/NavigationSearchKeywords.test.tsx +301 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedSideMenus.test.tsx +9 -1
- package/Tests/App/Dashboard/PayAsYouGoConsentGate.test.tsx +58 -42
- package/Tests/App/Dashboard/PayAsYouGoNotices.test.tsx +42 -5
- package/Tests/App/Dashboard/ResourceAuditLogsSideMenus.test.tsx +34 -23
- package/Tests/App/Dashboard/ScheduleTimeline.test.tsx +1580 -0
- package/Tests/App/Dashboard/ScheduleTimelineAPI.test.ts +280 -0
- package/Tests/App/Dashboard/ScheduleTimelineModel.test.ts +673 -0
- package/Tests/App/Dashboard/SecurityEventConnectionDiagnostics.test.tsx +95 -68
- package/Tests/App/Dashboard/SecurityEventsDetectionRulesPage.test.tsx +86 -3
- package/Tests/App/Dashboard/SecurityEventsEmptyState.test.tsx +28 -3
- package/Tests/App/Dashboard/SecurityEventsExplorer.test.tsx +761 -0
- package/Tests/App/Dashboard/SecurityEventsGuideContent.test.ts +1313 -0
- package/Tests/App/Dashboard/SecurityEventsHowItWorksCard.test.tsx +536 -0
- package/Tests/App/Dashboard/SecurityEventsNoResults.test.tsx +222 -0
- package/Tests/App/Dashboard/SecurityEventsThreatIntelPage.test.tsx +199 -0
- package/Tests/App/Dashboard/SecurityEventsVolumeChart.test.tsx +321 -0
- package/Tests/App/Dashboard/ServiceMapGraph.test.tsx +74 -2
- package/Tests/App/Dashboard/SloOverviewHero.test.tsx +171 -36
- package/Tests/App/Dashboard/SloViewSideMenu.test.tsx +215 -0
- package/Tests/App/Dashboard/SloViewSideMenuCounts.test.tsx +40 -3
- package/Tests/App/Dashboard/TextClampLayoutHarness.ts +224 -0
- package/Tests/App/PublicDashboard/DashboardVariableSelector.test.tsx +12 -4
- package/Tests/App/PublicDashboard/PublicDashboardWidgetListAuth.test.tsx +623 -0
- package/Tests/Models/InventoryItemNaming.test.ts +54 -0
- package/Tests/Models/OnCallCalendarFeedModels.test.ts +23 -1
- package/Tests/Server/API/AIChatRouteAuthorization.test.ts +299 -5
- package/Tests/Server/API/AIGenerationProjectAIToggle.test.ts +187 -0
- package/Tests/Server/API/AIInvestigationAPI.test.ts +14 -0
- package/Tests/Server/API/AIInvestigationAvailabilityAuthorization.test.ts +308 -0
- package/Tests/Server/API/AIInvestigationEvidenceAPI.test.ts +55 -2
- package/Tests/Server/API/BaseAnalyticsAPIAggregateCache.test.ts +729 -0
- package/Tests/Server/API/BillingPayAsYouGoStatus.test.ts +93 -7
- package/Tests/Server/API/BillingPaymentMethodAPI.test.ts +36 -3
- package/Tests/Server/API/CommonAPIAuthGuard.test.ts +1003 -24
- package/Tests/Server/API/DashboardPublicRateLimit.test.ts +6 -3
- package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +133 -0
- package/Tests/Server/API/ExpiredSessionAIRoutes.test.ts +708 -0
- package/Tests/Server/API/ExpiredSessionCustomRoutes.test.ts +928 -0
- package/Tests/Server/API/ExpiredSessionMonitorTemplate.test.ts +319 -0
- package/Tests/Server/API/ExpiredSessionOnCallDutyPolicy.test.ts +336 -0
- package/Tests/Server/API/ExpiredSessionRouteGuards.test.ts +820 -0
- package/Tests/Server/API/GlobalConfigLicense.test.ts +140 -0
- package/Tests/Server/API/NotificationChannelVerificationAPI.test.ts +115 -12
- package/Tests/Server/API/OnCallCalendarAPI.test.ts +375 -8
- package/Tests/Server/API/OnCallReadinessAPI.test.ts +175 -17
- package/Tests/Server/API/OnCallScheduleTimelineAPI.test.ts +1513 -0
- package/Tests/Server/API/OnCallSetupReminderAPI.test.ts +119 -7
- package/Tests/Server/API/ProjectScopedCustomRouteAuth.test.ts +111 -4
- package/Tests/Server/API/PublicRouteInvalidAccessToken.test.ts +615 -0
- package/Tests/Server/API/SecurityEventAttributesAPI.test.ts +89 -2
- package/Tests/Server/API/SessionReplayAPI.test.ts +121 -0
- package/Tests/Server/API/StatusPageMasterPasswordRateLimit.test.ts +484 -0
- package/Tests/Server/API/StatusPagePostmortemVisibility.test.ts +441 -0
- package/Tests/Server/API/StatusPageTestEmailReportAuth.test.ts +664 -0
- package/Tests/Server/API/TeamMemberRemoveUserFromProjectAPI.test.ts +7 -0
- package/Tests/Server/API/UserIncomingCallNumberApi.test.ts +6 -0
- package/Tests/Server/API/UserNotificationSettingAPI.test.ts +65 -4
- package/Tests/Server/API/UserProjectsAPI.test.ts +63 -3
- package/Tests/Server/API/UserTotpAuthAPI.test.ts +48 -2
- package/Tests/Server/API/UserWebAuthnAuthenticationOptionsRoute.test.ts +11 -2
- package/Tests/Server/API/UserWebAuthnBackupCodeMinting.test.ts +46 -3
- package/Tests/Server/API/UserWebAuthnPasskeyAPI.test.ts +18 -2
- package/Tests/Server/API/ZZVerifyChatsAuth.test.ts +24 -7
- package/Tests/Server/EnvironmentConfigOnCallCalendarFeed.test.ts +1 -1
- package/Tests/Server/Infrastructure/ClickhouseKeepAliveOptions.test.ts +1 -1
- package/Tests/Server/Infrastructure/ContainerBootConfiguration.test.ts +38 -16
- package/Tests/Server/Infrastructure/E2EClickHouseFixtureAccess.test.ts +106 -31
- package/Tests/Server/Infrastructure/ExampleDockerfiles.test.ts +46 -12
- package/Tests/Server/Infrastructure/Postgres/MonitorDescriptionMigration.test.ts +422 -0
- package/Tests/Server/Infrastructure/TelemetryExporterDeploymentConfig.test.ts +1 -1
- package/Tests/Server/Infrastructure/ValkeyDeploymentConfig.test.ts +25 -4
- package/Tests/Server/Middleware/ExpiredSessionUserMiddleware.test.ts +563 -0
- package/Tests/Server/Middleware/IdentityRateLimit.test.ts +72 -0
- package/Tests/Server/Middleware/MasterAdminAuthorization.test.ts +299 -19
- package/Tests/Server/Middleware/PublicDashboardRateLimit.test.ts +12 -12
- package/Tests/Server/Middleware/PublicDashboardRateLimitStatusPage.test.ts +800 -0
- package/Tests/Server/Middleware/PublicRouteUserMiddleware.test.ts +453 -0
- package/Tests/Server/Services/AIChatPrivacyPin.test.ts +24 -0
- package/Tests/Server/Services/AIInvestigationDecisionPostgres.test.ts +346 -0
- package/Tests/Server/Services/AddOwnersIdempotency.test.ts +471 -0
- package/Tests/Server/Services/ApiKeyPermissionSecurity.test.ts +2 -0
- package/Tests/Server/Services/ApiKeyPermissionService.test.ts +3 -3
- package/Tests/Server/Services/DatabaseServiceAutoOwnerOnCreate.test.ts +250 -0
- package/Tests/Server/Services/DatabaseServiceCreateSuppliedId.test.ts +147 -0
- package/Tests/Server/Services/DatabaseServiceLoginBeforeHooks.test.ts +1078 -0
- package/Tests/Server/Services/DatabaseServiceTenantRelationGuard.test.ts +259 -0
- package/Tests/Server/Services/DatabaseServiceUniqueColumnsTogether.test.ts +622 -0
- package/Tests/Server/Services/DatabaseServiceWriteOperatorValues.test.ts +147 -0
- package/Tests/Server/Services/MonitorDescriptionValidation.test.ts +211 -0
- package/Tests/Server/Services/MonitorPayAsYouGoBilling.test.ts +115 -1
- package/Tests/Server/Services/MonitorTemplateDescriptionPropagation.test.ts +269 -0
- package/Tests/Server/Services/OnCallChildCreateAuthorizationPostgres.test.ts +711 -0
- package/Tests/Server/Services/OnCallDutyPolicyChildService.test.ts +733 -0
- package/Tests/Server/Services/OwnerRowUniqueness.test.ts +504 -0
- package/Tests/Server/Services/PayAsYouGoBillingService.test.ts +190 -140
- package/Tests/Server/Services/PayAsYouGoStripeRateLimitBudget.test.ts +4 -9
- package/Tests/Server/Services/PermissionBlockDeletion.test.ts +780 -0
- package/Tests/Server/Services/PermissionBlockDeletionPostgres.test.ts +628 -0
- package/Tests/Server/Services/ProjectServiceCreateSubscriptionStarted.test.ts +77 -1
- package/Tests/Server/Services/RuleRun/OwnerRuleEnginesGroupARun.test.ts +43 -0
- package/Tests/Server/Services/RumSessionPinCreatePermission.test.ts +715 -0
- package/Tests/Server/Services/SessionRetention.test.ts +334 -0
- package/Tests/Server/Services/StatusPagePrivateUserInvitationPolicy.test.ts +172 -0
- package/Tests/Server/Services/StatusPagePrivateUserReadAccess.test.ts +178 -0
- package/Tests/Server/Services/StatusPagePrivateUserReadAccessPostgres.test.ts +311 -0
- package/Tests/Server/Services/StatusPagePrivateUserSessionService.test.ts +216 -1
- package/Tests/Server/Services/TeamComplianceServiceBehaviour.test.ts +1 -1
- package/Tests/Server/Services/TeamMemberMultiTenantReadPostgres.test.ts +394 -0
- package/Tests/Server/Services/TeamPrivilegeEscalation.test.ts +6 -0
- package/Tests/Server/Services/TelemetryPayAsYouGoBilling.test.ts +131 -0
- package/Tests/Server/Services/UserNotificationRuleAdminGuards.test.ts +13 -2
- package/Tests/Server/Services/UserOnCallLogNoNotificationRules.test.ts +1 -1
- package/Tests/Server/Types/Database/EventOverlayScopePostgres.test.ts +626 -0
- package/Tests/Server/Types/Database/Permissions/InfrastructureOwnershipScope.test.ts +668 -0
- package/Tests/Server/Types/Database/Permissions/ModelPermissionAnonymousRefusal.test.ts +518 -0
- package/Tests/Server/Types/Database/Permissions/MultiTenantPermissions.test.ts +350 -0
- package/Tests/Server/Types/Database/Permissions/OnCallCalendarFeedPermissions.test.ts +282 -25
- package/Tests/Server/Types/Database/Permissions/SelectRejectionMessageContract.test.ts +1 -0
- package/Tests/Server/Types/Database/Permissions/TableLevelBlockPermission.test.ts +459 -0
- package/Tests/Server/Types/Database/Permissions/UserNotificationRuleScoping.test.ts +1 -1
- package/Tests/Server/Utils/AI/AIIncidentGating.test.ts +16 -9
- package/Tests/Server/Utils/AI/AIRunPrivacyFilter.test.ts +101 -9
- package/Tests/Server/Utils/AI/ChatAgentHelpers.test.ts +88 -4
- package/Tests/Server/Utils/AI/ChatAgentRunner.test.ts +137 -1
- package/Tests/Server/Utils/AI/InvestigationEligibility.test.ts +697 -0
- package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +105 -0
- package/Tests/Server/Utils/AI/RemediationHandoff.test.ts +16 -5
- package/Tests/Server/Utils/AI/ResourceTools.test.ts +1304 -0
- package/Tests/Server/Utils/AI/RumTools.test.ts +769 -0
- package/Tests/Server/Utils/AI/Toolbox/ExceptionTools.test.ts +459 -0
- package/Tests/Server/Utils/AI/Toolbox/LogTools.test.ts +794 -0
- package/Tests/Server/Utils/AI/Toolbox/RecentChangesTools.test.ts +574 -0
- package/Tests/Server/Utils/AI/Toolbox/SecurityEventTools.test.ts +596 -0
- package/Tests/Server/Utils/CaptchaRequestAndLogging.test.ts +395 -0
- package/Tests/Server/Utils/Database/PostgresErrorTranslator.test.ts +63 -0
- package/Tests/Server/Utils/MasterAdminPageAccess.test.ts +251 -0
- package/Tests/Server/Utils/Monitor/Criteria/APIRequestCriteriaEvaluateOverTime.test.ts +11 -9
- package/Tests/Server/Utils/Monitor/Criteria/CompareCriteria.test.ts +62 -45
- package/Tests/Server/Utils/Monitor/Criteria/CompareCriteriaAggregation.test.ts +25 -24
- package/Tests/Server/Utils/Monitor/Criteria/CompareCriteriaHumanMessages.test.ts +513 -0
- package/Tests/Server/Utils/Monitor/Criteria/CustomCodeMonitorCriteria.test.ts +2 -2
- package/Tests/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.test.ts +1 -1
- package/Tests/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.test.ts +9 -9
- package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +7 -5
- package/Tests/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.test.ts +2 -2
- package/Tests/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.test.ts +4 -3
- package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +2 -2
- package/Tests/Server/Utils/Monitor/MonitorActionTimestamps.test.ts +616 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorMetricUnits.test.ts +3 -2
- package/Tests/Server/Utils/Monitor/MonitorCriteriaHumanMessages.test.ts +529 -0
- package/Tests/Server/Utils/Realtime.test.ts +502 -0
- package/Tests/Server/Utils/Rules/OwnerRuleAssignment.test.ts +412 -4
- package/Tests/Server/Utils/SecurityEvent/Connectors/GoogleSecOps/GoogleSecOpsConnectorSeverity.test.ts +216 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/GoogleSecOps/GoogleSecOpsPollingClickhouseIntegration.test.ts +1 -1
- package/Tests/Server/Utils/SecurityEvent/DetectionRuleEvaluator.test.ts +142 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepair.test.ts +140 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepairClickhouseIntegration.test.ts +542 -0
- package/Tests/Server/Utils/TailwindBuildCopy.test.ts +14 -2
- package/Tests/Server/Utils/Telemetry/ChangeEventRow.test.ts +743 -0
- package/Tests/Server/Utils/Telemetry/HostAssetAttributesFromOtlp.test.ts +235 -0
- package/Tests/Server/Utils/Telemetry/RuntimeMetrics.test.ts +465 -0
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +385 -2
- package/Tests/Server/Utils/VendorAssets.test.ts +17 -3
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.test.ts +202 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.test.ts +194 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.test.ts +231 -0
- package/Tests/Server/Utils/Workspace/Slack/Messages/Alert.test.ts +194 -0
- package/Tests/Server/Utils/Workspace/Slack/Messages/AlertEpisode.test.ts +194 -0
- package/Tests/Server/Utils/Workspace/Slack/Messages/Incident.test.ts +194 -0
- package/Tests/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.test.ts +194 -0
- package/Tests/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.test.ts +247 -0
- package/Tests/Types/AI/AIChatPageContext.test.ts +0 -0
- package/Tests/Types/AI/AIInsightEvidence.test.ts +206 -0
- package/Tests/Types/AI/AIResourceContext.test.ts +312 -0
- package/Tests/Types/BaseDatabase/DatabaseCommonInteractionPropsUtilAnonymous.test.ts +144 -0
- package/Tests/Types/Call/CallProvider.test.ts +528 -0
- package/Tests/Types/Database/UniqueColumnsTogether.test.ts +100 -0
- package/Tests/Types/Kubernetes/KubernetesCostIngest.test.ts +236 -0
- package/Tests/Types/Monitor/MetricAndProfileDefaultCriteria.test.ts +4 -4
- package/Tests/Types/Monitor/MonitorStepRetryPersistence.test.ts +125 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleTimeline.test.ts +736 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleTimelineLayout.test.ts +996 -0
- package/Tests/Types/SecurityEvent/SigmaRule.test.ts +142 -0
- package/Tests/Types/WebsiteRequest.test.ts +44 -0
- package/Tests/Types/Workflow/Components/JSON.test.ts +182 -0
- package/Tests/UI/Components/BasicFormDropdownNormalization.test.tsx +116 -1
- package/Tests/UI/Components/Dropdown/DropdownAsyncOptions.test.tsx +81 -0
- package/Tests/UI/Components/EditionLabelLicenseRefresh.test.tsx +89 -1
- package/Tests/UI/Components/EventAttachmentList.test.tsx +174 -0
- package/Tests/UI/Components/Forms/BasicFormBurnRateTemplateDefaults.test.tsx +395 -0
- package/Tests/UI/Components/Forms/BasicFormCollapsibleSections.test.tsx +286 -0
- package/Tests/UI/Components/Forms/FormSummary.test.tsx +128 -0
- package/Tests/UI/Components/Forms/MonitorDescriptionForm.test.tsx +410 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableQueryChange.test.tsx +365 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableReadPermissions.test.tsx +439 -0
- package/Tests/UI/Components/NavBarMenuSearch.test.tsx +372 -0
- package/Tests/UI/Components/OpenAuthenticatedUrl.test.ts +358 -0
- package/Tests/UI/Components/SessionAwareImage.test.tsx +496 -0
- package/Tests/UI/Components/TelemetryHistogramZeroBuckets.test.tsx +190 -0
- package/Tests/UI/Components/TooltipInteractive.test.tsx +97 -0
- package/Tests/UI/EsbuildConfig.test.ts +1 -1
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardInstallGuidance.test.tsx +1 -1
- package/Tests/UI/Monitor/EvaluationLogListTimestamps.test.tsx +367 -0
- package/Tests/UI/Monitor/MonitorStepRetrySettings.test.tsx +616 -0
- package/Tests/UI/ReactRouterSingletonBuild.test.ts +4 -2
- package/Tests/UI/Rum/ReplayEngine.test.ts +179 -0
- package/Tests/UI/Rum/ReplayHeader.test.tsx +23 -0
- package/Tests/UI/Rum/ReplayScrubber.test.tsx +88 -0
- package/Tests/UI/Rum/ReplayStageOverlays.test.tsx +83 -0
- package/Tests/UI/Rum/ReplayTabSwitcher.test.tsx +33 -0
- package/Tests/UI/Utils/API/BaseAPIRefreshSession.test.ts +1087 -0
- package/Tests/UI/Utils/API/DashboardHost.ts +12 -0
- package/Tests/UI/Utils/API/FakeAxiosServer.ts +183 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +10 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
- package/Tests/UI/Utils/Cookie.test.ts +440 -0
- package/Tests/UI/Utils/ModelAPIRequestClient.test.ts +278 -0
- package/Tests/UI/Utils/Navigation.test.ts +33 -0
- package/Tests/UI/Utils/PricingPlan.test.ts +295 -0
- package/Tests/UI/Utils/Realtime.test.ts +759 -0
- package/Tests/UI/Utils/Telemetry/Telemetry.test.ts +500 -0
- package/Tests/Utils/API.test.ts +96 -0
- package/Tests/Utils/APIInstanceDispatch.test.ts +311 -0
- package/Tests/Utils/HTTPResponseBodyReader.test.ts +188 -1
- package/Tests/Utils/Metrics/MetricEventScopeUrl.test.ts +101 -0
- package/Tests/Utils/Monitor/MonitorTestAvailabilityUtil.test.ts +256 -0
- package/Tests/Utils/SecurityEvent/GoogleSecOpsAlertNormalizerSeverity.test.ts +565 -0
- package/Tests/Utils/Telemetry/HostIpAddresses.test.ts +105 -0
- package/Types/AI/AIChatPageContext.ts +87 -2
- package/Types/AI/AIChatTypes.ts +4 -0
- package/Types/AI/AIResourceContext.ts +198 -0
- package/Types/AI/InvestigationNotStartedReason.ts +30 -0
- package/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.ts +40 -0
- package/Types/Database/UniqueColumnsTogether.ts +55 -0
- package/Types/Metrics/MetricQueryConfigData.ts +8 -0
- package/Types/Monitor/MonitorEvaluationSummary.ts +3 -0
- package/Types/OnCallDutyPolicy/ScheduleTimeline.ts +507 -0
- package/Types/OnCallDutyPolicy/ScheduleTimelineLayout.ts +589 -0
- package/Types/Realtime/EventName.ts +11 -0
- package/Types/Rum/WebVitals.ts +71 -0
- package/Types/SecurityEvent/DetectionFindingConstants.ts +14 -0
- package/Types/SecurityEvent/OcsfSeverity.ts +31 -26
- package/Types/SecurityEvent/SigmaRule.ts +51 -0
- package/Types/SecurityEvent/ThreatIntelConstants.ts +18 -0
- package/Types/WebsiteRequest.ts +2 -0
- package/UI/Components/AttachmentList/EventAttachmentList.tsx +30 -2
- package/UI/Components/Dashboard/DashboardVariableControl.tsx +12 -2
- package/UI/Components/Dropdown/Dropdown.tsx +6 -1
- package/UI/Components/EditionLabel/EditionLabel.tsx +19 -5
- package/UI/Components/EventItem/EventItem.tsx +12 -1
- package/UI/Components/Forms/BasicForm.tsx +151 -126
- package/UI/Components/Forms/CollapsibleFormSection.tsx +63 -0
- package/UI/Components/Forms/Fields/FormField.tsx +10 -4
- package/UI/Components/Forms/FormSummary.tsx +7 -0
- package/UI/Components/Forms/Types/Field.ts +10 -0
- package/UI/Components/KeyboardShortcut/Screenshots/README.md +1 -1
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +2 -1
- package/UI/Components/Markdown.tsx/SessionAwareImage.tsx +122 -0
- package/UI/Components/ModelTable/BaseModelTable.tsx +42 -5
- package/UI/Components/ModelTable/TableView.tsx +1 -1
- package/UI/Components/Navbar/NavBar.tsx +2 -0
- package/UI/Components/Navbar/NavBarMenuModal.tsx +6 -2
- package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +8 -1
- package/UI/Components/Tooltip/Tooltip.tsx +8 -1
- package/UI/Utils/API/API.ts +173 -12
- package/UI/Utils/API/RequestOptions.ts +11 -0
- package/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.ts +31 -7
- package/UI/Utils/ModelAPI/ModelAPI.ts +30 -9
- package/UI/Utils/Navigation.ts +9 -0
- package/UI/Utils/OpenAuthenticatedUrl.ts +154 -0
- package/UI/Utils/Realtime.ts +176 -30
- package/UI/esbuild-config.js +4 -4
- package/Utils/API.ts +24 -6
- package/Utils/Dashboard/HtmlWidgetDocument.ts +1 -1
- package/Utils/HTTPResponseBodyReader.ts +64 -8
- package/Utils/Metrics/MetricExplorerUrl.ts +19 -0
- package/Utils/Monitor/MonitorTestAvailabilityUtil.ts +92 -0
- package/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.ts +157 -7
- package/Utils/SecurityEvent/Sigma/SigmaRuleParser.ts +9 -17
- package/Utils/Slo/SloBurnRateTemplate.ts +2 -2
- package/Utils/Telemetry/HostIpAddresses.ts +46 -2
- package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Alert.js +12 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DashboardOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/DashboardOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DashboardOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/DashboardOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +3 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/HostOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/HostOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/HostOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/HostOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +12 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IoTFleetOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/IoTFleetOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IoTFleetOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/IoTFleetOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +2 -3
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js +2 -3
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js +1 -1
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunnerOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/RunnerOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunnerOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/RunnerOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.js +6 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js +6 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerUser.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +1 -1
- package/build/dist/Server/API/AIBillingAPI.js +1 -1
- package/build/dist/Server/API/AIBillingAPI.js.map +1 -1
- package/build/dist/Server/API/AIChatAPI.js +3 -1
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/AIInsightAPI.js +1 -4
- package/build/dist/Server/API/AIInsightAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +4 -4
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/AIReadinessAPI.js +1 -3
- package/build/dist/Server/API/AIReadinessAPI.js.map +1 -1
- package/build/dist/Server/API/AlertAPI.js +1 -1
- package/build/dist/Server/API/AlertAPI.js.map +1 -1
- package/build/dist/Server/API/AutoRemediationAPI.js +1 -4
- package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +12 -0
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/BaseAnalyticsAPI.js +55 -10
- package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
- package/build/dist/Server/API/BillingAPI.js +2 -2
- package/build/dist/Server/API/BillingAPI.js.map +1 -1
- package/build/dist/Server/API/BillingInvoiceAPI.js +1 -1
- package/build/dist/Server/API/BillingInvoiceAPI.js.map +1 -1
- package/build/dist/Server/API/BillingPaymentMethodAPI.js +2 -2
- package/build/dist/Server/API/BillingPaymentMethodAPI.js.map +1 -1
- package/build/dist/Server/API/CodeFixRunAPI.js +1 -3
- package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -1
- package/build/dist/Server/API/CommonAPI.js +50 -5
- package/build/dist/Server/API/CommonAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +12 -12
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/GlobalConfigAPI.js +12 -0
- package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentAPI.js +2 -2
- package/build/dist/Server/API/IncidentAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js +1 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
- package/build/dist/Server/API/NotificationAPI.js +1 -1
- package/build/dist/Server/API/NotificationAPI.js.map +1 -1
- package/build/dist/Server/API/OnCallCalendarAPI.js +1 -4
- package/build/dist/Server/API/OnCallCalendarAPI.js.map +1 -1
- package/build/dist/Server/API/OnCallDutyPolicyAPI.js +6 -0
- package/build/dist/Server/API/OnCallDutyPolicyAPI.js.map +1 -1
- package/build/dist/Server/API/OnCallReadinessAPI.js +4 -1
- package/build/dist/Server/API/OnCallReadinessAPI.js.map +1 -1
- package/build/dist/Server/API/OnCallScheduleTimelineAPI.js +494 -0
- package/build/dist/Server/API/OnCallScheduleTimelineAPI.js.map +1 -0
- package/build/dist/Server/API/ProjectAPI.js +1 -1
- package/build/dist/Server/API/ProjectAPI.js.map +1 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js +1 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +133 -33
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/TeamMemberAPI.js +3 -3
- package/build/dist/Server/API/TeamMemberAPI.js.map +1 -1
- package/build/dist/Server/API/UserCallAPI.js +2 -2
- package/build/dist/Server/API/UserCallAPI.js.map +1 -1
- package/build/dist/Server/API/UserEmailAPI.js +2 -2
- package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
- package/build/dist/Server/API/UserIncomingCallNumberAPI.js +2 -2
- package/build/dist/Server/API/UserIncomingCallNumberAPI.js.map +1 -1
- package/build/dist/Server/API/UserMicrosoftTeamsAPI.js +1 -1
- package/build/dist/Server/API/UserMicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/UserSlackAPI.js +1 -1
- package/build/dist/Server/API/UserSlackAPI.js.map +1 -1
- package/build/dist/Server/API/UserSmsAPI.js +2 -2
- package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
- package/build/dist/Server/API/UserTotpAuthAPI.js +1 -1
- package/build/dist/Server/API/UserTotpAuthAPI.js.map +1 -1
- package/build/dist/Server/API/UserWebAuthnAPI.js +2 -2
- package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
- package/build/dist/Server/API/UserWebhookAPI.js +1 -1
- package/build/dist/Server/API/UserWebhookAPI.js.map +1 -1
- package/build/dist/Server/API/UserWhatsAppAPI.js +2 -2
- package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/LocalMigrationGenerationDataSource.js +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793500000000-MakeOwnerRowsUnique.js +602 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793500000000-MakeOwnerRowsUnique.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793700000000-AddAIInvestigationDecision.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793700000000-AddAIInvestigationDecision.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793800000000-RemoveMonitorDescriptionLengthLimit.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793800000000-RemoveMonitorDescriptionLengthLimit.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/IdentityRateLimit.js +22 -1
- package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
- package/build/dist/Server/Middleware/MasterAdminAuthorization.js +11 -2
- package/build/dist/Server/Middleware/MasterAdminAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/PublicDashboardRateLimit.js +117 -36
- package/build/dist/Server/Middleware/PublicDashboardRateLimit.js.map +1 -1
- package/build/dist/Server/Middleware/UserAuthorization.js +64 -4
- package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeService.js +13 -31
- package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/AlertGroupingEngineService.js +7 -4
- package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +13 -31
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/ApiKeyPermissionService.js +80 -4
- package/build/dist/Server/Services/ApiKeyPermissionService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +242 -1
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DetectionRuleService.js +4 -4
- package/build/dist/Server/Services/DetectionRuleService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js +6 -4
- package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeService.js +15 -68
- package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/IncidentGroupingEngineService.js +7 -4
- package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +13 -31
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentTemplateService.js +13 -31
- package/build/dist/Server/Services/IncidentTemplateService.js.map +1 -1
- package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +13 -31
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyChildService.js +170 -0
- package/build/dist/Server/Services/OnCallDutyPolicyChildService.js.map +1 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +2 -2
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +2 -2
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.js +2 -2
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +2 -2
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PayAsYouGoBillingService.js +20 -27
- package/build/dist/Server/Services/PayAsYouGoBillingService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +17 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RumSessionPinService.js +180 -16
- package/build/dist/Server/Services/RumSessionPinService.js.map +1 -1
- package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +13 -31
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js +12 -29
- package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserService.js +33 -25
- package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js +36 -1
- package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +50 -35
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TeamPermissionService.js +89 -27
- package/build/dist/Server/Services/TeamPermissionService.js.map +1 -1
- package/build/dist/Server/Services/ThreatIntelFeedService.js +5 -4
- package/build/dist/Server/Services/ThreatIntelFeedService.js.map +1 -1
- package/build/dist/Server/Services/UserSessionService.js +5 -0
- package/build/dist/Server/Services/UserSessionService.js.map +1 -1
- package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js +9 -6
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/Index.js +60 -6
- package/build/dist/Server/Types/Database/Permissions/Index.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +15 -10
- package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +82 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/TablePermission.js +14 -13
- package/build/dist/Server/Types/Database/Permissions/TablePermission.js.map +1 -1
- package/build/dist/Server/Utils/AI/AIChatPrivacyFilter.js +7 -0
- package/build/dist/Server/Utils/AI/AIChatPrivacyFilter.js.map +1 -1
- package/build/dist/Server/Utils/AI/AIRunPrivacyFilter.js +7 -0
- package/build/dist/Server/Utils/AI/AIRunPrivacyFilter.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +12 -3
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +32 -4
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +8 -5
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +33 -13
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +31 -10
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js +205 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js +13 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +30 -6
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js +721 -0
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/RumTools.js +330 -0
- package/build/dist/Server/Utils/AI/Toolbox/RumTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/ToolTypes.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/TraceTools.js +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/TraceTools.js.map +1 -1
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js +11 -0
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js.map +1 -1
- package/build/dist/Server/Utils/MasterAdminPageAccess.js +39 -0
- package/build/dist/Server/Utils/MasterAdminPageAccess.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +106 -101
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +4 -2
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +3 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +3 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Realtime.js +126 -37
- package/build/dist/Server/Utils/Realtime.js.map +1 -1
- package/build/dist/Server/Utils/Rules/OwnerRuleAssignment.js +94 -0
- package/build/dist/Server/Utils/Rules/OwnerRuleAssignment.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +7 -25
- package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepair.js +127 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepair.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.js +1 -1
- package/build/dist/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js +3 -2
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js +4 -8
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +171 -6
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Types/AI/AIChatPageContext.js +68 -2
- package/build/dist/Types/AI/AIChatPageContext.js.map +1 -1
- package/build/dist/Types/AI/AIChatTypes.js +4 -0
- package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
- package/build/dist/Types/AI/AIResourceContext.js +162 -0
- package/build/dist/Types/AI/AIResourceContext.js.map +1 -0
- package/build/dist/Types/AI/InvestigationNotStartedReason.js +2 -0
- package/build/dist/Types/AI/InvestigationNotStartedReason.js.map +1 -0
- package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js +31 -1
- package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js.map +1 -1
- package/build/dist/Types/Database/UniqueColumnsTogether.js +19 -0
- package/build/dist/Types/Database/UniqueColumnsTogether.js.map +1 -0
- package/build/dist/Types/Metrics/MetricQueryConfigData.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/ScheduleTimeline.js +321 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleTimeline.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleTimelineLayout.js +372 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleTimelineLayout.js.map +1 -0
- package/build/dist/Types/Realtime/EventName.js +10 -0
- package/build/dist/Types/Realtime/EventName.js.map +1 -1
- package/build/dist/Types/Rum/WebVitals.js +64 -0
- package/build/dist/Types/Rum/WebVitals.js.map +1 -0
- package/build/dist/Types/SecurityEvent/DetectionFindingConstants.js +11 -0
- package/build/dist/Types/SecurityEvent/DetectionFindingConstants.js.map +1 -1
- package/build/dist/Types/SecurityEvent/OcsfSeverity.js +30 -25
- package/build/dist/Types/SecurityEvent/OcsfSeverity.js.map +1 -1
- package/build/dist/Types/SecurityEvent/SigmaRule.js +47 -0
- package/build/dist/Types/SecurityEvent/SigmaRule.js.map +1 -1
- package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js +14 -0
- package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js.map +1 -1
- package/build/dist/Types/WebsiteRequest.js +2 -0
- package/build/dist/Types/WebsiteRequest.js.map +1 -1
- package/build/dist/UI/Components/AttachmentList/EventAttachmentList.js +9 -4
- package/build/dist/UI/Components/AttachmentList/EventAttachmentList.js.map +1 -1
- package/build/dist/UI/Components/Dashboard/DashboardVariableControl.js +10 -2
- package/build/dist/UI/Components/Dashboard/DashboardVariableControl.js.map +1 -1
- package/build/dist/UI/Components/Dropdown/Dropdown.js +5 -1
- package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +18 -5
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/EventItem/EventItem.js +2 -2
- package/build/dist/UI/Components/EventItem/EventItem.js.map +1 -1
- package/build/dist/UI/Components/Forms/BasicForm.js +70 -64
- package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
- package/build/dist/UI/Components/Forms/CollapsibleFormSection.js +27 -0
- package/build/dist/UI/Components/Forms/CollapsibleFormSection.js.map +1 -0
- package/build/dist/UI/Components/Forms/Fields/FormField.js +10 -7
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/Forms/FormSummary.js +7 -0
- package/build/dist/UI/Components/Forms/FormSummary.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +2 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/SessionAwareImage.js +84 -0
- package/build/dist/UI/Components/Markdown.tsx/SessionAwareImage.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +21 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/TableView.js +1 -1
- package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +4 -2
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +8 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
- package/build/dist/UI/Components/Tooltip/Tooltip.js +2 -1
- package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
- package/build/dist/UI/Utils/API/API.js +143 -19
- package/build/dist/UI/Utils/API/API.js.map +1 -1
- package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js +21 -7
- package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +26 -9
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/Navigation.js +8 -0
- package/build/dist/UI/Utils/Navigation.js.map +1 -1
- package/build/dist/UI/Utils/OpenAuthenticatedUrl.js +92 -0
- package/build/dist/UI/Utils/OpenAuthenticatedUrl.js.map +1 -0
- package/build/dist/UI/Utils/Realtime.js +120 -15
- package/build/dist/UI/Utils/Realtime.js.map +1 -1
- package/build/dist/Utils/API.js +21 -9
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/HTTPResponseBodyReader.js +50 -6
- package/build/dist/Utils/HTTPResponseBodyReader.js.map +1 -1
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js +14 -3
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorTestAvailabilityUtil.js +68 -0
- package/build/dist/Utils/Monitor/MonitorTestAvailabilityUtil.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js +123 -6
- package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js.map +1 -1
- package/build/dist/Utils/SecurityEvent/Sigma/SigmaRuleParser.js +4 -18
- package/build/dist/Utils/SecurityEvent/Sigma/SigmaRuleParser.js.map +1 -1
- package/build/dist/Utils/Slo/SloBurnRateTemplate.js +2 -2
- package/build/dist/Utils/Telemetry/HostIpAddresses.js +42 -3
- package/build/dist/Utils/Telemetry/HostIpAddresses.js.map +1 -1
- package/package.json +5 -5
- package/test-setup.sh +2 -2
|
@@ -13,6 +13,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
13
13
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
14
14
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
15
15
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
16
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
16
17
|
import IconProp from "../../Types/Icon/IconProp";
|
|
17
18
|
import ObjectID from "../../Types/ObjectID";
|
|
18
19
|
import Permission from "../../Types/Permission";
|
|
@@ -73,7 +74,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
73
74
|
@Entity({
|
|
74
75
|
name: "ScheduledMaintenanceOwnerUser",
|
|
75
76
|
})
|
|
76
|
-
@Index(["scheduledMaintenanceId", "userId", "projectId"])
|
|
77
|
+
@Index(["scheduledMaintenanceId", "userId", "projectId"], { unique: true })
|
|
78
|
+
@UniqueColumnsTogether(
|
|
79
|
+
["scheduledMaintenanceId", "userId", "projectId"],
|
|
80
|
+
"This user is already an owner of this scheduled maintenance event.",
|
|
81
|
+
)
|
|
77
82
|
export default class ScheduledMaintenanceOwnerUser extends BaseModel {
|
|
78
83
|
@ColumnAccessControl({
|
|
79
84
|
create: [
|
|
@@ -13,6 +13,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
13
13
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
14
14
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
15
15
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
16
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
16
17
|
import IconProp from "../../Types/Icon/IconProp";
|
|
17
18
|
import ObjectID from "../../Types/ObjectID";
|
|
18
19
|
import Permission from "../../Types/Permission";
|
|
@@ -75,6 +76,13 @@ import ScheduledMaintenanceTemplate from "./ScheduledMaintenanceTemplate";
|
|
|
75
76
|
@Entity({
|
|
76
77
|
name: "ScheduledMaintenanceTemplateOwnerTeam",
|
|
77
78
|
})
|
|
79
|
+
@Index(["scheduledMaintenanceTemplateId", "teamId", "projectId"], {
|
|
80
|
+
unique: true,
|
|
81
|
+
})
|
|
82
|
+
@UniqueColumnsTogether(
|
|
83
|
+
["scheduledMaintenanceTemplateId", "teamId", "projectId"],
|
|
84
|
+
"This team is already an owner of this scheduled maintenance template.",
|
|
85
|
+
)
|
|
78
86
|
export default class ScheduledMaintenanceTemplateOwnerTeam extends BaseModel {
|
|
79
87
|
@ColumnAccessControl({
|
|
80
88
|
create: [
|
|
@@ -12,6 +12,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
12
12
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
13
13
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
14
14
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
15
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
15
16
|
import IconProp from "../../Types/Icon/IconProp";
|
|
16
17
|
import ObjectID from "../../Types/ObjectID";
|
|
17
18
|
import Permission from "../../Types/Permission";
|
|
@@ -74,6 +75,13 @@ import ScheduledMaintenanceTemplate from "./ScheduledMaintenanceTemplate";
|
|
|
74
75
|
@Entity({
|
|
75
76
|
name: "ScheduledMaintenanceTemplateOwnerUser",
|
|
76
77
|
})
|
|
78
|
+
@Index(["scheduledMaintenanceTemplateId", "userId", "projectId"], {
|
|
79
|
+
unique: true,
|
|
80
|
+
})
|
|
81
|
+
@UniqueColumnsTogether(
|
|
82
|
+
["scheduledMaintenanceTemplateId", "userId", "projectId"],
|
|
83
|
+
"This user is already an owner of this scheduled maintenance template.",
|
|
84
|
+
)
|
|
77
85
|
export default class ScheduledMaintenanceTemplateOwnerUser extends BaseModel {
|
|
78
86
|
@ColumnAccessControl({
|
|
79
87
|
create: [
|
|
@@ -14,6 +14,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
14
14
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
15
15
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
16
16
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
17
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
17
18
|
import IconProp from "../../Types/Icon/IconProp";
|
|
18
19
|
import ObjectID from "../../Types/ObjectID";
|
|
19
20
|
import Permission from "../../Types/Permission";
|
|
@@ -74,6 +75,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
74
75
|
@Entity({
|
|
75
76
|
name: "ServerlessFunctionOwnerTeam",
|
|
76
77
|
})
|
|
78
|
+
@Index(["serverlessFunctionId", "teamId", "projectId"], { unique: true })
|
|
79
|
+
@UniqueColumnsTogether(
|
|
80
|
+
["serverlessFunctionId", "teamId", "projectId"],
|
|
81
|
+
"This team is already an owner of this serverless function.",
|
|
82
|
+
)
|
|
77
83
|
export default class ServerlessFunctionOwnerTeam extends BaseModel {
|
|
78
84
|
@ColumnAccessControl({
|
|
79
85
|
create: [
|
|
@@ -13,6 +13,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
13
13
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
14
14
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
15
15
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
16
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
16
17
|
import IconProp from "../../Types/Icon/IconProp";
|
|
17
18
|
import ObjectID from "../../Types/ObjectID";
|
|
18
19
|
import Permission from "../../Types/Permission";
|
|
@@ -73,6 +74,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
73
74
|
@Entity({
|
|
74
75
|
name: "ServerlessFunctionOwnerUser",
|
|
75
76
|
})
|
|
77
|
+
@Index(["serverlessFunctionId", "userId", "projectId"], { unique: true })
|
|
78
|
+
@UniqueColumnsTogether(
|
|
79
|
+
["serverlessFunctionId", "userId", "projectId"],
|
|
80
|
+
"This user is already an owner of this serverless function.",
|
|
81
|
+
)
|
|
76
82
|
export default class ServerlessFunctionOwnerUser extends BaseModel {
|
|
77
83
|
@ColumnAccessControl({
|
|
78
84
|
create: [
|
|
@@ -15,6 +15,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
15
15
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
16
16
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
17
17
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
18
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
18
19
|
import IconProp from "../../Types/Icon/IconProp";
|
|
19
20
|
import ObjectID from "../../Types/ObjectID";
|
|
20
21
|
import Permission from "../../Types/Permission";
|
|
@@ -81,7 +82,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
81
82
|
@Entity({
|
|
82
83
|
name: "ServiceLevelObjectiveOwnerTeam",
|
|
83
84
|
})
|
|
84
|
-
@Index(["serviceLevelObjectiveId", "teamId", "projectId"])
|
|
85
|
+
@Index(["serviceLevelObjectiveId", "teamId", "projectId"], { unique: true })
|
|
86
|
+
@UniqueColumnsTogether(
|
|
87
|
+
["serviceLevelObjectiveId", "teamId", "projectId"],
|
|
88
|
+
"This team is already an owner of this service level objective.",
|
|
89
|
+
)
|
|
85
90
|
export default class ServiceLevelObjectiveOwnerTeam extends BaseModel {
|
|
86
91
|
@ColumnAccessControl({
|
|
87
92
|
create: [
|
|
@@ -14,6 +14,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
14
14
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
15
15
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
16
16
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
17
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
17
18
|
import IconProp from "../../Types/Icon/IconProp";
|
|
18
19
|
import ObjectID from "../../Types/ObjectID";
|
|
19
20
|
import Permission from "../../Types/Permission";
|
|
@@ -80,7 +81,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
80
81
|
@Entity({
|
|
81
82
|
name: "ServiceLevelObjectiveOwnerUser",
|
|
82
83
|
})
|
|
83
|
-
@Index(["serviceLevelObjectiveId", "userId", "projectId"])
|
|
84
|
+
@Index(["serviceLevelObjectiveId", "userId", "projectId"], { unique: true })
|
|
85
|
+
@UniqueColumnsTogether(
|
|
86
|
+
["serviceLevelObjectiveId", "userId", "projectId"],
|
|
87
|
+
"This user is already an owner of this service level objective.",
|
|
88
|
+
)
|
|
84
89
|
export default class ServiceLevelObjectiveOwnerUser extends BaseModel {
|
|
85
90
|
@ColumnAccessControl({
|
|
86
91
|
create: [
|
|
@@ -17,6 +17,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
17
17
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
18
18
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
19
19
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
20
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
20
21
|
import IconProp from "../../Types/Icon/IconProp";
|
|
21
22
|
import ObjectID from "../../Types/ObjectID";
|
|
22
23
|
import Permission from "../../Types/Permission";
|
|
@@ -78,6 +79,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
78
79
|
@Entity({
|
|
79
80
|
name: "ServiceOwnerTeam",
|
|
80
81
|
})
|
|
82
|
+
@Index(["serviceId", "teamId", "projectId"], { unique: true })
|
|
83
|
+
@UniqueColumnsTogether(
|
|
84
|
+
["serviceId", "teamId", "projectId"],
|
|
85
|
+
"This team is already an owner of this service.",
|
|
86
|
+
)
|
|
81
87
|
export default class ServiceOwnerTeam extends BaseModel {
|
|
82
88
|
@ColumnAccessControl({
|
|
83
89
|
create: [
|
|
@@ -16,6 +16,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
16
16
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
17
17
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
18
18
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
19
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
19
20
|
import IconProp from "../../Types/Icon/IconProp";
|
|
20
21
|
import ObjectID from "../../Types/ObjectID";
|
|
21
22
|
import Permission from "../../Types/Permission";
|
|
@@ -77,6 +78,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
77
78
|
@Entity({
|
|
78
79
|
name: "ServiceOwnerUser",
|
|
79
80
|
})
|
|
81
|
+
@Index(["serviceId", "userId", "projectId"], { unique: true })
|
|
82
|
+
@UniqueColumnsTogether(
|
|
83
|
+
["serviceId", "userId", "projectId"],
|
|
84
|
+
"This user is already an owner of this service.",
|
|
85
|
+
)
|
|
80
86
|
export default class ServiceOwnerUser extends BaseModel {
|
|
81
87
|
@ColumnAccessControl({
|
|
82
88
|
create: [
|
|
@@ -17,6 +17,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
17
17
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
18
18
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
19
19
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
20
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
20
21
|
import IconProp from "../../Types/Icon/IconProp";
|
|
21
22
|
import ObjectID from "../../Types/ObjectID";
|
|
22
23
|
import Permission from "../../Types/Permission";
|
|
@@ -78,7 +79,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
78
79
|
@Entity({
|
|
79
80
|
name: "StatusPageOwnerTeam",
|
|
80
81
|
})
|
|
81
|
-
@Index(["statusPageId", "teamId", "projectId"])
|
|
82
|
+
@Index(["statusPageId", "teamId", "projectId"], { unique: true })
|
|
83
|
+
@UniqueColumnsTogether(
|
|
84
|
+
["statusPageId", "teamId", "projectId"],
|
|
85
|
+
"This team is already an owner of this status page.",
|
|
86
|
+
)
|
|
82
87
|
export default class StatusPageOwnerTeam extends BaseModel {
|
|
83
88
|
@ColumnAccessControl({
|
|
84
89
|
create: [
|
|
@@ -16,6 +16,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
16
16
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
17
17
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
18
18
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
19
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
19
20
|
import IconProp from "../../Types/Icon/IconProp";
|
|
20
21
|
import ObjectID from "../../Types/ObjectID";
|
|
21
22
|
import Permission from "../../Types/Permission";
|
|
@@ -77,7 +78,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
77
78
|
@Entity({
|
|
78
79
|
name: "StatusPageOwnerUser",
|
|
79
80
|
})
|
|
80
|
-
@Index(["statusPageId", "userId", "projectId"])
|
|
81
|
+
@Index(["statusPageId", "userId", "projectId"], { unique: true })
|
|
82
|
+
@UniqueColumnsTogether(
|
|
83
|
+
["statusPageId", "userId", "projectId"],
|
|
84
|
+
"This user is already an owner of this status page.",
|
|
85
|
+
)
|
|
81
86
|
export default class StatusPageOwnerUser extends BaseModel {
|
|
82
87
|
@ColumnAccessControl({
|
|
83
88
|
create: [
|
|
@@ -14,6 +14,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
14
14
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
15
15
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
16
16
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
17
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
17
18
|
import IconProp from "../../Types/Icon/IconProp";
|
|
18
19
|
import ObjectID from "../../Types/ObjectID";
|
|
19
20
|
import Permission from "../../Types/Permission";
|
|
@@ -74,6 +75,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
74
75
|
@Entity({
|
|
75
76
|
name: "VMwareVCenterOwnerTeam",
|
|
76
77
|
})
|
|
78
|
+
@Index(["vmwareVCenterId", "teamId", "projectId"], { unique: true })
|
|
79
|
+
@UniqueColumnsTogether(
|
|
80
|
+
["vmwareVCenterId", "teamId", "projectId"],
|
|
81
|
+
"This team is already an owner of this vCenter.",
|
|
82
|
+
)
|
|
77
83
|
export default class VMwareVCenterOwnerTeam extends BaseModel {
|
|
78
84
|
@ColumnAccessControl({
|
|
79
85
|
create: [
|
|
@@ -13,6 +13,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
13
13
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
14
14
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
15
15
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
16
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
16
17
|
import IconProp from "../../Types/Icon/IconProp";
|
|
17
18
|
import ObjectID from "../../Types/ObjectID";
|
|
18
19
|
import Permission from "../../Types/Permission";
|
|
@@ -73,6 +74,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
73
74
|
@Entity({
|
|
74
75
|
name: "VMwareVCenterOwnerUser",
|
|
75
76
|
})
|
|
77
|
+
@Index(["vmwareVCenterId", "userId", "projectId"], { unique: true })
|
|
78
|
+
@UniqueColumnsTogether(
|
|
79
|
+
["vmwareVCenterId", "userId", "projectId"],
|
|
80
|
+
"This user is already an owner of this vCenter.",
|
|
81
|
+
)
|
|
76
82
|
export default class VMwareVCenterOwnerUser extends BaseModel {
|
|
77
83
|
@ColumnAccessControl({
|
|
78
84
|
create: [
|
|
@@ -14,6 +14,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
14
14
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
15
15
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
16
16
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
17
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
17
18
|
import IconProp from "../../Types/Icon/IconProp";
|
|
18
19
|
import ObjectID from "../../Types/ObjectID";
|
|
19
20
|
import Permission from "../../Types/Permission";
|
|
@@ -74,7 +75,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
74
75
|
@Entity({
|
|
75
76
|
name: "WorkflowOwnerTeam",
|
|
76
77
|
})
|
|
77
|
-
@Index(["workflowId", "teamId", "projectId"])
|
|
78
|
+
@Index(["workflowId", "teamId", "projectId"], { unique: true })
|
|
79
|
+
@UniqueColumnsTogether(
|
|
80
|
+
["workflowId", "teamId", "projectId"],
|
|
81
|
+
"This team is already an owner of this workflow.",
|
|
82
|
+
)
|
|
78
83
|
export default class WorkflowOwnerTeam extends BaseModel {
|
|
79
84
|
@ColumnAccessControl({
|
|
80
85
|
create: [
|
|
@@ -13,6 +13,7 @@ import TableColumn from "../../Types/Database/TableColumn";
|
|
|
13
13
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
14
14
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
15
15
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
16
|
+
import UniqueColumnsTogether from "../../Types/Database/UniqueColumnsTogether";
|
|
16
17
|
import IconProp from "../../Types/Icon/IconProp";
|
|
17
18
|
import ObjectID from "../../Types/ObjectID";
|
|
18
19
|
import Permission from "../../Types/Permission";
|
|
@@ -73,7 +74,11 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
73
74
|
@Entity({
|
|
74
75
|
name: "WorkflowOwnerUser",
|
|
75
76
|
})
|
|
76
|
-
@Index(["workflowId", "userId", "projectId"])
|
|
77
|
+
@Index(["workflowId", "userId", "projectId"], { unique: true })
|
|
78
|
+
@UniqueColumnsTogether(
|
|
79
|
+
["workflowId", "userId", "projectId"],
|
|
80
|
+
"This user is already an owner of this workflow.",
|
|
81
|
+
)
|
|
77
82
|
export default class WorkflowOwnerUser extends BaseModel {
|
|
78
83
|
@ColumnAccessControl({
|
|
79
84
|
create: [
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* Isolated fan-in admission benchmark against the actual writer source.
|
|
3
3
|
* Run with the supported Node runtime from the repository root:
|
|
4
4
|
*
|
|
5
|
-
* node --expose-gc Common/Scripts/benchmark-fanin-capacity.js
|
|
5
|
+
* node --expose-gc packages/Common/Scripts/benchmark-fanin-capacity.js
|
|
6
6
|
*
|
|
7
7
|
* Compare in separate processes, extracting the previous source without
|
|
8
8
|
* modifying the checkout (the revision is the pre-change master):
|
|
9
9
|
*
|
|
10
10
|
* git show 0b23baed11:Common/Server/Utils/Telemetry/TelemetryFanInWriter.ts > /tmp/oneuptime-fanin-before.ts
|
|
11
|
-
* node --expose-gc Common/Scripts/benchmark-fanin-capacity.js /tmp/oneuptime-fanin-before.ts
|
|
11
|
+
* node --expose-gc packages/Common/Scripts/benchmark-fanin-capacity.js /tmp/oneuptime-fanin-before.ts
|
|
12
12
|
*
|
|
13
13
|
* 200 producers submit chunks sequentially and await all their acceptance
|
|
14
14
|
* acknowledgements at the end, as ingest jobs do. ClickHouse remains blocked
|
|
@@ -134,7 +134,7 @@ export default class AIAgentDataAPI {
|
|
|
134
134
|
private initRoutes(): void {
|
|
135
135
|
/*
|
|
136
136
|
* Server-mediated LLM completion for the in-house code-fix agent (B4
|
|
137
|
-
* Tier 0, Internal/Roadmap/CodeFixSandboxDesign.md). One call = one
|
|
137
|
+
* Tier 0, Docs/Internal/Roadmap/CodeFixSandboxDesign.md). One call = one
|
|
138
138
|
* completion of the worker's tool loop, executed through
|
|
139
139
|
* AIService.executeWithLogging: metered, LlmLog-linked to the run,
|
|
140
140
|
* inside the G4 daily budget, and under per-run loop budgets (max
|
|
@@ -20,6 +20,7 @@ const router: ExpressRouter = Express.getRouter();
|
|
|
20
20
|
router.post(
|
|
21
21
|
"/ai/recharge",
|
|
22
22
|
UserMiddleware.getUserMiddleware,
|
|
23
|
+
UserMiddleware.requireUserAuthentication,
|
|
23
24
|
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
24
25
|
try {
|
|
25
26
|
if (!IsBillingEnabled) {
|
package/Server/API/AIChatAPI.ts
CHANGED
|
@@ -164,10 +164,12 @@ router.post(
|
|
|
164
164
|
* (an incident, a monitor, the logs explorer, …). It is a hint for the
|
|
165
165
|
* system prompt, so an invalid payload is dropped, never an error.
|
|
166
166
|
*/
|
|
167
|
-
const pageContext: AIChatPageContext | undefined =
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
167
|
+
const pageContext: AIChatPageContext | null | undefined =
|
|
168
|
+
req.body["pageContext"] === null
|
|
169
|
+
? null // Explicitly detaching also clears the conversation's subject.
|
|
170
|
+
: AIChatPageContextHelper.sanitize(
|
|
171
|
+
req.body["pageContext"] as JSONObject | undefined,
|
|
172
|
+
);
|
|
171
173
|
|
|
172
174
|
// Plan gate: custom endpoints get no automatic billing check.
|
|
173
175
|
if (
|
|
@@ -10,7 +10,6 @@ import Response from "../Utils/Response";
|
|
|
10
10
|
import DatabaseCommonInteractionProps from "../../Types/BaseDatabase/DatabaseCommonInteractionProps";
|
|
11
11
|
import ObjectID from "../../Types/ObjectID";
|
|
12
12
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
13
|
-
import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
|
|
14
13
|
import { JSONArray, JSONObject } from "../../Types/JSON";
|
|
15
14
|
import AIInsightStatus from "../../Types/AI/AIInsightStatus";
|
|
16
15
|
import AIInsightHumanVerdict from "../../Types/AI/AIInsightHumanVerdict";
|
|
@@ -42,9 +41,7 @@ async function getLoggedInProps(
|
|
|
42
41
|
const props: DatabaseCommonInteractionProps =
|
|
43
42
|
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
44
43
|
|
|
45
|
-
|
|
46
|
-
throw new NotAuthorizedException("A logged-in user session is required.");
|
|
47
|
-
}
|
|
44
|
+
CommonAPI.assertAuthenticatedUser(props);
|
|
48
45
|
|
|
49
46
|
return props;
|
|
50
47
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import InvestigationEligibility from "../Utils/AI/SRE/InvestigationEligibility";
|
|
1
2
|
import UserMiddleware from "../Middleware/UserAuthorization";
|
|
2
3
|
import CommonAPI from "./CommonAPI";
|
|
3
4
|
import Express, {
|
|
@@ -10,7 +11,6 @@ import Response from "../Utils/Response";
|
|
|
10
11
|
import DatabaseCommonInteractionProps from "../../Types/BaseDatabase/DatabaseCommonInteractionProps";
|
|
11
12
|
import ObjectID from "../../Types/ObjectID";
|
|
12
13
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
13
|
-
import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
|
|
14
14
|
import SortOrder from "../../Types/BaseDatabase/SortOrder";
|
|
15
15
|
import Query from "../../Types/BaseDatabase/Query";
|
|
16
16
|
import { JSONArray, JSONObject } from "../../Types/JSON";
|
|
@@ -183,9 +183,7 @@ async function getLoggedInProps(
|
|
|
183
183
|
const props: DatabaseCommonInteractionProps =
|
|
184
184
|
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
185
185
|
|
|
186
|
-
|
|
187
|
-
throw new NotAuthorizedException("A logged-in user session is required.");
|
|
188
|
-
}
|
|
186
|
+
CommonAPI.assertAuthenticatedUser(props);
|
|
189
187
|
|
|
190
188
|
return props;
|
|
191
189
|
}
|
|
@@ -348,6 +346,11 @@ async function sendLatestInvestigation(
|
|
|
348
346
|
if (!run) {
|
|
349
347
|
Response.sendJsonObjectResponse(req, res, {
|
|
350
348
|
run: null,
|
|
349
|
+
notInvestigatedReason:
|
|
350
|
+
(await InvestigationEligibility.getNotStartedReason({
|
|
351
|
+
projectId: viewer.projectId,
|
|
352
|
+
...subject,
|
|
353
|
+
})) as unknown as JSONObject,
|
|
351
354
|
events: [],
|
|
352
355
|
analysisMarkdown: null,
|
|
353
356
|
analysisTldr: null,
|
|
@@ -459,6 +462,7 @@ async function sendLatestInvestigation(
|
|
|
459
462
|
|
|
460
463
|
Response.sendJsonObjectResponse(req, res, {
|
|
461
464
|
run: runJson || null,
|
|
465
|
+
notInvestigatedReason: null,
|
|
462
466
|
events: eventsJson,
|
|
463
467
|
analysisMarkdown,
|
|
464
468
|
analysisTldr,
|
|
@@ -49,11 +49,10 @@ router.post(
|
|
|
49
49
|
* because it loads the exception with the caller's props first, and
|
|
50
50
|
* derives the project from that authorized row.
|
|
51
51
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
52
|
+
CommonAPI.assertAuthenticatedUser(
|
|
53
|
+
props,
|
|
54
|
+
"AI readiness requires a logged-in user session.",
|
|
55
|
+
);
|
|
57
56
|
|
|
58
57
|
if (!props.tenantId) {
|
|
59
58
|
throw new BadDataException("Project ID is required (tenantid header).");
|
package/Server/API/AlertAPI.ts
CHANGED
|
@@ -38,6 +38,7 @@ export default class AlertAPI extends BaseAPI<Alert, AlertServiceType> {
|
|
|
38
38
|
this.router.post(
|
|
39
39
|
`${new this.entityType().getCrudApiPath()?.toString()}/generate-note-from-ai/:alertId`,
|
|
40
40
|
UserMiddleware.getUserMiddleware,
|
|
41
|
+
UserMiddleware.requireUserAuthentication,
|
|
41
42
|
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
42
43
|
try {
|
|
43
44
|
await this.generateNoteFromAI(req, res);
|
|
@@ -11,7 +11,6 @@ import DatabaseCommonInteractionProps from "../../Types/BaseDatabase/DatabaseCom
|
|
|
11
11
|
import ObjectID from "../../Types/ObjectID";
|
|
12
12
|
import OneUptimeDate from "../../Types/Date";
|
|
13
13
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
14
|
-
import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
|
|
15
14
|
import AutoRemediationSuggestionStatus from "../../Types/AutoRemediation/AutoRemediationSuggestionStatus";
|
|
16
15
|
import AutoRemediationSuggestionType from "../../Types/AutoRemediation/AutoRemediationSuggestionType";
|
|
17
16
|
import AutoRemediationVerificationStatus from "../../Types/AutoRemediation/AutoRemediationVerificationStatus";
|
|
@@ -65,9 +64,7 @@ async function getLoggedInProps(
|
|
|
65
64
|
const props: DatabaseCommonInteractionProps =
|
|
66
65
|
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
67
66
|
|
|
68
|
-
|
|
69
|
-
throw new NotAuthorizedException("A logged-in user session is required.");
|
|
70
|
-
}
|
|
67
|
+
CommonAPI.assertAuthenticatedUser(props);
|
|
71
68
|
|
|
72
69
|
return props;
|
|
73
70
|
}
|
package/Server/API/BaseAPI.ts
CHANGED
|
@@ -553,6 +553,19 @@ export default class BaseAPI<
|
|
|
553
553
|
this.entityType,
|
|
554
554
|
) as TBaseModel;
|
|
555
555
|
|
|
556
|
+
/*
|
|
557
|
+
* A create builds a brand-new row, so it must not carry the row's own
|
|
558
|
+
* primary key. getRepository().save() treats an entity that already has an
|
|
559
|
+
* id as an update of the existing row rather than an insert, so a stray
|
|
560
|
+
* `_id` (or the `id` spelling, which BaseModel.fromJSON has already folded
|
|
561
|
+
* into `_id`) would make a "create" modify an existing record instead.
|
|
562
|
+
* updateItem strips `_id` for a related reason; do it here too. Only the
|
|
563
|
+
* top-level primary key is removed - nested `_id`s inside relation
|
|
564
|
+
* objects/arrays reference existing related rows and are left untouched.
|
|
565
|
+
*/
|
|
566
|
+
delete (item as any)["_id"];
|
|
567
|
+
delete (item as any)["id"];
|
|
568
|
+
|
|
556
569
|
const miscDataProps: JSONObject = JSONFunctions.deserialize(
|
|
557
570
|
body["miscDataProps"] as JSONObject,
|
|
558
571
|
);
|
|
@@ -3,6 +3,9 @@ import UserMiddleware from "../Middleware/UserAuthorization";
|
|
|
3
3
|
import AnalyticsDatabaseService from "../Services/AnalyticsDatabaseService";
|
|
4
4
|
import CreateBy from "../Types/AnalyticsDatabase/CreateBy";
|
|
5
5
|
import GroupBy from "../Types/AnalyticsDatabase/GroupBy";
|
|
6
|
+
import ModelPermission, {
|
|
7
|
+
CheckReadPermissionType,
|
|
8
|
+
} from "../Types/AnalyticsDatabase/ModelPermission";
|
|
6
9
|
import Query from "../Types/AnalyticsDatabase/Query";
|
|
7
10
|
import Select from "../Types/AnalyticsDatabase/Select";
|
|
8
11
|
import Sort from "../Types/AnalyticsDatabase/Sort";
|
|
@@ -39,11 +42,9 @@ import logger from "../Utils/Logger";
|
|
|
39
42
|
* widgets loading on the same page) onto a single ClickHouse query
|
|
40
43
|
* while still looking real-time to humans.
|
|
41
44
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* with row-level access scoping should override `getAggregate` to
|
|
46
|
-
* skip the cache (or shape the key to include the access scope).
|
|
45
|
+
* A cache hit never reaches the service, which is where the read
|
|
46
|
+
* check lives, so getAggregateCacheKey runs that check itself and
|
|
47
|
+
* keys the slot on the permission-scoped query — see there.
|
|
47
48
|
*/
|
|
48
49
|
const ANALYTICS_AGGREGATE_CACHE_TTL_SECONDS: number = 8;
|
|
49
50
|
|
|
@@ -396,11 +397,11 @@ export default class BaseAnalyticsAPI<
|
|
|
396
397
|
* burst. On cache outage (Redis down, parse error, …) we fall
|
|
397
398
|
* through to a live query so behavior degrades to today's.
|
|
398
399
|
*/
|
|
399
|
-
const projectId: string | undefined = databaseProps.tenantId?.toString();
|
|
400
400
|
const cacheNamespace: string = `${this.getEntityName()}-aggregate`;
|
|
401
|
-
const cacheKey: string | null =
|
|
402
|
-
|
|
403
|
-
|
|
401
|
+
const cacheKey: string | null = await this.getAggregateCacheKey(
|
|
402
|
+
aggregateBy,
|
|
403
|
+
databaseProps,
|
|
404
|
+
);
|
|
404
405
|
|
|
405
406
|
if (cacheKey) {
|
|
406
407
|
try {
|
|
@@ -438,6 +439,76 @@ export default class BaseAnalyticsAPI<
|
|
|
438
439
|
return Response.sendJsonObjectResponse(req, res, responseBody);
|
|
439
440
|
}
|
|
440
441
|
|
|
442
|
+
/*
|
|
443
|
+
* A cached aggregate is answered BEFORE service.aggregateBy runs, and
|
|
444
|
+
* service.aggregateBy is where the read check lives. So a hit has to
|
|
445
|
+
* clear that same check first — otherwise anyone who can name a project
|
|
446
|
+
* in the `tenantid` header (getUserMiddleware accepts it even from an
|
|
447
|
+
* anonymous caller) reads whatever someone else aggregated there in the
|
|
448
|
+
* last few seconds.
|
|
449
|
+
*
|
|
450
|
+
* checkReadPermission runs here on a copy of the query, with the same
|
|
451
|
+
* select the service passes. It throws for an anonymous caller (401) and
|
|
452
|
+
* for one without read permission on the model or the queried columns
|
|
453
|
+
* (422), and it returns the query the live path would send to
|
|
454
|
+
* ClickHouse. That scoped query goes into the key because it carries
|
|
455
|
+
* everything that makes one caller's result differ from another's: the
|
|
456
|
+
* tenant, the Owned / label-restricted `IN (...)` filter on the owning
|
|
457
|
+
* resource, and for a multi-tenant request the caller's own list of
|
|
458
|
+
* projects.
|
|
459
|
+
*
|
|
460
|
+
* The caller's raw query stays in the key next to it. Scoping overwrites
|
|
461
|
+
* projectId, but a service can still plan from the raw query —
|
|
462
|
+
* MetricService picks point-type and rollup routing from the projectId
|
|
463
|
+
* the caller sent, before its own check rewrites it — so two requests
|
|
464
|
+
* that scope to the same query can still compute different results.
|
|
465
|
+
* Callers share a slot only when both their request and their access
|
|
466
|
+
* scope are identical.
|
|
467
|
+
*
|
|
468
|
+
* Returns null (skip the cache) without a tenant, and for a request the
|
|
469
|
+
* service's own validation is about to reject, so that request gets the
|
|
470
|
+
* service's error message rather than one from the check here.
|
|
471
|
+
*/
|
|
472
|
+
protected async getAggregateCacheKey(
|
|
473
|
+
aggregateBy: AggregateBy<AnalyticsDataModel>,
|
|
474
|
+
props: DatabaseCommonInteractionProps,
|
|
475
|
+
): Promise<string | null> {
|
|
476
|
+
if (!props.tenantId) {
|
|
477
|
+
return null;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
const aggregateColumnName: string | undefined =
|
|
481
|
+
aggregateBy.aggregateColumnName?.toString();
|
|
482
|
+
const timestampColumnName: string | undefined =
|
|
483
|
+
aggregateBy.aggregationTimestampColumnName?.toString();
|
|
484
|
+
const model: TAnalyticsDataModel = new this.entityType();
|
|
485
|
+
|
|
486
|
+
if (
|
|
487
|
+
!aggregateColumnName ||
|
|
488
|
+
!timestampColumnName ||
|
|
489
|
+
!model.getTableColumn(aggregateColumnName) ||
|
|
490
|
+
!model.getTableColumn(timestampColumnName)
|
|
491
|
+
) {
|
|
492
|
+
return null;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
const scoped: CheckReadPermissionType<TAnalyticsDataModel> =
|
|
496
|
+
await ModelPermission.checkReadPermission(
|
|
497
|
+
this.entityType,
|
|
498
|
+
{ ...(aggregateBy.query || {}) } as Query<TAnalyticsDataModel>,
|
|
499
|
+
{
|
|
500
|
+
[aggregateColumnName]: true,
|
|
501
|
+
[timestampColumnName]: true,
|
|
502
|
+
} as Select<TAnalyticsDataModel>,
|
|
503
|
+
props,
|
|
504
|
+
);
|
|
505
|
+
|
|
506
|
+
return `${props.tenantId.toString()}:${this.buildAggregateCacheKey({
|
|
507
|
+
...aggregateBy,
|
|
508
|
+
scopedQuery: scoped.query,
|
|
509
|
+
} as AggregateBy<AnalyticsDataModel>)}`;
|
|
510
|
+
}
|
|
511
|
+
|
|
441
512
|
/*
|
|
442
513
|
* Stable serialization for the aggregate cache key. Date instances
|
|
443
514
|
* are normalized to ISO so two logically-equal time windows hit
|