@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
|
@@ -19,8 +19,8 @@ import MicrosoftTeamsIntegrationDocumentation from "../../../../App/FeatureSet/D
|
|
|
19
19
|
* cheapest check an admin runs next — opening the messaging endpoint in a
|
|
20
20
|
* browser — used to return "Page not found". So the docs are what has to
|
|
21
21
|
* carry the diagnosis: the two directions are independent, a working alert
|
|
22
|
-
* tests only one of them, and an empty Chats list
|
|
23
|
-
*
|
|
22
|
+
* tests only one of them, and an empty Chats list calls for checking inbound
|
|
23
|
+
* delivery, authentication, and project mapping.
|
|
24
24
|
*
|
|
25
25
|
* These assertions are on prose because the failure was prose.
|
|
26
26
|
*/
|
|
@@ -174,20 +174,30 @@ describe("Self-hosted docs: the unreachable-endpoint troubleshooting section", (
|
|
|
174
174
|
);
|
|
175
175
|
});
|
|
176
176
|
|
|
177
|
-
test("
|
|
178
|
-
|
|
179
|
-
|
|
177
|
+
test("identifies inbound delivery as a likely cause and names the checks up front", () => {
|
|
178
|
+
const introduction: string = section.trim().split("\n\n")[0]!;
|
|
179
|
+
|
|
180
|
+
expect(introduction).toContain("These symptoms often mean");
|
|
181
|
+
expect(introduction).toContain(
|
|
182
|
+
"**Azure Bot Service cannot deliver authenticated activities to your messaging endpoint**",
|
|
180
183
|
);
|
|
181
|
-
expect(
|
|
184
|
+
expect(introduction).toContain(
|
|
185
|
+
"Check routing, bot authentication, and project configuration",
|
|
186
|
+
);
|
|
187
|
+
expect(introduction).not.toContain("These are one failure, not two");
|
|
182
188
|
});
|
|
183
189
|
|
|
184
190
|
test("explains that a working alert card tests the opposite direction", () => {
|
|
185
191
|
const lowered: string = section.toLowerCase();
|
|
186
192
|
|
|
187
193
|
expect(lowered).toContain("oneuptime calls microsoft");
|
|
188
|
-
expect(lowered).
|
|
189
|
-
|
|
194
|
+
expect(lowered).toContain(
|
|
195
|
+
"a working alert verifies that particular outbound send",
|
|
190
196
|
);
|
|
197
|
+
expect(lowered).toContain(
|
|
198
|
+
"it does not verify every graph permission or the inbound bot endpoint",
|
|
199
|
+
);
|
|
200
|
+
expect(lowered).not.toContain("graph permissions are fine");
|
|
191
201
|
});
|
|
192
202
|
|
|
193
203
|
test("tabulates which paths need inbound access and which do not", () => {
|
|
@@ -216,11 +226,17 @@ describe("Self-hosted docs: the unreachable-endpoint troubleshooting section", (
|
|
|
216
226
|
).toBeGreaterThanOrEqual(3);
|
|
217
227
|
});
|
|
218
228
|
|
|
219
|
-
test("explains
|
|
229
|
+
test("explains what an empty Chats list means and what Refresh Chats reads", () => {
|
|
220
230
|
const lowered: string = section.toLowerCase();
|
|
221
231
|
|
|
222
|
-
expect(lowered).toContain("
|
|
223
|
-
expect(lowered).toContain(
|
|
232
|
+
expect(lowered).toContain("no chat has been recorded for that project");
|
|
233
|
+
expect(lowered).toContain(
|
|
234
|
+
"check incoming requests, authentication errors, and tenant/project mapping",
|
|
235
|
+
);
|
|
236
|
+
expect(lowered).toContain(
|
|
237
|
+
"**refresh chats** re-reads oneuptime's stored chats",
|
|
238
|
+
);
|
|
239
|
+
expect(lowered).not.toContain("no bot activity has ever been received");
|
|
224
240
|
});
|
|
225
241
|
|
|
226
242
|
test("names all three activities that register a chat, not just the install event", () => {
|
|
@@ -238,7 +254,7 @@ describe("Self-hosted docs: the unreachable-endpoint troubleshooting section", (
|
|
|
238
254
|
|
|
239
255
|
expect(lowered).toContain("installed");
|
|
240
256
|
expect(lowered).toContain("added to the conversation");
|
|
241
|
-
expect(lowered).toContain("
|
|
257
|
+
expect(lowered).toContain("a message sent to the bot in that chat");
|
|
242
258
|
});
|
|
243
259
|
|
|
244
260
|
test("the inbound table describes chat registration as an activity, not an install event", () => {
|
|
@@ -257,6 +273,21 @@ describe("Self-hosted docs: the unreachable-endpoint troubleshooting section", (
|
|
|
257
273
|
expect(section).toContain("grep 'POST /api/microsoft-bot/messages'");
|
|
258
274
|
});
|
|
259
275
|
|
|
276
|
+
test("checks log coverage when POSTs are absent and processing errors when they arrive", () => {
|
|
277
|
+
const lowered: string = section.toLowerCase();
|
|
278
|
+
|
|
279
|
+
expect(lowered).toContain(
|
|
280
|
+
"if there are no post lines, confirm that the correct access log is recording requests",
|
|
281
|
+
);
|
|
282
|
+
expect(lowered).toContain(
|
|
283
|
+
"check the configured azure endpoint and the network path",
|
|
284
|
+
);
|
|
285
|
+
expect(lowered).toContain(
|
|
286
|
+
"if posts arrive, inspect their responses and oneuptime's authentication or project-mapping errors",
|
|
287
|
+
);
|
|
288
|
+
expect(lowered).not.toContain("nothing inside oneuptime is at fault");
|
|
289
|
+
});
|
|
290
|
+
|
|
260
291
|
test("covers the certificate chain, with a command that checks it", () => {
|
|
261
292
|
expect(section).toContain("publicly trusted certificate");
|
|
262
293
|
expect(section).toContain("full chain");
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { describe, expect, test } from "@jest/globals";
|
|
2
|
+
import childProcess from "child_process";
|
|
3
|
+
import path from "path";
|
|
4
|
+
|
|
5
|
+
const COMMON_ROOT: string = path.resolve(__dirname, "..", "..");
|
|
6
|
+
|
|
7
|
+
interface RendererBuild {
|
|
8
|
+
rendererFiles: Array<string>;
|
|
9
|
+
clientFiles: Array<string>;
|
|
10
|
+
foreignRendererFiles: Array<string>;
|
|
11
|
+
outputBytes: number;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
describe("frontend renderer deduplication", () => {
|
|
15
|
+
test.each(["production", "development"])(
|
|
16
|
+
"bundles one renderer for the entry point and shared portals in %s",
|
|
17
|
+
(environment: string) => {
|
|
18
|
+
/*
|
|
19
|
+
* Use a subprocess because esbuild requires Node's native Uint8Array.
|
|
20
|
+
* Separate physical installs reproduce the app/Common package layout;
|
|
21
|
+
* symlinking both to one install would hide the original duplication.
|
|
22
|
+
*/
|
|
23
|
+
const result: RendererBuild = JSON.parse(
|
|
24
|
+
childProcess.execFileSync(
|
|
25
|
+
process.execPath,
|
|
26
|
+
[
|
|
27
|
+
"-e",
|
|
28
|
+
String.raw`
|
|
29
|
+
const fs = require("fs");
|
|
30
|
+
const os = require("os");
|
|
31
|
+
const path = require("path");
|
|
32
|
+
const esbuild = require("esbuild");
|
|
33
|
+
const { createConfig } = require("./UI/esbuild-config");
|
|
34
|
+
const reactDomRoot = path.dirname(require.resolve("react-dom/package.json"));
|
|
35
|
+
const root = fs.mkdtempSync(path.join(os.tmpdir(), "oneuptime-renderer-"));
|
|
36
|
+
|
|
37
|
+
async function run() {
|
|
38
|
+
try {
|
|
39
|
+
for (const name of ["app", "shared"]) {
|
|
40
|
+
const destination = path.join(root, name, "node_modules/react-dom");
|
|
41
|
+
fs.cpSync(reactDomRoot, destination, { recursive: true });
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const entry = path.join(root, "app/index.js");
|
|
45
|
+
fs.writeFileSync(entry, [
|
|
46
|
+
'import { createRoot } from "react-dom/client";',
|
|
47
|
+
'export { createRoot };',
|
|
48
|
+
'export { createPortal, flushSync } from "../shared/index.js";',
|
|
49
|
+
].join("\n"));
|
|
50
|
+
fs.writeFileSync(path.join(root, "shared/index.js"),
|
|
51
|
+
'export { createPortal, flushSync } from "react-dom";');
|
|
52
|
+
|
|
53
|
+
const config = createConfig({
|
|
54
|
+
serviceName: "Dashboard",
|
|
55
|
+
publicPath: "/dashboard/dist/",
|
|
56
|
+
entryPoint: entry,
|
|
57
|
+
outdir: path.join(root, "dist"),
|
|
58
|
+
});
|
|
59
|
+
const built = await esbuild.build({
|
|
60
|
+
...config,
|
|
61
|
+
nodePaths: [path.resolve("node_modules")],
|
|
62
|
+
metafile: true,
|
|
63
|
+
write: false,
|
|
64
|
+
logLevel: "silent",
|
|
65
|
+
});
|
|
66
|
+
const inputs = Object.keys(built.metafile.inputs);
|
|
67
|
+
const rendererFiles = inputs.filter((file) =>
|
|
68
|
+
/react-dom[/\\]cjs[/\\]react-dom\.(production\.min|development)\.js$/.test(file));
|
|
69
|
+
const clientFiles = inputs.filter((file) => /react-dom[/\\]client\.js$/.test(file));
|
|
70
|
+
const foreignRendererFiles = inputs.filter((file) =>
|
|
71
|
+
path.resolve(file).startsWith(root) && file.includes("react-dom"));
|
|
72
|
+
console.log(JSON.stringify({
|
|
73
|
+
rendererFiles,
|
|
74
|
+
clientFiles,
|
|
75
|
+
foreignRendererFiles,
|
|
76
|
+
outputBytes: built.outputFiles.reduce((sum, file) => sum + file.contents.length, 0),
|
|
77
|
+
}));
|
|
78
|
+
} finally {
|
|
79
|
+
fs.rmSync(root, { recursive: true, force: true });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
run().catch((error) => { console.error(error); process.exitCode = 1; });
|
|
83
|
+
`,
|
|
84
|
+
],
|
|
85
|
+
{
|
|
86
|
+
cwd: COMMON_ROOT,
|
|
87
|
+
env: { ...process.env, NODE_ENV: environment },
|
|
88
|
+
encoding: "utf8",
|
|
89
|
+
},
|
|
90
|
+
),
|
|
91
|
+
) as RendererBuild;
|
|
92
|
+
|
|
93
|
+
expect(result.outputBytes).toBeGreaterThan(0);
|
|
94
|
+
expect(result.rendererFiles).toHaveLength(1);
|
|
95
|
+
expect(result.rendererFiles[0]).toContain(
|
|
96
|
+
environment === "production"
|
|
97
|
+
? "react-dom.production.min.js"
|
|
98
|
+
: "react-dom.development.js",
|
|
99
|
+
);
|
|
100
|
+
expect(result.clientFiles).toHaveLength(1);
|
|
101
|
+
expect(result.foreignRendererFiles).toEqual([]);
|
|
102
|
+
},
|
|
103
|
+
);
|
|
104
|
+
});
|
|
@@ -58,12 +58,22 @@ function renderSharedLink(nodeEnv: string): RenderResult {
|
|
|
58
58
|
|
|
59
59
|
fs.copyFileSync(APP_LINK, path.join(root, "shared", "AppLink.tsx"));
|
|
60
60
|
const entry: string = path.join(root, "public", "Entry.tsx");
|
|
61
|
+
/*
|
|
62
|
+
* The entry renders through react-dom/server.browser rather than the bare
|
|
63
|
+
* react-dom/server specifier. esbuild-config aliases "react-dom" to an
|
|
64
|
+
* absolute directory, and an esbuild alias rewrites subpaths too, so
|
|
65
|
+
* "react-dom/server" would become a plain file path and skip react-dom's
|
|
66
|
+
* exports map - landing on server.node.js, which imports "stream" and "util"
|
|
67
|
+
* and cannot resolve on the browser platform this config builds for.
|
|
68
|
+
* server.browser is the renderer that exports map picks for a browser build
|
|
69
|
+
* anyway, so this asks for it directly instead of relying on the alias.
|
|
70
|
+
*/
|
|
61
71
|
fs.writeFileSync(
|
|
62
72
|
entry,
|
|
63
73
|
`
|
|
64
74
|
import React from "react";
|
|
65
75
|
import { MemoryRouter } from "react-router-dom";
|
|
66
|
-
import { renderToStaticMarkup } from "react-dom/server";
|
|
76
|
+
import { renderToStaticMarkup } from "react-dom/server.browser";
|
|
67
77
|
import AppLink from "../shared/AppLink";
|
|
68
78
|
|
|
69
79
|
globalThis.routerFixtureMarkup = renderToStaticMarkup(
|
|
@@ -2922,6 +2922,154 @@ const realBreadcrumbTrails: Array<BreadcrumbTrailFixture> = [
|
|
|
2922
2922
|
pagePattern: "/dashboard/:projectId/users/custom-fields",
|
|
2923
2923
|
titles: ["Project", "Users", "Custom Fields"],
|
|
2924
2924
|
},
|
|
2925
|
+
{
|
|
2926
|
+
getter: "getVMwareBreadcrumbs",
|
|
2927
|
+
pagePattern: "/dashboard/:projectId/vmware",
|
|
2928
|
+
titles: ["Project", "VMware", "vCenters"],
|
|
2929
|
+
},
|
|
2930
|
+
{
|
|
2931
|
+
getter: "getVMwareBreadcrumbs",
|
|
2932
|
+
pagePattern: "/dashboard/:projectId/vmware/:id",
|
|
2933
|
+
titles: ["Project", "VMware", "View vCenter"],
|
|
2934
|
+
},
|
|
2935
|
+
{
|
|
2936
|
+
getter: "getVMwareBreadcrumbs",
|
|
2937
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/alerts",
|
|
2938
|
+
titles: ["Project", "VMware", "View vCenter", "Alerts"],
|
|
2939
|
+
},
|
|
2940
|
+
{
|
|
2941
|
+
getter: "getVMwareBreadcrumbs",
|
|
2942
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/audit-logs",
|
|
2943
|
+
titles: ["Project", "VMware", "View vCenter", "Audit Logs"],
|
|
2944
|
+
},
|
|
2945
|
+
{
|
|
2946
|
+
getter: "getVMwareBreadcrumbs",
|
|
2947
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/clusters",
|
|
2948
|
+
titles: ["Project", "VMware", "View vCenter", "Clusters"],
|
|
2949
|
+
},
|
|
2950
|
+
{
|
|
2951
|
+
getter: "getVMwareBreadcrumbs",
|
|
2952
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/clusters/:subModelId",
|
|
2953
|
+
titles: ["Project", "VMware", "View vCenter", "Clusters", "Cluster Detail"],
|
|
2954
|
+
},
|
|
2955
|
+
{
|
|
2956
|
+
getter: "getVMwareBreadcrumbs",
|
|
2957
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/datastores",
|
|
2958
|
+
titles: ["Project", "VMware", "View vCenter", "Datastores"],
|
|
2959
|
+
},
|
|
2960
|
+
{
|
|
2961
|
+
getter: "getVMwareBreadcrumbs",
|
|
2962
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/datastores/:subModelId",
|
|
2963
|
+
titles: [
|
|
2964
|
+
"Project",
|
|
2965
|
+
"VMware",
|
|
2966
|
+
"View vCenter",
|
|
2967
|
+
"Datastores",
|
|
2968
|
+
"Datastore Detail",
|
|
2969
|
+
],
|
|
2970
|
+
},
|
|
2971
|
+
{
|
|
2972
|
+
getter: "getVMwareBreadcrumbs",
|
|
2973
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/delete",
|
|
2974
|
+
titles: ["Project", "VMware", "View vCenter", "Delete vCenter"],
|
|
2975
|
+
},
|
|
2976
|
+
{
|
|
2977
|
+
getter: "getVMwareBreadcrumbs",
|
|
2978
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/documentation",
|
|
2979
|
+
titles: ["Project", "VMware", "View vCenter", "Documentation"],
|
|
2980
|
+
},
|
|
2981
|
+
{
|
|
2982
|
+
getter: "getVMwareBreadcrumbs",
|
|
2983
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/feed",
|
|
2984
|
+
titles: ["Project", "VMware", "View vCenter", "Feed"],
|
|
2985
|
+
},
|
|
2986
|
+
{
|
|
2987
|
+
getter: "getVMwareBreadcrumbs",
|
|
2988
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/hosts",
|
|
2989
|
+
titles: ["Project", "VMware", "View vCenter", "Hosts"],
|
|
2990
|
+
},
|
|
2991
|
+
{
|
|
2992
|
+
getter: "getVMwareBreadcrumbs",
|
|
2993
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/hosts/:subModelId",
|
|
2994
|
+
titles: ["Project", "VMware", "View vCenter", "Hosts", "Host Detail"],
|
|
2995
|
+
},
|
|
2996
|
+
{
|
|
2997
|
+
getter: "getVMwareBreadcrumbs",
|
|
2998
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/incidents",
|
|
2999
|
+
titles: ["Project", "VMware", "View vCenter", "Incidents"],
|
|
3000
|
+
},
|
|
3001
|
+
{
|
|
3002
|
+
getter: "getVMwareBreadcrumbs",
|
|
3003
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/insights",
|
|
3004
|
+
titles: ["Project", "VMware", "View vCenter", "Insights"],
|
|
3005
|
+
},
|
|
3006
|
+
{
|
|
3007
|
+
getter: "getVMwareBreadcrumbs",
|
|
3008
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/logs",
|
|
3009
|
+
titles: ["Project", "VMware", "View vCenter", "Logs"],
|
|
3010
|
+
},
|
|
3011
|
+
{
|
|
3012
|
+
getter: "getVMwareBreadcrumbs",
|
|
3013
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/metrics",
|
|
3014
|
+
titles: ["Project", "VMware", "View vCenter", "Metrics"],
|
|
3015
|
+
},
|
|
3016
|
+
{
|
|
3017
|
+
getter: "getVMwareBreadcrumbs",
|
|
3018
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/owners",
|
|
3019
|
+
titles: ["Project", "VMware", "View vCenter", "Owners"],
|
|
3020
|
+
},
|
|
3021
|
+
{
|
|
3022
|
+
getter: "getVMwareBreadcrumbs",
|
|
3023
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/recommendations",
|
|
3024
|
+
titles: ["Project", "VMware", "View vCenter", "Recommendations"],
|
|
3025
|
+
},
|
|
3026
|
+
{
|
|
3027
|
+
getter: "getVMwareBreadcrumbs",
|
|
3028
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/resource-pools",
|
|
3029
|
+
titles: ["Project", "VMware", "View vCenter", "Resource Pools"],
|
|
3030
|
+
},
|
|
3031
|
+
{
|
|
3032
|
+
getter: "getVMwareBreadcrumbs",
|
|
3033
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/scheduled-maintenance",
|
|
3034
|
+
titles: ["Project", "VMware", "View vCenter", "Scheduled Maintenance"],
|
|
3035
|
+
},
|
|
3036
|
+
{
|
|
3037
|
+
getter: "getVMwareBreadcrumbs",
|
|
3038
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/settings",
|
|
3039
|
+
titles: ["Project", "VMware", "View vCenter", "Settings"],
|
|
3040
|
+
},
|
|
3041
|
+
{
|
|
3042
|
+
getter: "getVMwareBreadcrumbs",
|
|
3043
|
+
pagePattern: "/dashboard/:projectId/vmware/:id/virtual-machines",
|
|
3044
|
+
titles: ["Project", "VMware", "View vCenter", "Virtual Machines"],
|
|
3045
|
+
},
|
|
3046
|
+
{
|
|
3047
|
+
getter: "getVMwareBreadcrumbs",
|
|
3048
|
+
pagePattern:
|
|
3049
|
+
"/dashboard/:projectId/vmware/:id/virtual-machines/:subModelId",
|
|
3050
|
+
titles: [
|
|
3051
|
+
"Project",
|
|
3052
|
+
"VMware",
|
|
3053
|
+
"View vCenter",
|
|
3054
|
+
"Virtual Machines",
|
|
3055
|
+
"Virtual Machine Detail",
|
|
3056
|
+
],
|
|
3057
|
+
},
|
|
3058
|
+
{
|
|
3059
|
+
getter: "getVMwareBreadcrumbs",
|
|
3060
|
+
pagePattern: "/dashboard/:projectId/vmware/documentation",
|
|
3061
|
+
titles: ["Project", "VMware", "Documentation"],
|
|
3062
|
+
},
|
|
3063
|
+
{
|
|
3064
|
+
getter: "getVMwareBreadcrumbs",
|
|
3065
|
+
pagePattern: "/dashboard/:projectId/vmware/settings/label-rules",
|
|
3066
|
+
titles: ["Project", "VMware", "Settings", "Label Rules"],
|
|
3067
|
+
},
|
|
3068
|
+
{
|
|
3069
|
+
getter: "getVMwareBreadcrumbs",
|
|
3070
|
+
pagePattern: "/dashboard/:projectId/vmware/settings/owner-rules",
|
|
3071
|
+
titles: ["Project", "VMware", "Settings", "Owner Rules"],
|
|
3072
|
+
},
|
|
2925
3073
|
{
|
|
2926
3074
|
getter: "getWorkflowsBreadcrumbs",
|
|
2927
3075
|
pagePattern: "/dashboard/:projectId/workflows",
|
|
@@ -355,6 +355,35 @@ const realRoutePatterns: Array<string> = [
|
|
|
355
355
|
"/dashboard/:projectId/proxmox/settings/owner-rules",
|
|
356
356
|
"/dashboard/:projectId/proxmox/settings/label-rules",
|
|
357
357
|
"/dashboard/:projectId/proxmox/archived",
|
|
358
|
+
"/dashboard/:projectId/vmware/*",
|
|
359
|
+
"/dashboard/:projectId/vmware",
|
|
360
|
+
"/dashboard/:projectId/vmware/:id",
|
|
361
|
+
"/dashboard/:projectId/vmware/:id/hosts",
|
|
362
|
+
"/dashboard/:projectId/vmware/:id/hosts/:subModelId",
|
|
363
|
+
"/dashboard/:projectId/vmware/:id/virtual-machines",
|
|
364
|
+
"/dashboard/:projectId/vmware/:id/virtual-machines/:subModelId",
|
|
365
|
+
"/dashboard/:projectId/vmware/:id/datastores",
|
|
366
|
+
"/dashboard/:projectId/vmware/:id/datastores/:subModelId",
|
|
367
|
+
"/dashboard/:projectId/vmware/:id/clusters",
|
|
368
|
+
"/dashboard/:projectId/vmware/:id/clusters/:subModelId",
|
|
369
|
+
"/dashboard/:projectId/vmware/:id/resource-pools",
|
|
370
|
+
"/dashboard/:projectId/vmware/:id/insights",
|
|
371
|
+
"/dashboard/:projectId/vmware/:id/recommendations",
|
|
372
|
+
"/dashboard/:projectId/vmware/:id/metrics",
|
|
373
|
+
"/dashboard/:projectId/vmware/:id/logs",
|
|
374
|
+
"/dashboard/:projectId/vmware/:id/incidents",
|
|
375
|
+
"/dashboard/:projectId/vmware/:id/alerts",
|
|
376
|
+
"/dashboard/:projectId/vmware/:id/scheduled-maintenance",
|
|
377
|
+
"/dashboard/:projectId/vmware/:id/owners",
|
|
378
|
+
"/dashboard/:projectId/vmware/:id/feed",
|
|
379
|
+
"/dashboard/:projectId/vmware/:id/audit-logs",
|
|
380
|
+
"/dashboard/:projectId/vmware/:id/settings",
|
|
381
|
+
"/dashboard/:projectId/vmware/:id/delete",
|
|
382
|
+
"/dashboard/:projectId/vmware/:id/documentation",
|
|
383
|
+
"/dashboard/:projectId/vmware/documentation",
|
|
384
|
+
"/dashboard/:projectId/vmware/settings/owner-rules",
|
|
385
|
+
"/dashboard/:projectId/vmware/settings/label-rules",
|
|
386
|
+
"/dashboard/:projectId/vmware/archived",
|
|
358
387
|
"/dashboard/:projectId/iot/*",
|
|
359
388
|
"/dashboard/:projectId/iot",
|
|
360
389
|
"/dashboard/:projectId/iot/:id",
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { describe, expect, test } from "@jest/globals";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import DashboardStackingLayers, {
|
|
5
|
+
DASHBOARD_CANVAS_ISOLATION,
|
|
6
|
+
} from "../../../UI/Utils/DashboardStackingLayers";
|
|
7
|
+
|
|
8
|
+
/*
|
|
9
|
+
* github.com/OneUptime/oneuptime/issues/3660.
|
|
10
|
+
*
|
|
11
|
+
* A dashboard tile that had been clicked once painted over the toolbar's
|
|
12
|
+
* auto-refresh menu, so opening the picker produced a blank white rectangle.
|
|
13
|
+
* Nothing was misconfigured: the canvas raised the selected tile to 20 so it
|
|
14
|
+
* would clear the tiles it overlaps, the toolbar menu asked for 10, and
|
|
15
|
+
* because neither box lived inside a stacking context of its own those two
|
|
16
|
+
* unrelated numbers were resolved against each other in the ROOT stacking
|
|
17
|
+
* context. 20 beat 10.
|
|
18
|
+
*
|
|
19
|
+
* So the numbers alone were never the fix and raising the menu alone would
|
|
20
|
+
* never have been either - the drag code elevates a tile to 60 while it is
|
|
21
|
+
* being moved, which outranks the menu, the Modal layer and everything else
|
|
22
|
+
* the page has. What makes the values safe is the canvas isolating itself, so
|
|
23
|
+
* that "above my neighbours on the board" stops being a claim about the page.
|
|
24
|
+
*
|
|
25
|
+
* This file pins the arithmetic. The DOM half - that the canvas really does
|
|
26
|
+
* isolate, and that a selected tile therefore cannot be compared with the menu
|
|
27
|
+
* at all - is asserted against real rendered elements in
|
|
28
|
+
* Common/Tests/App/Dashboard/DashboardToolbarPopupLayering.test.tsx, and the
|
|
29
|
+
* sources are pinned in App/Tests/Dashboard/DashboardCanvasLayering.test.ts.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
const COMMON_ROOT: string = path.join(__dirname, "..", "..", "..");
|
|
33
|
+
|
|
34
|
+
function readCommonCode(...relativeParts: Array<string>): string {
|
|
35
|
+
return fs.readFileSync(path.join(COMMON_ROOT, ...relativeParts), "utf8");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/*
|
|
39
|
+
* The shell sticks its header at this layer. Read out of MasterPage rather
|
|
40
|
+
* than written down here, so moving the header moves the assertions with it.
|
|
41
|
+
*/
|
|
42
|
+
function appHeaderZIndex(): number {
|
|
43
|
+
const source: string = readCommonCode(
|
|
44
|
+
"UI",
|
|
45
|
+
"Components",
|
|
46
|
+
"MasterPage",
|
|
47
|
+
"MasterPage.tsx",
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
const match: RegExpMatchArray | null = source.match(
|
|
51
|
+
/makeTopSectionUnstick \? "" : "sticky top-0 z-(\d+)"/,
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
if (!match || match[1] === undefined) {
|
|
55
|
+
throw new Error(
|
|
56
|
+
"MasterPage no longer sticks its top section with a single `sticky top-0 z-N` class. Issue #3660 depends on dashboard widgets never competing with that layer - if the shell's layering changed, update this test to match.",
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return Number(match[1]);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* The layer every other anchored menu in the app already uses. */
|
|
64
|
+
function moreMenuZIndex(): number {
|
|
65
|
+
const source: string = readCommonCode(
|
|
66
|
+
"UI",
|
|
67
|
+
"Components",
|
|
68
|
+
"MoreMenu",
|
|
69
|
+
"MoreMenu.tsx",
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
const match: RegExpMatchArray | null = source.match(
|
|
73
|
+
/absolute right-0 z-(\d+) mt-2 w-56 origin-top-right/,
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
if (!match || match[1] === undefined) {
|
|
77
|
+
throw new Error(
|
|
78
|
+
"MoreMenu's panel no longer declares its layer as a single `z-N` class in the class list this test anchors on. The dashboard toolbar's own menu is meant to sit on the same layer - re-point this reader before changing either.",
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return Number(match[1]);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/*
|
|
86
|
+
* The layer every dialog in the app opens at - including the widget settings
|
|
87
|
+
* dialog the canvas itself renders, and the Add Widget / Variables / discard
|
|
88
|
+
* dialogs the toolbar opens while a board is being edited. Those are the
|
|
89
|
+
* overlays a widget mid-drag is actually in a position to cover.
|
|
90
|
+
*/
|
|
91
|
+
function modalZIndex(): number {
|
|
92
|
+
const source: string = readCommonCode(
|
|
93
|
+
"UI",
|
|
94
|
+
"Components",
|
|
95
|
+
"Modal",
|
|
96
|
+
"Modal.tsx",
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
const match: RegExpMatchArray | null = source.match(
|
|
100
|
+
/<div className="relative z-(\d+)">/,
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
if (!match || match[1] === undefined) {
|
|
104
|
+
throw new Error(
|
|
105
|
+
"Modal's root no longer declares its layer as a single `relative z-N` class. Re-point this reader before changing either Modal or the dashboard's scale.",
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return Number(match[1]);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
describe("dashboard stacking layers (issue #3660)", () => {
|
|
113
|
+
describe("the order the board is painted in", () => {
|
|
114
|
+
test("the drop placeholder sits under the widget being dragged onto it", () => {
|
|
115
|
+
expect(DashboardStackingLayers.canvasPlaceholder).toBeLessThan(
|
|
116
|
+
DashboardStackingLayers.canvasDraggingComponent,
|
|
117
|
+
);
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
test("the drop placeholder sits under the selected widget", () => {
|
|
121
|
+
/*
|
|
122
|
+
* The placeholder is a hint about where the card is going. Painting it
|
|
123
|
+
* over the card would hide the thing being positioned.
|
|
124
|
+
*/
|
|
125
|
+
expect(DashboardStackingLayers.canvasPlaceholder).toBeLessThan(
|
|
126
|
+
DashboardStackingLayers.canvasSelectedComponent,
|
|
127
|
+
);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
test("a widget under an active gesture outranks the merely selected one", () => {
|
|
131
|
+
/*
|
|
132
|
+
* Selection persists; a drag is momentary and has to clear whatever it
|
|
133
|
+
* is crossing, including the card that was selected before the grab.
|
|
134
|
+
*/
|
|
135
|
+
expect(DashboardStackingLayers.canvasSelectedComponent).toBeLessThan(
|
|
136
|
+
DashboardStackingLayers.canvasDraggingComponent,
|
|
137
|
+
);
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
describe("the toolbar's menus", () => {
|
|
142
|
+
test("open above a selected widget - the bug in the report", () => {
|
|
143
|
+
expect(DashboardStackingLayers.toolbarPopup).toBeGreaterThan(
|
|
144
|
+
DashboardStackingLayers.canvasSelectedComponent,
|
|
145
|
+
);
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
test("sit on the same layer as every other anchored menu in the app", () => {
|
|
149
|
+
/*
|
|
150
|
+
* The auto-refresh menu is hand-rolled rather than a MoreMenu, which is
|
|
151
|
+
* the only reason it could drift to a different layer in the first
|
|
152
|
+
* place. Two menus in one toolbar disagreeing about their layer is a
|
|
153
|
+
* bug waiting for the first time they overlap.
|
|
154
|
+
*/
|
|
155
|
+
expect(DashboardStackingLayers.toolbarPopup).toBe(moreMenuZIndex());
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
test("clear the app's sticky header", () => {
|
|
159
|
+
expect(DashboardStackingLayers.toolbarPopup).toBeGreaterThan(
|
|
160
|
+
appHeaderZIndex(),
|
|
161
|
+
);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
describe("why the canvas has to isolate", () => {
|
|
166
|
+
test("it does isolate", () => {
|
|
167
|
+
expect(DASHBOARD_CANVAS_ISOLATION).toBe("isolate");
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
test("a dragged widget would otherwise outrank every dialog the app opens", () => {
|
|
171
|
+
/*
|
|
172
|
+
* This is the assertion that stops #3660 being "fixed" by raising the
|
|
173
|
+
* menu and deleting the boundary. Dragging happens in edit mode, and
|
|
174
|
+
* edit mode is full of things this number would cover in a shared
|
|
175
|
+
* stacking context: the widget settings dialog the canvas renders, the
|
|
176
|
+
* Add Widget and Variables dialogs, the discard confirmation. The
|
|
177
|
+
* elevation is held for a further 260ms after the drop, so this is not
|
|
178
|
+
* only about the frames the pointer is down for.
|
|
179
|
+
*/
|
|
180
|
+
expect(DashboardStackingLayers.canvasDraggingComponent).toBeGreaterThan(
|
|
181
|
+
modalZIndex(),
|
|
182
|
+
);
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
test("a selected widget would otherwise outrank the app's sticky header", () => {
|
|
186
|
+
/*
|
|
187
|
+
* The unreported half of the same bug: scroll a board with a tile
|
|
188
|
+
* selected and the tile rides up over the navbar. Lowering the raise
|
|
189
|
+
* instead would put the selection ring and the resize handles back
|
|
190
|
+
* underneath the neighbours they are meant to overlap.
|
|
191
|
+
*/
|
|
192
|
+
expect(
|
|
193
|
+
DashboardStackingLayers.canvasSelectedComponent,
|
|
194
|
+
).toBeGreaterThanOrEqual(appHeaderZIndex());
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
});
|