@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
|
@@ -21,11 +21,16 @@ import Email from "../../Types/Email";
|
|
|
21
21
|
import EmailTemplateType from "../../Types/Email/EmailTemplateType";
|
|
22
22
|
import APIException from "../../Types/Exception/ApiException";
|
|
23
23
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
24
|
+
import Exception from "../../Types/Exception/Exception";
|
|
25
|
+
import ServiceUnavailableException from "../../Types/Exception/ServiceUnavailableException";
|
|
24
26
|
import ProductType from "../../Types/MeteredPlan/ProductType";
|
|
25
27
|
import ObjectID from "../../Types/ObjectID";
|
|
26
28
|
import Sleep from "../../Types/Sleep";
|
|
27
29
|
import Stripe from "stripe";
|
|
28
30
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
31
|
+
import PayAsYouGoBillingService, {
|
|
32
|
+
LiveUsageAuthorization,
|
|
33
|
+
} from "./PayAsYouGoBillingService";
|
|
29
34
|
|
|
30
35
|
export type SubscriptionItem = Stripe.SubscriptionItem;
|
|
31
36
|
|
|
@@ -45,6 +50,9 @@ export interface PaymentMethod {
|
|
|
45
50
|
*/
|
|
46
51
|
export const MAX_TRIAL_LENGTH_IN_DAYS: number = 730;
|
|
47
52
|
|
|
53
|
+
export const METERED_BILLING_START_METADATA_KEY: string =
|
|
54
|
+
"oneuptime_pay_as_you_go_started_at";
|
|
55
|
+
|
|
48
56
|
/*
|
|
49
57
|
* How long to wait before trying a cancel again, per retry.
|
|
50
58
|
*
|
|
@@ -55,6 +63,59 @@ export const MAX_TRIAL_LENGTH_IN_DAYS: number = 730;
|
|
|
55
63
|
*/
|
|
56
64
|
const CANCEL_RETRY_DELAYS_IN_MS: Array<number> = [1000, 3000];
|
|
57
65
|
|
|
66
|
+
const PAYMENT_METHOD_TYPES: Array<Stripe.PaymentMethodListParams.Type> = [
|
|
67
|
+
"card",
|
|
68
|
+
"sepa_debit",
|
|
69
|
+
"us_bank_account",
|
|
70
|
+
"bacs_debit",
|
|
71
|
+
];
|
|
72
|
+
/*
|
|
73
|
+
* Four attempts spread over 1s+2s+4s was the whole budget, and CI showed it
|
|
74
|
+
* spent: every failing read took 9-10s and then 500'd, which is this ladder
|
|
75
|
+
* running out while Stripe was still rate-limiting. One more attempt roughly
|
|
76
|
+
* doubles the window without making a user-facing request pathological.
|
|
77
|
+
*/
|
|
78
|
+
const PAYMENT_READ_MAX_RETRIES: number = 4;
|
|
79
|
+
|
|
80
|
+
// Ceiling for a single wait, so a large Retry-After cannot hang the request.
|
|
81
|
+
const PAYMENT_READ_MAX_RETRY_DELAY_IN_MS: number = 8000;
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
* stripe-node defaults maxNetworkRetries to 0, so out of the box a dropped
|
|
85
|
+
* socket, a 409, a Stripe-side 5xx, or a 400 that Stripe itself marks retryable
|
|
86
|
+
* with `Stripe-Should-Retry: true` (lock_timeout is the common one) is not
|
|
87
|
+
* retried at all - it surfaces as a raw StripeError, which is not an
|
|
88
|
+
* OneUptime Exception, so the express handler answers an opaque
|
|
89
|
+
* 500 {"error":"Server Error"}. That is a user-visible failure of the billing
|
|
90
|
+
* page on a single upstream hiccup. The SDK's own retry generates an
|
|
91
|
+
* idempotency key per attempt, so it is safe for writes as well as reads.
|
|
92
|
+
*
|
|
93
|
+
* It does NOT cover a plain 429: stripe-node's _shouldRetry
|
|
94
|
+
* (node_modules/stripe/lib/StripeResource.js) retries connection-closed codes,
|
|
95
|
+
* 409 and >=500 only. Rate limits are handled by readPaymentProvider's own
|
|
96
|
+
* ladder and, more importantly, by not making the calls in the first place.
|
|
97
|
+
*/
|
|
98
|
+
const STRIPE_MAX_NETWORK_RETRIES: number = 2;
|
|
99
|
+
|
|
100
|
+
/*
|
|
101
|
+
* The SDK default is 80s. A request holding a worker for 80s on a hung socket
|
|
102
|
+
* outlives every caller that waits on it, so fail fast enough to retry.
|
|
103
|
+
*/
|
|
104
|
+
const STRIPE_REQUEST_TIMEOUT_IN_MS: number = 20000;
|
|
105
|
+
|
|
106
|
+
/*
|
|
107
|
+
* Node's socket-level failures, which reach us with no HTTP status. Mirrors
|
|
108
|
+
* stripe-node's own CONNECTION_CLOSED_ERROR_CODES plus the timeout cases.
|
|
109
|
+
*/
|
|
110
|
+
const RETRYABLE_CONNECTION_ERROR_CODES: Array<string> = [
|
|
111
|
+
"ECONNRESET",
|
|
112
|
+
"EPIPE",
|
|
113
|
+
"ETIMEDOUT",
|
|
114
|
+
"ECONNREFUSED",
|
|
115
|
+
"EAI_AGAIN",
|
|
116
|
+
"ENOTFOUND",
|
|
117
|
+
];
|
|
118
|
+
|
|
58
119
|
export interface Invoice {
|
|
59
120
|
id: string;
|
|
60
121
|
amount: number;
|
|
@@ -75,6 +136,8 @@ export class BillingService extends BaseService {
|
|
|
75
136
|
|
|
76
137
|
private stripe: Stripe = new Stripe(BillingPrivateKey, {
|
|
77
138
|
apiVersion: "2022-08-01",
|
|
139
|
+
maxNetworkRetries: STRIPE_MAX_NETWORK_RETRIES,
|
|
140
|
+
timeout: STRIPE_REQUEST_TIMEOUT_IN_MS,
|
|
78
141
|
});
|
|
79
142
|
|
|
80
143
|
// returns billing id of the customer.
|
|
@@ -549,6 +612,15 @@ export class BillingService extends BaseService {
|
|
|
549
612
|
subscriptionId: string,
|
|
550
613
|
serverMeteredPlan: ServerMeteredPlan,
|
|
551
614
|
quantity: number,
|
|
615
|
+
options?: {
|
|
616
|
+
/*
|
|
617
|
+
* The live authorization the reporting plan made for this usage a
|
|
618
|
+
* moment ago. requireMeteredSubscriptionPayment still ties it to the
|
|
619
|
+
* project that owns this subscription's customer, and checks live
|
|
620
|
+
* without one.
|
|
621
|
+
*/
|
|
622
|
+
liveAuthorization?: LiveUsageAuthorization | undefined;
|
|
623
|
+
},
|
|
552
624
|
): Promise<void> {
|
|
553
625
|
if (!this.isBillingEnabled()) {
|
|
554
626
|
throw new BadDataException(Errors.BillingService.BILLING_NOT_ENABLED);
|
|
@@ -575,6 +647,13 @@ export class BillingService extends BaseService {
|
|
|
575
647
|
|
|
576
648
|
// check if this pricing exists
|
|
577
649
|
|
|
650
|
+
if (quantity > 0) {
|
|
651
|
+
await PayAsYouGoBillingService.requireMeteredSubscriptionPayment(
|
|
652
|
+
subscription,
|
|
653
|
+
options,
|
|
654
|
+
);
|
|
655
|
+
}
|
|
656
|
+
|
|
578
657
|
const pricingExists: boolean = subscription.items.data.some(
|
|
579
658
|
(item: SubscriptionItem) => {
|
|
580
659
|
return item.price?.id === serverMeteredPlan.getPriceId();
|
|
@@ -1267,13 +1346,208 @@ export class BillingService extends BaseService {
|
|
|
1267
1346
|
|
|
1268
1347
|
@CaptureSpan()
|
|
1269
1348
|
public async hasPaymentMethods(customerId: string): Promise<boolean> {
|
|
1270
|
-
if (
|
|
1271
|
-
|
|
1349
|
+
if (!this.isBillingEnabled()) {
|
|
1350
|
+
throw new BadDataException(Errors.BillingService.BILLING_NOT_ENABLED);
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
// Eligibility needs one attached method, without fetching or changing defaults.
|
|
1354
|
+
for (const type of PAYMENT_METHOD_TYPES) {
|
|
1355
|
+
const methods: Stripe.ApiList<Stripe.PaymentMethod> =
|
|
1356
|
+
await this.listPaymentMethods(customerId, type, 1);
|
|
1357
|
+
if (methods.data.length > 0) {
|
|
1358
|
+
return true;
|
|
1359
|
+
}
|
|
1272
1360
|
}
|
|
1273
1361
|
|
|
1274
1362
|
return false;
|
|
1275
1363
|
}
|
|
1276
1364
|
|
|
1365
|
+
/**
|
|
1366
|
+
* A read that could not be completed is not the same answer as "no payment
|
|
1367
|
+
* method", so this never converts a failure into a value - it retries, and
|
|
1368
|
+
* then reports the outage as one. Callers stay free to fail closed.
|
|
1369
|
+
*/
|
|
1370
|
+
private async readPaymentProvider<T>(read: () => Promise<T>): Promise<T> {
|
|
1371
|
+
for (let attempt: number = 0; ; attempt++) {
|
|
1372
|
+
try {
|
|
1373
|
+
return await read();
|
|
1374
|
+
} catch (err) {
|
|
1375
|
+
if (!BillingService.isRetryablePaymentProviderRead(err)) {
|
|
1376
|
+
/*
|
|
1377
|
+
* A 400/401/404 is this request being wrong - a bad key, a customer
|
|
1378
|
+
* that is not there. Keep it exactly as it came: renaming it "could
|
|
1379
|
+
* not reach the provider" would send the reader somewhere else.
|
|
1380
|
+
*/
|
|
1381
|
+
throw err;
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
if (attempt >= PAYMENT_READ_MAX_RETRIES) {
|
|
1385
|
+
throw BillingService.toPaymentProviderReadFailure(err);
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
/*
|
|
1389
|
+
* The SDK's own network retries are immediate and few; this is the
|
|
1390
|
+
* longer, jittered wait a sustained rate limit needs. An exhausted
|
|
1391
|
+
* read still denies paid usage - it never answers "no payment method".
|
|
1392
|
+
*/
|
|
1393
|
+
await Sleep.sleep(
|
|
1394
|
+
BillingService.getPaymentReadRetryDelay(err, attempt),
|
|
1395
|
+
);
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
/**
|
|
1401
|
+
* Honour Retry-After if it is there, rather than preferring our own doubling
|
|
1402
|
+
* over a number the provider gave us.
|
|
1403
|
+
*
|
|
1404
|
+
* Be clear about what this does NOT buy: Stripe documents only a
|
|
1405
|
+
* `Stripe-Rate-Limited-Reason` header on a rate-limited 429
|
|
1406
|
+
* (https://docs.stripe.com/rate-limits) and does not document sending
|
|
1407
|
+
* Retry-After, so on the failure that actually breaks us this falls through
|
|
1408
|
+
* to the exponential backoff. It is kept because it is correct if Stripe
|
|
1409
|
+
* ever does send one - not because it is mitigating today's rate limit.
|
|
1410
|
+
* Do not count it as mitigation when sizing this.
|
|
1411
|
+
*/
|
|
1412
|
+
private static getPaymentReadRetryDelay(
|
|
1413
|
+
err: unknown,
|
|
1414
|
+
attempt: number,
|
|
1415
|
+
): number {
|
|
1416
|
+
const backoffInMs: number = Math.round(
|
|
1417
|
+
1000 * 2 ** attempt * (1 + Math.random() / 2),
|
|
1418
|
+
);
|
|
1419
|
+
|
|
1420
|
+
const headers: Record<string, string | undefined> =
|
|
1421
|
+
((err ?? {}) as { headers?: Record<string, string | undefined> })
|
|
1422
|
+
.headers || {};
|
|
1423
|
+
const retryAfterInSeconds: number = Number(
|
|
1424
|
+
headers["retry-after"] ?? headers["Retry-After"],
|
|
1425
|
+
);
|
|
1426
|
+
|
|
1427
|
+
if (!Number.isFinite(retryAfterInSeconds) || retryAfterInSeconds <= 0) {
|
|
1428
|
+
return backoffInMs;
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
return Math.min(
|
|
1432
|
+
Math.max(backoffInMs, retryAfterInSeconds * 1000),
|
|
1433
|
+
PAYMENT_READ_MAX_RETRY_DELAY_IN_MS,
|
|
1434
|
+
);
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
/**
|
|
1438
|
+
* Rate limits are the documented case, but a read can also fail with no HTTP
|
|
1439
|
+
* response at all - a reset or timed-out socket, which arrives with
|
|
1440
|
+
* statusCode undefined - or with Stripe's own 5xx. The SDK retries those too
|
|
1441
|
+
* now (STRIPE_MAX_NETWORK_RETRIES); this outer loop adds the longer,
|
|
1442
|
+
* jittered backoff that a sustained rate limit needs.
|
|
1443
|
+
*/
|
|
1444
|
+
private static isRetryablePaymentProviderRead(err: unknown): boolean {
|
|
1445
|
+
const providerError: {
|
|
1446
|
+
statusCode?: number;
|
|
1447
|
+
type?: string;
|
|
1448
|
+
code?: string;
|
|
1449
|
+
} = (err ?? {}) as {
|
|
1450
|
+
statusCode?: number;
|
|
1451
|
+
type?: string;
|
|
1452
|
+
code?: string;
|
|
1453
|
+
};
|
|
1454
|
+
|
|
1455
|
+
if (typeof providerError.statusCode === "number") {
|
|
1456
|
+
return (
|
|
1457
|
+
providerError.statusCode === 429 || providerError.statusCode >= 500
|
|
1458
|
+
);
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
/*
|
|
1462
|
+
* No HTTP response was read at all. Retry only the transport failures we
|
|
1463
|
+
* can name - a programming error also lands here with no statusCode, and
|
|
1464
|
+
* retrying one four times just delays the real report.
|
|
1465
|
+
*/
|
|
1466
|
+
return (
|
|
1467
|
+
providerError.type === "StripeConnectionError" ||
|
|
1468
|
+
providerError.type === "StripeAPIError" ||
|
|
1469
|
+
RETRYABLE_CONNECTION_ERROR_CODES.includes(providerError.code || "")
|
|
1470
|
+
);
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
/**
|
|
1474
|
+
* A raw StripeError is not an OneUptime Exception, so it reaches the express
|
|
1475
|
+
* handler's fallback branch and becomes an opaque 500 {"error":"Server
|
|
1476
|
+
* Error"} - indistinguishable from a bug in OneUptime, and carrying nothing
|
|
1477
|
+
* an operator or an E2E diagnostic can act on. Name the real condition
|
|
1478
|
+
* instead: the payment provider could not be reached.
|
|
1479
|
+
*/
|
|
1480
|
+
private static toPaymentProviderReadFailure(err: unknown): unknown {
|
|
1481
|
+
if (err instanceof Exception) {
|
|
1482
|
+
return err;
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
const providerError: { statusCode?: number; code?: string; type?: string } =
|
|
1486
|
+
(err ?? {}) as { statusCode?: number; code?: string; type?: string };
|
|
1487
|
+
|
|
1488
|
+
logger.error(err);
|
|
1489
|
+
|
|
1490
|
+
return new ServiceUnavailableException(
|
|
1491
|
+
`Could not reach the payment provider to read payment methods${
|
|
1492
|
+
providerError.code ? ` (${providerError.code})` : ""
|
|
1493
|
+
}. Please try again.`,
|
|
1494
|
+
);
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
private async listPaymentMethods(
|
|
1498
|
+
customerId: string,
|
|
1499
|
+
type: Stripe.PaymentMethodListParams.Type,
|
|
1500
|
+
limit?: number,
|
|
1501
|
+
): Promise<Stripe.ApiList<Stripe.PaymentMethod>> {
|
|
1502
|
+
const params: Stripe.PaymentMethodListParams = {
|
|
1503
|
+
customer: customerId,
|
|
1504
|
+
type,
|
|
1505
|
+
};
|
|
1506
|
+
if (limit !== undefined) {
|
|
1507
|
+
params.limit = limit;
|
|
1508
|
+
}
|
|
1509
|
+
return this.readPaymentProvider(() => {
|
|
1510
|
+
return this.stripe.paymentMethods.list(params);
|
|
1511
|
+
});
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
/**
|
|
1515
|
+
* Old usage must not become a debt when a customer adds their first card.
|
|
1516
|
+
* Establish a durable boundary at the first authorized billing pass. For
|
|
1517
|
+
* existing customers without the marker this deliberately forgives older
|
|
1518
|
+
* unreported telemetry. Never derive consent from subscription creation:
|
|
1519
|
+
* signup creates a subscription even when no payment method exists.
|
|
1520
|
+
*/
|
|
1521
|
+
public async getMeteredBillingStartDate(customerId: string): Promise<Date> {
|
|
1522
|
+
if (!this.isBillingEnabled()) {
|
|
1523
|
+
throw new BadDataException(Errors.BillingService.BILLING_NOT_ENABLED);
|
|
1524
|
+
}
|
|
1525
|
+
|
|
1526
|
+
const customer: Stripe.Customer | Stripe.DeletedCustomer =
|
|
1527
|
+
await this.stripe.customers.retrieve(customerId);
|
|
1528
|
+
if (customer.deleted) {
|
|
1529
|
+
throw new BadDataException(Errors.BillingService.CUSTOMER_NOT_FOUND);
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
const storedValue: string | undefined =
|
|
1533
|
+
customer.metadata[METERED_BILLING_START_METADATA_KEY];
|
|
1534
|
+
const storedDate: Date | undefined = storedValue
|
|
1535
|
+
? new Date(storedValue)
|
|
1536
|
+
: undefined;
|
|
1537
|
+
|
|
1538
|
+
if (storedDate && Number.isFinite(storedDate.getTime())) {
|
|
1539
|
+
return storedDate;
|
|
1540
|
+
}
|
|
1541
|
+
|
|
1542
|
+
const startsAt: Date = OneUptimeDate.getCurrentDate();
|
|
1543
|
+
await this.stripe.customers.update(customerId, {
|
|
1544
|
+
metadata: {
|
|
1545
|
+
[METERED_BILLING_START_METADATA_KEY]: startsAt.toISOString(),
|
|
1546
|
+
},
|
|
1547
|
+
});
|
|
1548
|
+
return startsAt;
|
|
1549
|
+
}
|
|
1550
|
+
|
|
1277
1551
|
@CaptureSpan()
|
|
1278
1552
|
public async setDefaultPaymentMethod(
|
|
1279
1553
|
customerId: string,
|
|
@@ -1293,31 +1567,20 @@ export class BillingService extends BaseService {
|
|
|
1293
1567
|
if (!this.isBillingEnabled()) {
|
|
1294
1568
|
throw new BadDataException(Errors.BillingService.BILLING_NOT_ENABLED);
|
|
1295
1569
|
}
|
|
1570
|
+
|
|
1296
1571
|
const paymentMethods: Array<PaymentMethod> = [];
|
|
1297
1572
|
|
|
1298
1573
|
const cardPaymentMethods: Stripe.ApiList<Stripe.PaymentMethod> =
|
|
1299
|
-
await this.
|
|
1300
|
-
customer: customerId,
|
|
1301
|
-
type: "card",
|
|
1302
|
-
});
|
|
1574
|
+
await this.listPaymentMethods(customerId, "card");
|
|
1303
1575
|
|
|
1304
1576
|
const sepaPaymentMethods: Stripe.ApiList<Stripe.PaymentMethod> =
|
|
1305
|
-
await this.
|
|
1306
|
-
customer: customerId,
|
|
1307
|
-
type: "sepa_debit",
|
|
1308
|
-
});
|
|
1577
|
+
await this.listPaymentMethods(customerId, "sepa_debit");
|
|
1309
1578
|
|
|
1310
1579
|
const usBankPaymentMethods: Stripe.ApiList<Stripe.PaymentMethod> =
|
|
1311
|
-
await this.
|
|
1312
|
-
customer: customerId,
|
|
1313
|
-
type: "us_bank_account",
|
|
1314
|
-
});
|
|
1580
|
+
await this.listPaymentMethods(customerId, "us_bank_account");
|
|
1315
1581
|
|
|
1316
1582
|
const bacsPaymentMethods: Stripe.ApiList<Stripe.PaymentMethod> =
|
|
1317
|
-
await this.
|
|
1318
|
-
customer: customerId,
|
|
1319
|
-
type: "bacs_debit",
|
|
1320
|
-
});
|
|
1583
|
+
await this.listPaymentMethods(customerId, "bacs_debit");
|
|
1321
1584
|
|
|
1322
1585
|
cardPaymentMethods.data.forEach((item: Stripe.PaymentMethod) => {
|
|
1323
1586
|
paymentMethods.push({
|
|
@@ -1358,7 +1621,9 @@ export class BillingService extends BaseService {
|
|
|
1358
1621
|
// check if there's a default payment method.
|
|
1359
1622
|
|
|
1360
1623
|
const customer: Stripe.Response<Stripe.Customer | Stripe.DeletedCustomer> =
|
|
1361
|
-
await this.
|
|
1624
|
+
await this.readPaymentProvider(() => {
|
|
1625
|
+
return this.stripe.customers.retrieve(customerId);
|
|
1626
|
+
});
|
|
1362
1627
|
|
|
1363
1628
|
const defaultPaymentMethod:
|
|
1364
1629
|
| string
|
|
@@ -1556,7 +1821,9 @@ export class BillingService extends BaseService {
|
|
|
1556
1821
|
}
|
|
1557
1822
|
|
|
1558
1823
|
const subscription: Stripe.Response<Stripe.Subscription> =
|
|
1559
|
-
await this.
|
|
1824
|
+
await this.readPaymentProvider(() => {
|
|
1825
|
+
return this.stripe.subscriptions.retrieve(subscriptionId);
|
|
1826
|
+
});
|
|
1560
1827
|
|
|
1561
1828
|
return subscription;
|
|
1562
1829
|
}
|
|
@@ -2,6 +2,8 @@ import DatabaseService from "./DatabaseService";
|
|
|
2
2
|
import Model from "../../Models/DatabaseModels/CloudResourceInstance";
|
|
3
3
|
import ObjectID from "../../Types/ObjectID";
|
|
4
4
|
import OneUptimeDate from "../../Types/Date";
|
|
5
|
+
import LIMIT_MAX from "../../Types/Database/LimitMax";
|
|
6
|
+
import QueryHelper from "../Types/Database/QueryHelper";
|
|
5
7
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
6
8
|
import logger from "../Utils/Logger";
|
|
7
9
|
|
|
@@ -71,6 +73,74 @@ export class Service extends DatabaseService<Model> {
|
|
|
71
73
|
);
|
|
72
74
|
}
|
|
73
75
|
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Hard-delete every instance / task of one cloud environment whose
|
|
79
|
+
* lastSeenAt is older than olderThan. Returns the number of rows
|
|
80
|
+
* removed.
|
|
81
|
+
*
|
|
82
|
+
* The instance table is a projection of what is actively reporting:
|
|
83
|
+
* ECS tasks, Cloud Run instances and App Service workers churn on
|
|
84
|
+
* every deploy and scale event, and nothing ever tells us a task is
|
|
85
|
+
* gone — it simply stops sending. Without this sweep the Instances
|
|
86
|
+
* tab and the overview's "running tasks" count grow forever. Called
|
|
87
|
+
* only by the Cloud:CleanupStaleResources worker, which anchors
|
|
88
|
+
* olderThan to the parent environment's own lastSeenAt (see the job
|
|
89
|
+
* header for why wall-clock now is the wrong anchor).
|
|
90
|
+
*/
|
|
91
|
+
@CaptureSpan()
|
|
92
|
+
public async deleteStaleForResource(data: {
|
|
93
|
+
cloudResourceId: ObjectID;
|
|
94
|
+
olderThan: Date;
|
|
95
|
+
}): Promise<number> {
|
|
96
|
+
return await this.deleteBy({
|
|
97
|
+
query: {
|
|
98
|
+
cloudResourceId: data.cloudResourceId,
|
|
99
|
+
lastSeenAt: QueryHelper.lessThan(data.olderThan),
|
|
100
|
+
},
|
|
101
|
+
limit: LIMIT_MAX,
|
|
102
|
+
skip: 0,
|
|
103
|
+
props: { isRoot: true },
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Helper for the cleanup worker: ingest-cadence aware cutoff.
|
|
109
|
+
* 3x the 5-minute OTel ingest maintenance fence by default. Tune via
|
|
110
|
+
* CLOUD_INSTANCE_STALE_MINUTES (min 10).
|
|
111
|
+
*/
|
|
112
|
+
public getStaleThresholdDate(nowOverride?: Date): Date {
|
|
113
|
+
const minutes: number = this.getStaleThresholdMinutes();
|
|
114
|
+
return OneUptimeDate.addRemoveMinutes(
|
|
115
|
+
nowOverride || OneUptimeDate.getCurrentDate(),
|
|
116
|
+
-minutes,
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/*
|
|
121
|
+
* Threshold must stay well above the 5-minute OTel ingest maintenance
|
|
122
|
+
* fence (MAINTENANCE_FENCE_TTL_SECONDS in OtelIngestBaseService).
|
|
123
|
+
* recordInstance sits behind that fence per (environment, instance),
|
|
124
|
+
* so a live task's lastSeenAt is legitimately up to ~5 minutes stale
|
|
125
|
+
* during continuous telemetry; a threshold at or below the fence
|
|
126
|
+
* would prune live tasks between refreshes. 15 minutes gives 3x
|
|
127
|
+
* headroom and matches CloudResourceService.markDisconnectedResources.
|
|
128
|
+
* The floor is 10 minutes, not the fence's nominal 5: the fence key is
|
|
129
|
+
* armed with jitter (300-375 s) behind a 30-second negative memo, so a
|
|
130
|
+
* live row's lastSeenAt can legitimately be close to 7 minutes old. A
|
|
131
|
+
* floor at the nominal TTL would let an override prune live rows.
|
|
132
|
+
* Anything unparseable falls back to the default.
|
|
133
|
+
*/
|
|
134
|
+
public getStaleThresholdMinutes(): number {
|
|
135
|
+
const raw: string | undefined = process.env["CLOUD_INSTANCE_STALE_MINUTES"];
|
|
136
|
+
if (raw) {
|
|
137
|
+
const parsed: number = parseInt(raw, 10);
|
|
138
|
+
if (!isNaN(parsed) && parsed >= 10) {
|
|
139
|
+
return parsed;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return 15;
|
|
143
|
+
}
|
|
74
144
|
}
|
|
75
145
|
|
|
76
146
|
export default new Service();
|
|
@@ -79,6 +79,7 @@ export class ExceptionAggregationService {
|
|
|
79
79
|
["podmanHostId", ServiceType.PodmanHost],
|
|
80
80
|
["kubernetesClusterId", ServiceType.KubernetesCluster],
|
|
81
81
|
["proxmoxClusterId", ServiceType.ProxmoxCluster],
|
|
82
|
+
["vmwareVCenterId", ServiceType.VMwareVCenter],
|
|
82
83
|
["cephClusterId", ServiceType.CephCluster],
|
|
83
84
|
["serverlessFunctionId", ServiceType.ServerlessFunction],
|
|
84
85
|
["cloudResourceId", ServiceType.CloudResource],
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Model from "../../Models/DatabaseModels/GoogleSecOpsConnectionRun";
|
|
2
|
+
import DatabaseService from "./DatabaseService";
|
|
3
|
+
|
|
4
|
+
export class Service extends DatabaseService<Model> {
|
|
5
|
+
public constructor() {
|
|
6
|
+
super(Model);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default new Service();
|
|
@@ -21,7 +21,16 @@ export class Service extends DatabaseService<Model> {
|
|
|
21
21
|
instanceResourceName?: string | undefined;
|
|
22
22
|
serviceAccountJson?: string | undefined;
|
|
23
23
|
pollIntervalInMinutes?: number | undefined;
|
|
24
|
+
includeNonAlertingDetections?: boolean | undefined;
|
|
24
25
|
}): void {
|
|
26
|
+
if (
|
|
27
|
+
data.includeNonAlertingDetections !== undefined &&
|
|
28
|
+
typeof data.includeNonAlertingDetections !== "boolean"
|
|
29
|
+
) {
|
|
30
|
+
throw new BadDataException(
|
|
31
|
+
"Include non-alerting detections must be true or false.",
|
|
32
|
+
);
|
|
33
|
+
}
|
|
25
34
|
if (data.region !== undefined) {
|
|
26
35
|
GoogleSecOpsClient.validateRegion(data.region);
|
|
27
36
|
}
|
|
@@ -61,6 +70,7 @@ export class Service extends DatabaseService<Model> {
|
|
|
61
70
|
instanceResourceName: createBy.data.instanceResourceName,
|
|
62
71
|
serviceAccountJson: createBy.data.serviceAccountJson,
|
|
63
72
|
pollIntervalInMinutes: createBy.data.pollIntervalInMinutes,
|
|
73
|
+
includeNonAlertingDetections: createBy.data.includeNonAlertingDetections,
|
|
64
74
|
});
|
|
65
75
|
|
|
66
76
|
return { createBy, carryForward: null };
|
|
@@ -80,6 +90,8 @@ export class Service extends DatabaseService<Model> {
|
|
|
80
90
|
pollIntervalInMinutes: updateBy.data.pollIntervalInMinutes as
|
|
81
91
|
| number
|
|
82
92
|
| undefined,
|
|
93
|
+
includeNonAlertingDetections: updateBy.data
|
|
94
|
+
.includeNonAlertingDetections as boolean | undefined,
|
|
83
95
|
});
|
|
84
96
|
|
|
85
97
|
return { updateBy, carryForward: null };
|
package/Server/Services/Index.ts
CHANGED
|
@@ -98,6 +98,12 @@ import DockerSwarmClusterOwnerUserService from "./DockerSwarmClusterOwnerUserSer
|
|
|
98
98
|
import CephClusterLabelRuleService from "./CephClusterLabelRuleService";
|
|
99
99
|
import CephClusterOwnerRuleService from "./CephClusterOwnerRuleService";
|
|
100
100
|
import CephClusterOwnerTeamService from "./CephClusterOwnerTeamService";
|
|
101
|
+
import VMwareVCenterService from "./VMwareVCenterService";
|
|
102
|
+
import VMwareResourceService from "./VMwareResourceService";
|
|
103
|
+
import VMwareVCenterLabelRuleService from "./VMwareVCenterLabelRuleService";
|
|
104
|
+
import VMwareVCenterOwnerRuleService from "./VMwareVCenterOwnerRuleService";
|
|
105
|
+
import VMwareVCenterOwnerTeamService from "./VMwareVCenterOwnerTeamService";
|
|
106
|
+
import VMwareVCenterOwnerUserService from "./VMwareVCenterOwnerUserService";
|
|
101
107
|
import CephClusterOwnerUserService from "./CephClusterOwnerUserService";
|
|
102
108
|
import LlmProviderService from "./LlmProviderService";
|
|
103
109
|
import DataSourceService from "./DataSourceService";
|
|
@@ -145,6 +151,7 @@ import DockerSwarmClusterFeedService from "./DockerSwarmClusterFeedService";
|
|
|
145
151
|
import CephClusterFeedService from "./CephClusterFeedService";
|
|
146
152
|
import PodmanHostFeedService from "./PodmanHostFeedService";
|
|
147
153
|
import ProxmoxClusterFeedService from "./ProxmoxClusterFeedService";
|
|
154
|
+
import VMwareVCenterFeedService from "./VMwareVCenterFeedService";
|
|
148
155
|
import HostFeedService from "./HostFeedService";
|
|
149
156
|
import CloudResourceFeedService from "./CloudResourceFeedService";
|
|
150
157
|
import ServiceFeedService from "./ServiceFeedService";
|
|
@@ -327,6 +334,7 @@ import AlertOwnerUserService from "./AlertOwnerUserService";
|
|
|
327
334
|
import AlertSeverityService from "./AlertSeverityService";
|
|
328
335
|
import DetectionRuleService from "./DetectionRuleService";
|
|
329
336
|
import GoogleSecOpsConnectionService from "./GoogleSecOpsConnectionService";
|
|
337
|
+
import GoogleSecOpsConnectionRunService from "./GoogleSecOpsConnectionRunService";
|
|
330
338
|
import ThreatIntelFeedService from "./ThreatIntelFeedService";
|
|
331
339
|
import ThreatIntelIndicatorService from "./ThreatIntelIndicatorService";
|
|
332
340
|
import AlertNoteTemplateService from "./AlertNoteTemplateService";
|
|
@@ -551,6 +559,12 @@ const services: Array<BaseService> = [
|
|
|
551
559
|
CephClusterOwnerRuleService,
|
|
552
560
|
CephClusterOwnerTeamService,
|
|
553
561
|
CephClusterOwnerUserService,
|
|
562
|
+
VMwareVCenterService,
|
|
563
|
+
VMwareResourceService,
|
|
564
|
+
VMwareVCenterLabelRuleService,
|
|
565
|
+
VMwareVCenterOwnerRuleService,
|
|
566
|
+
VMwareVCenterOwnerTeamService,
|
|
567
|
+
VMwareVCenterOwnerUserService,
|
|
554
568
|
LlmProviderService,
|
|
555
569
|
DataSourceService,
|
|
556
570
|
|
|
@@ -580,6 +594,7 @@ const services: Array<BaseService> = [
|
|
|
580
594
|
CephClusterFeedService,
|
|
581
595
|
PodmanHostFeedService,
|
|
582
596
|
ProxmoxClusterFeedService,
|
|
597
|
+
VMwareVCenterFeedService,
|
|
583
598
|
HostFeedService,
|
|
584
599
|
CloudResourceFeedService,
|
|
585
600
|
ServiceFeedService,
|
|
@@ -749,6 +764,7 @@ const services: Array<BaseService> = [
|
|
|
749
764
|
AlertSeverityService,
|
|
750
765
|
DetectionRuleService,
|
|
751
766
|
GoogleSecOpsConnectionService,
|
|
767
|
+
GoogleSecOpsConnectionRunService,
|
|
752
768
|
ThreatIntelFeedService,
|
|
753
769
|
AlertNoteTemplateService,
|
|
754
770
|
AlertFeedService,
|
|
@@ -277,6 +277,7 @@ export class LogAggregationService {
|
|
|
277
277
|
["podmanHostId", ServiceType.PodmanHost],
|
|
278
278
|
["kubernetesClusterId", ServiceType.KubernetesCluster],
|
|
279
279
|
["proxmoxClusterId", ServiceType.ProxmoxCluster],
|
|
280
|
+
["vmwareVCenterId", ServiceType.VMwareVCenter],
|
|
280
281
|
["cephClusterId", ServiceType.CephCluster],
|
|
281
282
|
["serverlessFunctionId", ServiceType.ServerlessFunction],
|
|
282
283
|
["cloudResourceId", ServiceType.CloudResource],
|
|
@@ -104,6 +104,7 @@ export class MetricAggregationService {
|
|
|
104
104
|
["podmanHostId", ServiceType.PodmanHost],
|
|
105
105
|
["kubernetesClusterId", ServiceType.KubernetesCluster],
|
|
106
106
|
["proxmoxClusterId", ServiceType.ProxmoxCluster],
|
|
107
|
+
["vmwareVCenterId", ServiceType.VMwareVCenter],
|
|
107
108
|
["cephClusterId", ServiceType.CephCluster],
|
|
108
109
|
["serverlessFunctionId", ServiceType.ServerlessFunction],
|
|
109
110
|
["cloudResourceId", ServiceType.CloudResource],
|