@oneuptime/common 13.0.0 → 13.0.1
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/Alert.ts +55 -0
- package/Models/DatabaseModels/CloudResource.ts +45 -7
- package/Models/DatabaseModels/CodeRepository.ts +85 -0
- package/Models/DatabaseModels/GoogleSecOpsConnection.ts +57 -7
- package/Models/DatabaseModels/GoogleSecOpsConnectionRun.ts +263 -0
- package/Models/DatabaseModels/Incident.ts +55 -0
- package/Models/DatabaseModels/Index.ts +16 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +55 -0
- package/Models/DatabaseModels/User.ts +51 -2
- package/Models/DatabaseModels/UserNotificationEmailRollupItem.ts +43 -2
- package/Models/DatabaseModels/UserWebAuthn.ts +17 -0
- package/Models/DatabaseModels/VMwareResource.ts +1149 -0
- package/Models/DatabaseModels/VMwareVCenter.ts +1122 -0
- package/Models/DatabaseModels/VMwareVCenterFeed.ts +625 -0
- package/Models/DatabaseModels/VMwareVCenterLabelRule.ts +514 -0
- package/Models/DatabaseModels/VMwareVCenterOwnerRule.ts +596 -0
- package/Models/DatabaseModels/VMwareVCenterOwnerTeam.ts +485 -0
- package/Models/DatabaseModels/VMwareVCenterOwnerUser.ts +484 -0
- package/Models/DatabaseModels/WorkflowVariable.ts +22 -1
- package/Server/API/AIAgentDataAPI.ts +79 -4
- package/Server/API/AIAgentGitHubAPI.ts +523 -0
- package/Server/API/AIChatAPI.ts +20 -1
- package/Server/API/BillingAPI.ts +33 -0
- package/Server/API/DashboardAPI.ts +10 -0
- package/Server/API/GitHubAPI.ts +47 -5
- package/Server/API/GoogleSecOpsConnectionAPI.ts +79 -0
- package/Server/API/UserWebAuthnAPI.ts +21 -1
- package/Server/API/VMwareResourceAPI.ts +143 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.ts +68 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.ts +26 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.ts +636 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.ts +17 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.ts +83 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Middleware/IdentityRateLimit.ts +101 -0
- package/Server/Services/AIRunService.ts +13 -0
- package/Server/Services/BillingPaymentMethodService.ts +99 -28
- package/Server/Services/BillingService.ts +287 -20
- package/Server/Services/CloudResourceInstanceService.ts +70 -0
- package/Server/Services/ExceptionAggregationService.ts +1 -0
- package/Server/Services/GoogleSecOpsConnectionRunService.ts +10 -0
- package/Server/Services/GoogleSecOpsConnectionService.ts +12 -0
- package/Server/Services/Index.ts +16 -0
- package/Server/Services/LogAggregationService.ts +1 -0
- package/Server/Services/MetricAggregationService.ts +1 -0
- package/Server/Services/MobilePasskeyLoginService.ts +216 -0
- package/Server/Services/MonitorService.ts +51 -1
- package/Server/Services/MonitorTemplateService.ts +91 -29
- package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +132 -1
- package/Server/Services/NetworkDeviceAutoImportRuleService.ts +176 -2
- package/Server/Services/OpenTelemetryIngestService.ts +17 -0
- package/Server/Services/PayAsYouGoBillingService.ts +446 -0
- package/Server/Services/ProjectService.ts +46 -2
- package/Server/Services/ServerlessFunctionInstanceService.ts +71 -0
- package/Server/Services/TeamMemberService.ts +96 -36
- package/Server/Services/TelemetryIngestionKeyService.ts +80 -10
- package/Server/Services/TelemetryUsageBillingService.ts +95 -5
- package/Server/Services/TraceAggregationService.ts +5 -4
- package/Server/Services/UserWebAuthnService.ts +592 -133
- package/Server/Services/VMwareResourceService.ts +648 -0
- package/Server/Services/VMwareVCenterFeedService.ts +99 -0
- package/Server/Services/VMwareVCenterLabelRuleEngineService.ts +240 -0
- package/Server/Services/VMwareVCenterLabelRuleService.ts +14 -0
- package/Server/Services/VMwareVCenterOwnerRuleEngineService.ts +252 -0
- package/Server/Services/VMwareVCenterOwnerRuleService.ts +14 -0
- package/Server/Services/VMwareVCenterOwnerTeamService.ts +139 -0
- package/Server/Services/VMwareVCenterOwnerUserService.ts +133 -0
- package/Server/Services/VMwareVCenterService.ts +629 -0
- package/Server/Services/WorkflowVariableService.ts +203 -0
- package/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.ts +17 -0
- package/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.ts +31 -1
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +7 -0
- package/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.ts +341 -0
- package/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.ts +274 -0
- package/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.ts +375 -0
- package/Server/Utils/CodeRepository/GitHub/GitHubConversation.ts +846 -0
- package/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.ts +360 -0
- package/Server/Utils/CodeRepository/GitHub/GitHubRunReply.ts +421 -0
- package/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.ts +140 -0
- package/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.ts +906 -0
- package/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.ts +143 -0
- package/Server/Utils/DataSource/EgressGuard.ts +160 -15
- package/Server/Utils/Database/TruncateColumnValue.ts +1 -1
- package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +2 -0
- package/Server/Utils/EmailRollup/EmailRollupRenderer.ts +33 -0
- package/Server/Utils/EmailRollup/EmailRollupWriter.ts +44 -0
- package/Server/Utils/LogRedaction.ts +2 -1
- package/Server/Utils/Monitor/MonitorAlert.ts +1 -1
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +302 -3
- package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +26 -4
- package/Server/Utils/Monitor/MonitorResourceContext.ts +5 -3
- package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +14 -0
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +1 -0
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +26 -0
- package/Server/Utils/Monitor/SeriesResourceLinker.ts +28 -5
- package/Server/Utils/ResourceFeed/ResourceFeedUtil.ts +3 -3
- package/Server/Utils/SecurityEvent/ConnectorErrorMessage.ts +14 -9
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +116 -84
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +594 -195
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.ts +466 -0
- package/Server/Utils/Telemetry/EntityRegistry.ts +5 -0
- package/Server/Utils/Telemetry/ResourceHeartbeat.ts +2 -1
- package/Server/Utils/Telemetry/TelemetryEntity.ts +181 -1
- package/Server/Utils/Telemetry/VMwareSnapshotScan.ts +1352 -0
- package/Tests/App/Accounts/LoginPasskey.test.tsx +529 -0
- package/Tests/App/Accounts/MobilePasskey.test.tsx +620 -0
- package/Tests/App/Accounts/PasswordRequirements.test.tsx +254 -0
- package/Tests/App/Accounts/RegisterPassword.test.tsx +553 -0
- package/Tests/App/Dashboard/AskAiAvailability.test.ts +224 -0
- package/Tests/App/Dashboard/AskAiDisabled.test.tsx +432 -0
- package/Tests/App/Dashboard/BackupCodes.test.tsx +414 -0
- package/Tests/App/Dashboard/BillingPaidUsageFlow.test.tsx +530 -0
- package/Tests/App/Dashboard/BillingPaymentMethodForm.test.tsx +195 -0
- package/Tests/App/Dashboard/BreadcrumbCoverage.test.tsx +199 -0
- package/Tests/App/Dashboard/CloudDocumentationCard.test.tsx +198 -0
- package/Tests/App/Dashboard/CloudDocumentationMarkdown.test.ts +215 -0
- package/Tests/App/Dashboard/CloudFleetSummary.test.ts +183 -0
- package/Tests/App/Dashboard/CloudFleetSummaryComponent.test.tsx +248 -0
- package/Tests/App/Dashboard/CloudResourceTelemetryScope.test.ts +215 -0
- package/Tests/App/Dashboard/CriteriaFilterDefaults.test.ts +3 -0
- package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +441 -0
- package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +458 -0
- package/Tests/App/Dashboard/DashboardToolbarPopupLayering.test.tsx +566 -0
- package/Tests/App/Dashboard/DiscoveryScanLivePage.test.tsx +376 -0
- package/Tests/App/Dashboard/DiscoveryScanLiveUpdates.test.tsx +642 -0
- package/Tests/App/Dashboard/DiscoveryScanProgress.test.tsx +267 -0
- package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +69 -231
- package/Tests/App/Dashboard/GoogleSecOpsConnectionsErrors.test.tsx +244 -0
- package/Tests/App/Dashboard/GoogleSecOpsDiagnostics.test.tsx +724 -0
- package/Tests/App/Dashboard/MonitorTemplateSyncFields.test.tsx +539 -0
- package/Tests/App/Dashboard/OnCallLayerCardOverrides.test.tsx +24 -7
- package/Tests/App/Dashboard/OnCallOverridePresentation.test.ts +496 -0
- package/Tests/App/Dashboard/OnCallScheduleOverrideClarity.test.tsx +677 -0
- package/Tests/App/Dashboard/OnCallSchedulePreviewOverrides.test.tsx +31 -3
- package/Tests/App/Dashboard/PaidUsageConsent.test.tsx +180 -0
- package/Tests/App/Dashboard/PasskeySettings.test.tsx +1220 -0
- package/Tests/App/Dashboard/PayAsYouGoConsentGate.test.tsx +176 -275
- package/Tests/App/Dashboard/PayAsYouGoNotices.test.tsx +380 -233
- package/Tests/App/Dashboard/ProductMenuBreadcrumbs.test.tsx +3 -23
- package/Tests/App/Dashboard/ResourceFeed.test.tsx +1 -0
- package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +8 -1
- package/Tests/App/Dashboard/TwoFactorStatus.test.tsx +260 -0
- package/Tests/App/Dashboard/VMwareDashboardWidgets.test.ts +573 -0
- package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
- package/Tests/App/Dashboard/WorkflowVariablesTable.test.tsx +768 -0
- package/Tests/App/StatusPage/StatusPageOverviewLiveAndSearch.test.tsx +532 -40
- package/Tests/App/StatusPage/StatusPageResourceSearchBox.test.tsx +19 -2
- package/Tests/Fixtures/MobilePasskeyUser.json +8 -0
- package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +25 -6
- package/Tests/Models/DatabaseModels/VMwareModels.test.ts +1134 -0
- package/Tests/Models/RunnerVersionLabel.test.ts +4 -2
- package/Tests/Server/API/AIChatProvidersAIEnabled.test.ts +259 -0
- package/Tests/Server/API/AIChatRouteAuthorization.test.ts +31 -2
- package/Tests/Server/API/BillingPayAsYouGoStatus.test.ts +116 -0
- package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +29 -1
- package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +13 -2
- package/Tests/Server/API/GitHubWebhookSignature.test.ts +368 -0
- package/Tests/Server/API/GoogleSecOpsConnectionAPI.test.ts +248 -0
- package/Tests/Server/API/UserWebAuthnAuthenticationOptionsRoute.test.ts +330 -0
- package/Tests/Server/API/UserWebAuthnPasskeyAPI.test.ts +172 -0
- package/Tests/Server/API/VMwareResourceAPI.test.ts +546 -0
- package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupMetadataMigration.test.ts +85 -0
- package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupTableMigration.test.ts +34 -3
- package/Tests/Server/Middleware/PasskeyRateLimit.test.ts +141 -0
- package/Tests/Server/Services/AutoImportRuleRearmRecentScans.test.ts +343 -0
- package/Tests/Server/Services/AutoImportRuleWriteRearmsScans.test.ts +381 -0
- package/Tests/Server/Services/BillingPaymentMethodServiceSync.test.ts +175 -0
- package/Tests/Server/Services/BillingService.test.ts +26 -11
- package/Tests/Server/Services/BillingServiceMeteredPaymentAuthorization.test.ts +245 -0
- package/Tests/Server/Services/BillingServicePaymentMethodReads.test.ts +362 -0
- package/Tests/Server/Services/CloudResourceInstanceStalePrune.test.ts +188 -0
- package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +16 -2
- package/Tests/Server/Services/GoogleSecOpsDiagnosticsModel.test.ts +153 -0
- package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +13 -0
- package/Tests/Server/Services/InventoryItemPromotionGate.test.ts +5 -0
- package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +36 -0
- package/Tests/Server/Services/InventoryUpsertTruncationGuard.test.ts +151 -0
- package/Tests/Server/Services/MobilePasskeyLoginIntegration.test.ts +231 -0
- package/Tests/Server/Services/MobilePasskeyLoginService.test.ts +315 -0
- package/Tests/Server/Services/MonitorPayAsYouGoBilling.test.ts +302 -0
- package/Tests/Server/Services/MonitorTemplateServiceFieldSync.test.ts +994 -0
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +22 -0
- package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +7 -1
- package/Tests/Server/Services/PayAsYouGoBillingService.test.ts +857 -0
- package/Tests/Server/Services/PayAsYouGoStripeRateLimitBudget.test.ts +379 -0
- package/Tests/Server/Services/ProjectServiceExtendTrial.test.ts +99 -1
- package/Tests/Server/Services/ProjectServiceSubscriptionSeats.test.ts +134 -0
- package/Tests/Server/Services/ResourceFeedServices.test.ts +3 -2
- package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +32 -6
- package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +363 -175
- package/Tests/Server/Services/ServerlessFunctionInstanceStalePrune.test.ts +200 -0
- package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +3 -0
- package/Tests/Server/Services/TeamMemberBillingSeatSync.test.ts +762 -0
- package/Tests/Server/Services/TeamMemberInviteRegistrationToken.test.ts +3 -0
- package/Tests/Server/Services/TelemetryIngestionKeyPolicyResolution.test.ts +72 -0
- package/Tests/Server/Services/TelemetryIngestionKeyValidation.test.ts +17 -4
- package/Tests/Server/Services/TelemetryPayAsYouGoBilling.test.ts +355 -0
- package/Tests/Server/Services/TraceAnalyticsResourceDisplayNames.test.ts +41 -4
- package/Tests/Server/Services/UserNotificationEmailRollupModels.test.ts +37 -0
- package/Tests/Server/Services/UserWebAuthnPasskeyIntegration.test.ts +401 -0
- package/Tests/Server/Services/UserWebAuthnPasskeyService.test.ts +769 -0
- package/Tests/Server/Services/UserWebAuthnUserVerification.test.ts +649 -0
- package/Tests/Server/Services/VMwareResourceService.test.ts +945 -0
- package/Tests/Server/Services/VMwareVCenterService.test.ts +722 -0
- package/Tests/Server/Services/WorkflowVariableRenameUniqueness.test.ts +842 -0
- package/Tests/Server/TestingUtils/PasskeyHttpIntegration.ts +102 -0
- package/Tests/Server/TestingUtils/SecurityKey.ts +464 -0
- package/Tests/Server/TestingUtils/WebAuthnServiceMocks.ts +60 -0
- package/Tests/Server/Types/Billing/PayAsYouGoMeteredAuthorization.test.ts +573 -0
- package/Tests/Server/Types/Database/Permissions/ProjectCustomerSupportAccessColumn.test.ts +261 -0
- package/Tests/Server/Types/Database/Permissions/WorkflowVariableColumnPermission.test.ts +95 -0
- package/Tests/Server/Utils/CodeRepository/GitHubAgentTaskTrigger.test.ts +2101 -0
- package/Tests/Server/Utils/CodeRepository/GitHubCommandAuthorizer.test.ts +883 -0
- package/Tests/Server/Utils/CodeRepository/GitHubCommandParser.test.ts +1474 -0
- package/Tests/Server/Utils/CodeRepository/GitHubConversation.test.ts +1526 -0
- package/Tests/Server/Utils/CodeRepository/GitHubReplyComposer.test.ts +1389 -0
- package/Tests/Server/Utils/CodeRepository/GitHubRunReply.test.ts +1707 -0
- package/Tests/Server/Utils/CodeRepository/GitHubWebhookHandler.test.ts +2202 -0
- package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +345 -0
- package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +896 -0
- package/Tests/Server/Utils/EmailRollup/EmailRollupMetadataIntegration.test.ts +246 -0
- package/Tests/Server/Utils/EmailRollup/EmailRollupRenderer.test.ts +299 -1
- package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +6 -0
- package/Tests/Server/Utils/EmailRollup/EmailRollupWriter.test.ts +185 -0
- package/Tests/Server/Utils/LogRedaction.test.ts +33 -0
- package/Tests/Server/Utils/Monitor/CapturedMetricAttributeUtil.test.ts +2 -1
- package/Tests/Server/Utils/Monitor/Criteria/TelemetryStepMetricAlias.test.ts +10 -0
- package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +66 -1
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +362 -0
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +60 -1
- package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +60 -0
- package/Tests/Server/Utils/Monitor/MonitorRootCauseTargetResolution.test.ts +423 -0
- package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +6 -0
- package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +46 -2
- package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +81 -45
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.test.ts +711 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClickhouseIntegration.test.ts +223 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +69 -1
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsDiagnostics.test.ts +838 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsErrorHandling.test.ts +241 -28
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsHttpIntegration.test.ts +651 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +11 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +13 -12
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +112 -127
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsRequestContract.test.ts +12 -18
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsResponseParsing.test.ts +43 -0
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +580 -0
- package/Tests/Server/Utils/Telemetry/VMwareSnapshotScan.test.ts +1748 -0
- package/Tests/Types/Cloud/CloudPlatform.test.ts +574 -0
- package/Tests/Types/Monitor/MetricAndProfileDefaultCriteria.test.ts +2 -0
- package/Tests/Types/Monitor/MonitorCriteriaMetricVariables.test.ts +9 -0
- package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +1 -0
- package/Tests/Types/Monitor/MonitorStepInfraMonitorUtils.test.ts +53 -8
- package/Tests/Types/Monitor/MonitorStepInfrastructureMonitors.test.ts +97 -0
- package/Tests/Types/Monitor/MonitorStepMetricViewConfigUtil.test.ts +1 -0
- package/Tests/Types/Monitor/MonitorStepTemplateSyncFields.test.ts +107 -0
- package/Tests/Types/Monitor/MonitorTemplateSyncField.test.ts +172 -0
- package/Tests/Types/Monitor/MonitorType.test.ts +1 -0
- package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +2 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationAlertDebuggability.test.ts +1 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +9 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +1 -1
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +1 -1
- package/Tests/Types/Monitor/SeriesContext/SeriesDebugHints.test.ts +131 -0
- package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +10 -0
- package/Tests/Types/Monitor/VMwareAlertTemplates.test.ts +1608 -0
- package/Tests/Types/Monitor/VMwareMetricCatalog.test.ts +488 -0
- package/Tests/Types/OnCallDutyPolicy/OverrideProvenance.test.ts +295 -0
- package/Tests/Types/Runner/RunnerLiveStatus.test.ts +2 -2
- package/Tests/Types/SignupPassword.test.ts +205 -0
- package/Tests/Types/StatusPage/StatusPageLanguage.test.ts +44 -0
- package/Tests/Types/SupportedLanguages.test.ts +119 -0
- package/Tests/Types/Telemetry/EntityTypeGroups.test.ts +19 -0
- package/Tests/UI/ColorPickerBuild.test.ts +86 -0
- package/Tests/UI/Components/Breadcrumbs.test.tsx +32 -0
- package/Tests/UI/Components/Forms/ModelFormPreservesUserInput.test.tsx +937 -0
- package/Tests/UI/Components/Forms/ModelFormWriteOnlyColumnSelect.test.tsx +230 -0
- package/Tests/UI/Components/Forms/ValidationFormSteps.test.ts +3 -4
- package/Tests/UI/Components/LabelRuleImportExport.test.tsx +907 -0
- package/Tests/UI/Components/ModelTable/ModelTableCreateAfterEdit.test.tsx +514 -0
- package/Tests/UI/Components/MonitorGraphs/Uptime.test.tsx +301 -0
- package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +2 -1
- package/Tests/UI/Components/TooltipLazyContent.test.tsx +373 -0
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsMessagingEndpointGuidance.test.tsx +43 -12
- package/Tests/UI/ReactDomBuild.test.ts +104 -0
- package/Tests/UI/ReactRouterSingletonBuild.test.ts +11 -1
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +148 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +29 -0
- package/Tests/UI/Utils/DashboardStackingLayers.test.ts +197 -0
- package/Tests/UI/Utils/LabelRuleImportExport.test.ts +546 -0
- package/Tests/UI/Utils/ModelAPITenantHeader.test.ts +109 -2
- package/Tests/UI/Utils/UseDashboardGridDnd.test.tsx +7 -2
- package/Tests/UI/Utils/UserEmailRegistrationStatus.test.tsx +295 -0
- package/Tests/UI/Utils/WebAuthn.test.ts +265 -0
- package/Tests/Utils/Dashboard/Components/DashboardComponentDefaults.test.ts +5 -0
- package/Tests/Utils/Dashboard/Components/DashboardVMwareListComponents.test.ts +548 -0
- package/Tests/Utils/Dashboard/DashboardResourceListSharedArgs.test.ts +17 -3
- package/Tests/Utils/LabelRuleImportExport.test.ts +583 -0
- package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
- package/Tests/Utils/Monitor/MonitorTemplateSyncUtil.test.ts +590 -0
- package/Tests/Utils/RequestFailedDetails.test.ts +325 -0
- package/Tests/Utils/Telemetry/CloudInstanceIdentity.test.ts +255 -0
- package/Tests/Utils/Telemetry/EntityRelationship.test.ts +167 -0
- package/Tests/Utils/WebAuthnTestUtil.ts +79 -0
- package/Tests/__mocks__/simplewebauthn.js +33 -4
- package/Types/AI/CodeFixTaskContext.ts +122 -0
- package/Types/AI/CodeFixTaskType.ts +62 -0
- package/Types/Accounts/AccountsLanguage.ts +1 -0
- package/Types/AdminDashboard/AdminDashboardLanguage.ts +1 -0
- package/Types/Calendar/CalendarEvent.ts +16 -0
- package/Types/Cloud/CloudPlatform.ts +372 -0
- package/Types/CodeRepository/GitHubCommand.ts +69 -0
- package/Types/Dashboard/DashboardComponentType.ts +2 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
- package/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.ts +23 -0
- package/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.ts +30 -0
- package/Types/Dashboard/DashboardLanguage.ts +1 -0
- package/Types/Dashboard/DashboardTemplates.ts +314 -0
- package/Types/Docs/DocsLanguage.ts +1 -0
- package/Types/Exception/EgressGuardException.ts +65 -0
- package/Types/Icon/IconProp.ts +1 -0
- package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +36 -0
- package/Types/Monitor/MonitorCriteriaInstance.ts +1 -0
- package/Types/Monitor/MonitorStep.ts +78 -17
- package/Types/Monitor/MonitorStepMetricViewConfigUtil.ts +1 -0
- package/Types/Monitor/MonitorStepVMwareMonitor.ts +127 -0
- package/Types/Monitor/MonitorTemplateSyncField.ts +291 -0
- package/Types/Monitor/MonitorType.ts +24 -0
- package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +33 -0
- package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +2 -0
- package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +3 -0
- package/Types/Monitor/SeriesContext/SeriesDebugHints.ts +158 -0
- package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +61 -0
- package/Types/Monitor/VMwareAlertTemplates.ts +1070 -0
- package/Types/Monitor/VMwareMetricCatalog.ts +914 -0
- package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +29 -0
- package/Types/OnCallDutyPolicy/UserOverrideUtil.ts +16 -0
- package/Types/Password.ts +84 -5
- package/Types/Permission.ts +265 -0
- package/Types/Probe/RequestFailedDetails.ts +7 -0
- package/Types/Runner/RunnerLiveStatus.ts +1 -1
- package/Types/SecurityEvent/GoogleSecOpsDiagnostics.ts +56 -0
- package/Types/StatusPage/StatusPageLanguage.ts +1 -0
- package/Types/Telemetry/EntityType.ts +21 -0
- package/Types/Telemetry/ServiceType.ts +1 -0
- package/Typings/Index.d.ts +63 -0
- package/UI/Components/Breadcrumbs/Breadcrumbs.tsx +2 -2
- package/UI/Components/Calendar/Calendar.css +78 -0
- package/UI/Components/Calendar/Calendar.tsx +28 -3
- package/UI/Components/Forms/BasicForm.tsx +44 -2
- package/UI/Components/Forms/Fields/ColorPicker.tsx +2 -1
- package/UI/Components/Forms/Fields/FormField.tsx +16 -3
- package/UI/Components/Forms/ModelForm.tsx +159 -5
- package/UI/Components/Forms/Types/Field.ts +8 -1
- package/UI/Components/Graphs/DayUptimeGraph.tsx +8 -10
- package/UI/Components/Icon/Icon.tsx +16 -0
- package/UI/Components/Input/Input.tsx +42 -7
- package/UI/Components/LabelRule/ImportLabelRulesModal.tsx +441 -0
- package/UI/Components/LabelRule/LabelRuleTable.tsx +142 -0
- package/UI/Components/ModelTable/BaseModelTable.tsx +22 -5
- package/UI/Components/ModelTable/ModelTable.tsx +14 -6
- package/UI/Components/MonitorGraphs/Uptime.tsx +17 -27
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +3 -1
- package/UI/Components/Tooltip/Tooltip.tsx +52 -6
- package/UI/Utils/DashboardStackingLayers.ts +85 -0
- package/UI/Utils/LabelRuleImportExport.ts +310 -0
- package/UI/Utils/ModelAPI/ModelAPI.ts +4 -3
- package/UI/Utils/TelemetryService.ts +4 -3
- package/UI/Utils/UseDashboardGridDnd.ts +4 -1
- package/UI/Utils/UserEmailRegistrationStatus.ts +33 -5
- package/UI/Utils/WebAuthn.ts +220 -0
- package/UI/esbuild-config.js +4 -0
- package/Utils/API.ts +34 -0
- package/Utils/Dashboard/Components/DashboardVMwareHostListComponent.ts +38 -0
- package/Utils/Dashboard/Components/DashboardVMwareResourceListShared.ts +70 -0
- package/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.ts +76 -0
- package/Utils/Dashboard/Components/Index.ts +16 -0
- package/Utils/LabelRuleImportExport.ts +496 -0
- package/Utils/Monitor/MonitorTemplateSyncUtil.ts +164 -0
- package/Utils/NetworkDiscovery/DiscoveryScanStatus.ts +8 -0
- package/Utils/Telemetry/CloudInstanceIdentity.ts +94 -0
- package/Utils/Telemetry/EntityKey.ts +19 -0
- package/Utils/Telemetry/EntityRelationship.ts +19 -0
- package/build/dist/Models/DatabaseModels/Alert.js +54 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResource.js +44 -7
- package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CodeRepository.js +87 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +60 -7
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnectionRun.js +287 -0
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnectionRun.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Incident.js +54 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +16 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +54 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/User.js +57 -4
- package/build/dist/Models/DatabaseModels/User.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js +47 -2
- package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js +18 -0
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
- package/build/dist/Models/DatabaseModels/VMwareResource.js +1201 -0
- package/build/dist/Models/DatabaseModels/VMwareResource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenter.js +1149 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenter.js.map +1 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterLabelRule.js +522 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerRule.js +603 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js +22 -1
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +63 -3
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentGitHubAPI.js +363 -0
- package/build/dist/Server/API/AIAgentGitHubAPI.js.map +1 -0
- package/build/dist/Server/API/AIChatAPI.js +19 -1
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/BillingAPI.js +22 -0
- package/build/dist/Server/API/BillingAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +10 -0
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/GitHubAPI.js +33 -5
- package/build/dist/Server/API/GitHubAPI.js.map +1 -1
- package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js +56 -0
- package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js.map +1 -0
- package/build/dist/Server/API/UserWebAuthnAPI.js +17 -1
- package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
- package/build/dist/Server/API/VMwareResourceAPI.js +106 -0
- package/build/dist/Server/API/VMwareResourceAPI.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.js +41 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.js +241 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.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/Middleware/IdentityRateLimit.js +80 -0
- package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +14 -1
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/BillingPaymentMethodService.js +71 -21
- package/build/dist/Server/Services/BillingPaymentMethodService.js.map +1 -1
- package/build/dist/Server/Services/BillingService.js +210 -22
- package/build/dist/Server/Services/BillingService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceInstanceService.js +66 -0
- package/build/dist/Server/Services/CloudResourceInstanceService.js.map +1 -1
- package/build/dist/Server/Services/ExceptionAggregationService.js +1 -0
- package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
- package/build/dist/Server/Services/GoogleSecOpsConnectionRunService.js +9 -0
- package/build/dist/Server/Services/GoogleSecOpsConnectionRunService.js.map +1 -0
- package/build/dist/Server/Services/GoogleSecOpsConnectionService.js +7 -0
- package/build/dist/Server/Services/GoogleSecOpsConnectionService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +16 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +1 -0
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +1 -0
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MobilePasskeyLoginService.js +137 -0
- package/build/dist/Server/Services/MobilePasskeyLoginService.js.map +1 -0
- package/build/dist/Server/Services/MonitorService.js +34 -1
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +64 -26
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +124 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +142 -2
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +28 -13
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/PayAsYouGoBillingService.js +297 -0
- package/build/dist/Server/Services/PayAsYouGoBillingService.js.map +1 -0
- package/build/dist/Server/Services/ProjectService.js +38 -2
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionInstanceService.js +66 -0
- package/build/dist/Server/Services/ServerlessFunctionInstanceService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +85 -28
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryIngestionKeyService.js +61 -10
- package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +62 -5
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +5 -4
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Services/UserWebAuthnService.js +345 -113
- package/build/dist/Server/Services/UserWebAuthnService.js.map +1 -1
- package/build/dist/Server/Services/VMwareResourceService.js +395 -0
- package/build/dist/Server/Services/VMwareResourceService.js.map +1 -0
- package/build/dist/Server/Services/VMwareVCenterFeedService.js +89 -0
- package/build/dist/Server/Services/VMwareVCenterFeedService.js.map +1 -0
- package/build/dist/Server/Services/VMwareVCenterLabelRuleEngineService.js +197 -0
- package/build/dist/Server/Services/VMwareVCenterLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/VMwareVCenterLabelRuleService.js +13 -0
- package/build/dist/Server/Services/VMwareVCenterLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js +214 -0
- package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/VMwareVCenterOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/VMwareVCenterOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/VMwareVCenterOwnerTeamService.js +129 -0
- package/build/dist/Server/Services/VMwareVCenterOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/VMwareVCenterOwnerUserService.js +122 -0
- package/build/dist/Server/Services/VMwareVCenterOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/VMwareVCenterService.js +533 -0
- package/build/dist/Server/Services/VMwareVCenterService.js.map +1 -0
- package/build/dist/Server/Services/WorkflowVariableService.js +169 -0
- package/build/dist/Server/Services/WorkflowVariableService.js.map +1 -1
- package/build/dist/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.js +12 -1
- package/build/dist/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.js.map +1 -1
- package/build/dist/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.js +25 -2
- package/build/dist/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.js +275 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.js +226 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.js +297 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubConversation.js +582 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubConversation.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.js +275 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubRunReply.js +365 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubRunReply.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.js +103 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.js +661 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.js.map +1 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js +113 -0
- package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js.map +1 -1
- package/build/dist/Server/Utils/DataSource/EgressGuard.js +99 -15
- package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -1
- package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +2 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -1
- package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js +18 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js.map +1 -1
- package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js +31 -2
- package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js.map +1 -1
- package/build/dist/Server/Utils/LogRedaction.js +2 -1
- package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +219 -4
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +12 -4
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +5 -3
- package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +22 -9
- package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +21 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +21 -6
- package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
- package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js +3 -3
- package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js +9 -9
- package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +92 -71
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +428 -143
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js +376 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +5 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +136 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/VMwareSnapshotScan.js +933 -0
- package/build/dist/Server/Utils/Telemetry/VMwareSnapshotScan.js.map +1 -0
- package/build/dist/Types/AI/CodeFixTaskContext.js +40 -0
- package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -1
- package/build/dist/Types/AI/CodeFixTaskType.js +57 -0
- package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -1
- package/build/dist/Types/Accounts/AccountsLanguage.js +1 -0
- package/build/dist/Types/Accounts/AccountsLanguage.js.map +1 -1
- package/build/dist/Types/AdminDashboard/AdminDashboardLanguage.js +1 -0
- package/build/dist/Types/AdminDashboard/AdminDashboardLanguage.js.map +1 -1
- package/build/dist/Types/Cloud/CloudPlatform.js +277 -0
- package/build/dist/Types/Cloud/CloudPlatform.js.map +1 -0
- package/build/dist/Types/CodeRepository/GitHubCommand.js +52 -0
- package/build/dist/Types/CodeRepository/GitHubCommand.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardLanguage.js +1 -0
- package/build/dist/Types/Dashboard/DashboardLanguage.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardTemplates.js +286 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Docs/DocsLanguage.js +1 -0
- package/build/dist/Types/Docs/DocsLanguage.js.map +1 -1
- package/build/dist/Types/Exception/EgressGuardException.js +59 -0
- package/build/dist/Types/Exception/EgressGuardException.js.map +1 -0
- package/build/dist/Types/Icon/IconProp.js +1 -0
- package/build/dist/Types/Icon/IconProp.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +1 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +61 -18
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepMetricViewConfigUtil.js +1 -0
- package/build/dist/Types/Monitor/MonitorStepMetricViewConfigUtil.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepVMwareMonitor.js +71 -0
- package/build/dist/Types/Monitor/MonitorStepVMwareMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorTemplateSyncField.js +211 -0
- package/build/dist/Types/Monitor/MonitorTemplateSyncField.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorType.js +23 -0
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +28 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +1 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +2 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
- package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js +120 -0
- package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js.map +1 -1
- package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +60 -0
- package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -1
- package/build/dist/Types/Monitor/VMwareAlertTemplates.js +775 -0
- package/build/dist/Types/Monitor/VMwareAlertTemplates.js.map +1 -0
- package/build/dist/Types/Monitor/VMwareMetricCatalog.js +799 -0
- package/build/dist/Types/Monitor/VMwareMetricCatalog.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +25 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js +5 -0
- package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js.map +1 -1
- package/build/dist/Types/Password.js +63 -5
- package/build/dist/Types/Password.js.map +1 -1
- package/build/dist/Types/Permission.js +234 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Probe/RequestFailedDetails.js +7 -0
- package/build/dist/Types/Probe/RequestFailedDetails.js.map +1 -1
- package/build/dist/Types/SecurityEvent/GoogleSecOpsDiagnostics.js +2 -0
- package/build/dist/Types/SecurityEvent/GoogleSecOpsDiagnostics.js.map +1 -0
- package/build/dist/Types/StatusPage/StatusPageLanguage.js +1 -0
- package/build/dist/Types/StatusPage/StatusPageLanguage.js.map +1 -1
- package/build/dist/Types/Telemetry/EntityType.js +21 -0
- package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
- package/build/dist/Types/Telemetry/ServiceType.js +1 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/UI/Components/Breadcrumbs/Breadcrumbs.js +2 -2
- package/build/dist/UI/Components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/build/dist/UI/Components/Calendar/Calendar.js +24 -4
- package/build/dist/UI/Components/Calendar/Calendar.js.map +1 -1
- package/build/dist/UI/Components/Forms/BasicForm.js +28 -3
- package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/ColorPicker.js +1 -1
- package/build/dist/UI/Components/Forms/Fields/ColorPicker.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js +10 -3
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/Forms/ModelForm.js +89 -6
- package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
- package/build/dist/UI/Components/Graphs/DayUptimeGraph.js +5 -6
- package/build/dist/UI/Components/Graphs/DayUptimeGraph.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +14 -0
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/Input/Input.js +37 -8
- package/build/dist/UI/Components/Input/Input.js.map +1 -1
- package/build/dist/UI/Components/LabelRule/ImportLabelRulesModal.js +228 -0
- package/build/dist/UI/Components/LabelRule/ImportLabelRulesModal.js.map +1 -0
- package/build/dist/UI/Components/LabelRule/LabelRuleTable.js +102 -0
- package/build/dist/UI/Components/LabelRule/LabelRuleTable.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +15 -2
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/ModelTable.js +13 -5
- package/build/dist/UI/Components/ModelTable/ModelTable.js.map +1 -1
- package/build/dist/UI/Components/MonitorGraphs/Uptime.js +14 -15
- package/build/dist/UI/Components/MonitorGraphs/Uptime.js.map +1 -1
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +2 -0
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
- package/build/dist/UI/Components/Tooltip/Tooltip.js +33 -4
- package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
- package/build/dist/UI/Utils/DashboardStackingLayers.js +44 -0
- package/build/dist/UI/Utils/DashboardStackingLayers.js.map +1 -0
- package/build/dist/UI/Utils/LabelRuleImportExport.js +195 -0
- package/build/dist/UI/Utils/LabelRuleImportExport.js.map +1 -0
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +4 -4
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/TelemetryService.js +3 -2
- package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
- package/build/dist/UI/Utils/UseDashboardGridDnd.js +2 -1
- package/build/dist/UI/Utils/UseDashboardGridDnd.js.map +1 -1
- package/build/dist/UI/Utils/UserEmailRegistrationStatus.js +21 -4
- package/build/dist/UI/Utils/UserEmailRegistrationStatus.js.map +1 -1
- package/build/dist/UI/Utils/WebAuthn.js +121 -0
- package/build/dist/UI/Utils/WebAuthn.js.map +1 -0
- package/build/dist/Utils/API.js +29 -0
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardVMwareHostListComponent.js +33 -0
- package/build/dist/Utils/Dashboard/Components/DashboardVMwareHostListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardVMwareResourceListShared.js +54 -0
- package/build/dist/Utils/Dashboard/Components/DashboardVMwareResourceListShared.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.js +60 -0
- package/build/dist/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +8 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/LabelRuleImportExport.js +356 -0
- package/build/dist/Utils/LabelRuleImportExport.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorTemplateSyncUtil.js +110 -0
- package/build/dist/Utils/Monitor/MonitorTemplateSyncUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js +6 -0
- package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js.map +1 -1
- package/build/dist/Utils/Telemetry/CloudInstanceIdentity.js +88 -0
- package/build/dist/Utils/Telemetry/CloudInstanceIdentity.js.map +1 -0
- package/build/dist/Utils/Telemetry/EntityKey.js +15 -0
- package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
- package/build/dist/Utils/Telemetry/EntityRelationship.js +13 -0
- package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
- package/package.json +1 -1
|
@@ -261,7 +261,10 @@ export interface BaseTableProps<
|
|
|
261
261
|
onBeforeCreate?:
|
|
262
262
|
| ((item: TBaseModel, miscDataProps: JSONObject) => Promise<TBaseModel>)
|
|
263
263
|
| undefined;
|
|
264
|
-
|
|
264
|
+
// Runs after both create and edit; modalType identifies which form was saved.
|
|
265
|
+
onCreateSuccess?:
|
|
266
|
+
| ((item: TBaseModel, modalType?: ModalType) => Promise<TBaseModel>)
|
|
267
|
+
| undefined;
|
|
265
268
|
createVerb?: string;
|
|
266
269
|
showAs?: ShowAs | undefined;
|
|
267
270
|
singularName?: string | undefined;
|
|
@@ -4622,14 +4625,28 @@ const BaseModelTable: <TBaseModel extends BaseModel | AnalyticsBaseModel>(
|
|
|
4622
4625
|
setCurrentPageNumber(1);
|
|
4623
4626
|
await fetchItems();
|
|
4624
4627
|
if (props.onCreateSuccess) {
|
|
4625
|
-
await props.onCreateSuccess(item);
|
|
4628
|
+
await props.onCreateSuccess(item, modalType);
|
|
4626
4629
|
}
|
|
4627
4630
|
|
|
4628
4631
|
return Promise.resolve();
|
|
4629
4632
|
},
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
+
/*
|
|
4634
|
+
* Gated on the modal type, not on currentEditableItem alone. The Edit
|
|
4635
|
+
* row action is the only thing that ever sets that state and nothing
|
|
4636
|
+
* clears it - not onClose above, not any of the three Create entry
|
|
4637
|
+
* points - so after one edit it stays populated for the life of the
|
|
4638
|
+
* table. Passing it into a Create handed ModelTable an id that made
|
|
4639
|
+
* its form filter treat the create form as an edit form, which
|
|
4640
|
+
* dropped every doNotShowWhenEditing field: on Runbook Secrets,
|
|
4641
|
+
* Monitor Secrets and the Security Events connectors, creating a
|
|
4642
|
+
* second row after editing one offered a form with no secret field
|
|
4643
|
+
* on it and failed at submit on a required column the user was never
|
|
4644
|
+
* shown.
|
|
4645
|
+
*/
|
|
4646
|
+
modelIdToEdit:
|
|
4647
|
+
modalType === ModalType.Edit && currentEditableItem
|
|
4648
|
+
? new ObjectID(currentEditableItem["_id"] as string)
|
|
4649
|
+
: undefined,
|
|
4633
4650
|
})
|
|
4634
4651
|
) : (
|
|
4635
4652
|
<></>
|
|
@@ -303,15 +303,23 @@ const ModelTable: <TBaseModel extends BaseModel>(
|
|
|
303
303
|
fields:
|
|
304
304
|
props.formFields?.filter(
|
|
305
305
|
(field: ModelField<TBaseModel>) => {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
306
|
+
/*
|
|
307
|
+
* On the modal's own type, which is what these two flags
|
|
308
|
+
* are about, rather than on modelIdToEdit - every other
|
|
309
|
+
* branch in this function already reads modalType, and
|
|
310
|
+
* an id that outlived the edit it belonged to used to be
|
|
311
|
+
* enough to make a create form hide its create-only
|
|
312
|
+
* fields.
|
|
313
|
+
*/
|
|
314
|
+
if (modalType === ModalType.Create) {
|
|
315
|
+
// If the field has doNotShowWhenCreating set to true, then don't show it when creating
|
|
316
|
+
|
|
317
|
+
return !field.doNotShowWhenCreating;
|
|
310
318
|
}
|
|
311
319
|
|
|
312
|
-
// If the field has
|
|
320
|
+
// If the field has doNotShowWhenEditing set to true, then don't show it when editing
|
|
313
321
|
|
|
314
|
-
return !field.
|
|
322
|
+
return !field.doNotShowWhenEditing;
|
|
315
323
|
},
|
|
316
324
|
) || [],
|
|
317
325
|
steps: props.formSteps || [],
|
|
@@ -13,12 +13,7 @@ import MonitorStatusTimeline from "../../../Models/DatabaseModels/MonitorStatusT
|
|
|
13
13
|
import StatusPageHistoryChartBarColorRule from "../../../Models/DatabaseModels/StatusPageHistoryChartBarColorRule";
|
|
14
14
|
import UptimeBarTooltipIncident from "../../../Types/Monitor/UptimeBarTooltipIncident";
|
|
15
15
|
import UptimeHistoryLabels from "../../../Types/Monitor/UptimeHistoryLabels";
|
|
16
|
-
import React, {
|
|
17
|
-
FunctionComponent,
|
|
18
|
-
ReactElement,
|
|
19
|
-
useEffect,
|
|
20
|
-
useState,
|
|
21
|
-
} from "react";
|
|
16
|
+
import React, { FunctionComponent, ReactElement, useMemo } from "react";
|
|
22
17
|
|
|
23
18
|
export type MonitorEvent = CommonMonitorEvent;
|
|
24
19
|
|
|
@@ -47,29 +42,24 @@ export interface ComponentProps {
|
|
|
47
42
|
const MonitorUptimeGraph: FunctionComponent<ComponentProps> = (
|
|
48
43
|
props: ComponentProps,
|
|
49
44
|
): ReactElement => {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
props.items,
|
|
57
|
-
);
|
|
58
|
-
setEvents(eventList);
|
|
45
|
+
/*
|
|
46
|
+
* A search can reveal many histories at once. Derive their data before the
|
|
47
|
+
* first paint instead of painting empty bars and rebuilding them in effects.
|
|
48
|
+
*/
|
|
49
|
+
const events: Array<Event> = useMemo(() => {
|
|
50
|
+
return UptimeUtil.getNonOverlappingMonitorEvents(props.items);
|
|
59
51
|
}, [props.items]);
|
|
60
52
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
uptimePercentGreaterThanOrEqualTo
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
);
|
|
72
|
-
}
|
|
53
|
+
const barColorRules: Array<BarChartRule> = useMemo(() => {
|
|
54
|
+
return (props.barColorRules || []).map(
|
|
55
|
+
(rule: StatusPageHistoryChartBarColorRule): BarChartRule => {
|
|
56
|
+
return {
|
|
57
|
+
barColor: rule.barColor!,
|
|
58
|
+
uptimePercentGreaterThanOrEqualTo:
|
|
59
|
+
rule.uptimePercentGreaterThanOrEqualTo!,
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
);
|
|
73
63
|
}, [props.barColorRules]);
|
|
74
64
|
|
|
75
65
|
if (props.isLoading) {
|
|
@@ -33,7 +33,7 @@ export default class TemplateVariablesCatalog {
|
|
|
33
33
|
/**
|
|
34
34
|
* Attribute keys the user has configured on the metric query
|
|
35
35
|
* (e.g. ["host.name", "region"]). For metric/kubernetes/docker/
|
|
36
|
-
* proxmox/ceph monitors, these become per-series template variables
|
|
36
|
+
* proxmox/vmware/ceph monitors, these become per-series template variables
|
|
37
37
|
* — one incident fires per unique value combination, and each
|
|
38
38
|
* incident can reference the label values via `{{host.name}}` etc.
|
|
39
39
|
*/
|
|
@@ -58,6 +58,7 @@ export default class TemplateVariablesCatalog {
|
|
|
58
58
|
input.monitorType === MonitorType.Podman ||
|
|
59
59
|
input.monitorType === MonitorType.DockerSwarm ||
|
|
60
60
|
input.monitorType === MonitorType.Proxmox ||
|
|
61
|
+
input.monitorType === MonitorType.VMware ||
|
|
61
62
|
input.monitorType === MonitorType.Ceph
|
|
62
63
|
) {
|
|
63
64
|
groups.push(
|
|
@@ -672,6 +673,7 @@ export default class TemplateVariablesCatalog {
|
|
|
672
673
|
case MonitorType.Podman:
|
|
673
674
|
case MonitorType.DockerSwarm:
|
|
674
675
|
case MonitorType.Proxmox:
|
|
676
|
+
case MonitorType.VMware:
|
|
675
677
|
case MonitorType.Ceph:
|
|
676
678
|
return {
|
|
677
679
|
title: "Metric",
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import Tippy from "@tippyjs/react";
|
|
2
|
-
import React, {
|
|
2
|
+
import React, {
|
|
3
|
+
cloneElement,
|
|
4
|
+
FunctionComponent,
|
|
5
|
+
ReactElement,
|
|
6
|
+
useState,
|
|
7
|
+
} from "react";
|
|
3
8
|
import "tippy.js/dist/tippy.css";
|
|
4
9
|
import "tippy.js/themes/light-border.css";
|
|
5
10
|
import "tippy.js/animations/shift-away-subtle.css";
|
|
@@ -8,10 +13,16 @@ export interface ComponentProps {
|
|
|
8
13
|
text?: string | undefined;
|
|
9
14
|
children: ReactElement;
|
|
10
15
|
richContent?: ReactElement | undefined;
|
|
16
|
+
// Large collections can wait to create a tooltip until first opened.
|
|
17
|
+
lazy?: boolean | undefined;
|
|
11
18
|
}
|
|
12
19
|
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
interface PopupProps extends ComponentProps {
|
|
21
|
+
reference?: HTMLElement | undefined;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const TooltipPopup: FunctionComponent<PopupProps> = (
|
|
25
|
+
props: PopupProps,
|
|
15
26
|
): ReactElement => {
|
|
16
27
|
if (!props.text && !props.richContent) {
|
|
17
28
|
return props.children;
|
|
@@ -47,6 +58,9 @@ const Tooltip: FunctionComponent<ComponentProps> = (
|
|
|
47
58
|
* impossible to build under it.
|
|
48
59
|
*/
|
|
49
60
|
content={tooltipContent}
|
|
61
|
+
{...(props.reference
|
|
62
|
+
? { reference: props.reference, showOnCreate: true }
|
|
63
|
+
: { children: props.children })}
|
|
50
64
|
interactive={isRich}
|
|
51
65
|
trigger="mouseenter focus"
|
|
52
66
|
hideOnClick={false}
|
|
@@ -65,9 +79,41 @@ const Tooltip: FunctionComponent<ComponentProps> = (
|
|
|
65
79
|
*/
|
|
66
80
|
expanded: false,
|
|
67
81
|
}}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
82
|
+
/>
|
|
83
|
+
);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const Tooltip: FunctionComponent<ComponentProps> = (
|
|
87
|
+
props: ComponentProps,
|
|
88
|
+
): ReactElement => {
|
|
89
|
+
const [reference, setReference] = useState<HTMLElement | null>(null);
|
|
90
|
+
|
|
91
|
+
if (!props.lazy || (!props.text && !props.richContent)) {
|
|
92
|
+
return <TooltipPopup {...props} />;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/*
|
|
96
|
+
* Keep the trigger in the same place before and after opening. Wrapping it
|
|
97
|
+
* in Tippy on first interaction would replace the DOM node and lose focus.
|
|
98
|
+
* Tippy attaches its normal hover, focus and interactive-hide handlers to
|
|
99
|
+
* this external reference once, when the visitor first uses the tooltip.
|
|
100
|
+
*/
|
|
101
|
+
const child: ReactElement<React.HTMLAttributes<HTMLElement>> = props.children;
|
|
102
|
+
|
|
103
|
+
return (
|
|
104
|
+
<>
|
|
105
|
+
{cloneElement(child, {
|
|
106
|
+
onMouseEnter: (event: React.MouseEvent<HTMLElement>) => {
|
|
107
|
+
child.props.onMouseEnter?.(event);
|
|
108
|
+
setReference(event.currentTarget);
|
|
109
|
+
},
|
|
110
|
+
onFocus: (event: React.FocusEvent<HTMLElement>) => {
|
|
111
|
+
child.props.onFocus?.(event);
|
|
112
|
+
setReference(event.currentTarget);
|
|
113
|
+
},
|
|
114
|
+
})}
|
|
115
|
+
{reference && <TooltipPopup {...props} reference={reference} />}
|
|
116
|
+
</>
|
|
71
117
|
);
|
|
72
118
|
};
|
|
73
119
|
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Paint order on a dashboard page, in one place.
|
|
3
|
+
*
|
|
4
|
+
* github.com/OneUptime/oneuptime/issues/3660. A tile that had been clicked
|
|
5
|
+
* once painted ON TOP of the toolbar's auto-refresh dropdown, so the picker
|
|
6
|
+
* opened into a white rectangle the user could not see. Both numbers behind
|
|
7
|
+
* that were reasonable on their own - the canvas raises a selected tile so it
|
|
8
|
+
* sits above the tiles it overlaps, and the dropdown asked for a modest
|
|
9
|
+
* layer - but neither element sat inside a stacking context of its own, so
|
|
10
|
+
* "above my neighbours on the board" and "above the toolbar card" were
|
|
11
|
+
* silently resolved against each other in the ROOT stacking context, and the
|
|
12
|
+
* larger number won.
|
|
13
|
+
*
|
|
14
|
+
* Numbers alone cannot fix that; the next person to raise a widget by one
|
|
15
|
+
* step re-breaks it. So the contract has two halves and both live here:
|
|
16
|
+
*
|
|
17
|
+
* 1. The canvas positioner establishes its OWN stacking context
|
|
18
|
+
* (CANVAS_ISOLATION below). Every z-index inside the canvas is then a
|
|
19
|
+
* statement about the other things ON THE BOARD, and cannot outrank page
|
|
20
|
+
* chrome however large it grows. This is what actually fixes the bug -
|
|
21
|
+
* and it fixes the unreported half of it too, because a selected tile at
|
|
22
|
+
* 20 and a dragged tile at 60 were also outranking the app's own sticky
|
|
23
|
+
* header (`sticky top-0 z-10`, Common/UI/Components/MasterPage).
|
|
24
|
+
*
|
|
25
|
+
* 2. The toolbar's hand-rolled auto-refresh menu sits at TOOLBAR_POPUP, the
|
|
26
|
+
* layer MoreMenu already uses (`z-50`,
|
|
27
|
+
* Common/UI/Components/MoreMenu/MoreMenu.tsx), so the two menus in that
|
|
28
|
+
* one toolbar stop disagreeing about how high a menu opens.
|
|
29
|
+
*
|
|
30
|
+
* These are plain numbers rather than Tailwind classes on purpose: the
|
|
31
|
+
* relationship between them is the thing that matters, and a relationship
|
|
32
|
+
* spelled as `z-10` in one file and `zIndex: 20` in another is exactly what
|
|
33
|
+
* broke. Written this way it is one import, and a test can assert the
|
|
34
|
+
* ordering instead of trusting two string literals to stay in step.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
export interface DashboardStackingLayerScale {
|
|
38
|
+
/**
|
|
39
|
+
* The dashed drop-target outline shown while a widget is dragged or
|
|
40
|
+
* resized. Below the widget being moved, so the card stays readable as it
|
|
41
|
+
* crosses its own placeholder.
|
|
42
|
+
*/
|
|
43
|
+
canvasPlaceholder: number;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The selected widget. Raised so its selection ring and resize handles
|
|
47
|
+
* are not clipped by the neighbours they overlap.
|
|
48
|
+
*/
|
|
49
|
+
canvasSelectedComponent: number;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The widget under an active drag or resize. Above everything else on the
|
|
53
|
+
* board, including the placeholder it is heading for, and held there until
|
|
54
|
+
* the settle transition finishes (see UseDashboardGridDnd).
|
|
55
|
+
*/
|
|
56
|
+
canvasDraggingComponent: number;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Menus and panels anchored to the dashboard toolbar. Above the canvas -
|
|
60
|
+
* which, being isolated, cannot compete - and above the app's sticky
|
|
61
|
+
* header, matching MoreMenu.
|
|
62
|
+
*/
|
|
63
|
+
toolbarPopup: number;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const DashboardStackingLayers: DashboardStackingLayerScale = {
|
|
67
|
+
canvasPlaceholder: 5,
|
|
68
|
+
canvasSelectedComponent: 20,
|
|
69
|
+
canvasDraggingComponent: 60,
|
|
70
|
+
toolbarPopup: 50,
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The `isolation` value the dashboard canvas positioner carries.
|
|
75
|
+
*
|
|
76
|
+
* `isolate` is the property whose only job is to open a stacking context: it
|
|
77
|
+
* changes no layout, clips nothing, and - unlike `transform` or `filter` -
|
|
78
|
+
* does not become the containing block for `position: fixed` descendants, so
|
|
79
|
+
* portalled popups and fullscreen keep working exactly as they did.
|
|
80
|
+
*/
|
|
81
|
+
export type DashboardCanvasIsolation = "isolate";
|
|
82
|
+
|
|
83
|
+
export const DASHBOARD_CANVAS_ISOLATION: DashboardCanvasIsolation = "isolate";
|
|
84
|
+
|
|
85
|
+
export default DashboardStackingLayers;
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import BaseModel, {
|
|
2
|
+
DatabaseBaseModelType,
|
|
3
|
+
} from "../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
|
|
4
|
+
import ListResult from "../../Types/BaseDatabase/ListResult";
|
|
5
|
+
import Query from "../../Types/BaseDatabase/Query";
|
|
6
|
+
import Select from "../../Types/BaseDatabase/Select";
|
|
7
|
+
import SortOrder from "../../Types/BaseDatabase/SortOrder";
|
|
8
|
+
import { TableColumnMetadata } from "../../Types/Database/TableColumn";
|
|
9
|
+
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
10
|
+
import BadDataException from "../../Types/Exception/BadDataException";
|
|
11
|
+
import { JSONObject } from "../../Types/JSON";
|
|
12
|
+
import ObjectID from "../../Types/ObjectID";
|
|
13
|
+
import LabelRuleFile, {
|
|
14
|
+
ParsedLabelRuleImport,
|
|
15
|
+
} from "../../Utils/LabelRuleImportExport";
|
|
16
|
+
import API from "./API/API";
|
|
17
|
+
import ModelAPI from "./ModelAPI/ModelAPI";
|
|
18
|
+
|
|
19
|
+
export interface LabelRuleImportItem {
|
|
20
|
+
index: number;
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
isEnabled: boolean;
|
|
24
|
+
labels: Array<string>;
|
|
25
|
+
json: JSONObject;
|
|
26
|
+
displayJson: JSONObject;
|
|
27
|
+
portableJson: JSONObject;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface LabelRuleImportPreview {
|
|
31
|
+
projectId: string;
|
|
32
|
+
sourceResourceType: string;
|
|
33
|
+
destinationResourceType: string;
|
|
34
|
+
mappings: Array<string>;
|
|
35
|
+
items: Array<LabelRuleImportItem>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface LabelRuleImportFailure {
|
|
39
|
+
index: number;
|
|
40
|
+
itemName: string;
|
|
41
|
+
errorMessage: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface LabelRuleImportResult {
|
|
45
|
+
successCount: number;
|
|
46
|
+
failures: Array<LabelRuleImportFailure>;
|
|
47
|
+
retryPreview: LabelRuleImportPreview;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export const LABEL_RULE_IMPORT_CONCURRENCY: number = 5;
|
|
51
|
+
const PAGE_SIZE: number = 500;
|
|
52
|
+
|
|
53
|
+
export default class LabelRuleImportExport {
|
|
54
|
+
public static async exportAll(data: {
|
|
55
|
+
modelType: DatabaseBaseModelType;
|
|
56
|
+
projectId: ObjectID;
|
|
57
|
+
modelAPI?: typeof ModelAPI | undefined;
|
|
58
|
+
}): Promise<JSONObject> {
|
|
59
|
+
const items: Array<BaseModel> = await this.getAll({
|
|
60
|
+
...data,
|
|
61
|
+
select: LabelRuleFile.getExportSelect(data.modelType),
|
|
62
|
+
});
|
|
63
|
+
return LabelRuleFile.buildExportEnvelope({
|
|
64
|
+
modelType: data.modelType,
|
|
65
|
+
items,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
public static async preview(data: {
|
|
70
|
+
modelType: DatabaseBaseModelType;
|
|
71
|
+
fileText: string;
|
|
72
|
+
projectId: ObjectID;
|
|
73
|
+
modelAPI?: typeof ModelAPI | undefined;
|
|
74
|
+
}): Promise<LabelRuleImportPreview> {
|
|
75
|
+
// Parse every row before any lookup, and resolve every relation before any write.
|
|
76
|
+
const parsed: ParsedLabelRuleImport = LabelRuleFile.parse(data);
|
|
77
|
+
const model: BaseModel = new data.modelType();
|
|
78
|
+
const relationColumns: Array<string> = LabelRuleFile.getColumns(
|
|
79
|
+
data.modelType,
|
|
80
|
+
).filter((column: string): boolean => {
|
|
81
|
+
return (
|
|
82
|
+
model.getTableColumnMetadata(column)?.type ===
|
|
83
|
+
TableColumnType.EntityArray
|
|
84
|
+
);
|
|
85
|
+
});
|
|
86
|
+
const indexes: Map<
|
|
87
|
+
DatabaseBaseModelType,
|
|
88
|
+
Map<string, Array<string>>
|
|
89
|
+
> = new Map();
|
|
90
|
+
for (const column of relationColumns) {
|
|
91
|
+
if (
|
|
92
|
+
!parsed.items.some(
|
|
93
|
+
(item: ParsedLabelRuleImport["items"][number]): boolean => {
|
|
94
|
+
return (item.json[column] as Array<string>).length > 0;
|
|
95
|
+
},
|
|
96
|
+
)
|
|
97
|
+
) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const metadata: TableColumnMetadata =
|
|
101
|
+
model.getTableColumnMetadata(column)!;
|
|
102
|
+
const relationType: DatabaseBaseModelType = metadata.modelType!;
|
|
103
|
+
if (indexes.has(relationType)) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const relations: Array<BaseModel> = await this.getAll({
|
|
107
|
+
modelType: relationType,
|
|
108
|
+
projectId: data.projectId,
|
|
109
|
+
modelAPI: data.modelAPI,
|
|
110
|
+
select: { _id: true, name: true } as Select<BaseModel>,
|
|
111
|
+
});
|
|
112
|
+
const names: Map<string, Array<string>> = new Map();
|
|
113
|
+
for (const relation of relations) {
|
|
114
|
+
const name: unknown = relation.getValue("name");
|
|
115
|
+
if (typeof name === "string" && relation.id) {
|
|
116
|
+
const ids: Array<string> = names.get(name) || [];
|
|
117
|
+
if (!ids.includes(relation.id.toString())) {
|
|
118
|
+
ids.push(relation.id.toString());
|
|
119
|
+
}
|
|
120
|
+
names.set(name, ids);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
indexes.set(relationType, names);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const errors: Array<string> = [];
|
|
127
|
+
const items: Array<LabelRuleImportItem> = parsed.items.map(
|
|
128
|
+
(
|
|
129
|
+
item: ParsedLabelRuleImport["items"][number],
|
|
130
|
+
index: number,
|
|
131
|
+
): LabelRuleImportItem => {
|
|
132
|
+
const json: JSONObject = { ...item.json };
|
|
133
|
+
for (const column of relationColumns) {
|
|
134
|
+
const metadata: TableColumnMetadata =
|
|
135
|
+
model.getTableColumnMetadata(column)!;
|
|
136
|
+
json[column] = (item.json[column] as Array<string>).map(
|
|
137
|
+
(name: string): JSONObject => {
|
|
138
|
+
const ids: Array<string> =
|
|
139
|
+
indexes.get(metadata.modelType!)?.get(name) || [];
|
|
140
|
+
if (ids.length !== 1) {
|
|
141
|
+
errors.push(
|
|
142
|
+
`Rule ${index + 1} (${item.json["name"]}): ${metadata.title || column} "${name}" ${ids.length ? "matches multiple resources" : "was not found"} in the destination project. ${ids.length ? "Give these resources distinct names" : "Create or rename the resource"} before importing.`,
|
|
143
|
+
);
|
|
144
|
+
return {};
|
|
145
|
+
}
|
|
146
|
+
return { _id: ids[0]! };
|
|
147
|
+
},
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
index: index + 1,
|
|
152
|
+
name: item.json["name"] as string,
|
|
153
|
+
description: (item.json["description"] as string) || "",
|
|
154
|
+
isEnabled: item.json["isEnabled"] as boolean,
|
|
155
|
+
labels: item.json["labelsToAdd"] as Array<string>,
|
|
156
|
+
json,
|
|
157
|
+
displayJson: item.json,
|
|
158
|
+
portableJson: item.portableJson,
|
|
159
|
+
};
|
|
160
|
+
},
|
|
161
|
+
);
|
|
162
|
+
if (errors.length) {
|
|
163
|
+
throw new BadDataException(
|
|
164
|
+
errors.slice(0, 20).join("\n") +
|
|
165
|
+
(errors.length > 20
|
|
166
|
+
? `\nAnd ${errors.length - 20} more unresolved resources.`
|
|
167
|
+
: ""),
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
projectId: data.projectId.toString(),
|
|
172
|
+
sourceResourceType: parsed.sourceResourceType,
|
|
173
|
+
destinationResourceType: parsed.destinationResourceType,
|
|
174
|
+
mappings: parsed.mappings,
|
|
175
|
+
items,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
public static getRetryEnvelope(preview: LabelRuleImportPreview): JSONObject {
|
|
180
|
+
return LabelRuleFile.envelope({
|
|
181
|
+
resourceType: preview.sourceResourceType,
|
|
182
|
+
items: preview.items.map((item: LabelRuleImportItem): JSONObject => {
|
|
183
|
+
return item.portableJson;
|
|
184
|
+
}),
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
public static async importPreview(data: {
|
|
189
|
+
preview: LabelRuleImportPreview;
|
|
190
|
+
modelType: DatabaseBaseModelType;
|
|
191
|
+
modelAPI?: typeof ModelAPI | undefined;
|
|
192
|
+
onProgress?:
|
|
193
|
+
| ((completedCount: number, totalCount: number) => void)
|
|
194
|
+
| undefined;
|
|
195
|
+
}): Promise<LabelRuleImportResult> {
|
|
196
|
+
if (
|
|
197
|
+
new data.modelType().tableName !== data.preview.destinationResourceType
|
|
198
|
+
) {
|
|
199
|
+
throw new BadDataException(
|
|
200
|
+
"The destination rule type changed. Preview this file again before importing.",
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
const projectId: ObjectID = new ObjectID(data.preview.projectId);
|
|
204
|
+
const modelAPI: typeof ModelAPI = data.modelAPI || ModelAPI;
|
|
205
|
+
let nextItem: number = 0;
|
|
206
|
+
let completed: number = 0;
|
|
207
|
+
let successCount: number = 0;
|
|
208
|
+
const failures: Array<LabelRuleImportFailure> = [];
|
|
209
|
+
const worker: () => Promise<void> = async (): Promise<void> => {
|
|
210
|
+
while (nextItem < data.preview.items.length) {
|
|
211
|
+
const item: LabelRuleImportItem = data.preview.items[nextItem++]!;
|
|
212
|
+
try {
|
|
213
|
+
const model: BaseModel = BaseModel.fromJSONObject(
|
|
214
|
+
item.json,
|
|
215
|
+
data.modelType,
|
|
216
|
+
);
|
|
217
|
+
model.setValue("projectId", projectId);
|
|
218
|
+
/*
|
|
219
|
+
* Each row uses the normal API permission checks and validation hooks.
|
|
220
|
+
* Never automatically retry: a lost response can follow a successful write.
|
|
221
|
+
*/
|
|
222
|
+
await modelAPI.create({
|
|
223
|
+
model,
|
|
224
|
+
modelType: data.modelType,
|
|
225
|
+
requestOptions: {
|
|
226
|
+
requestHeaders: { tenantid: projectId.toString() },
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
successCount++;
|
|
230
|
+
} catch (error) {
|
|
231
|
+
failures.push({
|
|
232
|
+
index: item.index,
|
|
233
|
+
itemName: item.name,
|
|
234
|
+
errorMessage: API.getFriendlyMessage(error),
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
completed++;
|
|
238
|
+
if (data.onProgress) {
|
|
239
|
+
try {
|
|
240
|
+
data.onProgress(completed, data.preview.items.length);
|
|
241
|
+
} catch {
|
|
242
|
+
// A rendering failure must not hide completed writes or abort the batch.
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
await Promise.all(
|
|
248
|
+
Array.from(
|
|
249
|
+
{
|
|
250
|
+
length: Math.min(
|
|
251
|
+
LABEL_RULE_IMPORT_CONCURRENCY,
|
|
252
|
+
data.preview.items.length,
|
|
253
|
+
),
|
|
254
|
+
},
|
|
255
|
+
worker,
|
|
256
|
+
),
|
|
257
|
+
);
|
|
258
|
+
failures.sort(
|
|
259
|
+
(left: LabelRuleImportFailure, right: LabelRuleImportFailure): number => {
|
|
260
|
+
return left.index - right.index;
|
|
261
|
+
},
|
|
262
|
+
);
|
|
263
|
+
const failedIndexes: Set<number> = new Set(
|
|
264
|
+
failures.map((failure: LabelRuleImportFailure): number => {
|
|
265
|
+
return failure.index;
|
|
266
|
+
}),
|
|
267
|
+
);
|
|
268
|
+
return {
|
|
269
|
+
successCount,
|
|
270
|
+
failures,
|
|
271
|
+
retryPreview: {
|
|
272
|
+
...data.preview,
|
|
273
|
+
items: data.preview.items.filter(
|
|
274
|
+
(item: LabelRuleImportItem): boolean => {
|
|
275
|
+
return failedIndexes.has(item.index);
|
|
276
|
+
},
|
|
277
|
+
),
|
|
278
|
+
},
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
private static async getAll(data: {
|
|
283
|
+
modelType: DatabaseBaseModelType;
|
|
284
|
+
projectId: ObjectID;
|
|
285
|
+
modelAPI?: typeof ModelAPI | undefined;
|
|
286
|
+
select: Select<BaseModel>;
|
|
287
|
+
}): Promise<Array<BaseModel>> {
|
|
288
|
+
const modelAPI: typeof ModelAPI = data.modelAPI || ModelAPI;
|
|
289
|
+
const items: Array<BaseModel> = [];
|
|
290
|
+
let skip: number = 0;
|
|
291
|
+
while (true) {
|
|
292
|
+
const result: ListResult<BaseModel> = await modelAPI.getList({
|
|
293
|
+
modelType: data.modelType,
|
|
294
|
+
query: { projectId: data.projectId } as Query<BaseModel>,
|
|
295
|
+
select: data.select,
|
|
296
|
+
skip,
|
|
297
|
+
limit: PAGE_SIZE,
|
|
298
|
+
sort: { _id: SortOrder.Ascending },
|
|
299
|
+
requestOptions: {
|
|
300
|
+
requestHeaders: { tenantid: data.projectId.toString() },
|
|
301
|
+
},
|
|
302
|
+
});
|
|
303
|
+
items.push(...result.data);
|
|
304
|
+
skip += result.data.length;
|
|
305
|
+
if (result.data.length === 0 || skip >= result.count) {
|
|
306
|
+
return items;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
@@ -232,9 +232,10 @@ export default class ModelAPI {
|
|
|
232
232
|
);
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
const headers: Dictionary<string> =
|
|
236
|
-
data.requestOptions,
|
|
237
|
-
|
|
235
|
+
const headers: Dictionary<string> = {
|
|
236
|
+
...this.getCommonHeaders(data.requestOptions),
|
|
237
|
+
...(data.requestOptions?.requestHeaders || {}),
|
|
238
|
+
};
|
|
238
239
|
if (data.requestOptions && data.requestOptions.isMultiTenantRequest) {
|
|
239
240
|
headers["isMultiTenantRequest"] = "true";
|
|
240
241
|
}
|
|
@@ -24,7 +24,7 @@ export const UNKNOWN_SERVICE_NAME: string = "Unknown Service";
|
|
|
24
24
|
* OpenTelemetry service, or the synthetic "Unknown Service" for the
|
|
25
25
|
* unattributed bucket) — or a plain `label` for infrastructure resource
|
|
26
26
|
* types (Host / DockerHost / KubernetesCluster / ProxmoxCluster /
|
|
27
|
-
* CephCluster) that have no Service row.
|
|
27
|
+
* CephCluster / VMwareVCenter) that have no Service row.
|
|
28
28
|
*/
|
|
29
29
|
export interface ResolvedTelemetryResource {
|
|
30
30
|
service?: Service;
|
|
@@ -67,8 +67,8 @@ export default class TelemetryServiceUtil {
|
|
|
67
67
|
* old server-side `service` ORM relation on TelemetryException: a real
|
|
68
68
|
* Service resolves from the loaded list, the unattributed bucket resolves
|
|
69
69
|
* to the synthetic "Unknown Service", and Host / DockerHost /
|
|
70
|
-
* KubernetesCluster / ProxmoxCluster / CephCluster
|
|
71
|
-
* label (no Service row exists for them). Mirrors how the ClickHouse
|
|
70
|
+
* KubernetesCluster / ProxmoxCluster / CephCluster / VMwareVCenter
|
|
71
|
+
* resolve to a type label (no Service row exists for them). Mirrors how the ClickHouse
|
|
72
72
|
* analytics rows are resolved.
|
|
73
73
|
*/
|
|
74
74
|
public static resolveTelemetryResource(data: {
|
|
@@ -106,6 +106,7 @@ export default class TelemetryServiceUtil {
|
|
|
106
106
|
[ServiceType.KubernetesCluster]: "Kubernetes telemetry",
|
|
107
107
|
[ServiceType.ProxmoxCluster]: "Proxmox Cluster",
|
|
108
108
|
[ServiceType.CephCluster]: "Ceph Cluster",
|
|
109
|
+
[ServiceType.VMwareVCenter]: "vCenter",
|
|
109
110
|
};
|
|
110
111
|
const label: string | undefined = data.primaryEntityType
|
|
111
112
|
? typeLabels[data.primaryEntityType.toString()]
|