@oneuptime/common 11.5.3 → 11.5.5
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/AIAgentTaskPullRequest.ts +56 -45
- package/Models/DatabaseModels/AIInsight.ts +748 -0
- package/Models/DatabaseModels/AIRun.ts +262 -0
- package/Models/DatabaseModels/CodeRepository.ts +42 -0
- package/Models/DatabaseModels/Dashboard.ts +3 -3
- package/Models/DatabaseModels/GlobalConfig.ts +105 -0
- package/Models/DatabaseModels/Index.ts +4 -8
- package/Models/DatabaseModels/InstanceHealthLog.ts +277 -0
- package/Models/DatabaseModels/LlmLog.ts +33 -0
- package/Models/DatabaseModels/Project.ts +123 -6
- package/Models/DatabaseModels/Runbook.ts +1 -1
- package/Server/API/AIAgentDataAPI.ts +802 -140
- package/Server/API/AIAgentTaskAPI.ts +132 -69
- package/Server/API/AIAgentTaskLogAPI.ts +65 -41
- package/Server/API/AIAgentTaskPullRequestAPI.ts +41 -0
- package/Server/API/AIInsightAPI.ts +220 -0
- package/Server/API/AIInvestigationAPI.ts +363 -1
- package/Server/API/CodeFixRunAPI.ts +251 -0
- package/Server/API/GitHubAPI.ts +246 -3
- package/Server/API/TelemetryExceptionAPI.ts +193 -48
- package/Server/EnvironmentConfig.ts +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.ts +26 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.ts +73 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.ts +29 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.ts +51 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.ts +53 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.ts +37 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.ts +75 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.ts +37 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.ts +203 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.ts +163 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +30 -0
- package/Server/Infrastructure/Queue.ts +82 -4
- package/Server/Infrastructure/Semaphore.ts +62 -1
- package/Server/Services/AIAgentService.ts +32 -0
- package/Server/Services/AIAgentTaskPullRequestService.ts +117 -0
- package/Server/Services/AIInsightService.ts +174 -0
- package/Server/Services/AIRunEventService.ts +63 -0
- package/Server/Services/AIRunService.ts +259 -1
- package/Server/Services/AIService.ts +249 -7
- package/Server/Services/AlertService.ts +4 -4
- package/Server/Services/CodeRepositoryService.ts +209 -0
- package/Server/Services/DashboardService.ts +11 -2
- package/Server/Services/GlobalConfigService.ts +148 -0
- package/Server/Services/IncidentService.ts +183 -38
- package/Server/Services/IncidentStateTimelineService.ts +24 -4
- package/Server/Services/Index.ts +4 -4
- package/Server/Services/{AIAgentTaskLogService.ts → InstanceHealthLogService.ts} +1 -1
- package/Server/Services/LlmLogService.ts +27 -0
- package/Server/Services/LlmProviderService.ts +108 -0
- package/Server/Services/MetricBaselineService.ts +123 -0
- package/Server/Services/MonitorService.ts +15 -0
- package/Server/Services/TelemetryExceptionService.ts +323 -116
- package/Server/Services/TraceAggregationService.ts +176 -0
- package/Server/Types/Workflow/ComponentCode.ts +6 -0
- package/Server/Types/Workflow/Components/AI/GenerateText.ts +326 -0
- package/Server/Types/Workflow/Components/Index.ts +2 -0
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +1 -1
- package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +71 -0
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +243 -0
- package/Server/Utils/AI/CodeFix/CodeFixRunQueue.ts +131 -0
- package/Server/Utils/AI/CodeFix/FixRunBudget.ts +148 -0
- package/Server/Utils/AI/CodeFix/OpenPullRequestCap.ts +117 -0
- package/Server/Utils/AI/Eval/EvalCorpus.ts +369 -0
- package/Server/Utils/AI/Eval/EvalScores.ts +172 -0
- package/Server/Utils/AI/Eval/ReplayInvestigation.ts +87 -0
- package/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.ts +676 -0
- package/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.ts → SRE/AIInvestigationEngine.ts} +58 -37
- package/Server/Utils/AI/{Sentinel/SentinelMemory.ts → SRE/AIMemory.ts} +3 -3
- package/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.ts +50 -20
- package/Server/Utils/AI/SRE/ConfidenceSignal.ts +293 -0
- package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +115 -0
- package/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.ts +223 -0
- package/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.ts +71 -21
- package/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.ts +8 -8
- package/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.ts +364 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +317 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/Index.ts +27 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.ts +221 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +238 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.ts +521 -0
- package/Server/Utils/AI/SRE/Insights/FixRouting.ts +242 -0
- package/Server/Utils/AI/SRE/Insights/InsightScanner.ts +290 -0
- package/Server/Utils/AI/SRE/Insights/InsightStore.ts +283 -0
- package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +242 -0
- package/Server/Utils/AI/SRE/Insights/Triage.ts +162 -0
- package/Server/Utils/AI/SRE/Insights/Types.ts +49 -0
- package/Server/Utils/AI/SRE/InstrumentationTaskTrigger.ts +212 -0
- package/Server/Utils/AI/SRE/InvestigationGrader.ts +282 -0
- package/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.ts +114 -19
- package/Server/Utils/AI/{Sentinel → SRE}/README.md +4 -4
- package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +172 -0
- package/Server/Utils/AI/Toolbox/{SentinelActionTools.ts → AIActionTools.ts} +22 -1
- package/Server/Utils/AI/Toolbox/Index.ts +2 -2
- package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +526 -0
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +319 -1
- package/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.ts +221 -0
- package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +571 -0
- package/Server/Utils/Execute.ts +34 -13
- package/Server/Utils/LLM/LLMService.ts +160 -30
- package/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.ts +152 -0
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +29 -0
- package/Tests/Server/API/DashboardMasterPasswordAPI.test.ts +225 -0
- package/Tests/Server/Infrastructure/Queue.test.ts +227 -0
- package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +159 -0
- package/Tests/Server/Services/AIAgentTaskPullRequestOutcomeStats.test.ts +154 -0
- package/Tests/Server/Services/AIInsightService.test.ts +324 -0
- package/Tests/Server/Services/AIRunCodeFixClaim.test.ts +401 -0
- package/Tests/Server/Services/AIRunHumanVerdict.test.ts +161 -0
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +95 -5
- package/Tests/Server/Services/AIServiceProjectAccess.test.ts +259 -0
- package/Tests/Server/Services/FixFromIncidentTaskTrigger.test.ts +249 -0
- package/Tests/Server/Services/FixPerformanceTaskTrigger.test.ts +274 -0
- package/Tests/Server/Services/GlobalConfigService.test.ts +80 -0
- package/Tests/Server/Services/IncidentInternalNoteAnnouncement.test.ts +1 -1
- package/Tests/Server/Services/InstrumentationTaskTrigger.test.ts +313 -0
- package/Tests/Server/Services/LlmProviderProjectOwned.test.ts +132 -0
- package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +405 -0
- package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +322 -0
- package/Tests/Server/Services/TraceServiceLatencyProfile.test.ts +278 -0
- package/Tests/Server/Types/Workflow/Components/AIGenerateText.test.ts +722 -0
- package/Tests/Server/Utils/AI/{SentinelAlertGating.test.ts → AIAlertGating.test.ts} +19 -19
- package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +362 -0
- package/Tests/Server/Utils/AI/{SentinelInvestigationQueue.test.ts → AIInvestigationQueue.test.ts} +19 -19
- package/Tests/Server/Utils/AI/CodeAgentWorkspaceGuard.test.ts +138 -0
- package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +335 -0
- package/Tests/Server/Utils/AI/CodeFixRunQueue.test.ts +134 -0
- package/Tests/Server/Utils/AI/EvalCorpus.test.ts +209 -0
- package/Tests/Server/Utils/AI/EvalScores.test.ts +343 -0
- package/Tests/Server/Utils/AI/FixRunBudget.test.ts +218 -0
- package/Tests/Server/Utils/AI/Insights/ErrorLogSpikeDetector.test.ts +437 -0
- package/Tests/Server/Utils/AI/Insights/ExceptionSpikeDetector.test.ts +287 -0
- package/Tests/Server/Utils/AI/Insights/InsightDetectorsIndex.test.ts +34 -0
- package/Tests/Server/Utils/AI/Insights/InsightFixRouting.test.ts +572 -0
- package/Tests/Server/Utils/AI/Insights/InsightNeverThrowsHardening.test.ts +344 -0
- package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +720 -0
- package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +467 -0
- package/Tests/Server/Utils/AI/Insights/InsightStoreHardening.test.ts +370 -0
- package/Tests/Server/Utils/AI/Insights/InsightTriage.test.ts +210 -0
- package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +221 -0
- package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +328 -0
- package/Tests/Server/Utils/AI/Insights/MetricBaselineDrift.test.ts +182 -0
- package/Tests/Server/Utils/AI/Insights/MetricDriftDetector.test.ts +280 -0
- package/Tests/Server/Utils/AI/Insights/NewExceptionDetector.test.ts +259 -0
- package/Tests/Server/Utils/AI/Insights/TraceLatencyRegressionDetector.test.ts +770 -0
- package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +343 -0
- package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +307 -0
- package/Tests/Server/Utils/AI/OpenPullRequestCap.test.ts +170 -0
- package/Tests/Server/Utils/AI/SpanTreeAnalyzer.test.ts +559 -0
- package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +158 -0
- package/Tests/Server/Utils/GitHubCheckRunsConclusion.test.ts +100 -0
- package/Tests/Server/Utils/GitHubPullRequestStateMapping.test.ts +50 -0
- package/Tests/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.test.ts +266 -0
- package/Tests/Server/Utils/ServiceRepoLinkSuggester.test.ts +167 -0
- package/Tests/Server/Utils/StackTraceRepoResolver.test.ts +527 -0
- package/Tests/Types/AI/AIChatPermissionMode.test.ts +112 -0
- package/Tests/Types/AI/CodeFixTaskType.test.ts +152 -0
- package/Tests/Types/AI/FixPullRequestCiStatus.test.ts +181 -0
- package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +110 -0
- package/Tests/Types/Monitor/SqlDatabaseType.test.ts +55 -0
- package/Tests/Types/Workflow/AIGenerateTextMetadata.test.ts +180 -0
- package/Tests/UI/Components/TableBulkCsvExport.test.tsx +168 -0
- package/Tests/UI/Utils/TableColumnsToCsv.test.ts +523 -0
- package/Types/AI/AIChatTypes.ts +8 -0
- package/Types/AI/AIInsightEvidence.ts +77 -0
- package/Types/AI/AIInsightHumanVerdict.ts +15 -0
- package/Types/AI/AIInsightSeverity.ts +13 -0
- package/Types/AI/AIInsightStatus.ts +38 -0
- package/Types/AI/AIInsightType.ts +41 -0
- package/Types/AI/AIRunAutoGrade.ts +18 -0
- package/Types/AI/AIRunEventType.ts +5 -0
- package/Types/AI/AIRunHumanVerdict.ts +17 -0
- package/Types/AI/AIRunType.ts +6 -0
- package/Types/AI/CodeFixTaskContext.ts +88 -0
- package/Types/AI/CodeFixTaskType.ts +132 -0
- package/Types/AI/FixPullRequestCiStatus.ts +132 -0
- package/Types/BaseDatabase/AggregationIntervalUtil.ts +67 -0
- package/Types/Incident/IncidentMetricType.ts +7 -0
- package/Types/Monitor/CriteriaFilter.ts +8 -0
- package/Types/Monitor/MonitorCriteriaInstance.ts +67 -0
- package/Types/Monitor/MonitorStep.ts +38 -0
- package/Types/Monitor/MonitorStepSqlMonitor.ts +141 -0
- package/Types/Monitor/MonitorType.ts +17 -0
- package/Types/Monitor/SqlDatabaseType.ts +49 -0
- package/Types/Monitor/SqlMonitor/SqlMonitorResponse.ts +28 -0
- package/Types/Permission.ts +11 -95
- package/Types/Probe/ProbeMonitorResponse.ts +2 -0
- package/Types/Runbook/RunbookStep.ts +26 -2
- package/Types/Runbook/RunbookStepType.ts +1 -0
- package/Types/Workflow/Component.ts +13 -0
- package/Types/Workflow/ComponentID.ts +1 -0
- package/Types/Workflow/Components/AI.ts +148 -0
- package/Types/Workflow/Components.ts +8 -0
- package/UI/Components/AI/GenerateFromAIModal.tsx +1 -1
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +11 -0
- package/UI/Components/MoreMenu/MoreMenu.tsx +1 -1
- package/UI/Components/Table/Table.tsx +38 -2
- package/UI/Utils/TableColumnsToCsv.ts +385 -0
- package/Utils/Monitor/MonitorMetricType.ts +1 -0
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +59 -45
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIInsight.js +795 -0
- package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AIRun.js +274 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CodeRepository.js +43 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Dashboard.js +3 -3
- package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +110 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +4 -8
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/InstanceHealthLog.js +304 -0
- package/build/dist/Models/DatabaseModels/InstanceHealthLog.js.map +1 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js +35 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +127 -6
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Runbook.js +1 -1
- package/build/dist/Models/DatabaseModels/Runbook.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +568 -85
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskAPI.js +100 -44
- package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskLogAPI.js +49 -25
- package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js +27 -0
- package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js.map +1 -1
- package/build/dist/Server/API/AIInsightAPI.js +140 -0
- package/build/dist/Server/API/AIInsightAPI.js.map +1 -0
- package/build/dist/Server/API/AIInvestigationAPI.js +257 -1
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/CodeFixRunAPI.js +181 -0
- package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -0
- package/build/dist/Server/API/GitHubAPI.js +164 -2
- package/build/dist/Server/API/GitHubAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryExceptionAPI.js +148 -43
- package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +1 -1
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js +23 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js +125 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js +62 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Queue.js +73 -3
- package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
- package/build/dist/Server/Infrastructure/Semaphore.js +44 -1
- package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
- package/build/dist/Server/Services/AIAgentService.js +29 -0
- package/build/dist/Server/Services/AIAgentService.js.map +1 -1
- package/build/dist/Server/Services/AIAgentTaskPullRequestService.js +78 -0
- package/build/dist/Server/Services/AIAgentTaskPullRequestService.js.map +1 -1
- package/build/dist/Server/Services/AIInsightService.js +164 -0
- package/build/dist/Server/Services/AIInsightService.js.map +1 -0
- package/build/dist/Server/Services/AIRunEventService.js +49 -0
- package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +221 -0
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +198 -11
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +4 -4
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/CodeRepositoryService.js +180 -0
- package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
- package/build/dist/Server/Services/DashboardService.js +8 -2
- package/build/dist/Server/Services/DashboardService.js.map +1 -1
- package/build/dist/Server/Services/GlobalConfigService.js +84 -0
- package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +149 -37
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +24 -4
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +4 -4
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/{AIAgentTaskLogService.js → InstanceHealthLogService.js} +2 -2
- package/build/dist/Server/Services/InstanceHealthLogService.js.map +1 -0
- package/build/dist/Server/Services/LlmLogService.js +23 -0
- package/build/dist/Server/Services/LlmLogService.js.map +1 -1
- package/build/dist/Server/Services/LlmProviderService.js +96 -0
- package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
- package/build/dist/Server/Services/MetricBaselineService.js +65 -0
- package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +9 -1
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryExceptionService.js +243 -82
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +124 -0
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Types/Workflow/ComponentCode.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js +240 -0
- package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
- package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +48 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +174 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js +126 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +131 -0
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js +99 -0
- package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js.map +1 -0
- package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js +245 -0
- package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js.map +1 -0
- package/build/dist/Server/Utils/AI/Eval/EvalScores.js +83 -0
- package/build/dist/Server/Utils/AI/Eval/EvalScores.js.map +1 -0
- package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js +12 -0
- package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js.map +1 -0
- package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js +439 -0
- package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.js → SRE/AIInvestigationEngine.js} +47 -31
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel/SentinelMemory.js → SRE/AIMemory.js} +5 -5
- package/build/dist/Server/Utils/AI/SRE/AIMemory.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.js +42 -19
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +226 -0
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +100 -0
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js +174 -0
- package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.js +60 -22
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.js +9 -9
- package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js +268 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +226 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js +26 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js +159 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +177 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js +384 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js +180 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js +269 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js +231 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +206 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js +121 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Types.js +2 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Types.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js +148 -0
- package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +231 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.js +102 -23
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +167 -0
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/{SentinelActionTools.js → AIActionTools.js} +18 -2
- package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +2 -2
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +301 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +240 -2
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js +127 -0
- package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +336 -0
- package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -0
- package/build/dist/Server/Utils/Execute.js +21 -11
- package/build/dist/Server/Utils/Execute.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +125 -25
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js +120 -0
- package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Types/AI/AIInsightEvidence.js +2 -0
- package/build/dist/Types/AI/AIInsightEvidence.js.map +1 -0
- package/build/dist/Types/AI/AIInsightHumanVerdict.js +16 -0
- package/build/dist/Types/AI/AIInsightHumanVerdict.js.map +1 -0
- package/build/dist/Types/AI/AIInsightSeverity.js +14 -0
- package/build/dist/Types/AI/AIInsightSeverity.js.map +1 -0
- package/build/dist/Types/AI/AIInsightStatus.js +36 -0
- package/build/dist/Types/AI/AIInsightStatus.js.map +1 -0
- package/build/dist/Types/AI/AIInsightType.js +42 -0
- package/build/dist/Types/AI/AIInsightType.js.map +1 -0
- package/build/dist/Types/AI/AIRunAutoGrade.js +19 -0
- package/build/dist/Types/AI/AIRunAutoGrade.js.map +1 -0
- package/build/dist/Types/AI/AIRunEventType.js +5 -0
- package/build/dist/Types/AI/AIRunEventType.js.map +1 -1
- package/build/dist/Types/AI/AIRunHumanVerdict.js +18 -0
- package/build/dist/Types/AI/AIRunHumanVerdict.js.map +1 -0
- package/build/dist/Types/AI/AIRunType.js +6 -0
- package/build/dist/Types/AI/AIRunType.js.map +1 -1
- package/build/dist/Types/AI/CodeFixTaskContext.js +29 -0
- package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -0
- package/build/dist/Types/AI/CodeFixTaskType.js +122 -0
- package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -0
- package/build/dist/Types/AI/FixPullRequestCiStatus.js +102 -0
- package/build/dist/Types/AI/FixPullRequestCiStatus.js.map +1 -0
- package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +55 -0
- package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
- package/build/dist/Types/Incident/IncidentMetricType.js +7 -0
- package/build/dist/Types/Incident/IncidentMetricType.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +7 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +62 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +28 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +93 -0
- package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorType.js +15 -0
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SqlDatabaseType.js +47 -0
- package/build/dist/Types/Monitor/SqlDatabaseType.js.map +1 -0
- package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js +2 -0
- package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js.map +1 -0
- package/build/dist/Types/Permission.js +10 -84
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Runbook/RunbookStepType.js +1 -0
- package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
- package/build/dist/Types/Workflow/ComponentID.js +1 -0
- package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
- package/build/dist/Types/Workflow/Components/AI.js +135 -0
- package/build/dist/Types/Workflow/Components/AI.js.map +1 -0
- package/build/dist/Types/Workflow/Components.js +7 -0
- package/build/dist/Types/Workflow/Components.js.map +1 -1
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js +1 -1
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +9 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +1 -1
- package/build/dist/UI/Components/Table/Table.js +28 -2
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Utils/TableColumnsToCsv.js +291 -0
- package/build/dist/UI/Utils/TableColumnsToCsv.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorMetricType.js +1 -0
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/package.json +1 -1
- package/Models/DatabaseModels/AIAgentTask.ts +0 -660
- package/Models/DatabaseModels/AIAgentTaskLog.ts +0 -426
- package/Models/DatabaseModels/AIAgentTaskTelemetryException.ts +0 -399
- package/Models/DatabaseModels/ServiceCodeRepository.ts +0 -647
- package/Server/Services/AIAgentTaskService.ts +0 -240
- package/Server/Services/AIAgentTaskTelemetryExceptionService.ts +0 -39
- package/Server/Services/ServiceCodeRepositoryService.ts +0 -55
- package/Tests/Server/Services/AIAgentTaskServiceClaim.test.ts +0 -146
- package/Types/AI/AIAgentTaskMetadata.ts +0 -25
- package/Types/AI/AIAgentTaskType.ts +0 -40
- package/build/dist/Models/DatabaseModels/AIAgentTask.js +0 -691
- package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +0 -1
- package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js +0 -447
- package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js.map +0 -1
- package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js +0 -415
- package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js.map +0 -1
- package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js +0 -665
- package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js.map +0 -1
- package/build/dist/Server/Services/AIAgentTaskLogService.js.map +0 -1
- package/build/dist/Server/Services/AIAgentTaskService.js +0 -217
- package/build/dist/Server/Services/AIAgentTaskService.js.map +0 -1
- package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js +0 -36
- package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCodeRepositoryService.js +0 -54
- package/build/dist/Server/Services/ServiceCodeRepositoryService.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/InvestigationQueue.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js.map +0 -1
- package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js.map +0 -1
- package/build/dist/Types/AI/AIAgentTaskMetadata.js +0 -6
- package/build/dist/Types/AI/AIAgentTaskMetadata.js.map +0 -1
- package/build/dist/Types/AI/AIAgentTaskType.js +0 -29
- package/build/dist/Types/AI/AIAgentTaskType.js.map +0 -1
|
@@ -6,6 +6,13 @@ enum IncidentMetricType {
|
|
|
6
6
|
TimeInState = "oneuptime.incident.time-in-state",
|
|
7
7
|
SeverityChange = "oneuptime.incident.severity-change",
|
|
8
8
|
PostmortemCompletionTime = "oneuptime.incident.postmortem-completion-time",
|
|
9
|
+
/*
|
|
10
|
+
* Seconds from incident creation to the moment the AI investigation
|
|
11
|
+
* posted its root-cause analysis. Written once from the investigation
|
|
12
|
+
* runner (not from refreshIncidentMetrics — the refresh replace-list
|
|
13
|
+
* deliberately excludes this name so refreshes never tombstone it).
|
|
14
|
+
*/
|
|
15
|
+
TimeToRootCausePosted = "oneuptime.incident.time-to-rca",
|
|
9
16
|
}
|
|
10
17
|
|
|
11
18
|
export default IncidentMetricType;
|
|
@@ -98,6 +98,13 @@ export enum CheckOn {
|
|
|
98
98
|
DnssecResolverConsensus = "DNSSEC Resolver Consensus (AD Flag)",
|
|
99
99
|
DnssecNameserverConsistent = "DNSSEC Nameservers Are Consistent",
|
|
100
100
|
|
|
101
|
+
// SQL Query monitors.
|
|
102
|
+
SqlIsOnline = "SQL Is Online",
|
|
103
|
+
SqlQueryRowCount = "SQL Query Row Count",
|
|
104
|
+
SqlQueryScalarValue = "SQL Query Scalar Value",
|
|
105
|
+
SqlQueryExecutionTime = "SQL Query Execution Time (in ms)",
|
|
106
|
+
SqlQueryError = "SQL Query Error",
|
|
107
|
+
|
|
101
108
|
// External Status Page monitors.
|
|
102
109
|
ExternalStatusPageIsOnline = "External Status Page Is Online",
|
|
103
110
|
ExternalStatusPageOverallStatus = "External Status Page Overall Status",
|
|
@@ -299,6 +306,7 @@ export class CriteriaFilterUtil {
|
|
|
299
306
|
checkOn === CheckOn.DnssecDsExists ||
|
|
300
307
|
checkOn === CheckOn.DnssecResolverConsensus ||
|
|
301
308
|
checkOn === CheckOn.DnssecNameserverConsistent ||
|
|
309
|
+
checkOn === CheckOn.SqlIsOnline ||
|
|
302
310
|
checkOn === CheckOn.ExternalStatusPageIsOnline
|
|
303
311
|
) {
|
|
304
312
|
return false;
|
|
@@ -469,6 +469,33 @@ export default class MonitorCriteriaInstance extends DatabaseProperty {
|
|
|
469
469
|
return monitorCriteriaInstance;
|
|
470
470
|
}
|
|
471
471
|
|
|
472
|
+
if (arg.monitorType === MonitorType.SQLQuery) {
|
|
473
|
+
const monitorCriteriaInstance: MonitorCriteriaInstance =
|
|
474
|
+
new MonitorCriteriaInstance();
|
|
475
|
+
|
|
476
|
+
monitorCriteriaInstance.data = {
|
|
477
|
+
id: ObjectID.generate().toString(),
|
|
478
|
+
monitorStatusId: arg.monitorStatusId,
|
|
479
|
+
filterCondition: FilterCondition.All,
|
|
480
|
+
filters: [
|
|
481
|
+
{
|
|
482
|
+
checkOn: CheckOn.SqlIsOnline,
|
|
483
|
+
filterType: FilterType.True,
|
|
484
|
+
value: undefined,
|
|
485
|
+
},
|
|
486
|
+
],
|
|
487
|
+
incidents: [],
|
|
488
|
+
alerts: [],
|
|
489
|
+
createAlerts: false,
|
|
490
|
+
changeMonitorStatus: true,
|
|
491
|
+
createIncidents: false,
|
|
492
|
+
name: `Check if ${arg.monitorName} is online`,
|
|
493
|
+
description: `This criteria checks if the ${arg.monitorName} database query ran successfully`,
|
|
494
|
+
};
|
|
495
|
+
|
|
496
|
+
return monitorCriteriaInstance;
|
|
497
|
+
}
|
|
498
|
+
|
|
472
499
|
if (arg.monitorType === MonitorType.Domain) {
|
|
473
500
|
const monitorCriteriaInstance: MonitorCriteriaInstance =
|
|
474
501
|
new MonitorCriteriaInstance();
|
|
@@ -696,6 +723,46 @@ export default class MonitorCriteriaInstance extends DatabaseProperty {
|
|
|
696
723
|
};
|
|
697
724
|
}
|
|
698
725
|
|
|
726
|
+
if (arg.monitorType === MonitorType.SQLQuery) {
|
|
727
|
+
monitorCriteriaInstance.data = {
|
|
728
|
+
id: ObjectID.generate().toString(),
|
|
729
|
+
monitorStatusId: arg.monitorStatusId,
|
|
730
|
+
filterCondition: FilterCondition.Any,
|
|
731
|
+
filters: [
|
|
732
|
+
{
|
|
733
|
+
checkOn: CheckOn.SqlIsOnline,
|
|
734
|
+
filterType: FilterType.False,
|
|
735
|
+
value: undefined,
|
|
736
|
+
},
|
|
737
|
+
],
|
|
738
|
+
incidents: [
|
|
739
|
+
{
|
|
740
|
+
title: `${arg.monitorName} is offline`,
|
|
741
|
+
description: `${arg.monitorName} database query is currently failing.`,
|
|
742
|
+
incidentSeverityId: arg.incidentSeverityId,
|
|
743
|
+
autoResolveIncident: true,
|
|
744
|
+
id: ObjectID.generate().toString(),
|
|
745
|
+
onCallPolicyIds: [],
|
|
746
|
+
},
|
|
747
|
+
],
|
|
748
|
+
changeMonitorStatus: true,
|
|
749
|
+
createIncidents: true,
|
|
750
|
+
createAlerts: false,
|
|
751
|
+
alerts: [
|
|
752
|
+
{
|
|
753
|
+
title: `${arg.monitorName} is offline`,
|
|
754
|
+
description: `${arg.monitorName} database query is currently failing.`,
|
|
755
|
+
alertSeverityId: arg.alertSeverityId,
|
|
756
|
+
autoResolveAlert: true,
|
|
757
|
+
id: ObjectID.generate().toString(),
|
|
758
|
+
onCallPolicyIds: [],
|
|
759
|
+
},
|
|
760
|
+
],
|
|
761
|
+
name: `Check if ${arg.monitorName} is offline`,
|
|
762
|
+
description: `This criteria checks if the ${arg.monitorName} database query is failing`,
|
|
763
|
+
};
|
|
764
|
+
}
|
|
765
|
+
|
|
699
766
|
if (arg.monitorType === MonitorType.Domain) {
|
|
700
767
|
monitorCriteriaInstance.data = {
|
|
701
768
|
id: ObjectID.generate().toString(),
|
|
@@ -44,6 +44,9 @@ import MonitorStepDomainMonitor, {
|
|
|
44
44
|
import MonitorStepDnssecMonitor, {
|
|
45
45
|
MonitorStepDnssecMonitorUtil,
|
|
46
46
|
} from "./MonitorStepDnssecMonitor";
|
|
47
|
+
import MonitorStepSqlMonitor, {
|
|
48
|
+
MonitorStepSqlMonitorUtil,
|
|
49
|
+
} from "./MonitorStepSqlMonitor";
|
|
47
50
|
import MonitorStepExternalStatusPageMonitor, {
|
|
48
51
|
MonitorStepExternalStatusPageMonitorUtil,
|
|
49
52
|
} from "./MonitorStepExternalStatusPageMonitor";
|
|
@@ -190,6 +193,9 @@ export interface MonitorStepType {
|
|
|
190
193
|
// DNSSEC monitor
|
|
191
194
|
dnssecMonitor?: MonitorStepDnssecMonitor | undefined;
|
|
192
195
|
|
|
196
|
+
// SQL Query monitor
|
|
197
|
+
sqlMonitor?: MonitorStepSqlMonitor | undefined;
|
|
198
|
+
|
|
193
199
|
// External Status Page monitor
|
|
194
200
|
externalStatusPageMonitor?: MonitorStepExternalStatusPageMonitor | undefined;
|
|
195
201
|
|
|
@@ -253,6 +259,7 @@ export default class MonitorStep extends DatabaseProperty {
|
|
|
253
259
|
dnsMonitor: undefined,
|
|
254
260
|
domainMonitor: undefined,
|
|
255
261
|
dnssecMonitor: undefined,
|
|
262
|
+
sqlMonitor: undefined,
|
|
256
263
|
externalStatusPageMonitor: undefined,
|
|
257
264
|
kubernetesMonitor: undefined,
|
|
258
265
|
dockerMonitor: undefined,
|
|
@@ -304,6 +311,7 @@ export default class MonitorStep extends DatabaseProperty {
|
|
|
304
311
|
dnsMonitor: undefined,
|
|
305
312
|
domainMonitor: undefined,
|
|
306
313
|
dnssecMonitor: undefined,
|
|
314
|
+
sqlMonitor: undefined,
|
|
307
315
|
externalStatusPageMonitor: undefined,
|
|
308
316
|
kubernetesMonitor: undefined,
|
|
309
317
|
dockerMonitor: undefined,
|
|
@@ -519,6 +527,11 @@ export default class MonitorStep extends DatabaseProperty {
|
|
|
519
527
|
return this;
|
|
520
528
|
}
|
|
521
529
|
|
|
530
|
+
public setSqlMonitor(sqlMonitor: MonitorStepSqlMonitor): MonitorStep {
|
|
531
|
+
this.data!.sqlMonitor = sqlMonitor;
|
|
532
|
+
return this;
|
|
533
|
+
}
|
|
534
|
+
|
|
522
535
|
public setExternalStatusPageMonitor(
|
|
523
536
|
externalStatusPageMonitor: MonitorStepExternalStatusPageMonitor,
|
|
524
537
|
): MonitorStep {
|
|
@@ -751,6 +764,24 @@ export default class MonitorStep extends DatabaseProperty {
|
|
|
751
764
|
}
|
|
752
765
|
}
|
|
753
766
|
|
|
767
|
+
if (monitorType === MonitorType.SQLQuery) {
|
|
768
|
+
if (!value.data.sqlMonitor) {
|
|
769
|
+
return "SQL monitor configuration is required";
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
if (!value.data.sqlMonitor.host) {
|
|
773
|
+
return "Database host is required";
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
if (!value.data.sqlMonitor.databaseName) {
|
|
777
|
+
return "Database name is required";
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
if (!value.data.sqlMonitor.query || !value.data.sqlMonitor.query.trim()) {
|
|
781
|
+
return "SQL query is required";
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
|
|
754
785
|
if (monitorType === MonitorType.ExternalStatusPage) {
|
|
755
786
|
if (!value.data.externalStatusPageMonitor) {
|
|
756
787
|
return "External status page configuration is required";
|
|
@@ -916,6 +947,9 @@ export default class MonitorStep extends DatabaseProperty {
|
|
|
916
947
|
dnssecMonitor: this.data.dnssecMonitor
|
|
917
948
|
? MonitorStepDnssecMonitorUtil.toJSON(this.data.dnssecMonitor)
|
|
918
949
|
: undefined,
|
|
950
|
+
sqlMonitor: this.data.sqlMonitor
|
|
951
|
+
? MonitorStepSqlMonitorUtil.toJSON(this.data.sqlMonitor)
|
|
952
|
+
: undefined,
|
|
919
953
|
externalStatusPageMonitor: this.data.externalStatusPageMonitor
|
|
920
954
|
? MonitorStepExternalStatusPageMonitorUtil.toJSON(
|
|
921
955
|
this.data.externalStatusPageMonitor,
|
|
@@ -1081,6 +1115,9 @@ export default class MonitorStep extends DatabaseProperty {
|
|
|
1081
1115
|
dnssecMonitor: json["dnssecMonitor"]
|
|
1082
1116
|
? (json["dnssecMonitor"] as JSONObject)
|
|
1083
1117
|
: undefined,
|
|
1118
|
+
sqlMonitor: json["sqlMonitor"]
|
|
1119
|
+
? (json["sqlMonitor"] as JSONObject)
|
|
1120
|
+
: undefined,
|
|
1084
1121
|
externalStatusPageMonitor: json["externalStatusPageMonitor"]
|
|
1085
1122
|
? (json["externalStatusPageMonitor"] as JSONObject)
|
|
1086
1123
|
: undefined,
|
|
@@ -1144,6 +1181,7 @@ export default class MonitorStep extends DatabaseProperty {
|
|
|
1144
1181
|
dnsMonitor: Zod.any().optional(),
|
|
1145
1182
|
domainMonitor: Zod.any().optional(),
|
|
1146
1183
|
dnssecMonitor: Zod.any().optional(),
|
|
1184
|
+
sqlMonitor: Zod.any().optional(),
|
|
1147
1185
|
externalStatusPageMonitor: Zod.any().optional(),
|
|
1148
1186
|
kubernetesMonitor: Zod.any().optional(),
|
|
1149
1187
|
dockerMonitor: Zod.any().optional(),
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { JSONObject } from "../JSON";
|
|
2
|
+
import SqlDatabaseType from "./SqlDatabaseType";
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
* Caps for SQL query execution. These are enforced server/probe-side and are
|
|
6
|
+
* the safety envelope for running a customer-supplied query — a user cannot
|
|
7
|
+
* raise them past these ceilings from the UI.
|
|
8
|
+
*/
|
|
9
|
+
export const MAX_SQL_STATEMENT_TIMEOUT_IN_MS: number = 60000; // 60 seconds
|
|
10
|
+
export const DEFAULT_SQL_STATEMENT_TIMEOUT_IN_MS: number = 15000; // 15 seconds
|
|
11
|
+
export const MAX_SQL_CONNECTION_TIMEOUT_IN_MS: number = 30000; // 30 seconds
|
|
12
|
+
export const DEFAULT_SQL_CONNECTION_TIMEOUT_IN_MS: number = 10000; // 10 seconds
|
|
13
|
+
export const MAX_SQL_MAX_ROWS: number = 1000;
|
|
14
|
+
export const DEFAULT_SQL_MAX_ROWS: number = 100;
|
|
15
|
+
|
|
16
|
+
export const clampSqlStatementTimeoutInMs: (value: number) => number = (
|
|
17
|
+
value: number,
|
|
18
|
+
): number => {
|
|
19
|
+
if (!value || value <= 0 || isNaN(value)) {
|
|
20
|
+
return DEFAULT_SQL_STATEMENT_TIMEOUT_IN_MS;
|
|
21
|
+
}
|
|
22
|
+
if (value > MAX_SQL_STATEMENT_TIMEOUT_IN_MS) {
|
|
23
|
+
return MAX_SQL_STATEMENT_TIMEOUT_IN_MS;
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const clampSqlConnectionTimeoutInMs: (value: number) => number = (
|
|
29
|
+
value: number,
|
|
30
|
+
): number => {
|
|
31
|
+
if (!value || value <= 0 || isNaN(value)) {
|
|
32
|
+
return DEFAULT_SQL_CONNECTION_TIMEOUT_IN_MS;
|
|
33
|
+
}
|
|
34
|
+
if (value > MAX_SQL_CONNECTION_TIMEOUT_IN_MS) {
|
|
35
|
+
return MAX_SQL_CONNECTION_TIMEOUT_IN_MS;
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const clampSqlMaxRows: (value: number) => number = (
|
|
41
|
+
value: number,
|
|
42
|
+
): number => {
|
|
43
|
+
if (!value || value <= 0 || isNaN(value)) {
|
|
44
|
+
return DEFAULT_SQL_MAX_ROWS;
|
|
45
|
+
}
|
|
46
|
+
if (value > MAX_SQL_MAX_ROWS) {
|
|
47
|
+
return MAX_SQL_MAX_ROWS;
|
|
48
|
+
}
|
|
49
|
+
return Math.floor(value);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/*
|
|
53
|
+
* Connection + query configuration for a SQL Query monitor. Sensitive fields
|
|
54
|
+
* (password, and optionally any other field) may contain a monitor-secret
|
|
55
|
+
* reference like {{monitorSecrets.name}} — the server resolves these before
|
|
56
|
+
* the config is handed to a probe. OneUptime never creates these secrets for
|
|
57
|
+
* the user; referencing one is the user's choice.
|
|
58
|
+
*/
|
|
59
|
+
export default interface MonitorStepSqlMonitor {
|
|
60
|
+
databaseType: SqlDatabaseType;
|
|
61
|
+
host: string;
|
|
62
|
+
port: number;
|
|
63
|
+
databaseName: string;
|
|
64
|
+
username: string;
|
|
65
|
+
// Raw password OR a {{monitorSecrets.name}} reference resolved server-side.
|
|
66
|
+
password: string;
|
|
67
|
+
useSsl: boolean;
|
|
68
|
+
/*
|
|
69
|
+
* When SSL is on, whether the server certificate chain must validate. Users
|
|
70
|
+
* connecting to a DB with a self-signed cert set this to false.
|
|
71
|
+
*/
|
|
72
|
+
rejectUnauthorizedSsl: boolean;
|
|
73
|
+
// The read-only SQL query to run. A single statement is expected.
|
|
74
|
+
query: string;
|
|
75
|
+
connectionTimeoutInMs: number;
|
|
76
|
+
statementTimeoutInMs: number;
|
|
77
|
+
// Upper bound on rows read back from the DB (memory + payload guard).
|
|
78
|
+
maxRows: number;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export class MonitorStepSqlMonitorUtil {
|
|
82
|
+
public static getDefault(): MonitorStepSqlMonitor {
|
|
83
|
+
return {
|
|
84
|
+
databaseType: SqlDatabaseType.PostgreSQL,
|
|
85
|
+
host: "",
|
|
86
|
+
port: 5432,
|
|
87
|
+
databaseName: "",
|
|
88
|
+
username: "",
|
|
89
|
+
password: "",
|
|
90
|
+
useSsl: false,
|
|
91
|
+
rejectUnauthorizedSsl: true,
|
|
92
|
+
query: "",
|
|
93
|
+
connectionTimeoutInMs: DEFAULT_SQL_CONNECTION_TIMEOUT_IN_MS,
|
|
94
|
+
statementTimeoutInMs: DEFAULT_SQL_STATEMENT_TIMEOUT_IN_MS,
|
|
95
|
+
maxRows: DEFAULT_SQL_MAX_ROWS,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
public static fromJSON(json: JSONObject): MonitorStepSqlMonitor {
|
|
100
|
+
return {
|
|
101
|
+
databaseType:
|
|
102
|
+
(json["databaseType"] as SqlDatabaseType) || SqlDatabaseType.PostgreSQL,
|
|
103
|
+
host: (json["host"] as string) || "",
|
|
104
|
+
port: (json["port"] as number) || 5432,
|
|
105
|
+
databaseName: (json["databaseName"] as string) || "",
|
|
106
|
+
username: (json["username"] as string) || "",
|
|
107
|
+
password: (json["password"] as string) || "",
|
|
108
|
+
useSsl: Boolean(json["useSsl"]),
|
|
109
|
+
rejectUnauthorizedSsl:
|
|
110
|
+
json["rejectUnauthorizedSsl"] === undefined ||
|
|
111
|
+
json["rejectUnauthorizedSsl"] === null
|
|
112
|
+
? true
|
|
113
|
+
: Boolean(json["rejectUnauthorizedSsl"]),
|
|
114
|
+
query: (json["query"] as string) || "",
|
|
115
|
+
connectionTimeoutInMs: clampSqlConnectionTimeoutInMs(
|
|
116
|
+
json["connectionTimeoutInMs"] as number,
|
|
117
|
+
),
|
|
118
|
+
statementTimeoutInMs: clampSqlStatementTimeoutInMs(
|
|
119
|
+
json["statementTimeoutInMs"] as number,
|
|
120
|
+
),
|
|
121
|
+
maxRows: clampSqlMaxRows(json["maxRows"] as number),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
public static toJSON(monitor: MonitorStepSqlMonitor): JSONObject {
|
|
126
|
+
return {
|
|
127
|
+
databaseType: monitor.databaseType,
|
|
128
|
+
host: monitor.host,
|
|
129
|
+
port: monitor.port,
|
|
130
|
+
databaseName: monitor.databaseName,
|
|
131
|
+
username: monitor.username,
|
|
132
|
+
password: monitor.password,
|
|
133
|
+
useSsl: monitor.useSsl,
|
|
134
|
+
rejectUnauthorizedSsl: monitor.rejectUnauthorizedSsl,
|
|
135
|
+
query: monitor.query,
|
|
136
|
+
connectionTimeoutInMs: monitor.connectionTimeoutInMs,
|
|
137
|
+
statementTimeoutInMs: monitor.statementTimeoutInMs,
|
|
138
|
+
maxRows: monitor.maxRows,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -21,6 +21,9 @@ enum MonitorType {
|
|
|
21
21
|
Server = "Server",
|
|
22
22
|
SSLCertificate = "SSL Certificate",
|
|
23
23
|
|
|
24
|
+
// Database monitoring — runs a read-only SQL query on a schedule from a probe.
|
|
25
|
+
SQLQuery = "SQL Query",
|
|
26
|
+
|
|
24
27
|
// These two monitor types are same but we are keeping them separate for now - this is for marketing purposes
|
|
25
28
|
SyntheticMonitor = "Synthetic Monitor",
|
|
26
29
|
CustomJavaScriptCode = "Custom JavaScript Code",
|
|
@@ -87,6 +90,10 @@ export class MonitorTypeHelper {
|
|
|
87
90
|
label: "DNS Monitoring",
|
|
88
91
|
monitorTypes: [MonitorType.DNS, MonitorType.DNSSEC],
|
|
89
92
|
},
|
|
93
|
+
{
|
|
94
|
+
label: "Database Monitoring",
|
|
95
|
+
monitorTypes: [MonitorType.SQLQuery],
|
|
96
|
+
},
|
|
90
97
|
{
|
|
91
98
|
label: "Synthetic Monitoring",
|
|
92
99
|
monitorTypes: [
|
|
@@ -288,6 +295,13 @@ export class MonitorTypeHelper {
|
|
|
288
295
|
"This monitor type lets you monitor SSL certificates of any domain.",
|
|
289
296
|
icon: IconProp.ShieldCheck,
|
|
290
297
|
},
|
|
298
|
+
{
|
|
299
|
+
monitorType: MonitorType.SQLQuery,
|
|
300
|
+
title: "SQL Query",
|
|
301
|
+
description:
|
|
302
|
+
"This monitor type runs a read-only SQL query on a schedule against a database (PostgreSQL, MySQL, or Microsoft SQL Server) and alerts on the result — row count, a scalar value, execution time, or query errors. Requires a probe with network access to your database.",
|
|
303
|
+
icon: IconProp.Database,
|
|
304
|
+
},
|
|
291
305
|
{
|
|
292
306
|
monitorType: MonitorType.SyntheticMonitor,
|
|
293
307
|
title: "Synthetic Monitor",
|
|
@@ -420,6 +434,7 @@ export class MonitorTypeHelper {
|
|
|
420
434
|
monitorType === MonitorType.DNS ||
|
|
421
435
|
monitorType === MonitorType.DNSSEC ||
|
|
422
436
|
monitorType === MonitorType.Domain ||
|
|
437
|
+
monitorType === MonitorType.SQLQuery ||
|
|
423
438
|
monitorType === MonitorType.ExternalStatusPage;
|
|
424
439
|
return isProbeableMonitor;
|
|
425
440
|
}
|
|
@@ -446,6 +461,7 @@ export class MonitorTypeHelper {
|
|
|
446
461
|
MonitorType.DNS,
|
|
447
462
|
MonitorType.DNSSEC,
|
|
448
463
|
MonitorType.Domain,
|
|
464
|
+
MonitorType.SQLQuery,
|
|
449
465
|
MonitorType.ExternalStatusPage,
|
|
450
466
|
MonitorType.Kubernetes,
|
|
451
467
|
MonitorType.Docker,
|
|
@@ -491,6 +507,7 @@ export class MonitorTypeHelper {
|
|
|
491
507
|
monitorType === MonitorType.DNS ||
|
|
492
508
|
monitorType === MonitorType.DNSSEC ||
|
|
493
509
|
monitorType === MonitorType.Domain ||
|
|
510
|
+
monitorType === MonitorType.SQLQuery ||
|
|
494
511
|
monitorType === MonitorType.ExternalStatusPage
|
|
495
512
|
) {
|
|
496
513
|
return true;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Database engines a SQL Query monitor can target. Only the engines listed
|
|
3
|
+
* in SqlDatabaseTypeUtil.getSupportedDatabaseTypes() are executable today —
|
|
4
|
+
* any engine added to the enum but not returned there is reserved so the type
|
|
5
|
+
* system and stored config are forward compatible when its probe executor
|
|
6
|
+
* ships.
|
|
7
|
+
*/
|
|
8
|
+
enum SqlDatabaseType {
|
|
9
|
+
PostgreSQL = "PostgreSQL",
|
|
10
|
+
MySQL = "MySQL",
|
|
11
|
+
MicrosoftSqlServer = "Microsoft SQL Server",
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default SqlDatabaseType;
|
|
15
|
+
|
|
16
|
+
export class SqlDatabaseTypeUtil {
|
|
17
|
+
/**
|
|
18
|
+
* Engines the probe can actually connect to and query today. Each has a
|
|
19
|
+
* vetted, pure-JS driver in the probe (`pg`, `mysql2`, `mssql`) and a
|
|
20
|
+
* read-only executor. An engine added to the enum but omitted here is not
|
|
21
|
+
* offered in the dashboard and is rejected by the probe, so we never surface
|
|
22
|
+
* a database type the probe cannot run.
|
|
23
|
+
*/
|
|
24
|
+
public static getSupportedDatabaseTypes(): Array<SqlDatabaseType> {
|
|
25
|
+
return [
|
|
26
|
+
SqlDatabaseType.PostgreSQL,
|
|
27
|
+
SqlDatabaseType.MySQL,
|
|
28
|
+
SqlDatabaseType.MicrosoftSqlServer,
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public static isSupported(databaseType: SqlDatabaseType): boolean {
|
|
33
|
+
return this.getSupportedDatabaseTypes().includes(databaseType);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Default port for a database engine, used to seed the config form. */
|
|
37
|
+
public static getDefaultPort(databaseType: SqlDatabaseType): number {
|
|
38
|
+
switch (databaseType) {
|
|
39
|
+
case SqlDatabaseType.PostgreSQL:
|
|
40
|
+
return 5432;
|
|
41
|
+
case SqlDatabaseType.MySQL:
|
|
42
|
+
return 3306;
|
|
43
|
+
case SqlDatabaseType.MicrosoftSqlServer:
|
|
44
|
+
return 1433;
|
|
45
|
+
default:
|
|
46
|
+
return 5432;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { JSONObject } from "../../JSON";
|
|
2
|
+
import ProbeAttempt from "../../Probe/ProbeAttempt";
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
* The compact projection of a SQL query result that a probe reports back to
|
|
6
|
+
* OneUptime. Full result sets never leave the probe / the customer network:
|
|
7
|
+
* only a row count, the first cell (scalar), and the first row are returned.
|
|
8
|
+
* This bounds payload size and avoids replicating customer data into
|
|
9
|
+
* OneUptime storage.
|
|
10
|
+
*/
|
|
11
|
+
export default interface SqlMonitorResponse {
|
|
12
|
+
isOnline: boolean;
|
|
13
|
+
responseTimeInMs: number;
|
|
14
|
+
failureCause: string;
|
|
15
|
+
// Number of rows the query returned (capped at maxRows). Null on error.
|
|
16
|
+
rowCount: number | null;
|
|
17
|
+
// First column of the first row — the natural value for COUNT(*)-style checks.
|
|
18
|
+
scalarValue: string | number | boolean | null;
|
|
19
|
+
// First row as a name→value map (values coerced to primitives). Null on error.
|
|
20
|
+
firstRow: JSONObject | null;
|
|
21
|
+
// True when the result was truncated because it exceeded maxRows.
|
|
22
|
+
isRowsCapped?: boolean | undefined;
|
|
23
|
+
// Sanitized DB/driver error message (never contains credentials/DSN). Null on success.
|
|
24
|
+
queryError: string | null;
|
|
25
|
+
isTimeout?: boolean | undefined;
|
|
26
|
+
probeAttempts?: Array<ProbeAttempt> | undefined;
|
|
27
|
+
totalAttempts?: number | undefined;
|
|
28
|
+
}
|
package/Types/Permission.ts
CHANGED
|
@@ -251,16 +251,17 @@ enum Permission {
|
|
|
251
251
|
EditProjectAIAgent = "EditProjectAIAgent",
|
|
252
252
|
ReadProjectAIAgent = "ReadProjectAIAgent",
|
|
253
253
|
|
|
254
|
+
/*
|
|
255
|
+
* The AIAgentTask model these were named for is removed (fix runs live
|
|
256
|
+
* on AIRun, which is server-written only); the permissions remain
|
|
257
|
+
* because they govern AIAgentTaskPullRequest — the record of pull
|
|
258
|
+
* requests AI fix runs opened.
|
|
259
|
+
*/
|
|
254
260
|
CreateProjectAIAgentTask = "CreateProjectAIAgentTask",
|
|
255
261
|
DeleteProjectAIAgentTask = "DeleteProjectAIAgentTask",
|
|
256
262
|
EditProjectAIAgentTask = "EditProjectAIAgentTask",
|
|
257
263
|
ReadProjectAIAgentTask = "ReadProjectAIAgentTask",
|
|
258
264
|
|
|
259
|
-
CreateProjectAIAgentTaskTelemetryException = "CreateProjectAIAgentTaskTelemetryException",
|
|
260
|
-
DeleteProjectAIAgentTaskTelemetryException = "DeleteProjectAIAgentTaskTelemetryException",
|
|
261
|
-
EditProjectAIAgentTaskTelemetryException = "EditProjectAIAgentTaskTelemetryException",
|
|
262
|
-
ReadProjectAIAgentTaskTelemetryException = "ReadProjectAIAgentTaskTelemetryException",
|
|
263
|
-
|
|
264
265
|
CreateProjectLlm = "CreateProjectLlm",
|
|
265
266
|
DeleteProjectLlm = "DeleteProjectLlm",
|
|
266
267
|
EditProjectLlm = "EditProjectLlm",
|
|
@@ -1384,11 +1385,6 @@ enum Permission {
|
|
|
1384
1385
|
EditServiceTelemetryService = "EditServiceTelemetryService",
|
|
1385
1386
|
ReadServiceTelemetryService = "ReadServiceTelemetryService",
|
|
1386
1387
|
|
|
1387
|
-
CreateServiceCodeRepository = "CreateServiceCodeRepository",
|
|
1388
|
-
DeleteServiceCodeRepository = "DeleteServiceCodeRepository",
|
|
1389
|
-
EditServiceCodeRepository = "EditServiceCodeRepository",
|
|
1390
|
-
ReadServiceCodeRepository = "ReadServiceCodeRepository",
|
|
1391
|
-
|
|
1392
1388
|
// Code Repository
|
|
1393
1389
|
CreateCodeRepository = "CreateCodeRepository",
|
|
1394
1390
|
DeleteCodeRepository = "DeleteCodeRepository",
|
|
@@ -6046,7 +6042,7 @@ export class PermissionHelper {
|
|
|
6046
6042
|
permission: Permission.CreateProjectAIAgentTask,
|
|
6047
6043
|
title: "Create AI Agent Task",
|
|
6048
6044
|
description:
|
|
6049
|
-
"This permission can create AI agent
|
|
6045
|
+
"This permission can create AI agent fix task pull request records for this project.",
|
|
6050
6046
|
isAssignableToTenant: true,
|
|
6051
6047
|
isAccessControlPermission: false,
|
|
6052
6048
|
isRolePermission: false,
|
|
@@ -6056,7 +6052,7 @@ export class PermissionHelper {
|
|
|
6056
6052
|
permission: Permission.DeleteProjectAIAgentTask,
|
|
6057
6053
|
title: "Delete AI Agent Task",
|
|
6058
6054
|
description:
|
|
6059
|
-
"This permission can delete AI agent
|
|
6055
|
+
"This permission can delete AI agent fix task pull request records of this project.",
|
|
6060
6056
|
isAssignableToTenant: true,
|
|
6061
6057
|
isAccessControlPermission: true,
|
|
6062
6058
|
isRolePermission: false,
|
|
@@ -6065,7 +6061,8 @@ export class PermissionHelper {
|
|
|
6065
6061
|
{
|
|
6066
6062
|
permission: Permission.EditProjectAIAgentTask,
|
|
6067
6063
|
title: "Edit AI Agent Task",
|
|
6068
|
-
description:
|
|
6064
|
+
description:
|
|
6065
|
+
"This permission can edit AI agent fix task pull request records of this project.",
|
|
6069
6066
|
isAssignableToTenant: true,
|
|
6070
6067
|
isAccessControlPermission: true,
|
|
6071
6068
|
isRolePermission: false,
|
|
@@ -6074,48 +6071,8 @@ export class PermissionHelper {
|
|
|
6074
6071
|
{
|
|
6075
6072
|
permission: Permission.ReadProjectAIAgentTask,
|
|
6076
6073
|
title: "Read AI Agent Task",
|
|
6077
|
-
description: "This permission can read AI agent tasks of this project.",
|
|
6078
|
-
isAssignableToTenant: true,
|
|
6079
|
-
isAccessControlPermission: true,
|
|
6080
|
-
isRolePermission: false,
|
|
6081
|
-
group: PermissionGroup.AIAgent,
|
|
6082
|
-
},
|
|
6083
|
-
|
|
6084
|
-
{
|
|
6085
|
-
permission: Permission.CreateProjectAIAgentTaskTelemetryException,
|
|
6086
|
-
title: "Create AI Agent Task Exception Link",
|
|
6087
|
-
description:
|
|
6088
|
-
"This permission can create links between AI agent tasks and telemetry exceptions.",
|
|
6089
|
-
isAssignableToTenant: true,
|
|
6090
|
-
isAccessControlPermission: false,
|
|
6091
|
-
isRolePermission: false,
|
|
6092
|
-
group: PermissionGroup.AIAgent,
|
|
6093
|
-
},
|
|
6094
|
-
{
|
|
6095
|
-
permission: Permission.DeleteProjectAIAgentTaskTelemetryException,
|
|
6096
|
-
title: "Delete AI Agent Task Exception Link",
|
|
6097
|
-
description:
|
|
6098
|
-
"This permission can delete links between AI agent tasks and telemetry exceptions.",
|
|
6099
|
-
isAssignableToTenant: true,
|
|
6100
|
-
isAccessControlPermission: true,
|
|
6101
|
-
isRolePermission: false,
|
|
6102
|
-
group: PermissionGroup.AIAgent,
|
|
6103
|
-
},
|
|
6104
|
-
{
|
|
6105
|
-
permission: Permission.EditProjectAIAgentTaskTelemetryException,
|
|
6106
|
-
title: "Edit AI Agent Task Exception Link",
|
|
6107
|
-
description:
|
|
6108
|
-
"This permission can edit links between AI agent tasks and telemetry exceptions.",
|
|
6109
|
-
isAssignableToTenant: true,
|
|
6110
|
-
isAccessControlPermission: true,
|
|
6111
|
-
isRolePermission: false,
|
|
6112
|
-
group: PermissionGroup.AIAgent,
|
|
6113
|
-
},
|
|
6114
|
-
{
|
|
6115
|
-
permission: Permission.ReadProjectAIAgentTaskTelemetryException,
|
|
6116
|
-
title: "Read AI Agent Task Exception Link",
|
|
6117
6074
|
description:
|
|
6118
|
-
"This permission can read
|
|
6075
|
+
"This permission can read AI agent fix tasks and their pull requests of this project.",
|
|
6119
6076
|
isAssignableToTenant: true,
|
|
6120
6077
|
isAccessControlPermission: true,
|
|
6121
6078
|
isRolePermission: false,
|
|
@@ -9316,47 +9273,6 @@ export class PermissionHelper {
|
|
|
9316
9273
|
group: PermissionGroup.ServiceCatalog,
|
|
9317
9274
|
},
|
|
9318
9275
|
|
|
9319
|
-
{
|
|
9320
|
-
permission: Permission.CreateServiceCodeRepository,
|
|
9321
|
-
title: "Create Service Code Repository",
|
|
9322
|
-
description:
|
|
9323
|
-
"This permission can create Service Code Repository in this project.",
|
|
9324
|
-
isAssignableToTenant: true,
|
|
9325
|
-
isAccessControlPermission: false,
|
|
9326
|
-
isRolePermission: false,
|
|
9327
|
-
group: PermissionGroup.ServiceCatalog,
|
|
9328
|
-
},
|
|
9329
|
-
{
|
|
9330
|
-
permission: Permission.DeleteServiceCodeRepository,
|
|
9331
|
-
title: "Delete Service Code Repository",
|
|
9332
|
-
description:
|
|
9333
|
-
"This permission can delete Service Code Repository of this project.",
|
|
9334
|
-
isAssignableToTenant: true,
|
|
9335
|
-
isAccessControlPermission: false,
|
|
9336
|
-
isRolePermission: false,
|
|
9337
|
-
group: PermissionGroup.ServiceCatalog,
|
|
9338
|
-
},
|
|
9339
|
-
{
|
|
9340
|
-
permission: Permission.EditServiceCodeRepository,
|
|
9341
|
-
title: "Edit Service Code Repository",
|
|
9342
|
-
description:
|
|
9343
|
-
"This permission can edit Service Code Repository of this project.",
|
|
9344
|
-
isAssignableToTenant: true,
|
|
9345
|
-
isAccessControlPermission: false,
|
|
9346
|
-
isRolePermission: false,
|
|
9347
|
-
group: PermissionGroup.ServiceCatalog,
|
|
9348
|
-
},
|
|
9349
|
-
{
|
|
9350
|
-
permission: Permission.ReadServiceCodeRepository,
|
|
9351
|
-
title: "Read Service Code Repository",
|
|
9352
|
-
description:
|
|
9353
|
-
"This permission can read Service Code Repository of this project.",
|
|
9354
|
-
isAssignableToTenant: true,
|
|
9355
|
-
isAccessControlPermission: false,
|
|
9356
|
-
isRolePermission: false,
|
|
9357
|
-
group: PermissionGroup.ServiceCatalog,
|
|
9358
|
-
},
|
|
9359
|
-
|
|
9360
9276
|
// Code Repository Permissions
|
|
9361
9277
|
{
|
|
9362
9278
|
permission: Permission.CreateCodeRepository,
|
|
@@ -12,6 +12,7 @@ import DnsMonitorResponse from "../Monitor/DnsMonitor/DnsMonitorResponse";
|
|
|
12
12
|
import PingMonitorResponse from "../Monitor/PingMonitor/PingMonitorResponse";
|
|
13
13
|
import DomainMonitorResponse from "../Monitor/DomainMonitor/DomainMonitorResponse";
|
|
14
14
|
import DnssecMonitorResponse from "../Monitor/DnssecMonitor/DnssecMonitorResponse";
|
|
15
|
+
import SqlMonitorResponse from "../Monitor/SqlMonitor/SqlMonitorResponse";
|
|
15
16
|
import ExternalStatusPageMonitorResponse from "../Monitor/ExternalStatusPageMonitor/ExternalStatusPageMonitorResponse";
|
|
16
17
|
import HttpPhaseTimings from "../Monitor/HttpPhaseTimings";
|
|
17
18
|
import MonitorEvaluationSummary from "../Monitor/MonitorEvaluationSummary";
|
|
@@ -60,6 +61,7 @@ export default interface ProbeMonitorResponse {
|
|
|
60
61
|
dnsResponse?: DnsMonitorResponse | undefined;
|
|
61
62
|
domainResponse?: DomainMonitorResponse | undefined;
|
|
62
63
|
dnssecResponse?: DnssecMonitorResponse | undefined;
|
|
64
|
+
sqlQueryMonitorResponse?: SqlMonitorResponse | undefined;
|
|
63
65
|
externalStatusPageResponse?: ExternalStatusPageMonitorResponse | undefined;
|
|
64
66
|
monitoredAt: Date;
|
|
65
67
|
isTimeout?: boolean | undefined;
|