@oneuptime/common 12.0.8 → 12.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +1 -1
- package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +1 -1
- package/Models/DatabaseModels/AIConversation.ts +32 -0
- package/Models/DatabaseModels/AIConversationMessage.ts +41 -0
- package/Models/DatabaseModels/AlertEpisodeMember.ts +27 -0
- package/Models/DatabaseModels/IncidentEpisodeMember.ts +28 -0
- package/Models/DatabaseModels/Index.ts +12 -4
- package/Models/DatabaseModels/{TelemetryEntity.ts → InventoryItem.ts} +139 -9
- package/Models/DatabaseModels/InventoryItemCustomField.ts +434 -0
- package/Models/DatabaseModels/{TelemetryEntityRelationship.ts → InventoryItemRelationship.ts} +8 -8
- package/Models/DatabaseModels/NetworkDevice.ts +141 -0
- package/Models/DatabaseModels/NetworkDeviceLink.ts +699 -0
- package/Models/DatabaseModels/NetworkDeviceLinkRule.ts +467 -0
- package/Models/DatabaseModels/NetworkTopologySuppression.ts +429 -0
- package/Models/DatabaseModels/OnCallDutyPolicyFeed.ts +9 -0
- package/Models/DatabaseModels/Project.ts +78 -0
- package/Models/DatabaseModels/UserCall.ts +42 -0
- package/Models/DatabaseModels/UserEmail.ts +44 -0
- package/Models/DatabaseModels/UserNotificationRule.ts +425 -55
- package/Models/DatabaseModels/UserOnCallLogTimeline.ts +24 -2
- package/Models/DatabaseModels/UserPush.ts +49 -0
- package/Models/DatabaseModels/UserSMS.ts +43 -0
- package/Models/DatabaseModels/UserTelegram.ts +59 -0
- package/Models/DatabaseModels/UserWebhook.ts +52 -0
- package/Models/DatabaseModels/UserWhatsApp.ts +41 -0
- package/Models/DatabaseModels/WorkflowVariable.ts +12 -0
- package/Server/API/AIChatAPI.ts +315 -1
- package/Server/API/DashboardAPI.ts +217 -1
- package/Server/API/OnCallReadinessAPI.ts +841 -0
- package/Server/API/TeamComplianceAPI.ts +69 -17
- package/Server/API/TelemetryAPI.ts +220 -12
- package/Server/EnvironmentConfig.ts +52 -0
- package/Server/Infrastructure/Postgres/DataSourceOptions.ts +22 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.ts +4 -4
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.ts +5 -5
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786625176831-AddMonitoringMethodToNetworkDevice.ts +35 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786634985763-AddNetworkDeviceLink.ts +82 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786639512056-AddNetworkDeviceLinkRule.ts +91 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786639972982-AddNetworkTopologySuppression.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786800000000-RenameTelemetryEntityToInventoryItem.ts +255 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786900000000-AddInventoryItemArchiveAndCustomFields.ts +107 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787000000000-AddOnCallNotificationFallbackColumns.ts +90 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787100000000-AddAIConversationPageContext.ts +39 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787200000000-AddAIChatMessageFeedback.ts +33 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787300000000-AddEpisodeMemberNotifyIndexes.ts +59 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
- package/Server/Infrastructure/Queue.ts +78 -13
- package/Server/Middleware/PublicDashboardRateLimit.ts +593 -0
- package/Server/Services/AIService.ts +7 -0
- package/Server/Services/AlertEpisodeStateTimelineService.ts +29 -0
- package/Server/Services/AlertSeverityService.ts +63 -0
- package/Server/Services/DashboardService.ts +9 -10
- package/Server/Services/DatabaseService.ts +32 -2
- package/Server/Services/IncidentEpisodeStateTimelineService.ts +29 -0
- package/Server/Services/IncidentSeverityService.ts +76 -0
- package/Server/Services/Index.ts +12 -4
- package/Server/Services/InventoryItemCustomFieldService.ts +9 -0
- package/Server/Services/{TelemetryEntityRelationshipService.ts → InventoryItemRelationshipService.ts} +4 -4
- package/Server/Services/{TelemetryEntityService.ts → InventoryItemService.ts} +89 -20
- package/Server/Services/LogAggregationService.ts +45 -8
- package/Server/Services/MetricAggregationService.ts +121 -0
- package/Server/Services/MetricService.ts +7 -7
- package/Server/Services/NetworkDeviceLinkRuleService.ts +10 -0
- package/Server/Services/NetworkDeviceLinkService.ts +84 -0
- package/Server/Services/NetworkDeviceService.ts +140 -0
- package/Server/Services/NetworkSiteService.ts +77 -25
- package/Server/Services/NetworkTopologySuppressionService.ts +84 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +41 -29
- package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +8 -0
- package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +62 -13
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +61 -1
- package/Server/Services/OnCallNotificationAlertingService.ts +742 -0
- package/Server/Services/OnCallReadinessService.ts +2803 -0
- package/Server/Services/OnCallSetupReminderService.ts +955 -0
- package/Server/Services/ProfileAggregationService.ts +123 -0
- package/Server/Services/StatusPageService.ts +9 -10
- package/Server/Services/TeamComplianceService.ts +429 -252
- package/Server/Services/UserCallService.ts +26 -1
- package/Server/Services/UserEmailService.ts +26 -1
- package/Server/Services/UserNotificationRuleAdminService.ts +1183 -0
- package/Server/Services/UserNotificationRuleService.ts +3812 -333
- package/Server/Services/UserOnCallLogService.ts +561 -48
- package/Server/Services/UserPushService.ts +29 -0
- package/Server/Services/UserService.ts +11 -0
- package/Server/Services/UserSmsService.ts +26 -1
- package/Server/Services/UserTelegramService.ts +24 -1
- package/Server/Services/UserWebhookService.ts +28 -1
- package/Server/Services/UserWhatsAppService.ts +24 -1
- package/Server/Types/Database/Permissions/BasePermission.ts +19 -0
- package/Server/Types/Database/Permissions/CreatePermission.ts +164 -0
- package/Server/Types/Database/Permissions/OwnerOnlyColumnPermission.ts +340 -0
- package/Server/Types/Database/Permissions/QueryPermission.ts +48 -0
- package/Server/Types/Database/Permissions/TenantPermission.ts +8 -1
- package/Server/Types/Workflow/Components/API/Delete.ts +1 -1
- package/Server/Types/Workflow/Components/API/Get.ts +1 -1
- package/Server/Types/Workflow/Components/API/Patch.ts +1 -1
- package/Server/Types/Workflow/Components/API/Post.ts +1 -1
- package/Server/Types/Workflow/Components/API/Put.ts +1 -1
- package/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.ts +29 -5
- package/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.ts +18 -10
- package/Server/Types/Workflow/Components/BaseModel/ModelArguments.ts +55 -0
- package/Server/Types/Workflow/Components/Conditions/IfElse.ts +3 -17
- package/Server/Types/Workflow/Components/Email.ts +25 -7
- package/Server/Types/Workflow/Components/JavaScript.ts +10 -3
- package/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.ts +1 -1
- package/Server/Utils/AI/Chat/ChatAgentRunner.ts +643 -48
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +32 -3
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +20 -6
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +7 -0
- package/Server/Utils/AI/Toolbox/AIActionTools.ts +2 -2
- package/Server/Utils/AI/Toolbox/AIMetaTools.ts +863 -0
- package/Server/Utils/AI/Toolbox/AlertTools.ts +177 -15
- package/Server/Utils/AI/Toolbox/IncidentTools.ts +191 -10
- package/Server/Utils/AI/Toolbox/Index.ts +48 -0
- package/Server/Utils/AI/Toolbox/MonitorTools.ts +298 -11
- package/Server/Utils/AI/Toolbox/NoteWriteTools.ts +295 -0
- package/Server/Utils/AI/Toolbox/OnCallTools.ts +1246 -0
- package/Server/Utils/AI/Toolbox/RunbookTools.ts +424 -0
- package/Server/Utils/AI/Toolbox/SloTools.ts +456 -0
- package/Server/Utils/AI/Toolbox/StatusPageTools.ts +559 -0
- package/Server/Utils/AI/Toolbox/TeamTools.ts +327 -0
- package/Server/Utils/AI/Toolbox/TimelineTools.ts +615 -0
- package/Server/Utils/AI/Toolbox/WorkflowProbeTools.ts +664 -0
- package/Server/Utils/ClientIp.ts +221 -0
- package/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.ts +47 -0
- package/Server/Utils/Dashboard/PublicDashboardSloHistoryPolicy.ts +163 -0
- package/Server/Utils/Dashboard/PublicDashboardSloWidget.ts +147 -0
- package/Server/Utils/Express.ts +12 -17
- package/Server/Utils/LLM/LLMService.ts +85 -8
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +204 -10
- package/Server/Utils/SSRFProtection.ts +98 -23
- package/Server/Utils/StartServer.ts +12 -3
- package/Server/Utils/Telemetry/EntityRegistry.ts +205 -18
- package/Server/Utils/Telemetry/InventoryEntityRegistry.ts +25 -25
- package/Server/Utils/Telemetry/TelemetryEntity.ts +160 -52
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +7 -3
- package/Tests/App/Dashboard/AdminNotificationRulesPage.test.tsx +2146 -0
- package/Tests/App/Dashboard/CreateWorkflowModal.test.tsx +561 -0
- package/Tests/App/Dashboard/EscalationRuleReadiness.test.tsx +2470 -0
- package/Tests/App/Dashboard/OnCallPreventionGuards.test.tsx +1897 -0
- package/Tests/App/Dashboard/OnCallReadinessSurfaces.test.tsx +3606 -0
- package/Tests/App/Dashboard/OnCallRulesDeleteGuard.test.tsx +784 -0
- package/Tests/App/Dashboard/OnCallRulesTable.test.tsx +1119 -0
- package/Tests/App/Dashboard/SloWidgetFetching.test.tsx +531 -0
- package/Tests/App/Dashboard/UserSettingsSetupChecklistModel.test.ts +1312 -0
- package/Tests/App/Dashboard/UserSettingsSetupChecklistPage.test.tsx +1390 -0
- package/Tests/Models/InventoryItemModel.test.ts +174 -0
- package/Tests/Models/InventoryItemNaming.test.ts +302 -0
- package/Tests/Server/API/AIChatCancelAndFeedback.test.ts +437 -0
- package/Tests/Server/API/DashboardPublicRateLimit.test.ts +659 -0
- package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +18 -0
- package/Tests/Server/API/DashboardPublicSloAPI.test.ts +880 -0
- package/Tests/Server/API/Helpers.ts +24 -15
- package/Tests/Server/API/OnCallReadinessAPI.test.ts +2680 -0
- package/Tests/Server/API/OnCallSetupReminderAPI.test.ts +915 -0
- package/Tests/Server/Infrastructure/Postgres/EpisodeMemberNotifyIndexesMigration.test.ts +533 -0
- package/Tests/Server/Infrastructure/Postgres/InventoryItemArchiveMigration.test.ts +213 -0
- package/Tests/Server/Infrastructure/Postgres/RenameInventoryItemMigration.test.ts +432 -0
- package/Tests/Server/Infrastructure/Queue.test.ts +293 -0
- package/Tests/Server/Middleware/PublicDashboardRateLimit.test.ts +1645 -0
- package/Tests/Server/Services/AdminRuleEditGuards.test.ts +2848 -0
- package/Tests/Server/Services/DeliverNotificationForRuleExtraction.test.ts +1393 -0
- package/Tests/Server/Services/EpisodeRuleSeverityRepair.test.ts +1802 -0
- package/Tests/Server/Services/EpisodeStateTimelineNote.test.ts +304 -0
- package/Tests/Server/Services/InventoryItemDisplayName.test.ts +339 -0
- package/Tests/Server/Services/{TelemetryEntityManualCreate.test.ts → InventoryItemManualCreate.test.ts} +27 -27
- package/Tests/Server/Services/IpAllowlistSpoofing.test.ts +450 -0
- package/Tests/Server/Services/LogAggregationService.test.ts +235 -1
- package/Tests/Server/Services/MetricAggregationService.test.ts +231 -0
- package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +80 -29
- package/Tests/Server/Services/MetricServiceAggregate.test.ts +30 -30
- package/Tests/Server/Services/NetworkSiteService.test.ts +18 -3
- package/Tests/Server/Services/NotificationChannelEventCoverage.test.ts +1728 -0
- package/Tests/Server/Services/NotificationDeletionImpact.test.ts +2402 -0
- package/Tests/Server/Services/OnCallDutyPolicyExecutionLogTimelineGapFeed.test.ts +394 -0
- package/Tests/Server/Services/OnCallNotificationFallback.test.ts +1744 -0
- package/Tests/Server/Services/OnCallReadinessService.test.ts +4295 -0
- package/Tests/Server/Services/OnCallSetupReminder.test.ts +1272 -0
- package/Tests/Server/Services/OnCallWeeklyReadinessDigest.test.ts +1021 -0
- package/Tests/Server/Services/ProfileAggregationService.test.ts +296 -0
- package/Tests/Server/Services/SeverityCreationRuleBackfill.test.ts +1536 -0
- package/Tests/Server/Services/SeverityRuleBackfill.test.ts +1818 -0
- package/Tests/Server/Services/TeamComplianceServiceBehaviour.test.ts +1845 -0
- package/Tests/Server/Services/UserNotificationRuleAdminGuards.test.ts +1394 -0
- package/Tests/Server/Services/UserNotificationRuleDefaultCreation.test.ts +1166 -0
- package/Tests/Server/Services/UserNotificationRuleExecuteItem.test.ts +1468 -0
- package/Tests/Server/Services/UserOnCallLogNoNotificationRules.test.ts +1457 -0
- package/Tests/Server/Types/Database/Permissions/AdminNotificationRuleAccess.test.ts +1546 -0
- package/Tests/Server/Types/Database/Permissions/CreateOwnershipScoping.test.ts +529 -0
- package/Tests/Server/Types/Database/Permissions/OwnerOnlyColumns.test.ts +1219 -0
- package/Tests/Server/Types/Database/Permissions/UserNotificationRuleScoping.test.ts +1089 -0
- package/Tests/Server/Types/Workflow/Components/ApiComponentErrorPort.test.ts +2 -1
- package/Tests/Server/Types/Workflow/Components/BaseModelDatabaseComponents.test.ts +190 -0
- package/Tests/Server/Types/Workflow/Components/ChatWebhookComponents.test.ts +44 -14
- package/Tests/Server/Types/Workflow/Components/Email.test.ts +151 -0
- package/Tests/Server/Types/Workflow/Components/IfElse.test.ts +98 -0
- package/Tests/Server/Types/Workflow/Components/JavaScript.test.ts +51 -0
- package/Tests/Server/Utils/AI/AIMetaTools.test.ts +586 -0
- package/Tests/Server/Utils/AI/AlertMonitorFilters.test.ts +582 -0
- package/Tests/Server/Utils/AI/ChatAgentRunner.test.ts +726 -0
- package/Tests/Server/Utils/AI/IncidentToolsFilters.test.ts +315 -0
- package/Tests/Server/Utils/AI/LLMServiceStopReason.test.ts +314 -0
- package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +26 -3
- package/Tests/Server/Utils/AI/NoteWriteTools.test.ts +268 -0
- package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +169 -0
- package/Tests/Server/Utils/AI/OnCallTools.test.ts +664 -0
- package/Tests/Server/Utils/AI/RunbookTools.test.ts +325 -0
- package/Tests/Server/Utils/AI/SloTools.test.ts +306 -0
- package/Tests/Server/Utils/AI/StatusPageTools.test.ts +391 -0
- package/Tests/Server/Utils/AI/TeamTools.test.ts +257 -0
- package/Tests/Server/Utils/AI/TimelineTools.test.ts +472 -0
- package/Tests/Server/Utils/AI/WorkflowProbeTools.test.ts +428 -0
- package/Tests/Server/Utils/ClientIp.test.ts +438 -0
- package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +171 -0
- package/Tests/Server/Utils/Dashboard/PublicDashboardSloHistoryPolicy.test.ts +383 -0
- package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +23 -25
- package/Tests/Server/Utils/MicrosoftTeamsWebhookUrlValidation.test.ts +6 -0
- package/Tests/Server/Utils/Monitor/Criteria/DnssecMonitorCriteria.test.ts +307 -0
- package/Tests/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.test.ts +468 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorTelemetryDeepLinks.test.ts +460 -0
- package/Tests/Server/Utils/ResponseRateLimitStatusCodes.test.ts +137 -0
- package/Tests/Server/Utils/SSRFProtectionBypasses.test.ts +40 -8
- package/Tests/Server/Utils/SSRFProtectionUserInfo.test.ts +351 -0
- package/Tests/Server/Utils/Telemetry/EntityRegistryRetirement.test.ts +531 -0
- package/Tests/Server/Utils/Telemetry/InventoryEntityRegistry.test.ts +15 -15
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +356 -39
- package/Tests/Types/IP/IP.test.ts +263 -0
- package/Tests/Types/IP/IPWhitelist.test.ts +197 -0
- package/Tests/Types/IP/IPv6.test.ts +12 -1
- package/Tests/Types/Monitor/SnmpOid.test.ts +64 -0
- package/Tests/Types/NetworkDevice/NetworkDeviceMonitoringMethod.test.ts +110 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilMergeAudit.test.ts +106 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilMergeDifferential.test.ts +511 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleCoverageEndToEnd.test.ts +489 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleCoverageGapTolerance.test.ts +479 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleCoverageState.test.ts +822 -0
- package/Tests/Types/Telemetry/EntityTypeGroups.test.ts +6 -6
- package/Tests/Types/Workflow/BaseModelComponents.test.ts +429 -0
- package/Tests/Types/Workflow/Components/BaseModel.test.ts +225 -0
- package/Tests/Types/Workflow/IntegrationCredentialMetadata.test.ts +100 -0
- package/Tests/Types/Workflow/TemplateSyntax.test.ts +112 -0
- package/Tests/Types/Workflow/Templates.test.ts +916 -101
- package/Tests/UI/Components/ActiveFilterChipsOpenRoute.test.tsx +82 -0
- package/Tests/UI/Components/ComponentsModal.test.tsx +564 -7
- package/Tests/UI/Components/KeyboardShortcut.test.tsx +95 -0
- package/Tests/UI/Components/LogDetailsPanelCrossSignal.test.tsx +448 -0
- package/Tests/UI/Components/LogsTableCrossLinks.test.tsx +263 -0
- package/Tests/UI/Components/PendingProjectInvitations.test.tsx +913 -0
- package/Tests/UI/Components/SimpleLogViewer.test.tsx +228 -0
- package/Tests/UI/Components/TableRowSelectability.test.tsx +312 -0
- package/Tests/UI/Components/Workflow/GraphLint.test.ts +72 -0
- package/Tests/UI/Components/Workflow/GraphLintSummary.test.ts +755 -0
- package/Tests/UI/Components/Workflow/ModelColumnEditor.test.ts +242 -7
- package/Tests/UI/Components/Workflow/ModelColumnEditorServerContract.test.ts +15 -7
- package/Tests/UI/Components/Workflow/ModelSchema.test.ts +242 -28
- package/Tests/UI/Components/Workflow/RunStatusWatcher.test.ts +59 -1
- package/Tests/UI/Components/Workflow/StepTraceViewer.test.tsx +256 -0
- package/Tests/UI/Components/Workflow/UseRunWatch.test.tsx +665 -0
- package/Tests/UI/Components/Workflow/WorkflowIssuesModal.test.tsx +485 -0
- package/Tests/UI/Components/Workflow/WorkflowLogModal.test.tsx +478 -0
- package/Tests/UI/Components/Workflow/WorkflowStatusBar.test.tsx +379 -0
- package/Tests/UI/EsbuildConfig.test.ts +607 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +5 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +11 -4
- package/Tests/UI/Utils/ModelAPICreateMiscData.test.ts +94 -0
- package/Tests/UI/Utils/Platform.test.ts +147 -0
- package/Tests/UI/Utils/ProjectInvitationDisplay.test.ts +357 -0
- package/Tests/Utils/Monitor/NetworkDeviceLinkRuleUtil.test.ts +198 -0
- package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +487 -0
- package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +698 -0
- package/Tests/__mocks__/bullmq.js +55 -0
- package/Types/AI/AIChatMessageStatus.ts +8 -1
- package/Types/AI/AIChatTypes.ts +12 -0
- package/Types/Database/AccessControl/OwnerOnlyColumn.ts +88 -0
- package/Types/Exception/ExceptionCode.ts +2 -0
- package/Types/Exception/ServiceUnavailableException.ts +8 -0
- package/Types/Exception/TooManyRequestsException.ts +8 -0
- package/Types/IP/IP.ts +93 -47
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +49 -3
- package/Types/NetworkDevice/NetworkDeviceMonitoringMethod.ts +55 -0
- package/Types/OnCallDutyPolicy/Layer.ts +203 -149
- package/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.ts +13 -0
- package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +155 -10
- package/Types/Permission.ts +193 -0
- package/Types/Telemetry/EntityRelationshipType.ts +1 -1
- package/Types/Telemetry/EntitySource.ts +1 -1
- package/Types/Telemetry/EntityType.ts +1 -1
- package/Types/Telemetry/EntityTypeGroups.ts +1 -1
- package/Types/Workflow/Components/BaseModel.ts +75 -29
- package/Types/Workflow/Components/Discord.ts +1 -0
- package/Types/Workflow/Components/Email.ts +12 -3
- package/Types/Workflow/Components/JavaScript.ts +7 -0
- package/Types/Workflow/Components/MicrosoftTeams.ts +3 -2
- package/Types/Workflow/Components/Slack.ts +1 -0
- package/Types/Workflow/Components/Telegram.ts +1 -0
- package/Types/Workflow/TemplateSyntax.ts +44 -0
- package/Types/Workflow/Templates.ts +2097 -45
- package/UI/Components/Calendar/Calendar.css +43 -0
- package/UI/Components/Calendar/Calendar.tsx +8 -0
- package/UI/Components/Card/Card.tsx +2 -2
- package/UI/Components/Checkbox/Checkbox.tsx +16 -0
- package/UI/Components/Dictionary/Dictionary.tsx +48 -9
- package/UI/Components/FormModal/BasicFormModal.tsx +2 -1
- package/UI/Components/Header/HeaderIconDropdownButton.tsx +53 -3
- package/UI/Components/Input/Input.tsx +1 -0
- package/UI/Components/KeyboardShortcut/KeyboardKey.ts +185 -0
- package/UI/Components/KeyboardShortcut/KeyboardShortcut.tsx +87 -0
- package/UI/Components/LogsViewer/LogsViewer.tsx +28 -0
- package/UI/Components/LogsViewer/components/ActiveFilterChips.tsx +31 -0
- package/UI/Components/LogsViewer/components/KeyboardShortcutsHelp.tsx +18 -18
- package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +363 -14
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +11 -0
- package/UI/Components/LogsViewer/components/LogsTable.tsx +155 -12
- package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +29 -0
- package/UI/Components/LogsViewer/types.ts +23 -0
- package/UI/Components/Markdown.tsx/MarkdownEditor.tsx +9 -2
- package/UI/Components/Navbar/NavBarMenuModal.tsx +15 -30
- package/UI/Components/ProjectInvitations/PendingProjectInvitations.tsx +442 -0
- package/UI/Components/SimpleLogViewer/SimpleLogViewer.tsx +23 -1
- package/UI/Components/Table/Table.tsx +49 -16
- package/UI/Components/Table/TableBody.tsx +53 -28
- package/UI/Components/Table/TableHeader.tsx +13 -0
- package/UI/Components/Table/TableRow.tsx +58 -26
- package/UI/Components/Workflow/ArgumentsForm.tsx +155 -9
- package/UI/Components/Workflow/ComponentReturnValueViewer.tsx +26 -0
- package/UI/Components/Workflow/ComponentSettingsModal.tsx +10 -1
- package/UI/Components/Workflow/ComponentValuePickerModal.tsx +135 -7
- package/UI/Components/Workflow/ComponentsModal.tsx +116 -22
- package/UI/Components/Workflow/DocumentationViewer.tsx +59 -9
- package/UI/Components/Workflow/GraphLint.ts +42 -5
- package/UI/Components/Workflow/GraphLintSummary.ts +390 -0
- package/UI/Components/Workflow/ModelColumnEditor.tsx +154 -22
- package/UI/Components/Workflow/ModelSchema.ts +115 -33
- package/UI/Components/Workflow/RunStatusWatcher.ts +1 -1
- package/UI/Components/Workflow/StepTraceViewer.tsx +1 -1
- package/UI/Components/Workflow/UseRunWatch.ts +212 -0
- package/UI/Components/Workflow/VariableModal.tsx +6 -2
- package/UI/Components/Workflow/Workflow.tsx +49 -3
- package/UI/Components/Workflow/WorkflowIssuesModal.tsx +255 -0
- package/UI/Components/Workflow/WorkflowLogModal.tsx +128 -0
- package/UI/Components/Workflow/WorkflowStatusBar.tsx +224 -0
- package/UI/Utils/AIChatExport/ConversationMarkdown.ts +10 -0
- package/UI/Utils/ModelAPI/ModelAPI.ts +7 -1
- package/UI/Utils/Platform.ts +149 -0
- package/UI/Utils/ProjectInvitationDisplay.ts +118 -0
- package/UI/esbuild-config.js +22 -1
- package/Utils/Monitor/NetworkDeviceLinkRuleUtil.ts +187 -0
- package/Utils/Monitor/NetworkTopologyUtil.ts +888 -164
- package/Utils/Telemetry/CrossSignalScope.ts +502 -0
- package/Utils/Telemetry/EntityKey.ts +5 -5
- package/Utils/Telemetry/EntityRelationship.ts +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +1 -1
- package/build/dist/Models/DatabaseModels/AIConversation.js +32 -0
- package/build/dist/Models/DatabaseModels/AIConversation.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIConversationMessage.js +42 -0
- package/build/dist/Models/DatabaseModels/AIConversationMessage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js +28 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js +29 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +12 -4
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/{TelemetryEntity.js → InventoryItem.js} +167 -31
- package/build/dist/Models/DatabaseModels/InventoryItem.js.map +1 -0
- package/build/dist/Models/DatabaseModels/InventoryItemCustomField.js +454 -0
- package/build/dist/Models/DatabaseModels/InventoryItemCustomField.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{TelemetryEntityRelationship.js → InventoryItemRelationship.js} +27 -27
- package/build/dist/Models/DatabaseModels/InventoryItemRelationship.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +141 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceLink.js +719 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceLink.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceLinkRule.js +475 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceLinkRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkTopologySuppression.js +446 -0
- package/build/dist/Models/DatabaseModels/NetworkTopologySuppression.js.map +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyFeed.js +9 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +80 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserCall.js +46 -2
- package/build/dist/Models/DatabaseModels/UserCall.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserEmail.js +48 -2
- package/build/dist/Models/DatabaseModels/UserEmail.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js +424 -55
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +24 -2
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserPush.js +51 -1
- package/build/dist/Models/DatabaseModels/UserPush.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserSMS.js +47 -2
- package/build/dist/Models/DatabaseModels/UserSMS.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserTelegram.js +65 -3
- package/build/dist/Models/DatabaseModels/UserTelegram.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserWebhook.js +56 -2
- package/build/dist/Models/DatabaseModels/UserWebhook.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserWhatsApp.js +45 -2
- package/build/dist/Models/DatabaseModels/UserWhatsApp.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js +12 -0
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
- package/build/dist/Server/API/AIChatAPI.js +237 -1
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +165 -13
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/OnCallReadinessAPI.js +599 -0
- package/build/dist/Server/API/OnCallReadinessAPI.js.map +1 -0
- package/build/dist/Server/API/TeamComplianceAPI.js +68 -9
- package/build/dist/Server/API/TeamComplianceAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +129 -18
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +45 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js +4 -4
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786625176831-AddMonitoringMethodToNetworkDevice.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786625176831-AddMonitoringMethodToNetworkDevice.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786634985763-AddNetworkDeviceLink.js +39 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786634985763-AddNetworkDeviceLink.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786639512056-AddNetworkDeviceLinkRule.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786639512056-AddNetworkDeviceLinkRule.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786639972982-AddNetworkTopologySuppression.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786639972982-AddNetworkTopologySuppression.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786800000000-RenameTelemetryEntityToInventoryItem.js +150 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786800000000-RenameTelemetryEntityToInventoryItem.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786900000000-AddInventoryItemArchiveAndCustomFields.js +57 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786900000000-AddInventoryItemArchiveAndCustomFields.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787000000000-AddOnCallNotificationFallbackColumns.js +69 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787000000000-AddOnCallNotificationFallbackColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787100000000-AddAIConversationPageContext.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787100000000-AddAIConversationPageContext.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787200000000-AddAIChatMessageFeedback.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787200000000-AddAIChatMessageFeedback.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787300000000-AddEpisodeMemberNotifyIndexes.js +48 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787300000000-AddEpisodeMemberNotifyIndexes.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Queue.js +72 -13
- package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
- package/build/dist/Server/Middleware/PublicDashboardRateLimit.js +399 -0
- package/build/dist/Server/Middleware/PublicDashboardRateLimit.js.map +1 -0
- package/build/dist/Server/Services/AIService.js +1 -0
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js +24 -3
- package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/AlertSeverityService.js +54 -0
- package/build/dist/Server/Services/AlertSeverityService.js.map +1 -1
- package/build/dist/Server/Services/DashboardService.js +10 -9
- package/build/dist/Server/Services/DashboardService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +24 -2
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +24 -3
- package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentSeverityService.js +67 -0
- package/build/dist/Server/Services/IncidentSeverityService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +12 -4
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/InventoryItemCustomFieldService.js +9 -0
- package/build/dist/Server/Services/InventoryItemCustomFieldService.js.map +1 -0
- package/build/dist/Server/Services/{TelemetryEntityRelationshipService.js → InventoryItemRelationshipService.js} +6 -6
- package/build/dist/Server/Services/InventoryItemRelationshipService.js.map +1 -0
- package/build/dist/Server/Services/{TelemetryEntityService.js → InventoryItemService.js} +68 -23
- package/build/dist/Server/Services/InventoryItemService.js.map +1 -0
- package/build/dist/Server/Services/LogAggregationService.js +27 -8
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +80 -0
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricService.js +6 -6
- package/build/dist/Server/Services/MetricService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceLinkRuleService.js +9 -0
- package/build/dist/Server/Services/NetworkDeviceLinkRuleService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceLinkService.js +71 -0
- package/build/dist/Server/Services/NetworkDeviceLinkService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceService.js +113 -0
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteService.js +53 -13
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
- package/build/dist/Server/Services/NetworkTopologySuppressionService.js +85 -0
- package/build/dist/Server/Services/NetworkTopologySuppressionService.js.map +1 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +48 -32
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +8 -0
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +51 -12
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +57 -13
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallNotificationAlertingService.js +548 -0
- package/build/dist/Server/Services/OnCallNotificationAlertingService.js.map +1 -0
- package/build/dist/Server/Services/OnCallReadinessService.js +1961 -0
- package/build/dist/Server/Services/OnCallReadinessService.js.map +1 -0
- package/build/dist/Server/Services/OnCallSetupReminderService.js +738 -0
- package/build/dist/Server/Services/OnCallSetupReminderService.js.map +1 -0
- package/build/dist/Server/Services/ProfileAggregationService.js +68 -4
- package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +11 -10
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TeamComplianceService.js +312 -160
- package/build/dist/Server/Services/TeamComplianceService.js.map +1 -1
- package/build/dist/Server/Services/UserCallService.js +24 -1
- package/build/dist/Server/Services/UserCallService.js.map +1 -1
- package/build/dist/Server/Services/UserEmailService.js +24 -1
- package/build/dist/Server/Services/UserEmailService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationRuleAdminService.js +858 -0
- package/build/dist/Server/Services/UserNotificationRuleAdminService.js.map +1 -0
- package/build/dist/Server/Services/UserNotificationRuleService.js +2830 -175
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallLogService.js +488 -43
- package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
- package/build/dist/Server/Services/UserPushService.js +26 -0
- package/build/dist/Server/Services/UserPushService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +10 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/UserSmsService.js +24 -1
- package/build/dist/Server/Services/UserSmsService.js.map +1 -1
- package/build/dist/Server/Services/UserTelegramService.js +22 -1
- package/build/dist/Server/Services/UserTelegramService.js.map +1 -1
- package/build/dist/Server/Services/UserWebhookService.js +25 -1
- package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
- package/build/dist/Server/Services/UserWhatsAppService.js +22 -1
- package/build/dist/Server/Services/UserWhatsAppService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js +12 -1
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/CreatePermission.js +126 -0
- package/build/dist/Server/Types/Database/Permissions/CreatePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerOnlyColumnPermission.js +254 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerOnlyColumnPermission.js.map +1 -0
- package/build/dist/Server/Types/Database/Permissions/QueryPermission.js +47 -2
- package/build/dist/Server/Types/Database/Permissions/QueryPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js +7 -0
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Delete.js +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Delete.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Get.js +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Get.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Patch.js +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Patch.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Post.js +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Put.js +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Put.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js +21 -5
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js +14 -10
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js +31 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js +3 -9
- package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Email.js +15 -4
- package/build/dist/Server/Types/Workflow/Components/Email.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/JavaScript.js +7 -2
- package/build/dist/Server/Types/Workflow/Components/JavaScript.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js +1 -1
- package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +514 -56
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +20 -3
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +19 -6
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +7 -0
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js +2 -2
- package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/AIMetaTools.js +692 -0
- package/build/dist/Server/Utils/AI/Toolbox/AIMetaTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js +148 -12
- package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js +157 -10
- package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +37 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/MonitorTools.js +259 -14
- package/build/dist/Server/Utils/AI/Toolbox/MonitorTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/NoteWriteTools.js +235 -0
- package/build/dist/Server/Utils/AI/Toolbox/NoteWriteTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/OnCallTools.js +1000 -0
- package/build/dist/Server/Utils/AI/Toolbox/OnCallTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/RunbookTools.js +356 -0
- package/build/dist/Server/Utils/AI/Toolbox/RunbookTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/SloTools.js +394 -0
- package/build/dist/Server/Utils/AI/Toolbox/SloTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/StatusPageTools.js +465 -0
- package/build/dist/Server/Utils/AI/Toolbox/StatusPageTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/TeamTools.js +280 -0
- package/build/dist/Server/Utils/AI/Toolbox/TeamTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js +527 -0
- package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/WorkflowProbeTools.js +548 -0
- package/build/dist/Server/Utils/AI/Toolbox/WorkflowProbeTools.js.map +1 -0
- package/build/dist/Server/Utils/ClientIp.js +137 -0
- package/build/dist/Server/Utils/ClientIp.js.map +1 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js +38 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js.map +1 -1
- package/build/dist/Server/Utils/Dashboard/PublicDashboardSloHistoryPolicy.js +89 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardSloHistoryPolicy.js.map +1 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardSloWidget.js +77 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardSloWidget.js.map +1 -0
- package/build/dist/Server/Utils/Express.js +12 -12
- package/build/dist/Server/Utils/Express.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +70 -7
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +121 -11
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/SSRFProtection.js +82 -21
- package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +12 -4
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +165 -18
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js +11 -11
- package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +122 -47
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +7 -3
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/AI/AIChatMessageStatus.js +8 -1
- package/build/dist/Types/AI/AIChatMessageStatus.js.map +1 -1
- package/build/dist/Types/AI/AIChatTypes.js +12 -0
- package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/OwnerOnlyColumn.js +60 -0
- package/build/dist/Types/Database/AccessControl/OwnerOnlyColumn.js.map +1 -0
- package/build/dist/Types/Exception/ExceptionCode.js +2 -0
- package/build/dist/Types/Exception/ExceptionCode.js.map +1 -1
- package/build/dist/Types/Exception/ServiceUnavailableException.js +8 -0
- package/build/dist/Types/Exception/ServiceUnavailableException.js.map +1 -0
- package/build/dist/Types/Exception/TooManyRequestsException.js +8 -0
- package/build/dist/Types/Exception/TooManyRequestsException.js.map +1 -0
- package/build/dist/Types/IP/IP.js +87 -43
- package/build/dist/Types/IP/IP.js.map +1 -1
- package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js +50 -0
- package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/Layer.js +186 -123
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.js +13 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +105 -11
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
- package/build/dist/Types/Permission.js +174 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Telemetry/EntityRelationshipType.js +1 -1
- package/build/dist/Types/Telemetry/EntitySource.js +1 -1
- package/build/dist/Types/Telemetry/EntityType.js +1 -1
- package/build/dist/Types/Telemetry/EntityTypeGroups.js +1 -1
- package/build/dist/Types/Telemetry/EntityTypeGroups.js.map +1 -1
- package/build/dist/Types/Workflow/Components/BaseModel.js +66 -28
- package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Discord.js +1 -0
- package/build/dist/Types/Workflow/Components/Discord.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Email.js +12 -3
- package/build/dist/Types/Workflow/Components/Email.js.map +1 -1
- package/build/dist/Types/Workflow/Components/JavaScript.js +7 -0
- package/build/dist/Types/Workflow/Components/JavaScript.js.map +1 -1
- package/build/dist/Types/Workflow/Components/MicrosoftTeams.js +3 -2
- package/build/dist/Types/Workflow/Components/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Slack.js +1 -0
- package/build/dist/Types/Workflow/Components/Slack.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Telegram.js +1 -0
- package/build/dist/Types/Workflow/Components/Telegram.js.map +1 -1
- package/build/dist/Types/Workflow/TemplateSyntax.js +12 -0
- package/build/dist/Types/Workflow/TemplateSyntax.js.map +1 -1
- package/build/dist/Types/Workflow/Templates.js +1931 -38
- package/build/dist/Types/Workflow/Templates.js.map +1 -1
- package/build/dist/UI/Components/Calendar/Calendar.js +1 -1
- package/build/dist/UI/Components/Calendar/Calendar.js.map +1 -1
- package/build/dist/UI/Components/Checkbox/Checkbox.js +1 -1
- package/build/dist/UI/Components/Checkbox/Checkbox.js.map +1 -1
- package/build/dist/UI/Components/Dictionary/Dictionary.js +25 -11
- package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
- package/build/dist/UI/Components/FormModal/BasicFormModal.js.map +1 -1
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +27 -4
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
- package/build/dist/UI/Components/Input/Input.js +1 -0
- package/build/dist/UI/Components/Input/Input.js.map +1 -1
- package/build/dist/UI/Components/KeyboardShortcut/KeyboardKey.js +163 -0
- package/build/dist/UI/Components/KeyboardShortcut/KeyboardKey.js.map +1 -0
- package/build/dist/UI/Components/KeyboardShortcut/KeyboardShortcut.js +47 -0
- package/build/dist/UI/Components/KeyboardShortcut/KeyboardShortcut.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +4 -4
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js +11 -1
- package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/KeyboardShortcutsHelp.js +10 -8
- package/build/dist/UI/Components/LogsViewer/components/KeyboardShortcutsHelp.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +227 -14
- package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +5 -0
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +69 -5
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +8 -0
- package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/types.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js +9 -2
- package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +8 -21
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Components/ProjectInvitations/PendingProjectInvitations.js +251 -0
- package/build/dist/UI/Components/ProjectInvitations/PendingProjectInvitations.js.map +1 -0
- package/build/dist/UI/Components/SimpleLogViewer/SimpleLogViewer.js +9 -2
- package/build/dist/UI/Components/SimpleLogViewer/SimpleLogViewer.js.map +1 -1
- package/build/dist/UI/Components/Table/Table.js +27 -15
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Components/Table/TableBody.js +24 -18
- package/build/dist/UI/Components/Table/TableBody.js.map +1 -1
- package/build/dist/UI/Components/Table/TableHeader.js +9 -1
- package/build/dist/UI/Components/Table/TableHeader.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +29 -21
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ArgumentsForm.js +130 -12
- package/build/dist/UI/Components/Workflow/ArgumentsForm.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js +10 -1
- package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ComponentSettingsModal.js +4 -4
- package/build/dist/UI/Components/Workflow/ComponentSettingsModal.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ComponentValuePickerModal.js +57 -7
- package/build/dist/UI/Components/Workflow/ComponentValuePickerModal.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ComponentsModal.js +53 -18
- package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
- package/build/dist/UI/Components/Workflow/DocumentationViewer.js +19 -6
- package/build/dist/UI/Components/Workflow/DocumentationViewer.js.map +1 -1
- package/build/dist/UI/Components/Workflow/GraphLint.js +33 -4
- package/build/dist/UI/Components/Workflow/GraphLint.js.map +1 -1
- package/build/dist/UI/Components/Workflow/GraphLintSummary.js +231 -0
- package/build/dist/UI/Components/Workflow/GraphLintSummary.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ModelColumnEditor.js +116 -21
- package/build/dist/UI/Components/Workflow/ModelColumnEditor.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ModelSchema.js +72 -34
- package/build/dist/UI/Components/Workflow/ModelSchema.js.map +1 -1
- package/build/dist/UI/Components/Workflow/RunStatusWatcher.js +1 -1
- package/build/dist/UI/Components/Workflow/RunStatusWatcher.js.map +1 -1
- package/build/dist/UI/Components/Workflow/StepTraceViewer.js +1 -1
- package/build/dist/UI/Components/Workflow/StepTraceViewer.js.map +1 -1
- package/build/dist/UI/Components/Workflow/UseRunWatch.js +123 -0
- package/build/dist/UI/Components/Workflow/UseRunWatch.js.map +1 -0
- package/build/dist/UI/Components/Workflow/VariableModal.js +3 -2
- package/build/dist/UI/Components/Workflow/VariableModal.js.map +1 -1
- package/build/dist/UI/Components/Workflow/Workflow.js +41 -1
- package/build/dist/UI/Components/Workflow/Workflow.js.map +1 -1
- package/build/dist/UI/Components/Workflow/WorkflowIssuesModal.js +99 -0
- package/build/dist/UI/Components/Workflow/WorkflowIssuesModal.js.map +1 -0
- package/build/dist/UI/Components/Workflow/WorkflowLogModal.js +56 -0
- package/build/dist/UI/Components/Workflow/WorkflowLogModal.js.map +1 -0
- package/build/dist/UI/Components/Workflow/WorkflowStatusBar.js +92 -0
- package/build/dist/UI/Components/Workflow/WorkflowStatusBar.js.map +1 -0
- package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js +9 -0
- package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js.map +1 -1
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +1 -1
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/Platform.js +118 -0
- package/build/dist/UI/Utils/Platform.js.map +1 -0
- package/build/dist/UI/Utils/ProjectInvitationDisplay.js +106 -0
- package/build/dist/UI/Utils/ProjectInvitationDisplay.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceLinkRuleUtil.js +108 -0
- package/build/dist/Utils/Monitor/NetworkDeviceLinkRuleUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +642 -136
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/Telemetry/CrossSignalScope.js +328 -0
- package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -0
- package/build/dist/Utils/Telemetry/EntityKey.js +5 -5
- package/build/dist/Utils/Telemetry/EntityRelationship.js +1 -1
- package/jest.config.json +1 -0
- package/package.json +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryEntity.js.map +0 -1
- package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js.map +0 -1
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +0 -1
- package/build/dist/Server/Services/TelemetryEntityService.js.map +0 -1
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
import Dictionary from "../../Types/Dictionary";
|
|
2
|
+
import OneUptimeDate from "../../Types/Date";
|
|
3
|
+
import TimeRange from "../../Types/Time/TimeRange";
|
|
4
|
+
import MetricExplorerUrl, {
|
|
5
|
+
MetricExplorerUrlParam,
|
|
6
|
+
SerializedMetricQuery,
|
|
7
|
+
} from "../Metrics/MetricExplorerUrl";
|
|
8
|
+
|
|
9
|
+
/*
|
|
10
|
+
* Matches any whitespace, double-quote, or colon — the characters that break a
|
|
11
|
+
* bare traces search token. Kept as named consts so the linter doesn't fight
|
|
12
|
+
* over wrapping an inline regex literal used with .test() (wrap-regex vs
|
|
13
|
+
* prettier).
|
|
14
|
+
*/
|
|
15
|
+
const TRACE_TOKEN_UNSAFE_CHARS: RegExp = /[\s":]/;
|
|
16
|
+
const WHITESPACE: RegExp = /\s/;
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* Cross-signal scope translation: turn one description of "what slice of
|
|
20
|
+
* telemetry am I looking at" into the query params each explorer parses,
|
|
21
|
+
* so a breach (or any other cross-signal jump) can land the user on an
|
|
22
|
+
* equivalently-scoped Logs / Traces / Metrics view.
|
|
23
|
+
*
|
|
24
|
+
* The target grammars this module encodes (do not change one without the
|
|
25
|
+
* other):
|
|
26
|
+
*
|
|
27
|
+
* - Logs explorer (App/FeatureSet/Dashboard/src/Components/Logs/
|
|
28
|
+
* LogsViewer.tsx, readInitialUrlState): `filters` is a JSON array of
|
|
29
|
+
* [facetKey, values[]] tuples. Supported facet keys are the top-level
|
|
30
|
+
* columns severityText / primaryEntityId / traceId / spanId plus
|
|
31
|
+
* `attributes.<key>` for telemetry attributes (dots in <key> are kept —
|
|
32
|
+
* only the first "attributes." prefix is stripped). `range` is a
|
|
33
|
+
* TimeRange enum value; a Custom range additionally needs `start` and
|
|
34
|
+
* `end` (parsed with `new Date(...)`). There is no `search` param.
|
|
35
|
+
*
|
|
36
|
+
* - Traces explorer (App/FeatureSet/Dashboard/src/Components/Traces/
|
|
37
|
+
* TracesViewer.tsx, readInitialUrlState + parseSearch): `search` is a
|
|
38
|
+
* Datadog-style DSL (`trace:<id>`, `span:<id>`, `@<attr>:<value>`, with
|
|
39
|
+
* double quotes around values containing spaces); `filters` is a JSON
|
|
40
|
+
* array of [facetKey, value] string pairs where facetKey may be
|
|
41
|
+
* `primaryEntityId` (service ObjectID) or `attributes.<key>`;
|
|
42
|
+
* `range`/`start`/`end` follow the same Custom convention as logs.
|
|
43
|
+
*
|
|
44
|
+
* - Metric explorer (Common/Utils/Metrics/MetricExplorerUrl.ts): the
|
|
45
|
+
* JSON-encoded `metricQueries` param plus absolute `startTime`/`endTime`
|
|
46
|
+
* (a pinned Custom window is represented by the absolute params alone —
|
|
47
|
+
* no `range` token).
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* One cross-signal scope. Every field is optional; serializers emit params
|
|
52
|
+
* only for the fields the target grammar can express and report the rest in
|
|
53
|
+
* `dropped`.
|
|
54
|
+
*
|
|
55
|
+
* `serviceIds` carries service ObjectID strings — NOT service names. Both
|
|
56
|
+
* the logs and the traces explorer filter services through the
|
|
57
|
+
* `primaryEntityId` column, whose values are ObjectIDs (the UI maps them to
|
|
58
|
+
* names for display via facet valueDisplayMap); a name would compile to a
|
|
59
|
+
* `primaryEntityId = '<name>'` predicate and match nothing.
|
|
60
|
+
*/
|
|
61
|
+
export interface TelemetryCrossSignalScope {
|
|
62
|
+
/** Service ObjectID strings (Log/Span `primaryEntityId` values). */
|
|
63
|
+
serviceIds?: Array<string> | undefined;
|
|
64
|
+
/** Exact-match telemetry attribute filters. Keys may contain dots. */
|
|
65
|
+
attributes?: Dictionary<string> | undefined;
|
|
66
|
+
traceIds?: Array<string> | undefined;
|
|
67
|
+
spanIds?: Array<string> | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Log severity values. Normalized to the database's title-case values
|
|
70
|
+
* ("error" -> "Error") the same way the logs search DSL does
|
|
71
|
+
* (Common/Types/Log/LogQueryToFilter.ts, SEVERITY_CANONICAL) — the URL
|
|
72
|
+
* `filters` path applies no normalization of its own, so the params must
|
|
73
|
+
* carry the exact stored casing.
|
|
74
|
+
*/
|
|
75
|
+
severityTexts?: Array<string> | undefined;
|
|
76
|
+
startTime?: Date | undefined;
|
|
77
|
+
endTime?: Date | undefined;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Result of a scope translation: the query params to append to the target
|
|
82
|
+
* explorer's URL, plus the names of the scope fields the target grammar
|
|
83
|
+
* could not express (so callers can surface a "scope partially carried"
|
|
84
|
+
* hint). A field appears in `dropped` only when it held at least one usable
|
|
85
|
+
* value; empty/blank entries carry no scope and are ignored silently.
|
|
86
|
+
*/
|
|
87
|
+
export interface CrossSignalQueryParams {
|
|
88
|
+
params: Dictionary<string>;
|
|
89
|
+
dropped: Array<string>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/*
|
|
93
|
+
* Same canonicalization table as the logs search DSL
|
|
94
|
+
* (Common/Types/Log/LogQueryToFilter.ts). Unknown values pass through
|
|
95
|
+
* verbatim, matching that module's `|| value` fallback.
|
|
96
|
+
*/
|
|
97
|
+
const LOG_SEVERITY_CANONICAL: Dictionary<string> = {
|
|
98
|
+
fatal: "Fatal",
|
|
99
|
+
error: "Error",
|
|
100
|
+
warning: "Warning",
|
|
101
|
+
warn: "Warning",
|
|
102
|
+
information: "Information",
|
|
103
|
+
info: "Information",
|
|
104
|
+
debug: "Debug",
|
|
105
|
+
trace: "Trace",
|
|
106
|
+
unspecified: "Unspecified",
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
function normalizeLogSeverity(value: string): string {
|
|
110
|
+
return LOG_SEVERITY_CANONICAL[value.toLowerCase()] || value;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/*
|
|
114
|
+
* Drop empty strings and duplicates while preserving order. Blank entries
|
|
115
|
+
* would become empty filter chips ("" equality predicates) in the viewers,
|
|
116
|
+
* which is never what a caller means by scope.
|
|
117
|
+
*/
|
|
118
|
+
function sanitizeValues(values: Array<string> | undefined): Array<string> {
|
|
119
|
+
if (!values || values.length === 0) {
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const seen: Set<string> = new Set<string>();
|
|
124
|
+
const sanitized: Array<string> = [];
|
|
125
|
+
|
|
126
|
+
for (const value of values) {
|
|
127
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (seen.has(value)) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
seen.add(value);
|
|
136
|
+
sanitized.push(value);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return sanitized;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/*
|
|
143
|
+
* Attribute entries with an empty key or an empty value carry no scope —
|
|
144
|
+
* skip them rather than emitting a chip that filters on nothing.
|
|
145
|
+
*/
|
|
146
|
+
function sanitizeAttributeEntries(
|
|
147
|
+
attributes: Dictionary<string> | undefined,
|
|
148
|
+
): Array<[string, string]> {
|
|
149
|
+
if (!attributes) {
|
|
150
|
+
return [];
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const entries: Array<[string, string]> = [];
|
|
154
|
+
|
|
155
|
+
for (const key of Object.keys(attributes)) {
|
|
156
|
+
const value: string = attributes[key] as string;
|
|
157
|
+
|
|
158
|
+
if (key.length === 0 || typeof value !== "string" || value.length === 0) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
entries.push([key, value]);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return entries;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function isValidDate(value: Date | undefined): value is Date {
|
|
169
|
+
return value instanceof Date && !isNaN(value.getTime());
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
interface ResolvedTimeWindow {
|
|
173
|
+
startTime: Date | null;
|
|
174
|
+
endTime: Date | null;
|
|
175
|
+
dropped: Array<string>;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/*
|
|
179
|
+
* All three targets need BOTH ends of the window (logs/traces ignore a
|
|
180
|
+
* Custom range unless start AND end parse; the metric explorer only emits
|
|
181
|
+
* the absolute params as a pair). A lone endpoint is therefore reported as
|
|
182
|
+
* dropped instead of emitting a half-window the explorer would discard.
|
|
183
|
+
*/
|
|
184
|
+
function resolveTimeWindow(
|
|
185
|
+
scope: TelemetryCrossSignalScope,
|
|
186
|
+
): ResolvedTimeWindow {
|
|
187
|
+
const hasStart: boolean = isValidDate(scope.startTime);
|
|
188
|
+
const hasEnd: boolean = isValidDate(scope.endTime);
|
|
189
|
+
|
|
190
|
+
if (hasStart && hasEnd) {
|
|
191
|
+
return {
|
|
192
|
+
startTime: scope.startTime as Date,
|
|
193
|
+
endTime: scope.endTime as Date,
|
|
194
|
+
dropped: [],
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
const dropped: Array<string> = [];
|
|
199
|
+
|
|
200
|
+
if (hasStart) {
|
|
201
|
+
dropped.push("startTime");
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if (hasEnd) {
|
|
205
|
+
dropped.push("endTime");
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return { startTime: null, endTime: null, dropped };
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Translate a scope into logs-explorer query params.
|
|
213
|
+
*
|
|
214
|
+
* Field support: serviceIds -> `primaryEntityId` filter tuple, severityTexts
|
|
215
|
+
* -> `severityText` (canonicalized casing), traceIds -> `traceId`, spanIds
|
|
216
|
+
* -> `spanId`, attributes -> `attributes.<key>` tuples, startTime+endTime ->
|
|
217
|
+
* `range=Custom` + `start`/`end`. Every scope field is expressible in the
|
|
218
|
+
* logs grammar, so `dropped` only ever reports a lone time endpoint.
|
|
219
|
+
*/
|
|
220
|
+
export function toLogsExplorerQueryParams(
|
|
221
|
+
scope: TelemetryCrossSignalScope,
|
|
222
|
+
): CrossSignalQueryParams {
|
|
223
|
+
const params: Dictionary<string> = {};
|
|
224
|
+
const dropped: Array<string> = [];
|
|
225
|
+
|
|
226
|
+
/*
|
|
227
|
+
* Tuple shape: Array<[facetKey, values[]]> — exactly what
|
|
228
|
+
* LogsViewer.readInitialUrlState JSON.parses back into its
|
|
229
|
+
* appliedFacetFilters map.
|
|
230
|
+
*/
|
|
231
|
+
const tuples: Array<[string, Array<string>]> = [];
|
|
232
|
+
|
|
233
|
+
/*
|
|
234
|
+
* Deduplicate AFTER normalization so "error" and "Error" collapse into
|
|
235
|
+
* one canonical value instead of emitting a duplicate filter chip.
|
|
236
|
+
*/
|
|
237
|
+
const severityValues: Array<string> = sanitizeValues(
|
|
238
|
+
sanitizeValues(scope.severityTexts).map((value: string): string => {
|
|
239
|
+
return normalizeLogSeverity(value);
|
|
240
|
+
}),
|
|
241
|
+
);
|
|
242
|
+
|
|
243
|
+
if (severityValues.length > 0) {
|
|
244
|
+
tuples.push(["severityText", severityValues]);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
const serviceIds: Array<string> = sanitizeValues(scope.serviceIds);
|
|
248
|
+
|
|
249
|
+
if (serviceIds.length > 0) {
|
|
250
|
+
tuples.push(["primaryEntityId", serviceIds]);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
const traceIds: Array<string> = sanitizeValues(scope.traceIds);
|
|
254
|
+
|
|
255
|
+
if (traceIds.length > 0) {
|
|
256
|
+
tuples.push(["traceId", traceIds]);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const spanIds: Array<string> = sanitizeValues(scope.spanIds);
|
|
260
|
+
|
|
261
|
+
if (spanIds.length > 0) {
|
|
262
|
+
tuples.push(["spanId", spanIds]);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
for (const [key, value] of sanitizeAttributeEntries(scope.attributes)) {
|
|
266
|
+
tuples.push([`attributes.${key}`, [value]]);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
if (tuples.length > 0) {
|
|
270
|
+
params["filters"] = JSON.stringify(tuples);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
const window: ResolvedTimeWindow = resolveTimeWindow(scope);
|
|
274
|
+
|
|
275
|
+
if (window.startTime && window.endTime) {
|
|
276
|
+
params["range"] = TimeRange.CUSTOM;
|
|
277
|
+
params["start"] = OneUptimeDate.toString(window.startTime);
|
|
278
|
+
params["end"] = OneUptimeDate.toString(window.endTime);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
dropped.push(...window.dropped);
|
|
282
|
+
|
|
283
|
+
return { params, dropped };
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/*
|
|
287
|
+
* Whether an attribute key can ride in a traces `@key:value` search token.
|
|
288
|
+
* The parseSearch tokenizer (TracesViewer.tsx) splits the token at the
|
|
289
|
+
* FIRST colon, treats whitespace as a token boundary, has no escape
|
|
290
|
+
* sequence for double quotes, and reads a leading "@" as the attribute
|
|
291
|
+
* marker — so keys containing any of those go through the JSON `filters`
|
|
292
|
+
* chip instead.
|
|
293
|
+
*/
|
|
294
|
+
function isTraceTokenSafeKey(key: string): boolean {
|
|
295
|
+
if (key.length === 0) {
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
if (TRACE_TOKEN_UNSAFE_CHARS.test(key)) {
|
|
300
|
+
return false;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (key.startsWith("@") || key.startsWith("-")) {
|
|
304
|
+
return false;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
return true;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/*
|
|
311
|
+
* Whether a value can ride in a traces search token, and how.
|
|
312
|
+
*
|
|
313
|
+
* - values with whitespace get double-quoted (`@k:"a b"` — the tokenizer's
|
|
314
|
+
* quoted-token branch);
|
|
315
|
+
* - values containing a double quote cannot be represented (the grammar
|
|
316
|
+
* has no escape sequence — `"[^"]*"` stops at the first quote);
|
|
317
|
+
* - values starting with "~" would flip an exact match into the
|
|
318
|
+
* contains-match operator (quoting does NOT protect it: parseSearch
|
|
319
|
+
* strips quotes before the startsWith("~") check);
|
|
320
|
+
* - values containing "%" risk corruption because TracesViewer
|
|
321
|
+
* double-decodes the `search` param (decodeURIComponent on the already-
|
|
322
|
+
* decoded value, TracesViewer.tsx readInitialUrlState) — "a%20b" would
|
|
323
|
+
* come out as "a b".
|
|
324
|
+
*
|
|
325
|
+
* Unrepresentable values fall back to a `filters` chip, which is plain JSON
|
|
326
|
+
* and can carry anything.
|
|
327
|
+
*/
|
|
328
|
+
function buildTraceSearchTokenValue(value: string): string | null {
|
|
329
|
+
if (value.includes('"')) {
|
|
330
|
+
return null;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
if (value.includes("%")) {
|
|
334
|
+
return null;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
if (value.startsWith("~")) {
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
if (WHITESPACE.test(value)) {
|
|
342
|
+
return `"${value}"`;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
return value;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Translate a scope into traces-explorer query params.
|
|
350
|
+
*
|
|
351
|
+
* Field support: traceIds/spanIds -> `trace:`/`span:` search tokens (chip
|
|
352
|
+
* fallback for values the DSL cannot carry), attributes -> `@key:value`
|
|
353
|
+
* search tokens (chip fallback likewise), serviceIds -> `primaryEntityId`
|
|
354
|
+
* filter chips (chips display the service NAME via the facet's
|
|
355
|
+
* valueDisplayMap, where a `service:` token would show the raw ObjectID),
|
|
356
|
+
* startTime+endTime -> `range=Custom` + `start`/`end`.
|
|
357
|
+
*
|
|
358
|
+
* Dropped: severityTexts — spans have no severity dimension.
|
|
359
|
+
*/
|
|
360
|
+
export function toTracesExplorerQueryParams(
|
|
361
|
+
scope: TelemetryCrossSignalScope,
|
|
362
|
+
): CrossSignalQueryParams {
|
|
363
|
+
const params: Dictionary<string> = {};
|
|
364
|
+
const dropped: Array<string> = [];
|
|
365
|
+
|
|
366
|
+
const searchTokens: Array<string> = [];
|
|
367
|
+
|
|
368
|
+
// Tuple shape: Array<[facetKey, value]> string pairs (one value each).
|
|
369
|
+
const filterTuples: Array<[string, string]> = [];
|
|
370
|
+
|
|
371
|
+
for (const serviceId of sanitizeValues(scope.serviceIds)) {
|
|
372
|
+
filterTuples.push(["primaryEntityId", serviceId]);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
for (const [key, value] of sanitizeAttributeEntries(scope.attributes)) {
|
|
376
|
+
const tokenValue: string | null = isTraceTokenSafeKey(key)
|
|
377
|
+
? buildTraceSearchTokenValue(value)
|
|
378
|
+
: null;
|
|
379
|
+
|
|
380
|
+
if (tokenValue !== null) {
|
|
381
|
+
searchTokens.push(`@${key}:${tokenValue}`);
|
|
382
|
+
} else {
|
|
383
|
+
filterTuples.push([`attributes.${key}`, value]);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
for (const traceId of sanitizeValues(scope.traceIds)) {
|
|
388
|
+
const tokenValue: string | null = buildTraceSearchTokenValue(traceId);
|
|
389
|
+
|
|
390
|
+
if (tokenValue !== null) {
|
|
391
|
+
searchTokens.push(`trace:${tokenValue}`);
|
|
392
|
+
} else {
|
|
393
|
+
filterTuples.push(["traceId", traceId]);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
for (const spanId of sanitizeValues(scope.spanIds)) {
|
|
398
|
+
const tokenValue: string | null = buildTraceSearchTokenValue(spanId);
|
|
399
|
+
|
|
400
|
+
if (tokenValue !== null) {
|
|
401
|
+
searchTokens.push(`span:${tokenValue}`);
|
|
402
|
+
} else {
|
|
403
|
+
filterTuples.push(["spanId", spanId]);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
if (searchTokens.length > 0) {
|
|
408
|
+
params["search"] = searchTokens.join(" ");
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
if (filterTuples.length > 0) {
|
|
412
|
+
params["filters"] = JSON.stringify(filterTuples);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
const window: ResolvedTimeWindow = resolveTimeWindow(scope);
|
|
416
|
+
|
|
417
|
+
if (window.startTime && window.endTime) {
|
|
418
|
+
params["range"] = TimeRange.CUSTOM;
|
|
419
|
+
params["start"] = OneUptimeDate.toString(window.startTime);
|
|
420
|
+
params["end"] = OneUptimeDate.toString(window.endTime);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
if (sanitizeValues(scope.severityTexts).length > 0) {
|
|
424
|
+
dropped.push("severityTexts");
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
dropped.push(...window.dropped);
|
|
428
|
+
|
|
429
|
+
return { params, dropped };
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Translate a scope into metric-explorer query params.
|
|
434
|
+
*
|
|
435
|
+
* Field support: attributes -> the single query's attribute filters inside
|
|
436
|
+
* the JSON `metricQueries` param, startTime+endTime -> absolute
|
|
437
|
+
* `startTime`/`endTime` (a pinned window; the metric explorer represents
|
|
438
|
+
* Custom by the absolute params alone — see MetricExplorerUrl). The
|
|
439
|
+
* optional `metricName` argument names the query.
|
|
440
|
+
*
|
|
441
|
+
* Dropped: serviceIds, traceIds, spanIds, severityTexts — the metric
|
|
442
|
+
* explorer's URL grammar has no service / trace / span / severity
|
|
443
|
+
* dimension (metrics carry a primaryEntityId column, but the explorer only
|
|
444
|
+
* parses metricName + attributes out of `metricQueries`).
|
|
445
|
+
*/
|
|
446
|
+
export function toMetricsExplorerQueryParams(
|
|
447
|
+
scope: TelemetryCrossSignalScope,
|
|
448
|
+
metricName?: string,
|
|
449
|
+
): CrossSignalQueryParams {
|
|
450
|
+
const params: Dictionary<string> = {};
|
|
451
|
+
const dropped: Array<string> = [];
|
|
452
|
+
|
|
453
|
+
const attributes: Dictionary<string> = {};
|
|
454
|
+
|
|
455
|
+
for (const [key, value] of sanitizeAttributeEntries(scope.attributes)) {
|
|
456
|
+
attributes[key] = value;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
const query: SerializedMetricQuery = {
|
|
460
|
+
metricName: metricName || "",
|
|
461
|
+
attributes,
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
/*
|
|
465
|
+
* Same admission rule as the explorer's own URL round-trip: an empty
|
|
466
|
+
* query (no name, no filters) earns no param at all.
|
|
467
|
+
*/
|
|
468
|
+
if (MetricExplorerUrl.isMeaningfulMetricQuery(query)) {
|
|
469
|
+
params[MetricExplorerUrlParam.MetricQueries] = JSON.stringify([query]);
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
const window: ResolvedTimeWindow = resolveTimeWindow(scope);
|
|
473
|
+
|
|
474
|
+
if (window.startTime && window.endTime) {
|
|
475
|
+
params[MetricExplorerUrlParam.StartTime] = OneUptimeDate.toString(
|
|
476
|
+
window.startTime,
|
|
477
|
+
);
|
|
478
|
+
params[MetricExplorerUrlParam.EndTime] = OneUptimeDate.toString(
|
|
479
|
+
window.endTime,
|
|
480
|
+
);
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
if (sanitizeValues(scope.serviceIds).length > 0) {
|
|
484
|
+
dropped.push("serviceIds");
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
if (sanitizeValues(scope.traceIds).length > 0) {
|
|
488
|
+
dropped.push("traceIds");
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
if (sanitizeValues(scope.spanIds).length > 0) {
|
|
492
|
+
dropped.push("spanIds");
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
if (sanitizeValues(scope.severityTexts).length > 0) {
|
|
496
|
+
dropped.push("severityTexts");
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
dropped.push(...window.dropped);
|
|
500
|
+
|
|
501
|
+
return { params, dropped };
|
|
502
|
+
}
|
|
@@ -9,7 +9,7 @@ import EntityType from "../../Types/Telemetry/EntityType";
|
|
|
9
9
|
* Hashing goes through an injectable SHA-256 provider: the default is
|
|
10
10
|
* `Common/Utils/Crypto` (crypto-js, pure JS) so this module works in the
|
|
11
11
|
* browser, and the server swaps in node:crypto for the ingest hot path
|
|
12
|
-
* (see
|
|
12
|
+
* (see InventoryItem.ts). Any provider MUST produce the same
|
|
13
13
|
* lowercase-hex SHA-256 — a hard requirement: a read-side key that
|
|
14
14
|
* doesn't byte-match the ingest-side stamp finds nothing.
|
|
15
15
|
*
|
|
@@ -88,7 +88,7 @@ export function computeEntityKey(data: {
|
|
|
88
88
|
*
|
|
89
89
|
* Given a OneUptime resource's identifying value, compute the entity key
|
|
90
90
|
* to query `has(entityKeys, :key)`. Each MUST mirror the corresponding
|
|
91
|
-
* ingest-side resolver in `
|
|
91
|
+
* ingest-side resolver in `InventoryItem.extractEntities` exactly.
|
|
92
92
|
*/
|
|
93
93
|
|
|
94
94
|
/**
|
|
@@ -136,7 +136,7 @@ export function keyForService(
|
|
|
136
136
|
/**
|
|
137
137
|
* `k8s.cluster.name` is the cluster identity (matches the KubernetesCluster
|
|
138
138
|
* row's `clusterIdentifier`; the ingest resolver is name-only — see
|
|
139
|
-
* `
|
|
139
|
+
* `InventoryItem.k8sClusterIdentity`). Pass
|
|
140
140
|
* `KubernetesCluster.clusterIdentifier`.
|
|
141
141
|
*/
|
|
142
142
|
export function keyForKubernetesCluster(
|
|
@@ -154,7 +154,7 @@ export function keyForKubernetesCluster(
|
|
|
154
154
|
* `proxmox.cluster.name` is the cluster identity (matches the ProxmoxCluster
|
|
155
155
|
* row's `name`, the project-unique join key written by
|
|
156
156
|
* `findOrCreateByName`; the ingest resolver is name-only — see
|
|
157
|
-
* `
|
|
157
|
+
* `InventoryItem.proxmoxClusterIdentity`). Pass `ProxmoxCluster.name`.
|
|
158
158
|
*/
|
|
159
159
|
export function keyForProxmoxCluster(
|
|
160
160
|
projectId: string,
|
|
@@ -189,7 +189,7 @@ export function keyForCephCluster(
|
|
|
189
189
|
* `docker.swarm.cluster.name` is the cluster identity (matches the
|
|
190
190
|
* DockerSwarmCluster row's `name`, the project-unique join key written by
|
|
191
191
|
* `findOrCreateByName`; the ingest resolver is name-only — see
|
|
192
|
-
* `
|
|
192
|
+
* `InventoryItem` docker.swarm.cluster resolver). Pass
|
|
193
193
|
* `DockerSwarmCluster.name`.
|
|
194
194
|
*/
|
|
195
195
|
export function keyForDockerSwarmCluster(
|
|
@@ -40,7 +40,7 @@ export interface EntityRelationshipEdge {
|
|
|
40
40
|
* `depends-on` is deliberately absent: a caller service and its callee
|
|
41
41
|
* never share one resource, so it cannot be co-occurrence-inferred. Those
|
|
42
42
|
* edges are derived from cross-service parent/child span pairs by the
|
|
43
|
-
*
|
|
43
|
+
* InventoryItem:ComputeServiceDependencies worker cron.
|
|
44
44
|
*/
|
|
45
45
|
const RULES: Record<string, EntityRelationshipType> = {
|
|
46
46
|
[`${EntityType.ServiceInstance}|${EntityType.Service}`]:
|
|
@@ -8,7 +8,7 @@ import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
|
8
8
|
* samples — sibling of `MetricItemAggMV1mByHostV2`, keyed by the stable
|
|
9
9
|
* 16-hex `k8sClusterEntityKey` the ingest pipeline stamps on every row
|
|
10
10
|
* whose resource carries a Kubernetes cluster identity. Cluster identity
|
|
11
|
-
* is `k8s.cluster.name` ONLY (see `
|
|
11
|
+
* is `k8s.cluster.name` ONLY (see `InventoryItem.k8sClusterIdentity`),
|
|
12
12
|
* so the read side can derive the key directly from the incoming
|
|
13
13
|
* `resource.k8s.cluster.name` filter via
|
|
14
14
|
* `EntityKey.keyForKubernetesCluster` — no registry lookup needed.
|
|
@@ -15,7 +15,7 @@ import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
|
15
15
|
* `service.name` can map to SEVERAL serviceEntityKeys (one per
|
|
16
16
|
* namespace variant). The read side therefore never derives a single
|
|
17
17
|
* key from the name: `MetricService.tryBuildEntityAggregateMVStatement`
|
|
18
|
-
* resolves the full key set from the Postgres
|
|
18
|
+
* resolves the full key set from the Postgres InventoryItem registry
|
|
19
19
|
* and compiles `serviceEntityKey IN (<keys>)`, falling back to the raw
|
|
20
20
|
* table when the registry has no rows for the name.
|
|
21
21
|
*
|
|
@@ -56,6 +56,16 @@ let AIConversation = class AIConversation extends BaseModel {
|
|
|
56
56
|
* into a wider permission mode than the endpoint would grant.
|
|
57
57
|
*/
|
|
58
58
|
this.permissionMode = undefined;
|
|
59
|
+
/*
|
|
60
|
+
* The conversation's subject: the dashboard page (usually one specific
|
|
61
|
+
* entity, e.g. an incident) the user was looking at when the conversation
|
|
62
|
+
* started. ChatAgentRunner persists it from the first turn that carries a
|
|
63
|
+
* sanitized page context and falls back to it on later turns that arrive
|
|
64
|
+
* without one, so "this incident" keeps resolving after the user navigates
|
|
65
|
+
* away. Written only by the server (never member-writable through CRUD),
|
|
66
|
+
* so it cannot be forged to point at another project's entity.
|
|
67
|
+
*/
|
|
68
|
+
this.pageContext = undefined;
|
|
59
69
|
this.deletedByUser = undefined;
|
|
60
70
|
this.deletedByUserId = undefined;
|
|
61
71
|
this.createdByUser = undefined;
|
|
@@ -220,6 +230,28 @@ __decorate([
|
|
|
220
230
|
}),
|
|
221
231
|
__metadata("design:type", String)
|
|
222
232
|
], AIConversation.prototype, "permissionMode", void 0);
|
|
233
|
+
__decorate([
|
|
234
|
+
ColumnAccessControl({
|
|
235
|
+
create: [],
|
|
236
|
+
read: [
|
|
237
|
+
Permission.ProjectOwner,
|
|
238
|
+
Permission.ProjectAdmin,
|
|
239
|
+
Permission.ProjectMember,
|
|
240
|
+
],
|
|
241
|
+
update: [],
|
|
242
|
+
}),
|
|
243
|
+
TableColumn({
|
|
244
|
+
required: false,
|
|
245
|
+
type: TableColumnType.JSON,
|
|
246
|
+
title: "Page Context",
|
|
247
|
+
description: "The dashboard page (entity) this conversation is about. Set from the first message that carried a page context.",
|
|
248
|
+
}),
|
|
249
|
+
Column({
|
|
250
|
+
nullable: true,
|
|
251
|
+
type: ColumnType.JSON,
|
|
252
|
+
}),
|
|
253
|
+
__metadata("design:type", Object)
|
|
254
|
+
], AIConversation.prototype, "pageContext", void 0);
|
|
223
255
|
__decorate([
|
|
224
256
|
ColumnAccessControl({
|
|
225
257
|
create: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIConversation.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/AIConversation.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAC9D,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,mBAAmB,MAAM,wDAAwD,CAAC;AACzF,OAAO,kBAAkB,MAAM,uDAAuD,CAAC;AACvF,OAAO,yBAAyB,MAAM,8DAA8D,CAAC;AACrG,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,UAAU,MAAM,iCAAiC,CAAC;AACzD,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAC3D,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAC/D,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"AIConversation.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/AIConversation.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAC9D,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,mBAAmB,MAAM,wDAAwD,CAAC;AACzF,OAAO,kBAAkB,MAAM,uDAAuD,CAAC;AACvF,OAAO,yBAAyB,MAAM,8DAA8D,CAAC;AACrG,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,UAAU,MAAM,iCAAiC,CAAC;AACzD,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAC3D,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAC/D,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAG3E;;;;GAIG;AAuCY,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS;IAAtC;;QAmCN,YAAO,GAAa,SAAS,CAAC;QA4B9B,cAAS,GAAc,SAAS,CAAC;QAuBjC,UAAK,GAAY,SAAS,CAAC;QAqB3B,kBAAa,GAAU,SAAS,CAAC;QAExC;;;;;;;;WAQG;QAwBI,kBAAa,GAAc,SAAS,CAAC;QAE5C;;;;;WAKG;QAuBI,mBAAc,GAAY,SAAS,CAAC;QAE3C;;;;;;;;WAQG;QAqBI,gBAAW,GAAuB,SAAS,CAAC;QAqB5C,kBAAa,GAAU,SAAS,CAAC;QAkBjC,oBAAe,GAAc,SAAS,CAAC;QAwBvC,kBAAa,GAAU,SAAS,CAAC;QAsBjC,oBAAe,GAAc,SAAS,CAAC;IAChD,CAAC;CAAA,CAAA;AA7PQ;IAlCN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,OAAO;QAClB,uBAAuB,EAAE,WAAW;QACpC,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,uCAAuC;KACrD,CAAC;IACD,SAAS,CACR,GAAG,EAAE;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,EACD;QACE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,SAAS;QACnB,iBAAiB,EAAE,SAAS;KAC7B,CACF;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BACjB,OAAO;+CAAa;AA4B9B;IA1BN,mBAAmB,CAAC;QACnB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,KAAK,EAAE;IACP,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,QAAQ,EAAE,IAAI;QACd,sBAAsB,EAAE,IAAI;QAC5B,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,iDAAiD;KAC/D,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BACiB,QAAQ;iDAAa;AAuBjC;IArBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,eAAe,CAAC,SAAS;QAC/B,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,8DAA8D;QAC3E,sBAAsB,EAAE,IAAI;KAC7B,CAAC;IACD,MAAM,CAAC;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU,CAAC,SAAS;QAC1B,MAAM,EAAE,YAAY,CAAC,SAAS;KAC/B,CAAC;;6CACgC;AAqB3B;IAnBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,sDAAsD;KACpE,CAAC;IACD,MAAM,CAAC;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAC;8BACqB,IAAI;qDAAa;AAkCjC;IAvBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,KAAK,EAAE;IACP,WAAW,CAAC;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,sBAAsB,EAAE,IAAI;QAC5B,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,8GAA8G;KACjH,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BACqB,QAAQ;qDAAa;AA8BrC;IAtBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,eAAe,CAAC,SAAS;QAC/B,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,sFAAsF;QACxF,sBAAsB,EAAE,IAAI;KAC7B,CAAC;IACD,MAAM,CAAC;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU,CAAC,SAAS;QAC1B,MAAM,EAAE,YAAY,CAAC,SAAS;KAC/B,CAAC;;sDACyC;AA+BpC;IApBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,iHAAiH;KACpH,CAAC;IACD,MAAM,CAAC;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAC;;mDACiD;AAqB5C;IAnBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC9D,SAAS,CACR,GAAG,EAAE;QACH,OAAO,IAAI,CAAC;IACd,CAAC,EACD;QACE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,SAAS;KAC7B,CACF;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;8BACjB,IAAI;qDAAa;AAkBjC;IAhBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,wEAAwE;KAC3E,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BACuB,QAAQ;uDAAa;AAwBvC;IAtBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC9D,SAAS,CACR,GAAG,EAAE;QACH,OAAO,IAAI,CAAC;IACd,CAAC,EACD;QACE,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,SAAS;KAC7B,CACF;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;8BACjB,IAAI;qDAAa;AAsBjC;IApBN,mBAAmB,CAAC;QACnB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IACD,KAAK,EAAE;IACP,WAAW,CAAC;QACX,IAAI,EAAE,eAAe,CAAC,QAAQ;QAC9B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,wCAAwC;KACtD,CAAC;IACD,MAAM,CAAC;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,QAAQ,CAAC,sBAAsB,EAAE;KAC/C,CAAC;8BACuB,QAAQ;uDAAa;AA/R3B,cAAc;IAtClC,mBAAmB,EAAE;IACrB,yBAAyB,CAAC;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,IAAI;KACtB,CAAC;IACD,YAAY,CAAC,WAAW,CAAC;IACzB,eAAe,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,CAAC;QACN,IAAI,EAAE,gBAAgB;KACvB,CAAC;IACD,aAAa,CAAC;QACb,SAAS,EAAE,gBAAgB;QAC3B,YAAY,EAAE,iBAAiB;QAC/B,UAAU,EAAE,kBAAkB;QAC9B,IAAI,EAAE,QAAQ,CAAC,mBAAmB;QAClC,gBAAgB,EACd,oIAAoI;KACvI,CAAC;IACD,kBAAkB,CAAC;QAClB,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,IAAI,EAAE;YACJ,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE;YACN,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa;SACzB;QACD,MAAM,EAAE,EAAE;KACX,CAAC;GACmB,cAAc,CAgSlC;eAhSoB,cAAc"}
|