@oneuptime/common 12.0.5 → 12.0.7
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/AIInsight.ts +1 -1
- package/Models/DatabaseModels/AIRun.ts +33 -0
- package/Models/DatabaseModels/DataSource.ts +744 -0
- package/Models/DatabaseModels/DatabaseBaseModel/FileModel.ts +2 -3
- package/Models/DatabaseModels/DeletedProject.ts +595 -0
- package/Models/DatabaseModels/Index.ts +5 -0
- package/Models/DatabaseModels/Monitor.ts +111 -0
- package/Models/DatabaseModels/Project.ts +3 -3
- package/Models/DatabaseModels/ProjectCallSMSConfig.ts +10 -2
- package/Models/DatabaseModels/User.ts +2 -0
- package/Models/DatabaseModels/UserOnCallLog.ts +2 -0
- package/Models/DatabaseModels/UserOnCallLogTimeline.ts +2 -0
- package/Models/DatabaseModels/UserSession.ts +2 -0
- package/Models/DatabaseModels/UserTotpAuth.ts +6 -4
- package/Models/DatabaseModels/UserWebAuthn.ts +5 -3
- package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +19 -1
- package/Server/API/AIInsightAPI.ts +47 -4
- package/Server/API/AIInvestigationAPI.ts +25 -0
- package/Server/API/DashboardAPI.ts +176 -492
- package/Server/API/DataSourceAPI.ts +268 -0
- package/Server/API/FileAPI.ts +15 -2
- package/Server/API/MicrosoftTeamsAPI.ts +6 -1
- package/Server/API/ProjectAPI.ts +214 -0
- package/Server/API/StatusPageAPI.ts +50 -7
- package/Server/API/UserAPI.ts +119 -0
- package/Server/Infrastructure/ClickhouseConfig.ts +59 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786303472848-AddDataSourceTable.ts +39 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.ts +50 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.ts +67 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.ts +39 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786600000000-AddInvestigationAnalysisTldr.ts +24 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786700000000-DropProjectCallSMSConfigCredentialUniques.ts +76 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Infrastructure/Queue.ts +26 -0
- package/Server/Infrastructure/QueueWorker.ts +17 -0
- package/Server/Middleware/TelemetryIngest.ts +8 -3
- package/Server/Services/AIAgentService.ts +20 -0
- package/Server/Services/AIInsightService.ts +132 -12
- package/Server/Services/AIRunService.ts +34 -0
- package/Server/Services/AIService.ts +17 -2
- package/Server/Services/AlertService.ts +38 -32
- package/Server/Services/AnalyticsDatabaseService.ts +8 -4
- package/Server/Services/DashboardDomainService.ts +73 -28
- package/Server/Services/DataSourceService.ts +200 -0
- package/Server/Services/DatabaseService.ts +1 -0
- package/Server/Services/DeletedProjectService.ts +138 -0
- package/Server/Services/FileService.ts +61 -0
- package/Server/Services/HostService.ts +92 -0
- package/Server/Services/IncidentEpisodePublicNoteService.ts +18 -0
- package/Server/Services/IncidentPublicNoteService.ts +18 -0
- package/Server/Services/IncidentService.ts +45 -0
- package/Server/Services/Index.ts +4 -0
- package/Server/Services/MonitorService.ts +360 -0
- package/Server/Services/MonitorStatusService.ts +166 -0
- package/Server/Services/OpenTelemetryIngestService.ts +255 -184
- package/Server/Services/ProbeService.ts +20 -0
- package/Server/Services/ProjectService.ts +297 -1
- package/Server/Services/PushNotificationService.ts +71 -0
- package/Server/Services/RumSessionPinService.ts +7 -21
- package/Server/Services/ScheduledMaintenancePublicNoteService.ts +18 -0
- package/Server/Services/StatusPageAnnouncementService.ts +53 -0
- package/Server/Services/StatusPageDomainService.ts +73 -28
- package/Server/Services/StatusPageSubscriberService.ts +13 -0
- package/Server/Services/TeamMemberService.ts +117 -12
- package/Server/Services/TelemetryIngestionKeyService.ts +1 -0
- package/Server/Services/UserService.ts +280 -9
- package/Server/Services/UserWebhookService.ts +34 -109
- package/Server/Services/WorkspaceNotificationRuleService.ts +69 -0
- package/Server/Services/WorkspaceProjectAuthTokenService.ts +37 -1
- package/Server/Static/Vendor/README.md +62 -0
- package/Server/Static/Vendor/fonts/InterVariable.woff2 +0 -0
- package/Server/Static/Vendor/highlight/highlight.min.js +1244 -0
- package/Server/Static/Vendor/highlight/languages/apache.min.js +15 -0
- package/Server/Static/Vendor/highlight/languages/bash.min.js +21 -0
- package/Server/Static/Vendor/highlight/languages/c.min.js +41 -0
- package/Server/Static/Vendor/highlight/languages/cpp.min.js +47 -0
- package/Server/Static/Vendor/highlight/languages/csharp.min.js +49 -0
- package/Server/Static/Vendor/highlight/languages/css.min.js +31 -0
- package/Server/Static/Vendor/highlight/languages/diff.min.js +9 -0
- package/Server/Static/Vendor/highlight/languages/dns.min.js +11 -0
- package/Server/Static/Vendor/highlight/languages/dockerfile.min.js +8 -0
- package/Server/Static/Vendor/highlight/languages/go.min.js +20 -0
- package/Server/Static/Vendor/highlight/languages/graphql.min.js +12 -0
- package/Server/Static/Vendor/highlight/languages/http.min.js +14 -0
- package/Server/Static/Vendor/highlight/languages/ini.min.js +15 -0
- package/Server/Static/Vendor/highlight/languages/java.min.js +38 -0
- package/Server/Static/Vendor/highlight/languages/javascript.min.js +81 -0
- package/Server/Static/Vendor/highlight/languages/json.min.js +8 -0
- package/Server/Static/Vendor/highlight/languages/kotlin.min.js +46 -0
- package/Server/Static/Vendor/highlight/languages/lua.min.js +15 -0
- package/Server/Static/Vendor/highlight/languages/makefile.min.js +14 -0
- package/Server/Static/Vendor/highlight/languages/nginx.min.js +21 -0
- package/Server/Static/Vendor/highlight/languages/perl.min.js +41 -0
- package/Server/Static/Vendor/highlight/languages/php.min.js +59 -0
- package/Server/Static/Vendor/highlight/languages/powershell.min.js +39 -0
- package/Server/Static/Vendor/highlight/languages/python.min.js +42 -0
- package/Server/Static/Vendor/highlight/languages/r.min.js +26 -0
- package/Server/Static/Vendor/highlight/languages/ruby.min.js +54 -0
- package/Server/Static/Vendor/highlight/languages/rust.min.js +27 -0
- package/Server/Static/Vendor/highlight/languages/scala.min.js +28 -0
- package/Server/Static/Vendor/highlight/languages/sql.min.js +21 -0
- package/Server/Static/Vendor/highlight/languages/swift.min.js +68 -0
- package/Server/Static/Vendor/highlight/languages/typescript.min.js +99 -0
- package/Server/Static/Vendor/highlight/languages/xml.min.js +29 -0
- package/Server/Static/Vendor/highlight/languages/yaml.min.js +28 -0
- package/Server/Static/Vendor/highlight/styles/github-dark.min.css +10 -0
- package/Server/Static/Vendor/highlight/styles/vs2015.min.css +1 -0
- package/Server/Static/Vendor/tailwind/tailwind-3.4.5.js +21028 -0
- package/Server/Types/Database/DeleteById.ts +2 -0
- package/Server/Types/Database/DeleteOneBy.ts +6 -0
- package/Server/Types/Database/Permissions/BasePermission.ts +7 -0
- package/Server/Types/Database/Permissions/DeletePermission.ts +2 -0
- package/Server/Types/Database/Permissions/ReadPermission.ts +3 -0
- package/Server/Types/Database/Permissions/TenantPermission.ts +101 -16
- package/Server/Types/Domain.ts +41 -0
- package/Server/Types/Workflow/Components/API/Delete.ts +2 -1
- package/Server/Types/Workflow/Components/API/Get.ts +2 -1
- package/Server/Types/Workflow/Components/API/Patch.ts +2 -1
- package/Server/Types/Workflow/Components/API/Post.ts +2 -1
- package/Server/Types/Workflow/Components/API/Put.ts +2 -1
- package/Server/Types/Workflow/Components/API/Utils.ts +41 -2
- package/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.ts +25 -19
- package/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.ts +6 -5
- package/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.ts +32 -14
- package/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.ts +31 -13
- package/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.ts +29 -20
- package/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.ts +28 -21
- package/Server/Types/Workflow/Components/BaseModel/LogComponentError.ts +89 -0
- package/Server/Types/Workflow/Components/BaseModel/ModelArguments.ts +208 -0
- package/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts +11 -0
- package/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.ts +41 -18
- package/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.ts +45 -19
- package/Server/Types/Workflow/Components/Discord/SendMessageToChannel.ts +16 -9
- package/Server/Types/Workflow/Components/IncomingWebhookUtils.ts +66 -0
- package/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.ts +15 -9
- package/Server/Types/Workflow/Components/Slack/SendMessageToChannel.ts +17 -0
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +1 -1
- package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +171 -0
- package/Server/Utils/AI/CodeFix/FixRunBudget.ts +2 -2
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +90 -11
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +1 -0
- package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +3 -3
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +1 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionIdentity.ts +125 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +25 -15
- package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +256 -57
- package/Server/Utils/AI/SRE/Insights/FixRouting.ts +3 -2
- package/Server/Utils/AI/SRE/Insights/InsightStore.ts +76 -18
- package/Server/Utils/AI/SRE/InvestigationTldr.ts +352 -0
- package/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.ts +1 -1
- package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +6 -6
- package/Server/Utils/AnalyticsDatabase/InsertDedupContext.ts +7 -2
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +43 -5
- package/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.ts +1793 -0
- package/Server/Utils/Dashboard/PublicDashboardViewConfig.ts +65 -0
- package/Server/Utils/DataSource/ConnectorRegistry.ts +53 -0
- package/Server/Utils/DataSource/Connectors/ClickHouseConnector.ts +338 -0
- package/Server/Utils/DataSource/Connectors/ElasticsearchConnector.ts +717 -0
- package/Server/Utils/DataSource/Connectors/LokiConnector.ts +606 -0
- package/Server/Utils/DataSource/Connectors/MySqlConnector.ts +307 -0
- package/Server/Utils/DataSource/Connectors/PostgresConnector.ts +260 -0
- package/Server/Utils/DataSource/Connectors/PrometheusConnector.ts +555 -0
- package/Server/Utils/DataSource/Connectors/RestApiConnector.ts +597 -0
- package/Server/Utils/DataSource/Connectors/SqlServerConnector.ts +318 -0
- package/Server/Utils/DataSource/EgressGuard.ts +606 -0
- package/Server/Utils/DataSource/HttpFetch.ts +182 -0
- package/Server/Utils/DataSource/SqlQueryGuard.ts +383 -0
- package/Server/Utils/DataSource/SqlResultShaper.ts +372 -0
- package/Server/Utils/DataSource/Types.ts +93 -0
- package/Server/Utils/Database/PostgresErrorTranslator.ts +172 -17
- package/Server/Utils/Execute.ts +8 -0
- package/Server/Utils/InProcessMemo.ts +141 -0
- package/Server/Utils/InlineImageAccessTokenSync.ts +23 -0
- package/Server/Utils/InstanceHealth/TelemetryIngestion.ts +628 -0
- package/Server/Utils/LLM/LLMService.ts +57 -12
- package/Server/Utils/Monitor/MonitorAlert.ts +40 -0
- package/Server/Utils/Monitor/MonitorDependencySuppression.ts +192 -0
- package/Server/Utils/Monitor/MonitorIncident.ts +40 -0
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +58 -0
- package/Server/Utils/Monitor/MonitorResource.ts +50 -0
- package/Server/Utils/Response.ts +154 -7
- package/Server/Utils/SSRFProtection.ts +450 -0
- package/Server/Utils/StartServer.ts +16 -0
- package/Server/Utils/StatusPageSubscriberWebhook.ts +30 -0
- package/Server/Utils/Telemetry/CaptureSpan.ts +30 -18
- package/Server/Utils/Telemetry/IngestionTimestamp.ts +75 -0
- package/Server/Utils/Telemetry/ResourceHeartbeat.ts +99 -7
- package/Server/Utils/Telemetry/Telemetry.ts +112 -1
- package/Server/Utils/Telemetry.ts +104 -3
- package/Server/Utils/VM/VMRunner.ts +88 -1
- package/Server/Utils/VendorAssets.ts +165 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +582 -53
- package/Server/Utils/Workspace/Slack/Slack.ts +30 -2
- package/Server/Utils/Workspace/WorkspaceBase.ts +6 -0
- package/Server/Views/Partials/Head.ejs +21 -7
- package/Tests/App/AdminDashboard/AdminProjectsIdFilter.test.tsx +207 -0
- package/Tests/App/AdminDashboard/AdminUsersIdFilter.test.tsx +216 -0
- package/Tests/App/Dashboard/AIInsightViewActions.test.tsx +422 -0
- package/Tests/App/Dashboard/AddWidgetModal.test.tsx +10 -3
- package/Tests/App/Dashboard/AlertsSideMenu.test.tsx +387 -0
- package/Tests/App/Dashboard/ChatActivityFeed.test.tsx +199 -0
- package/Tests/App/Dashboard/DangerZone.test.tsx +334 -0
- package/Tests/App/Dashboard/DashboardVariableAllContract.test.tsx +539 -0
- package/Tests/App/Dashboard/DashboardVariableSelector.test.tsx +678 -0
- package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +706 -0
- package/Tests/App/Dashboard/DashboardVariablesModal.test.tsx +508 -0
- package/Tests/App/Dashboard/DataSourceChartSyntheticConfig.test.tsx +736 -0
- package/Tests/App/Dashboard/DataSourceQueryEditor.test.tsx +868 -0
- package/Tests/App/Dashboard/DataSourceWidgetCatalog.test.ts +440 -0
- package/Tests/App/Dashboard/DataSourceWidgetFetching.test.tsx +2109 -0
- package/Tests/App/Dashboard/DataSourceWidgetViews.test.tsx +726 -0
- package/Tests/App/Dashboard/IncidentsSideMenu.test.tsx +447 -0
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +514 -3
- package/Tests/App/Dashboard/ProductMenuBreadcrumbs.test.tsx +391 -0
- package/Tests/App/Dashboard/ScheduledMaintenanceSideMenu.test.tsx +326 -0
- package/Tests/App/Dashboard/SideMenuHarness.tsx +187 -0
- package/Tests/App/Dashboard/WidgetCatalog.test.ts +6 -1
- package/Tests/App/PublicDashboard/DashboardVariableSelector.test.tsx +470 -0
- package/Tests/App/StatusPage/StatusPageDetailPagesNotFound.test.tsx +308 -0
- package/Tests/App/StatusPage/StatusPageResourceExplorer.test.tsx +1858 -0
- package/Tests/Models/DatabaseModels/DataSourceModelSecrets.test.ts +70 -0
- package/Tests/Models/DatabaseModels/DeletedProjectModel.test.ts +251 -0
- package/Tests/Models/DatabaseModels/SavedViewJSONColumnTuples.test.ts +115 -0
- package/Tests/Server/API/AIInvestigationAPI.test.ts +187 -0
- package/Tests/Server/API/DashboardPublicDataSourceStrip.test.ts +686 -0
- package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +585 -823
- package/Tests/Server/API/DataSourceAPIRoutes.test.ts +486 -0
- package/Tests/Server/API/FileAPIAccessControl.test.ts +316 -0
- package/Tests/Server/API/ProjectAPI.test.ts +299 -1
- package/Tests/Server/API/ProjectAPIAdjustBalance.test.ts +459 -0
- package/Tests/Server/API/ProjectAPIAdjustBalanceBillingDisabled.test.ts +177 -0
- package/Tests/Server/API/StatusPageSubscriberOwnership.test.ts +291 -0
- package/Tests/Server/API/UserAuthenticationAPI.test.ts +641 -0
- package/Tests/Server/Infrastructure/ClickhouseKeepAliveOptions.test.ts +441 -0
- package/Tests/Server/Middleware/TelemetryIngestTokenLog.test.ts +140 -0
- package/Tests/Server/Services/AIInsightService.test.ts +266 -11
- package/Tests/Server/Services/AIRunAnalysisTldrPersistence.test.ts +160 -0
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +4 -0
- package/Tests/Server/Services/AlertMetricResourceAttributes.test.ts +352 -0
- package/Tests/Server/Services/DataSourceServiceSettings.test.ts +244 -0
- package/Tests/Server/Services/DatabaseServiceDeletionReason.test.ts +123 -0
- package/Tests/Server/Services/DeletedProjectService.test.ts +415 -0
- package/Tests/Server/Services/DeletedProjectServiceSelfHosted.test.ts +70 -0
- package/Tests/Server/Services/DomainSubdomainHooks.test.ts +94 -0
- package/Tests/Server/Services/FileIsPublicBooleanMigration.test.ts +244 -0
- package/Tests/Server/Services/FileServiceMimeType.test.ts +89 -0
- package/Tests/Server/Services/HostServiceFindOrCreateMemo.test.ts +397 -0
- package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +41 -2
- package/Tests/Server/Services/IncidentMetricResourceAttributes.test.ts +408 -0
- package/Tests/Server/Services/MonitorServiceDependencyValidation.test.ts +702 -0
- package/Tests/Server/Services/MonitorStatusServiceDeleteReferenceCleanup.test.ts +351 -0
- package/Tests/Server/Services/MonitorStatusServiceValidation.test.ts +171 -0
- package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +398 -0
- package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +19 -0
- package/Tests/Server/Services/ProjectCallSMSConfigCredentialUniqueness.test.ts +305 -0
- package/Tests/Server/Services/ProjectServiceAdjustBalance.test.ts +615 -0
- package/Tests/Server/Services/ProjectServiceDeleteAudit.test.ts +406 -0
- package/Tests/Server/Services/PublishTimeImageVisibility.test.ts +450 -0
- package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +36 -1
- package/Tests/Server/Services/RumSessionPinUniqueViolationRecovery.test.ts +163 -0
- package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +669 -0
- package/Tests/Server/Services/UserAuthenticationService.test.ts +973 -0
- package/Tests/Server/Services/UserWebhookSSRF.test.ts +174 -0
- package/Tests/Server/Services/WebPushEndpointAllowlist.test.ts +133 -0
- package/Tests/Server/Services/WorkspaceProjectAuthTokenRepoint.test.ts +618 -0
- package/Tests/Server/Types/Database/ObjectIdColumnQuery.test.ts +262 -0
- package/Tests/Server/Types/Database/Permissions/TenantPermission.test.ts +358 -0
- package/Tests/Server/Types/Workflow/Components/ApiComponentErrorPort.test.ts +26 -1
- package/Tests/Server/Types/Workflow/Components/ApiComponentSsrf.test.ts +215 -0
- package/Tests/Server/Types/Workflow/Components/BaseModelDatabaseComponents.test.ts +742 -0
- package/Tests/Server/Types/Workflow/Components/ChatWebhookComponents.test.ts +256 -0
- package/Tests/Server/Types/Workflow/Components/ModelArguments.test.ts +371 -0
- package/Tests/Server/Utils/AI/CodeAgentCommandGuard.test.ts +204 -0
- package/Tests/Server/Utils/AI/CodeAgentWriteLimits.test.ts +213 -0
- package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +52 -5
- package/Tests/Server/Utils/AI/FixRunBudget.test.ts +2 -2
- package/Tests/Server/Utils/AI/Insights/ExceptionSpikeDetector.test.ts +6 -1
- package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +121 -4
- package/Tests/Server/Utils/AI/Insights/NewExceptionDetector.test.ts +361 -10
- package/Tests/Server/Utils/AI/InvestigationSettlement.test.ts +292 -0
- package/Tests/Server/Utils/AI/InvestigationTldr.test.ts +623 -0
- package/Tests/Server/Utils/AI/InvestigationTldrWiring.test.ts +98 -0
- package/Tests/Server/Utils/AI/LLMServiceBaseUrl.test.ts +3 -0
- package/Tests/Server/Utils/AI/LLMServiceEgressGuard.test.ts +315 -0
- package/Tests/Server/Utils/AI/LLMServiceModelCompatibility.test.ts +3 -0
- package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +17 -5
- package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +14 -1
- package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +35 -0
- package/Tests/Server/Utils/AI/StubLLMEgressGuard.ts +25 -0
- package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +912 -0
- package/Tests/Server/Utils/Dashboard/PublicDashboardViewConfig.test.ts +480 -0
- package/Tests/Server/Utils/DataSource/ClickHouseConnector.test.ts +759 -0
- package/Tests/Server/Utils/DataSource/ConnectorRegistry.test.ts +37 -0
- package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +714 -0
- package/Tests/Server/Utils/DataSource/EgressGuardPinning.test.ts +330 -0
- package/Tests/Server/Utils/DataSource/ElasticsearchConnector.test.ts +1206 -0
- package/Tests/Server/Utils/DataSource/HttpFetch.test.ts +616 -0
- package/Tests/Server/Utils/DataSource/LokiConnector.test.ts +970 -0
- package/Tests/Server/Utils/DataSource/MySqlConnector.test.ts +935 -0
- package/Tests/Server/Utils/DataSource/PostgresConnector.test.ts +854 -0
- package/Tests/Server/Utils/DataSource/PrometheusConnector.test.ts +881 -0
- package/Tests/Server/Utils/DataSource/RestApiConnector.test.ts +1020 -0
- package/Tests/Server/Utils/DataSource/SqlQueryGuard.test.ts +425 -0
- package/Tests/Server/Utils/DataSource/SqlResultShaper.test.ts +555 -0
- package/Tests/Server/Utils/DataSource/SqlServerConnector.test.ts +934 -0
- package/Tests/Server/Utils/Database/PostgresErrorTranslator.test.ts +228 -7
- package/Tests/Server/Utils/GitHubCreatePullRequestWithToken.test.ts +393 -0
- package/Tests/Server/Utils/InProcessMemo.test.ts +292 -0
- package/Tests/Server/Utils/InlineImageAccessTokenSync.test.ts +202 -0
- package/Tests/Server/Utils/InstanceHealth/TelemetryIngestion.test.ts +960 -0
- package/Tests/Server/Utils/MicrosoftTeamsWebhookUrlValidation.test.ts +103 -0
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppression.test.ts +811 -0
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +604 -0
- package/Tests/Server/Utils/Monitor/MonitorMetricResourceAttributes.test.ts +336 -0
- package/Tests/Server/Utils/OfflineAssetHygiene.test.ts +521 -0
- package/Tests/Server/Utils/ResponseRenderAnalytics.test.ts +143 -0
- package/Tests/Server/Utils/ResponseSendFileResponse.test.ts +192 -0
- package/Tests/Server/Utils/SSRFProtection.test.ts +193 -0
- package/Tests/Server/Utils/SSRFProtectionBypasses.test.ts +406 -0
- package/Tests/Server/Utils/StatusPageSubscriberWebhook.test.ts +101 -0
- package/Tests/Server/Utils/TailwindBuildCopy.test.ts +225 -0
- package/Tests/Server/Utils/Telemetry/ResourceHeartbeatL1Memo.test.ts +355 -0
- package/Tests/Server/Utils/Telemetry/TelemetryFanInWriter.test.ts +128 -0
- package/Tests/Server/Utils/Telemetry/TelemetryUtilAttributeKeys.test.ts +381 -0
- package/Tests/Server/Utils/Telemetry.test.ts +87 -0
- package/Tests/Server/Utils/VM/VMRunnerSsrf.test.ts +194 -0
- package/Tests/Server/Utils/VendorAssetIntegrity.test.ts +343 -0
- package/Tests/Server/Utils/VendorAssets.test.ts +671 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +1169 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelsList.test.ts +2 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsTeamInstalls.test.ts +1605 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsTenantResolution.test.ts +1218 -0
- package/Tests/Server/Views/OfflineRender.test.ts +297 -0
- package/Tests/Types/AI/AIChatMessageStatus.test.ts +79 -0
- package/Tests/Types/AI/AIInsightStatus.test.ts +40 -0
- package/Tests/Types/API/HostnameAuthorityParsing.test.ts +157 -0
- package/Tests/Types/Dashboard/DashboardTemplateInvariants.test.ts +27 -0
- package/Tests/Types/Dashboard/DataSourceComponentTypes.test.ts +618 -0
- package/Tests/Types/DataSource/DataSourceLimits.test.ts +71 -0
- package/Tests/Types/DataSource/DataSourceType.test.ts +181 -0
- package/Tests/Types/DateClickhouseFormat.test.ts +192 -0
- package/Tests/Types/DomainSubdomainValidation.test.ts +90 -0
- package/Tests/Types/JSONFunctions.test.ts +252 -1
- package/Tests/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.test.ts +61 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.test.ts +62 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.test.ts +68 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpVersion.test.ts +51 -0
- package/Tests/Types/Password.test.ts +363 -0
- package/Tests/UI/Components/404.test.tsx +1 -1
- package/Tests/UI/Components/Alert.test.tsx +1 -1
- package/Tests/UI/Components/Badge.test.tsx +1 -1
- package/Tests/UI/Components/BasicForm.test.tsx +39 -10
- package/Tests/UI/Components/Button.test.tsx +1 -1
- package/Tests/UI/Components/Card.test.tsx +1 -1
- package/Tests/UI/Components/Charts/AxisTickColor.test.tsx +1 -1
- package/Tests/UI/Components/ColorViewer.test.tsx +1 -1
- package/Tests/UI/Components/ComponentsModal.test.tsx +7 -1
- package/Tests/UI/Components/ConfirmModal.test.tsx +7 -0
- package/Tests/UI/Components/DictionaryOfStrings.test.tsx +1 -1
- package/Tests/UI/Components/Dropdown.test.tsx +1 -1
- package/Tests/UI/Components/ErrorBoundary.test.tsx +53 -0
- package/Tests/UI/Components/FilePicker.test.tsx +1 -1
- package/Tests/UI/Components/HiddenText.test.tsx +1 -1
- package/Tests/UI/Components/Input.test.tsx +1 -1
- package/Tests/UI/Components/Loader.test.tsx +1 -1
- package/Tests/UI/Components/LogTimeRangePicker.test.tsx +1 -1
- package/Tests/UI/Components/MasterPage.test.tsx +1 -1
- package/Tests/UI/Components/Modal.test.tsx +281 -1
- package/Tests/UI/Components/ModalPortalDismissal.test.tsx +489 -0
- package/Tests/UI/Components/ModelDelete.test.tsx +214 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableBulkSelectAll.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/BaseModelTableSearchLabels.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/BaseModelTableUrlState.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +1 -1
- package/Tests/UI/Components/NavBar.test.tsx +1 -1
- package/Tests/UI/Components/ObjectIdFilterPipeline.test.tsx +396 -0
- package/Tests/UI/Components/OperatorSelectorKeyboard.test.tsx +1 -1
- package/Tests/UI/Components/Pagination.test.tsx +1 -1
- package/Tests/UI/Components/Pill.test.tsx +1 -1
- package/Tests/UI/Components/Probe.test.tsx +1 -1
- package/Tests/UI/Components/ProgressBar.test.tsx +1 -1
- package/Tests/UI/Components/RadioButtons.test.tsx +1 -1
- package/Tests/UI/Components/SideMenuItem.test.tsx +1 -1
- package/Tests/UI/Components/SideOver.test.tsx +500 -6
- package/Tests/UI/Components/StatusPage/ResourceGroupNavigator.test.tsx +1147 -0
- package/Tests/UI/Components/Tabs.test.tsx +1 -1
- package/Tests/UI/Components/TelemetrySearchBar.test.tsx +1 -1
- package/Tests/UI/Components/TelemetryTimeRangePicker.test.tsx +1 -1
- package/Tests/UI/Components/TextArea.test.tsx +1 -1
- package/Tests/UI/Components/Toast.test.tsx +1 -1
- package/Tests/UI/Components/Toggle.test.tsx +1 -1
- package/Tests/UI/Components/TopSection.test.tsx +1 -1
- package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +1 -1
- package/Tests/UI/Rum/ReplayScrubber.test.tsx +1 -1
- package/Tests/UI/Rum/ReplayStage.test.tsx +1 -1
- package/Tests/UI/Telemetry/TelemetrySnapshotWindowAlert.test.tsx +1 -1
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +116 -1
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
- package/Tests/UI/Utils/LocalStorageArrayRoundTrip.test.ts +72 -0
- package/Tests/Utils/Analytics.test.ts +23 -0
- package/Tests/Utils/Dashboard/Components/DashboardDataSourceComponents.test.ts +640 -0
- package/Tests/Utils/Dashboard/HtmlWidgetDocument.test.ts +19 -2
- package/Tests/Utils/Dashboard/ModelQueryVariableInterpolation.test.ts +44 -0
- package/Tests/Utils/Dashboard/VariableInterpolation.test.ts +288 -5
- package/Tests/Utils/Dashboard/VariableUrlState.test.ts +42 -0
- package/Tests/Utils/DataSource/DataSourceQueryText.test.ts +165 -0
- package/Tests/Utils/DataSource/DataSourceValueReducer.test.ts +526 -0
- package/Tests/Utils/LegacySerializedArray.test.ts +139 -0
- package/Tests/Utils/Metrics/MetricResourceAttributeUtil.test.ts +691 -0
- package/Tests/Utils/Monitor/MonitorDependencyRule.test.ts +190 -0
- package/Tests/Utils/Realtime.test.ts +78 -0
- package/Tests/Utils/StatusPage/GroupHierarchyView.test.ts +1452 -0
- package/Tests/Utils/StatusPage/ResourceExplorer.test.ts +931 -0
- package/Tests/Utils/Telemetry/CaptureSpanExportGating.test.ts +288 -0
- package/Tests/Utils/Telemetry/IngestionTimestamp.test.ts +170 -0
- package/Tests/Utils/Telemetry/SavedViewFilters.test.ts +246 -0
- package/Tests/__mocks__/i18next-browser-languagedetector.js +21 -0
- package/Types/AI/AIInsightEvidence.ts +6 -0
- package/Types/AI/FixPullRequestCiStatus.ts +1 -1
- package/Types/AI/FixVerificationStatus.ts +2 -2
- package/Types/API/Hostname.ts +92 -4
- package/Types/API/URL.ts +43 -25
- package/Types/Analytics/RevenueEvent.ts +31 -0
- package/Types/Billing/BalanceAdjustmentType.ts +14 -0
- package/Types/Billing/ProjectBalanceType.ts +13 -0
- package/Types/Dashboard/DashboardComponentType.ts +31 -0
- package/Types/Dashboard/DashboardComponents/DashboardDataSourceChartComponent.ts +27 -0
- package/Types/Dashboard/DashboardComponents/DashboardDataSourceGaugeComponent.ts +32 -0
- package/Types/Dashboard/DashboardComponents/DashboardDataSourceTableComponent.ts +30 -0
- package/Types/Dashboard/DashboardComponents/DashboardDataSourceValueComponent.ts +55 -0
- package/Types/DataSource/DataSourceLimits.ts +62 -0
- package/Types/DataSource/DataSourceQueryConfig.ts +41 -0
- package/Types/DataSource/DataSourceTableResult.ts +38 -0
- package/Types/DataSource/DataSourceType.ts +213 -0
- package/Types/Date.ts +43 -3
- package/Types/Domain.ts +26 -0
- package/Types/File/MimeType.ts +11 -0
- package/Types/JSONFunctions.ts +15 -0
- package/Types/Password.ts +64 -0
- package/Types/Permission.ts +46 -0
- package/Types/Telemetry/TelemetrySavedViewState.ts +9 -1
- package/Types/UserAuthenticationStatus.ts +34 -0
- package/Types/Workflow/Components/BaseModel.ts +92 -28
- package/Typings/Index.d.ts +12 -0
- package/UI/Components/Button/Button.tsx +1 -1
- package/UI/Components/ErrorBoundary.tsx +459 -108
- package/UI/Components/GanttChart/ChartContainer.tsx +4 -3
- package/UI/Components/Icon/Icon.tsx +10 -9
- package/UI/Components/Modal/ConfirmModal.tsx +15 -5
- package/UI/Components/Modal/Modal.tsx +247 -35
- package/UI/Components/Modal/ModalFooter.tsx +6 -1
- package/UI/Components/ModelDelete/ModelDelete.tsx +23 -6
- package/UI/Components/MoreMenu/MoreMenu.tsx +19 -4
- package/UI/Components/MoreMenu/MoreMenuItem.tsx +6 -1
- package/UI/Components/SideOver/SideOver.tsx +195 -68
- package/UI/Components/StatusPage/ResourceGrid.tsx +314 -0
- package/UI/Components/StatusPage/ResourceGroupNavigator.tsx +808 -0
- package/UI/Components/StatusPage/ResourceList.tsx +570 -0
- package/UI/Styles/Theme.css +18 -0
- package/UI/Utils/API/RequestOptions.ts +7 -0
- package/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.ts +1 -0
- package/UI/Utils/ModelAPI/ModelAPI.ts +1 -0
- package/UI/Utils/PageScrollLock.ts +66 -0
- package/UI/Utils/TestDataSource.ts +61 -0
- package/UI/esbuild-config.js +45 -0
- package/Utils/Analytics.ts +15 -0
- package/Utils/Dashboard/Components/DashboardDataSourceChartComponent.ts +88 -0
- package/Utils/Dashboard/Components/DashboardDataSourceGaugeComponent.ts +123 -0
- package/Utils/Dashboard/Components/DashboardDataSourceShared.ts +16 -0
- package/Utils/Dashboard/Components/DashboardDataSourceTableComponent.ts +72 -0
- package/Utils/Dashboard/Components/DashboardDataSourceValueComponent.ts +126 -0
- package/Utils/Dashboard/Components/Index.ts +28 -0
- package/Utils/Dashboard/HtmlWidgetDocument.ts +4 -2
- package/Utils/Dashboard/VariableInterpolation.ts +19 -1
- package/Utils/DataSource/DataSourceQueryText.ts +94 -0
- package/Utils/DataSource/DataSourceValueReducer.ts +156 -0
- package/Utils/LegacySerializedArray.ts +60 -0
- package/Utils/Metrics/MetricResourceAttributeUtil.ts +380 -0
- package/Utils/Monitor/MonitorDependencyRule.ts +88 -0
- package/Utils/NetworkDiscovery/ScanTargetUtil.ts +8 -6
- package/Utils/StatusPage/GroupHierarchyView.ts +931 -0
- package/Utils/StatusPage/ResourceExplorer.ts +853 -0
- package/Utils/Telemetry/SavedViewFilters.ts +88 -0
- package/build/dist/Models/DatabaseModels/AIInsight.js +1 -1
- package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIRun.js +34 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DataSource.js +774 -0
- package/build/dist/Models/DatabaseModels/DataSource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/FileModel.js +2 -3
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/FileModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DeletedProject.js +640 -0
- package/build/dist/Models/DatabaseModels/DeletedProject.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +4 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +106 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +3 -3
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js +14 -4
- package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/User.js +2 -0
- package/build/dist/Models/DatabaseModels/User.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js +2 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserSession.js +2 -0
- package/build/dist/Models/DatabaseModels/UserSession.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserTotpAuth.js +6 -4
- package/build/dist/Models/DatabaseModels/UserTotpAuth.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js +5 -3
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
- package/build/dist/Server/API/AIInsightAPI.js +34 -4
- package/build/dist/Server/API/AIInsightAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +23 -0
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +119 -433
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/DataSourceAPI.js +173 -0
- package/build/dist/Server/API/DataSourceAPI.js.map +1 -0
- package/build/dist/Server/API/FileAPI.js +14 -2
- package/build/dist/Server/API/FileAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +6 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/ProjectAPI.js +157 -4
- package/build/dist/Server/API/ProjectAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +38 -4
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/UserAPI.js +94 -2
- package/build/dist/Server/API/UserAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js +49 -0
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786303472848-AddDataSourceTable.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786303472848-AddDataSourceTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786600000000-AddInvestigationAnalysisTldr.js +19 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786600000000-AddInvestigationAnalysisTldr.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786700000000-DropProjectCallSMSConfigCredentialUniques.js +64 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786700000000-DropProjectCallSMSConfigCredentialUniques.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Queue.js +27 -0
- package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
- package/build/dist/Server/Infrastructure/QueueWorker.js +13 -0
- package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +8 -3
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Services/AIAgentService.js +17 -0
- package/build/dist/Server/Services/AIAgentService.js.map +1 -1
- package/build/dist/Server/Services/AIInsightService.js +110 -10
- package/build/dist/Server/Services/AIInsightService.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +34 -0
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +16 -2
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +28 -35
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +8 -4
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DashboardDomainService.js +55 -18
- package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
- package/build/dist/Server/Services/DataSourceService.js +159 -0
- package/build/dist/Server/Services/DataSourceService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseService.js +1 -0
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DeletedProjectService.js +124 -0
- package/build/dist/Server/Services/DeletedProjectService.js.map +1 -0
- package/build/dist/Server/Services/FileService.js +52 -0
- package/build/dist/Server/Services/FileService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +74 -0
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js +10 -1
- package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/IncidentPublicNoteService.js +10 -1
- package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +35 -24
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +4 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +277 -0
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusService.js +129 -0
- package/build/dist/Server/Services/MonitorStatusService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +222 -159
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/ProbeService.js +17 -0
- package/build/dist/Server/Services/ProbeService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +228 -6
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/PushNotificationService.js +56 -0
- package/build/dist/Server/Services/PushNotificationService.js.map +1 -1
- package/build/dist/Server/Services/RumSessionPinService.js +7 -15
- package/build/dist/Server/Services/RumSessionPinService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +10 -1
- package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageAnnouncementService.js +54 -0
- package/build/dist/Server/Services/StatusPageAnnouncementService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageDomainService.js +55 -18
- package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageSubscriberService.js +10 -0
- package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +97 -6
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryIngestionKeyService.js +1 -0
- package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +241 -10
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/UserWebhookService.js +31 -87
- package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +65 -0
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceProjectAuthTokenService.js +23 -0
- package/build/dist/Server/Services/WorkspaceProjectAuthTokenService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js +6 -0
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/DeletePermission.js +1 -0
- package/build/dist/Server/Types/Database/Permissions/DeletePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/ReadPermission.js +2 -0
- package/build/dist/Server/Types/Database/Permissions/ReadPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js +68 -12
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js.map +1 -1
- package/build/dist/Server/Types/Domain.js +37 -0
- package/build/dist/Server/Types/Domain.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Delete.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Delete.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Get.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Get.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Patch.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Patch.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Post.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Put.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Put.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Utils.js +35 -2
- package/build/dist/Server/Types/Workflow/Components/API/Utils.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js +15 -11
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js +2 -3
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.js +21 -10
- package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.js +21 -10
- package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.js +18 -13
- package/build/dist/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.js +18 -13
- package/build/dist/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/LogComponentError.js +43 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/LogComponentError.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js +116 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js +7 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.js +24 -13
- package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.js +27 -13
- package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Discord/SendMessageToChannel.js +14 -6
- package/build/dist/Server/Types/Workflow/Components/Discord/SendMessageToChannel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/IncomingWebhookUtils.js +42 -0
- package/build/dist/Server/Types/Workflow/Components/IncomingWebhookUtils.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js +15 -6
- package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Slack/SendMessageToChannel.js +10 -2
- package/build/dist/Server/Types/Workflow/Components/Slack/SendMessageToChannel.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +141 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +2 -2
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +68 -8
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +1 -0
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +1 -0
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionIdentity.js +97 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionIdentity.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +17 -15
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +178 -54
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js +65 -16
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationTldr.js +303 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationTldr.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.js +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +6 -6
- package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/InsertDedupContext.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +39 -5
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js +1261 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js.map +1 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardViewConfig.js +47 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardViewConfig.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/ConnectorRegistry.js +42 -0
- package/build/dist/Server/Utils/DataSource/ConnectorRegistry.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/ClickHouseConnector.js +187 -0
- package/build/dist/Server/Utils/DataSource/Connectors/ClickHouseConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/ElasticsearchConnector.js +493 -0
- package/build/dist/Server/Utils/DataSource/Connectors/ElasticsearchConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/LokiConnector.js +399 -0
- package/build/dist/Server/Utils/DataSource/Connectors/LokiConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/MySqlConnector.js +195 -0
- package/build/dist/Server/Utils/DataSource/Connectors/MySqlConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/PostgresConnector.js +149 -0
- package/build/dist/Server/Utils/DataSource/Connectors/PostgresConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/PrometheusConnector.js +362 -0
- package/build/dist/Server/Utils/DataSource/Connectors/PrometheusConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/RestApiConnector.js +342 -0
- package/build/dist/Server/Utils/DataSource/Connectors/RestApiConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Connectors/SqlServerConnector.js +186 -0
- package/build/dist/Server/Utils/DataSource/Connectors/SqlServerConnector.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/EgressGuard.js +389 -0
- package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/HttpFetch.js +116 -0
- package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/SqlQueryGuard.js +331 -0
- package/build/dist/Server/Utils/DataSource/SqlQueryGuard.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/SqlResultShaper.js +280 -0
- package/build/dist/Server/Utils/DataSource/SqlResultShaper.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/Types.js +2 -0
- package/build/dist/Server/Utils/DataSource/Types.js.map +1 -0
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js +103 -9
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js.map +1 -1
- package/build/dist/Server/Utils/Execute.js +2 -2
- package/build/dist/Server/Utils/Execute.js.map +1 -1
- package/build/dist/Server/Utils/InProcessMemo.js +113 -0
- package/build/dist/Server/Utils/InProcessMemo.js.map +1 -0
- package/build/dist/Server/Utils/InlineImageAccessTokenSync.js +13 -0
- package/build/dist/Server/Utils/InlineImageAccessTokenSync.js.map +1 -1
- package/build/dist/Server/Utils/InstanceHealth/TelemetryIngestion.js +406 -0
- package/build/dist/Server/Utils/InstanceHealth/TelemetryIngestion.js.map +1 -0
- package/build/dist/Server/Utils/LLM/LLMService.js +43 -12
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +44 -24
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorDependencySuppression.js +158 -0
- package/build/dist/Server/Utils/Monitor/MonitorDependencySuppression.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +50 -30
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +34 -0
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +46 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Response.js +121 -6
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/SSRFProtection.js +358 -0
- package/build/dist/Server/Utils/SSRFProtection.js.map +1 -0
- package/build/dist/Server/Utils/StartServer.js +14 -0
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js +24 -0
- package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/CaptureSpan.js +25 -11
- package/build/dist/Server/Utils/Telemetry/CaptureSpan.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/IngestionTimestamp.js +32 -0
- package/build/dist/Server/Utils/Telemetry/IngestionTimestamp.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +92 -5
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +92 -6
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry.js +93 -6
- package/build/dist/Server/Utils/Telemetry.js.map +1 -1
- package/build/dist/Server/Utils/VM/VMRunner.js +73 -1
- package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
- package/build/dist/Server/Utils/VendorAssets.js +121 -0
- package/build/dist/Server/Utils/VendorAssets.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +469 -46
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +23 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
- package/build/dist/Types/AI/FixPullRequestCiStatus.js +1 -1
- package/build/dist/Types/AI/FixVerificationStatus.js +2 -2
- package/build/dist/Types/API/Hostname.js +73 -4
- package/build/dist/Types/API/Hostname.js.map +1 -1
- package/build/dist/Types/API/URL.js +42 -24
- package/build/dist/Types/API/URL.js.map +1 -1
- package/build/dist/Types/Analytics/RevenueEvent.js +26 -0
- package/build/dist/Types/Analytics/RevenueEvent.js.map +1 -0
- package/build/dist/Types/Billing/BalanceAdjustmentType.js +15 -0
- package/build/dist/Types/Billing/BalanceAdjustmentType.js.map +1 -0
- package/build/dist/Types/Billing/ProjectBalanceType.js +14 -0
- package/build/dist/Types/Billing/ProjectBalanceType.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js +27 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceChartComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceChartComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceGaugeComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceGaugeComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceTableComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceTableComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceValueComponent.js +16 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDataSourceValueComponent.js.map +1 -0
- package/build/dist/Types/DataSource/DataSourceLimits.js +47 -0
- package/build/dist/Types/DataSource/DataSourceLimits.js.map +1 -0
- package/build/dist/Types/DataSource/DataSourceQueryConfig.js +10 -0
- package/build/dist/Types/DataSource/DataSourceQueryConfig.js.map +1 -0
- package/build/dist/Types/DataSource/DataSourceTableResult.js +14 -0
- package/build/dist/Types/DataSource/DataSourceTableResult.js.map +1 -0
- package/build/dist/Types/DataSource/DataSourceType.js +183 -0
- package/build/dist/Types/DataSource/DataSourceType.js.map +1 -0
- package/build/dist/Types/Date.js +38 -3
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Domain.js +22 -0
- package/build/dist/Types/Domain.js.map +1 -1
- package/build/dist/Types/File/MimeType.js +11 -0
- package/build/dist/Types/File/MimeType.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js +14 -0
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/Password.js +56 -0
- package/build/dist/Types/Password.js.map +1 -0
- package/build/dist/Types/Permission.js +42 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/UserAuthenticationStatus.js +2 -0
- package/build/dist/Types/UserAuthenticationStatus.js.map +1 -0
- package/build/dist/Types/Workflow/Components/BaseModel.js +83 -28
- package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
- package/build/dist/UI/Components/ErrorBoundary.js +388 -72
- package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
- package/build/dist/UI/Components/GanttChart/ChartContainer.js +4 -3
- package/build/dist/UI/Components/GanttChart/ChartContainer.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +10 -4
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js +3 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +168 -19
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js +3 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js.map +1 -1
- package/build/dist/UI/Components/ModelDelete/ModelDelete.js +11 -6
- package/build/dist/UI/Components/ModelDelete/ModelDelete.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +9 -6
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +7 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideOver/SideOver.js +105 -30
- package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
- package/build/dist/UI/Components/StatusPage/ResourceGrid.js +119 -0
- package/build/dist/UI/Components/StatusPage/ResourceGrid.js.map +1 -0
- package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js +354 -0
- package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js.map +1 -0
- package/build/dist/UI/Components/StatusPage/ResourceList.js +203 -0
- package/build/dist/UI/Components/StatusPage/ResourceList.js.map +1 -0
- package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js +1 -6
- package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +3 -8
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/PageScrollLock.js +52 -0
- package/build/dist/UI/Utils/PageScrollLock.js.map +1 -0
- package/build/dist/UI/Utils/TestDataSource.js +39 -0
- package/build/dist/UI/Utils/TestDataSource.js.map +1 -0
- package/build/dist/Utils/Analytics.js +4 -0
- package/build/dist/Utils/Analytics.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceChartComponent.js +79 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceChartComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceGaugeComponent.js +111 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceGaugeComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceShared.js +15 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceShared.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceTableComponent.js +62 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceTableComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceValueComponent.js +112 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDataSourceValueComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +16 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js +4 -2
- package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js.map +1 -1
- package/build/dist/Utils/Dashboard/VariableInterpolation.js +19 -1
- package/build/dist/Utils/Dashboard/VariableInterpolation.js.map +1 -1
- package/build/dist/Utils/DataSource/DataSourceQueryText.js +64 -0
- package/build/dist/Utils/DataSource/DataSourceQueryText.js.map +1 -0
- package/build/dist/Utils/DataSource/DataSourceValueReducer.js +124 -0
- package/build/dist/Utils/DataSource/DataSourceValueReducer.js.map +1 -0
- package/build/dist/Utils/LegacySerializedArray.js +51 -0
- package/build/dist/Utils/LegacySerializedArray.js.map +1 -0
- package/build/dist/Utils/Metrics/MetricResourceAttributeUtil.js +281 -0
- package/build/dist/Utils/Metrics/MetricResourceAttributeUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorDependencyRule.js +47 -0
- package/build/dist/Utils/Monitor/MonitorDependencyRule.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/ScanTargetUtil.js +8 -6
- package/build/dist/Utils/NetworkDiscovery/ScanTargetUtil.js.map +1 -1
- package/build/dist/Utils/StatusPage/GroupHierarchyView.js +560 -0
- package/build/dist/Utils/StatusPage/GroupHierarchyView.js.map +1 -0
- package/build/dist/Utils/StatusPage/ResourceExplorer.js +519 -0
- package/build/dist/Utils/StatusPage/ResourceExplorer.js.map +1 -0
- package/build/dist/Utils/Telemetry/SavedViewFilters.js +52 -0
- package/build/dist/Utils/Telemetry/SavedViewFilters.js.map +1 -0
- package/jest.config.json +4 -0
- package/package.json +5 -1
- package/tsconfig.json +14 -10
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* The real detector is only installed in the frontend feature sets. Tests that
|
|
5
|
+
* render status page components import Utils/i18n, which registers this plugin,
|
|
6
|
+
* so a minimal stand-in that always resolves to English is enough.
|
|
7
|
+
*/
|
|
8
|
+
class LanguageDetector {
|
|
9
|
+
init() {}
|
|
10
|
+
|
|
11
|
+
detect() {
|
|
12
|
+
return "en";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
cacheUserLanguage() {}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
LanguageDetector.type = "languageDetector";
|
|
19
|
+
|
|
20
|
+
module.exports = LanguageDetector;
|
|
21
|
+
module.exports.default = LanguageDetector;
|
|
@@ -30,6 +30,12 @@ export interface ExceptionInsightEvidence {
|
|
|
30
30
|
spikeMultiplier?: number | undefined;
|
|
31
31
|
// Lifetime occurrence count of the exception.
|
|
32
32
|
totalOccurrenceCount?: number | undefined;
|
|
33
|
+
/*
|
|
34
|
+
* How many distinct TelemetryException groups (i.e. stack-trace variants of
|
|
35
|
+
* the same type + normalized message) this finding rolls up. 1 for the
|
|
36
|
+
* ordinary case; higher when one throw site surfaces on several call paths.
|
|
37
|
+
*/
|
|
38
|
+
distinctExceptionGroupCount?: number | undefined;
|
|
33
39
|
// ISO-8601 — when the exception was first ever seen.
|
|
34
40
|
firstSeenAt?: string | undefined;
|
|
35
41
|
}
|
|
@@ -3,7 +3,7 @@ import CodeFixTaskType from "./CodeFixTaskType";
|
|
|
3
3
|
/*
|
|
4
4
|
* The rolled-up CI conclusion recorded on an AI fix pull request
|
|
5
5
|
* (AIAgentTaskPullRequest.ciStatus) — B4 Tier 1: verification via the
|
|
6
|
-
* customer's OWN CI on the
|
|
6
|
+
* customer's OWN CI on the fix PRs. We read check-run conclusions through
|
|
7
7
|
* the GitHub App; we never re-run or gate the customer's CI.
|
|
8
8
|
*
|
|
9
9
|
* G9 honesty rule: only Green and ExpectedFailureObserved ever count as
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* - Passed: every configured command (setup, build, test) exited 0 —
|
|
8
8
|
* possibly after bounded agent repair attempts.
|
|
9
9
|
* - Failed: a configured command still failed after the repair attempts
|
|
10
|
-
* were exhausted. The PR still opens
|
|
11
|
-
* the work is not lost — the human reviewer decides.
|
|
10
|
+
* were exhausted. The PR still opens, with the failure clearly labeled
|
|
11
|
+
* in its body, so the work is not lost — the human reviewer decides.
|
|
12
12
|
* - Skipped: the repository has no verification commands configured, so
|
|
13
13
|
* nothing could be verified.
|
|
14
14
|
*/
|
package/Types/API/Hostname.ts
CHANGED
|
@@ -5,6 +5,27 @@ import Port from "../Port";
|
|
|
5
5
|
import Typeof from "../Typeof";
|
|
6
6
|
import { FindOperator } from "typeorm";
|
|
7
7
|
|
|
8
|
+
/*
|
|
9
|
+
* A chain of DNS labels (which also covers IPv4 literals). Labels are
|
|
10
|
+
* alphanumeric plus "-" and "_", may not start or end with "-", and are
|
|
11
|
+
* capped at 63 characters; a single trailing dot (the fully-qualified form)
|
|
12
|
+
* is allowed. "_" is permitted because internal and service-discovery names
|
|
13
|
+
* use it and it is not a URL delimiter.
|
|
14
|
+
*/
|
|
15
|
+
const HOST_REGEX: RegExp =
|
|
16
|
+
/^[a-zA-Z0-9_](?:[a-zA-Z0-9_-]{0,61}[a-zA-Z0-9_])?(?:\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]{0,61}[a-zA-Z0-9_])?)*\.?$/;
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* Anything that is not a URL delimiter. The point is not to validate
|
|
20
|
+
* credentials, it is to make sure userinfo cannot smuggle a path, a query, a
|
|
21
|
+
* fragment or a second authority past the host check.
|
|
22
|
+
*/
|
|
23
|
+
const USER_INFO_REGEX: RegExp = /^[^@/?#\s[\]]*$/;
|
|
24
|
+
|
|
25
|
+
const IPV6_CHARS_REGEX: RegExp = /^[0-9a-fA-F:.]+$/;
|
|
26
|
+
|
|
27
|
+
const PORT_REGEX: RegExp = /^\d{1,5}$/;
|
|
28
|
+
|
|
8
29
|
export default class Hostname extends DatabaseProperty {
|
|
9
30
|
private _route: string = "";
|
|
10
31
|
public get hostname(): string {
|
|
@@ -31,13 +52,80 @@ export default class Hostname extends DatabaseProperty {
|
|
|
31
52
|
}
|
|
32
53
|
}
|
|
33
54
|
|
|
55
|
+
/*
|
|
56
|
+
* True when the value is a usable authority: an optional "userinfo@"
|
|
57
|
+
* prefix, a host (DNS name, IPv4, or IPv6 literal) and an optional ":port".
|
|
58
|
+
*
|
|
59
|
+
* The old check was a character allowlist that permitted "/", "?", "#" and
|
|
60
|
+
* "@" anywhere, which made "169.254.169.254/latest/meta-data/#" a valid
|
|
61
|
+
* Hostname. Anything that stores a Hostname and later interpolates it into
|
|
62
|
+
* a URL therefore inherited full control of the host, port and path of the
|
|
63
|
+
* resulting request. Structure, not a charset, is what rules that out.
|
|
64
|
+
*
|
|
65
|
+
* Userinfo is still accepted because "https://user:token@host/path" is a
|
|
66
|
+
* real thing customers put in webhook URLs, and those values are already in
|
|
67
|
+
* the database — rejecting them here would fail on read, not just on write.
|
|
68
|
+
* Callers that need the bare host must not split this string themselves;
|
|
69
|
+
* SSRFProtection.getBareHostname exists for that.
|
|
70
|
+
*/
|
|
34
71
|
public static isValid(value: string): boolean {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
72
|
+
const authorityWithUserInfo: string = value.trim();
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
* 253 for a DNS name, plus room for ":65535" and a userinfo prefix.
|
|
76
|
+
* A bound here also keeps the label regex from being handed something
|
|
77
|
+
* pathological.
|
|
78
|
+
*/
|
|
79
|
+
if (!authorityWithUserInfo || authorityWithUserInfo.length > 512) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
* Split on the LAST "@": userinfo may itself contain "@" percent-encoded
|
|
85
|
+
* or not, and everything after the final one is the authority.
|
|
86
|
+
*/
|
|
87
|
+
const atIndex: number = authorityWithUserInfo.lastIndexOf("@");
|
|
88
|
+
|
|
89
|
+
if (atIndex !== -1) {
|
|
90
|
+
const userInfo: string = authorityWithUserInfo.substring(0, atIndex);
|
|
91
|
+
if (!USER_INFO_REGEX.test(userInfo)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const authority: string = authorityWithUserInfo.substring(atIndex + 1);
|
|
97
|
+
|
|
98
|
+
if (!authority) {
|
|
38
99
|
return false;
|
|
39
100
|
}
|
|
40
|
-
|
|
101
|
+
|
|
102
|
+
// Bracketed IPv6, with or without a port: "[::1]", "[::1]:8080".
|
|
103
|
+
const bracketedIpv6Match: RegExpMatchArray | null = authority.match(
|
|
104
|
+
/^\[([0-9a-fA-F:.]+)\](?::(\d{1,5}))?$/,
|
|
105
|
+
);
|
|
106
|
+
if (bracketedIpv6Match) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/*
|
|
111
|
+
* Unbracketed IPv6 literal. Two or more colons cannot be a "host:port",
|
|
112
|
+
* so the colons must be part of the address itself.
|
|
113
|
+
*/
|
|
114
|
+
if ((authority.match(/:/g) || []).length > 1) {
|
|
115
|
+
return IPV6_CHARS_REGEX.test(authority);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const colonIndex: number = authority.indexOf(":");
|
|
119
|
+
const host: string =
|
|
120
|
+
colonIndex === -1 ? authority : authority.substring(0, colonIndex);
|
|
121
|
+
const port: string =
|
|
122
|
+
colonIndex === -1 ? "" : authority.substring(colonIndex + 1);
|
|
123
|
+
|
|
124
|
+
if (colonIndex !== -1 && !PORT_REGEX.test(port)) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return HOST_REGEX.test(host);
|
|
41
129
|
}
|
|
42
130
|
|
|
43
131
|
public constructor(hostname: string, port?: Port | string | number) {
|
package/Types/API/URL.ts
CHANGED
|
@@ -131,37 +131,55 @@ export default class URL extends DatabaseProperty {
|
|
|
131
131
|
public static fromString(url: string): URL {
|
|
132
132
|
let protocol: Protocol = Protocol.HTTPS;
|
|
133
133
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
134
|
+
/*
|
|
135
|
+
* Schemes are case-insensitive (RFC 3986), so match on a lower-cased
|
|
136
|
+
* copy and strip by length. Matching the literal prefix left "HTTPS://"
|
|
137
|
+
* in place, which then read as an authority of "HTTPS:".
|
|
138
|
+
*
|
|
139
|
+
* Longest-first: "https://" has to be tested before "http://", and only
|
|
140
|
+
* the first match is stripped.
|
|
141
|
+
*/
|
|
142
|
+
const schemePrefixes: Array<[string, Protocol]> = [
|
|
143
|
+
["https://", Protocol.HTTPS],
|
|
144
|
+
["http://", Protocol.HTTP],
|
|
145
|
+
["wss://", Protocol.WSS],
|
|
146
|
+
["ws://", Protocol.WS],
|
|
147
|
+
["mongodb://", Protocol.MONGO_DB],
|
|
148
|
+
["mailto:", Protocol.MAIL],
|
|
149
|
+
];
|
|
150
|
+
|
|
151
|
+
const lowerCasedUrl: string = url.toLowerCase();
|
|
152
|
+
|
|
153
|
+
for (const [prefix, prefixProtocol] of schemePrefixes) {
|
|
154
|
+
if (lowerCasedUrl.startsWith(prefix)) {
|
|
155
|
+
protocol = prefixProtocol;
|
|
156
|
+
url = url.substring(prefix.length);
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
147
159
|
}
|
|
148
160
|
|
|
149
|
-
if (
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
161
|
+
if (protocol === Protocol.MAIL) {
|
|
162
|
+
/*
|
|
163
|
+
* Hand the bare address to the constructor so it is recognised as an
|
|
164
|
+
* Email. Routing it through Hostname instead would ask a host validator
|
|
165
|
+
* to accept an email address — and "?subject=..." along with it.
|
|
166
|
+
*/
|
|
167
|
+
const address: string = url.split("?")[0] || "";
|
|
168
|
+
const mailQueryString: string = url.split("?")[1] || "";
|
|
153
169
|
|
|
154
|
-
|
|
155
|
-
protocol = Protocol.MONGO_DB;
|
|
156
|
-
url = url.replace("mongodb://", "");
|
|
170
|
+
return new URL(protocol, address, undefined, mailQueryString);
|
|
157
171
|
}
|
|
158
172
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
173
|
+
/*
|
|
174
|
+
* The authority ends at the first "/", "?" or "#". Splitting on "/" alone
|
|
175
|
+
* left the query and fragment glued to the host for URLs with no path
|
|
176
|
+
* ("https://host?token=x" parsed to a host of "host?token=x"), which both
|
|
177
|
+
* round-tripped wrong and handed anything that later interpolated the
|
|
178
|
+
* host a way to smuggle a path.
|
|
179
|
+
*/
|
|
180
|
+
const authority: string = (url.split("/")[0] || "").split(/[?#]/)[0] || "";
|
|
163
181
|
|
|
164
|
-
const hostname: Hostname = new Hostname(
|
|
182
|
+
const hostname: Hostname = new Hostname(authority);
|
|
165
183
|
|
|
166
184
|
let route: Route | undefined;
|
|
167
185
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { JSONObject } from "../JSON";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Stable, versioned events used to measure the self-serve revenue funnel.
|
|
5
|
+
*
|
|
6
|
+
* Event names are intentionally GA4-compatible snake_case. Additive property
|
|
7
|
+
* changes are safe; breaking semantic changes require a new schema version.
|
|
8
|
+
*/
|
|
9
|
+
export enum RevenueEventName {
|
|
10
|
+
SignupStarted = "signup_started",
|
|
11
|
+
SignupCompleted = "sign_up",
|
|
12
|
+
WorkspaceCreated = "workspace_created",
|
|
13
|
+
MonitorCreated = "monitor_created",
|
|
14
|
+
TeammateInvited = "teammate_invited",
|
|
15
|
+
SubscriptionUpgraded = "subscription_upgraded",
|
|
16
|
+
SubscriptionDowngraded = "subscription_downgraded",
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export enum RevenueFunnelStage {
|
|
20
|
+
Acquisition = "acquisition",
|
|
21
|
+
Signup = "signup",
|
|
22
|
+
Activation = "activation",
|
|
23
|
+
Collaboration = "collaboration",
|
|
24
|
+
Revenue = "revenue",
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface RevenueEventProperties extends JSONObject {
|
|
28
|
+
funnel_stage: RevenueFunnelStage;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const REVENUE_EVENT_SCHEMA_VERSION: number = 1;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* How a manual balance adjustment is applied. Add and Deduct are relative and
|
|
3
|
+
* land as a single atomic SQL delta, so they cannot lose a usage charge that
|
|
4
|
+
* is being written at the same moment. Set is absolute - last writer wins -
|
|
5
|
+
* and is only there for the case where staff need the balance to read a
|
|
6
|
+
* specific number regardless of what it holds now.
|
|
7
|
+
*/
|
|
8
|
+
enum BalanceAdjustmentType {
|
|
9
|
+
Add = "Add",
|
|
10
|
+
Deduct = "Deduct",
|
|
11
|
+
Set = "Set",
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default BalanceAdjustmentType;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The prepaid balances a project carries. Each one maps to its own column on
|
|
3
|
+
* the project and is drawn down by a different kind of usage, so they are
|
|
4
|
+
* topped up and corrected independently.
|
|
5
|
+
*/
|
|
6
|
+
enum ProjectBalanceType {
|
|
7
|
+
// Drawn down by SMS, voice calls, WhatsApp messages and incoming numbers.
|
|
8
|
+
SmsOrCall = "SmsOrCall",
|
|
9
|
+
// Drawn down by LLM spend - AI agents, investigations and code fixes.
|
|
10
|
+
AI = "AI",
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default ProjectBalanceType;
|
|
@@ -5,6 +5,17 @@ enum DashboardComponentType {
|
|
|
5
5
|
Clock = `Clock`,
|
|
6
6
|
Table = `Table`,
|
|
7
7
|
Gauge = `Gauge`,
|
|
8
|
+
/*
|
|
9
|
+
* Widgets that read an EXTERNAL Data Source (Prometheus, SQL, ClickHouse,
|
|
10
|
+
* Loki, Elasticsearch, REST) rather than OneUptime's own telemetry. They
|
|
11
|
+
* are separate component types — not a mode of the metric widgets above —
|
|
12
|
+
* so each one can carry the query editor, defaults, and rendering its own
|
|
13
|
+
* source of data actually needs. Not available on public dashboards.
|
|
14
|
+
*/
|
|
15
|
+
DataSourceChart = `DataSourceChart`,
|
|
16
|
+
DataSourceValue = `DataSourceValue`,
|
|
17
|
+
DataSourceGauge = `DataSourceGauge`,
|
|
18
|
+
DataSourceTable = `DataSourceTable`,
|
|
8
19
|
LogStream = `LogStream`,
|
|
9
20
|
LogChart = `LogChart`,
|
|
10
21
|
TraceList = `TraceList`,
|
|
@@ -44,3 +55,23 @@ enum DashboardComponentType {
|
|
|
44
55
|
}
|
|
45
56
|
|
|
46
57
|
export default DashboardComponentType;
|
|
58
|
+
|
|
59
|
+
/*
|
|
60
|
+
* Every widget type that reads an EXTERNAL Data Source. Kept next to the
|
|
61
|
+
* enum so adding a fifth one is a single edit, and consumed by the widget
|
|
62
|
+
* settings form (which query editor to render) and by anything that has to
|
|
63
|
+
* treat external-data widgets as a class — notably the public dashboard,
|
|
64
|
+
* where they are unavailable.
|
|
65
|
+
*/
|
|
66
|
+
export const DataSourceComponentTypes: ReadonlyArray<DashboardComponentType> = [
|
|
67
|
+
DashboardComponentType.DataSourceChart,
|
|
68
|
+
DashboardComponentType.DataSourceValue,
|
|
69
|
+
DashboardComponentType.DataSourceGauge,
|
|
70
|
+
DashboardComponentType.DataSourceTable,
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
export function isDataSourceComponentType(
|
|
74
|
+
componentType: DashboardComponentType,
|
|
75
|
+
): boolean {
|
|
76
|
+
return DataSourceComponentTypes.includes(componentType);
|
|
77
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import DataSourceQueryConfig from "../../DataSource/DataSourceQueryConfig";
|
|
2
|
+
import ObjectID from "../../ObjectID";
|
|
3
|
+
import DashboardComponentType from "../DashboardComponentType";
|
|
4
|
+
import DashboardChartType from "../Chart/ChartType";
|
|
5
|
+
import BaseComponent from "./DashboardBaseComponent";
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* Time-series chart over one or more EXTERNAL Data Source queries (PromQL /
|
|
9
|
+
* SQL / LogQL / ES DSL / REST). The OneUptime-metrics chart is a separate
|
|
10
|
+
* widget (DashboardChartComponent) — this one never touches metric queries,
|
|
11
|
+
* formulas, or the metric explorer.
|
|
12
|
+
*
|
|
13
|
+
* Not available on public dashboards: the anonymous API has no data-source
|
|
14
|
+
* surface, by design.
|
|
15
|
+
*/
|
|
16
|
+
export default interface DashboardDataSourceChartComponent
|
|
17
|
+
extends BaseComponent {
|
|
18
|
+
componentType: DashboardComponentType.DataSourceChart;
|
|
19
|
+
componentId: ObjectID;
|
|
20
|
+
arguments: {
|
|
21
|
+
// Each query becomes one overlaid set of series on the chart.
|
|
22
|
+
queries?: Array<DataSourceQueryConfig> | undefined;
|
|
23
|
+
chartTitle?: string | undefined;
|
|
24
|
+
chartDescription?: string | undefined;
|
|
25
|
+
chartType?: DashboardChartType | undefined;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import DataSourceQueryConfig from "../../DataSource/DataSourceQueryConfig";
|
|
2
|
+
import ObjectID from "../../ObjectID";
|
|
3
|
+
import DashboardComponentType from "../DashboardComponentType";
|
|
4
|
+
import BaseComponent from "./DashboardBaseComponent";
|
|
5
|
+
import { DataSourceValueReduce } from "./DashboardDataSourceValueComponent";
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* Radial gauge driven by an EXTERNAL Data Source query. The
|
|
9
|
+
* OneUptime-metrics equivalent is DashboardGaugeComponent.
|
|
10
|
+
*
|
|
11
|
+
* Not available on public dashboards.
|
|
12
|
+
*/
|
|
13
|
+
export default interface DashboardDataSourceGaugeComponent
|
|
14
|
+
extends BaseComponent {
|
|
15
|
+
componentType: DashboardComponentType.DataSourceGauge;
|
|
16
|
+
componentId: ObjectID;
|
|
17
|
+
arguments: {
|
|
18
|
+
query?: DataSourceQueryConfig | undefined;
|
|
19
|
+
gaugeTitle?: string | undefined;
|
|
20
|
+
// See DashboardDataSourceValueComponent — same reduction, same default.
|
|
21
|
+
reduce?: DataSourceValueReduce | undefined;
|
|
22
|
+
/*
|
|
23
|
+
* Unit suffix for the centre value and the min/max footer. External
|
|
24
|
+
* queries carry no MetricType to derive one from.
|
|
25
|
+
*/
|
|
26
|
+
unit?: string | undefined;
|
|
27
|
+
minValue?: number | undefined;
|
|
28
|
+
maxValue?: number | undefined;
|
|
29
|
+
warningThreshold?: number | undefined;
|
|
30
|
+
criticalThreshold?: number | undefined;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import DataSourceQueryConfig from "../../DataSource/DataSourceQueryConfig";
|
|
2
|
+
import ObjectID from "../../ObjectID";
|
|
3
|
+
import DashboardComponentType from "../DashboardComponentType";
|
|
4
|
+
import BaseComponent from "./DashboardBaseComponent";
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* Tabular rows straight from an EXTERNAL Data Source query. Columns come
|
|
8
|
+
* from the query result, not from widget config — the connector normalizes
|
|
9
|
+
* every source into DataSourceTableResult. The OneUptime-metrics
|
|
10
|
+
* equivalent (columns, formulas, group-by) is DashboardTableComponent.
|
|
11
|
+
*
|
|
12
|
+
* Not available on public dashboards.
|
|
13
|
+
*/
|
|
14
|
+
export default interface DashboardDataSourceTableComponent
|
|
15
|
+
extends BaseComponent {
|
|
16
|
+
componentType: DashboardComponentType.DataSourceTable;
|
|
17
|
+
componentId: ObjectID;
|
|
18
|
+
arguments: {
|
|
19
|
+
query?: DataSourceQueryConfig | undefined;
|
|
20
|
+
tableTitle?: string | undefined;
|
|
21
|
+
tableDescription?: string | undefined;
|
|
22
|
+
/*
|
|
23
|
+
* Client-side cap on rendered rows, applied after sorting so "top 10 by
|
|
24
|
+
* this column" works. The connector's own row cap still applies first —
|
|
25
|
+
* this only trims what the widget draws. Absent ⇒ render every row the
|
|
26
|
+
* query returned.
|
|
27
|
+
*/
|
|
28
|
+
maxRows?: number | undefined;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import DataSourceQueryConfig from "../../DataSource/DataSourceQueryConfig";
|
|
2
|
+
import ObjectID from "../../ObjectID";
|
|
3
|
+
import DashboardComponentType from "../DashboardComponentType";
|
|
4
|
+
import BaseComponent from "./DashboardBaseComponent";
|
|
5
|
+
import { DashboardValueTrendDirection } from "./DashboardValueComponent";
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* How the points a Data Source query returns over the dashboard's time
|
|
9
|
+
* window collapse into the single number the widget shows. The metric
|
|
10
|
+
* Value widget takes this from the metric query's "Aggregate by" picker;
|
|
11
|
+
* an external query has no such picker, so it is a widget argument here.
|
|
12
|
+
*/
|
|
13
|
+
export enum DataSourceValueReduce {
|
|
14
|
+
Last = "Last",
|
|
15
|
+
First = "First",
|
|
16
|
+
Avg = "Avg",
|
|
17
|
+
Sum = "Sum",
|
|
18
|
+
Min = "Min",
|
|
19
|
+
Max = "Max",
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
* Single big-number stat driven by an EXTERNAL Data Source query. The
|
|
24
|
+
* OneUptime-metrics equivalent is DashboardValueComponent; the two share a
|
|
25
|
+
* renderer but not a configuration surface.
|
|
26
|
+
*
|
|
27
|
+
* Not available on public dashboards.
|
|
28
|
+
*/
|
|
29
|
+
export default interface DashboardDataSourceValueComponent
|
|
30
|
+
extends BaseComponent {
|
|
31
|
+
componentType: DashboardComponentType.DataSourceValue;
|
|
32
|
+
componentId: ObjectID;
|
|
33
|
+
arguments: {
|
|
34
|
+
query?: DataSourceQueryConfig | undefined;
|
|
35
|
+
title: string;
|
|
36
|
+
/*
|
|
37
|
+
* How the returned points reduce to one number. Absent ⇒ Last, which
|
|
38
|
+
* is what "the current value of this query" means for the overwhelming
|
|
39
|
+
* majority of external queries (a Prometheus instant-style rate, a SQL
|
|
40
|
+
* count per bucket).
|
|
41
|
+
*/
|
|
42
|
+
reduce?: DataSourceValueReduce | undefined;
|
|
43
|
+
/*
|
|
44
|
+
* Unit suffix rendered after the number. External queries carry no
|
|
45
|
+
* OneUptime MetricType, so there is nothing to derive a unit from —
|
|
46
|
+
* the user names it. Known units also scale the value the same way
|
|
47
|
+
* metric units do ("Bytes" ⇒ 1.5 MB, "ms" ⇒ 2.4 sec, "%" ⇒ 99.9%).
|
|
48
|
+
* Empty/undefined ⇒ the raw number with no suffix.
|
|
49
|
+
*/
|
|
50
|
+
unit?: string | undefined;
|
|
51
|
+
warningThreshold?: number | undefined;
|
|
52
|
+
criticalThreshold?: number | undefined;
|
|
53
|
+
trendDirection?: DashboardValueTrendDirection | undefined;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Hard resource bounds applied to every external Data Source query,
|
|
3
|
+
* regardless of connector. These protect the OneUptime API server (memory,
|
|
4
|
+
* event loop) and the customer's target system from runaway dashboard
|
|
5
|
+
* queries — a dashboard with 20 widgets refreshing every minute multiplies
|
|
6
|
+
* whatever a single query costs.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// Upper bound on wall-clock time for one connection attempt.
|
|
10
|
+
export const DATA_SOURCE_CONNECT_TIMEOUT_IN_MS: number = 10 * 1000;
|
|
11
|
+
|
|
12
|
+
// Upper bound on wall-clock time for one query execution.
|
|
13
|
+
export const DATA_SOURCE_QUERY_TIMEOUT_IN_MS: number = 30 * 1000;
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* Row cap for time-series results. 11k points ≈ 7.5 days at 1-minute
|
|
17
|
+
* resolution for a single series — beyond that the chart cannot render the
|
|
18
|
+
* detail anyway. Connectors fetch cap+1 to detect truncation.
|
|
19
|
+
*/
|
|
20
|
+
export const DATA_SOURCE_MAX_TIME_SERIES_ROWS: number = 11000;
|
|
21
|
+
|
|
22
|
+
// Row cap for tabular results — dashboards render tables, not exports.
|
|
23
|
+
export const DATA_SOURCE_MAX_TABLE_ROWS: number = 1000;
|
|
24
|
+
|
|
25
|
+
// Cap on distinct series one query may return before truncation.
|
|
26
|
+
export const DATA_SOURCE_MAX_SERIES: number = 100;
|
|
27
|
+
|
|
28
|
+
/*
|
|
29
|
+
* Cap on the raw HTTP response body accepted from HTTP-based sources
|
|
30
|
+
* (Prometheus/Loki/Elasticsearch/REST), before parsing. Prevents a
|
|
31
|
+
* misconfigured endpoint from ballooning API-server memory.
|
|
32
|
+
*/
|
|
33
|
+
export const DATA_SOURCE_MAX_RESPONSE_SIZE_IN_BYTES: number = 20 * 1024 * 1024;
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* Default step for range queries when the client does not send one:
|
|
37
|
+
* aim for ~250 buckets across the selected window, clamped to sane bounds.
|
|
38
|
+
*/
|
|
39
|
+
export const DATA_SOURCE_TARGET_BUCKETS: number = 250;
|
|
40
|
+
export const DATA_SOURCE_MIN_STEP_IN_SECONDS: number = 10;
|
|
41
|
+
export const DATA_SOURCE_MAX_STEP_IN_SECONDS: number = 24 * 60 * 60;
|
|
42
|
+
|
|
43
|
+
export class DataSourceLimitsUtil {
|
|
44
|
+
/*
|
|
45
|
+
* Derive a range-query step (seconds) from a time window: ~TARGET_BUCKETS
|
|
46
|
+
* buckets, clamped. Used server-side when the widget doesn't specify one
|
|
47
|
+
* so Prometheus/Loki range queries stay bounded no matter the window.
|
|
48
|
+
*/
|
|
49
|
+
public static getStepInSeconds(startDate: Date, endDate: Date): number {
|
|
50
|
+
const rangeSeconds: number = Math.max(
|
|
51
|
+
Math.floor((endDate.getTime() - startDate.getTime()) / 1000),
|
|
52
|
+
1,
|
|
53
|
+
);
|
|
54
|
+
const rawStep: number = Math.ceil(
|
|
55
|
+
rangeSeconds / DATA_SOURCE_TARGET_BUCKETS,
|
|
56
|
+
);
|
|
57
|
+
return Math.min(
|
|
58
|
+
Math.max(rawStep, DATA_SOURCE_MIN_STEP_IN_SECONDS),
|
|
59
|
+
DATA_SOURCE_MAX_STEP_IN_SECONDS,
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A widget-stored binding to an external Data Source. Persisted inside
|
|
3
|
+
* `Dashboard.dashboardViewConfig` on chart/value/gauge/table components, so
|
|
4
|
+
* every field must survive JSON round-trips (plain strings/numbers only —
|
|
5
|
+
* dataSourceId is a string, not an ObjectID instance).
|
|
6
|
+
*/
|
|
7
|
+
export default interface DataSourceQueryConfig {
|
|
8
|
+
/*
|
|
9
|
+
* Stable identity for this query within the widget (mirrors
|
|
10
|
+
* MetricQueryConfigData.id) so editor UI state survives reorders.
|
|
11
|
+
*/
|
|
12
|
+
id?: string | undefined;
|
|
13
|
+
|
|
14
|
+
// _id of the project's DataSource record this query runs against.
|
|
15
|
+
dataSourceId: string;
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Query text in the source's native language: PromQL, SQL, LogQL,
|
|
19
|
+
* Elasticsearch Query DSL JSON, or the REST request descriptor JSON.
|
|
20
|
+
* SQL queries may use the $__startTime / $__endTime / $__startTimeMs /
|
|
21
|
+
* $__endTimeMs / $__rangeSeconds macros, replaced server-side with the
|
|
22
|
+
* dashboard's current time window.
|
|
23
|
+
*/
|
|
24
|
+
query: string;
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* Optional legend template for chart series. Supports {{label}}
|
|
28
|
+
* placeholders resolved against each series' group keys (e.g. Prometheus
|
|
29
|
+
* label values). Absent ⇒ series are named from their group keys.
|
|
30
|
+
*/
|
|
31
|
+
legend?: string | undefined;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* What shape of result the widget wants back from the query endpoint.
|
|
36
|
+
* Charts/values/gauges consume time series; the table widget consumes rows.
|
|
37
|
+
*/
|
|
38
|
+
export enum DataSourceResultKind {
|
|
39
|
+
TimeSeries = "TimeSeries",
|
|
40
|
+
Table = "Table",
|
|
41
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { JSONValue } from "../JSON";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Column type hints let table widgets right-align numbers and format dates
|
|
5
|
+
* without sniffing every row. Connectors set these from driver metadata when
|
|
6
|
+
* available and fall back to inspecting the first row.
|
|
7
|
+
*/
|
|
8
|
+
export enum DataSourceTableColumnType {
|
|
9
|
+
Text = "Text",
|
|
10
|
+
Number = "Number",
|
|
11
|
+
Date = "Date",
|
|
12
|
+
Boolean = "Boolean",
|
|
13
|
+
Json = "Json",
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface DataSourceTableColumn {
|
|
17
|
+
// Row-object key this column reads from.
|
|
18
|
+
key: string;
|
|
19
|
+
// Human-facing header; defaults to the key.
|
|
20
|
+
title: string;
|
|
21
|
+
type: DataSourceTableColumnType;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
* Normalized tabular result every connector's queryTable returns. Rows are
|
|
26
|
+
* plain JSON objects keyed by column key so the payload serializes straight
|
|
27
|
+
* through the API to the table widget.
|
|
28
|
+
*/
|
|
29
|
+
export default interface DataSourceTableResult {
|
|
30
|
+
columns: Array<DataSourceTableColumn>;
|
|
31
|
+
rows: Array<{ [key: string]: JSONValue }>;
|
|
32
|
+
/*
|
|
33
|
+
* True when the connector clamped the result at the row cap — the widget
|
|
34
|
+
* shows a truncation banner so users don't mistake a clamp for the full
|
|
35
|
+
* result set.
|
|
36
|
+
*/
|
|
37
|
+
truncated?: boolean | undefined;
|
|
38
|
+
}
|