@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.
Files changed (734) hide show
  1. package/Models/DatabaseModels/Alert.ts +55 -0
  2. package/Models/DatabaseModels/CloudResource.ts +45 -7
  3. package/Models/DatabaseModels/CodeRepository.ts +85 -0
  4. package/Models/DatabaseModels/GoogleSecOpsConnection.ts +57 -7
  5. package/Models/DatabaseModels/GoogleSecOpsConnectionRun.ts +263 -0
  6. package/Models/DatabaseModels/Incident.ts +55 -0
  7. package/Models/DatabaseModels/Index.ts +16 -0
  8. package/Models/DatabaseModels/ScheduledMaintenance.ts +55 -0
  9. package/Models/DatabaseModels/User.ts +51 -2
  10. package/Models/DatabaseModels/UserNotificationEmailRollupItem.ts +43 -2
  11. package/Models/DatabaseModels/UserWebAuthn.ts +17 -0
  12. package/Models/DatabaseModels/VMwareResource.ts +1149 -0
  13. package/Models/DatabaseModels/VMwareVCenter.ts +1122 -0
  14. package/Models/DatabaseModels/VMwareVCenterFeed.ts +625 -0
  15. package/Models/DatabaseModels/VMwareVCenterLabelRule.ts +514 -0
  16. package/Models/DatabaseModels/VMwareVCenterOwnerRule.ts +596 -0
  17. package/Models/DatabaseModels/VMwareVCenterOwnerTeam.ts +485 -0
  18. package/Models/DatabaseModels/VMwareVCenterOwnerUser.ts +484 -0
  19. package/Models/DatabaseModels/WorkflowVariable.ts +22 -1
  20. package/Server/API/AIAgentDataAPI.ts +79 -4
  21. package/Server/API/AIAgentGitHubAPI.ts +523 -0
  22. package/Server/API/AIChatAPI.ts +20 -1
  23. package/Server/API/BillingAPI.ts +33 -0
  24. package/Server/API/DashboardAPI.ts +10 -0
  25. package/Server/API/GitHubAPI.ts +47 -5
  26. package/Server/API/GoogleSecOpsConnectionAPI.ts +79 -0
  27. package/Server/API/UserWebAuthnAPI.ts +21 -1
  28. package/Server/API/VMwareResourceAPI.ts +143 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.ts +68 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.ts +26 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.ts +636 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.ts +47 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.ts +17 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.ts +83 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  36. package/Server/Middleware/IdentityRateLimit.ts +101 -0
  37. package/Server/Services/AIRunService.ts +13 -0
  38. package/Server/Services/BillingPaymentMethodService.ts +99 -28
  39. package/Server/Services/BillingService.ts +287 -20
  40. package/Server/Services/CloudResourceInstanceService.ts +70 -0
  41. package/Server/Services/ExceptionAggregationService.ts +1 -0
  42. package/Server/Services/GoogleSecOpsConnectionRunService.ts +10 -0
  43. package/Server/Services/GoogleSecOpsConnectionService.ts +12 -0
  44. package/Server/Services/Index.ts +16 -0
  45. package/Server/Services/LogAggregationService.ts +1 -0
  46. package/Server/Services/MetricAggregationService.ts +1 -0
  47. package/Server/Services/MobilePasskeyLoginService.ts +216 -0
  48. package/Server/Services/MonitorService.ts +51 -1
  49. package/Server/Services/MonitorTemplateService.ts +91 -29
  50. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +132 -1
  51. package/Server/Services/NetworkDeviceAutoImportRuleService.ts +176 -2
  52. package/Server/Services/OpenTelemetryIngestService.ts +17 -0
  53. package/Server/Services/PayAsYouGoBillingService.ts +446 -0
  54. package/Server/Services/ProjectService.ts +46 -2
  55. package/Server/Services/ServerlessFunctionInstanceService.ts +71 -0
  56. package/Server/Services/TeamMemberService.ts +96 -36
  57. package/Server/Services/TelemetryIngestionKeyService.ts +80 -10
  58. package/Server/Services/TelemetryUsageBillingService.ts +95 -5
  59. package/Server/Services/TraceAggregationService.ts +5 -4
  60. package/Server/Services/UserWebAuthnService.ts +592 -133
  61. package/Server/Services/VMwareResourceService.ts +648 -0
  62. package/Server/Services/VMwareVCenterFeedService.ts +99 -0
  63. package/Server/Services/VMwareVCenterLabelRuleEngineService.ts +240 -0
  64. package/Server/Services/VMwareVCenterLabelRuleService.ts +14 -0
  65. package/Server/Services/VMwareVCenterOwnerRuleEngineService.ts +252 -0
  66. package/Server/Services/VMwareVCenterOwnerRuleService.ts +14 -0
  67. package/Server/Services/VMwareVCenterOwnerTeamService.ts +139 -0
  68. package/Server/Services/VMwareVCenterOwnerUserService.ts +133 -0
  69. package/Server/Services/VMwareVCenterService.ts +629 -0
  70. package/Server/Services/WorkflowVariableService.ts +203 -0
  71. package/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.ts +17 -0
  72. package/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.ts +31 -1
  73. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +7 -0
  74. package/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.ts +341 -0
  75. package/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.ts +274 -0
  76. package/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.ts +375 -0
  77. package/Server/Utils/CodeRepository/GitHub/GitHubConversation.ts +846 -0
  78. package/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.ts +360 -0
  79. package/Server/Utils/CodeRepository/GitHub/GitHubRunReply.ts +421 -0
  80. package/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.ts +140 -0
  81. package/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.ts +906 -0
  82. package/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.ts +143 -0
  83. package/Server/Utils/DataSource/EgressGuard.ts +160 -15
  84. package/Server/Utils/Database/TruncateColumnValue.ts +1 -1
  85. package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +2 -0
  86. package/Server/Utils/EmailRollup/EmailRollupRenderer.ts +33 -0
  87. package/Server/Utils/EmailRollup/EmailRollupWriter.ts +44 -0
  88. package/Server/Utils/LogRedaction.ts +2 -1
  89. package/Server/Utils/Monitor/MonitorAlert.ts +1 -1
  90. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +302 -3
  91. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +26 -4
  92. package/Server/Utils/Monitor/MonitorResourceContext.ts +5 -3
  93. package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +14 -0
  94. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +1 -0
  95. package/Server/Utils/Monitor/SeriesResourceLabels.ts +26 -0
  96. package/Server/Utils/Monitor/SeriesResourceLinker.ts +28 -5
  97. package/Server/Utils/ResourceFeed/ResourceFeedUtil.ts +3 -3
  98. package/Server/Utils/SecurityEvent/ConnectorErrorMessage.ts +14 -9
  99. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +116 -84
  100. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +594 -195
  101. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.ts +466 -0
  102. package/Server/Utils/Telemetry/EntityRegistry.ts +5 -0
  103. package/Server/Utils/Telemetry/ResourceHeartbeat.ts +2 -1
  104. package/Server/Utils/Telemetry/TelemetryEntity.ts +181 -1
  105. package/Server/Utils/Telemetry/VMwareSnapshotScan.ts +1352 -0
  106. package/Tests/App/Accounts/LoginPasskey.test.tsx +529 -0
  107. package/Tests/App/Accounts/MobilePasskey.test.tsx +620 -0
  108. package/Tests/App/Accounts/PasswordRequirements.test.tsx +254 -0
  109. package/Tests/App/Accounts/RegisterPassword.test.tsx +553 -0
  110. package/Tests/App/Dashboard/AskAiAvailability.test.ts +224 -0
  111. package/Tests/App/Dashboard/AskAiDisabled.test.tsx +432 -0
  112. package/Tests/App/Dashboard/BackupCodes.test.tsx +414 -0
  113. package/Tests/App/Dashboard/BillingPaidUsageFlow.test.tsx +530 -0
  114. package/Tests/App/Dashboard/BillingPaymentMethodForm.test.tsx +195 -0
  115. package/Tests/App/Dashboard/BreadcrumbCoverage.test.tsx +199 -0
  116. package/Tests/App/Dashboard/CloudDocumentationCard.test.tsx +198 -0
  117. package/Tests/App/Dashboard/CloudDocumentationMarkdown.test.ts +215 -0
  118. package/Tests/App/Dashboard/CloudFleetSummary.test.ts +183 -0
  119. package/Tests/App/Dashboard/CloudFleetSummaryComponent.test.tsx +248 -0
  120. package/Tests/App/Dashboard/CloudResourceTelemetryScope.test.ts +215 -0
  121. package/Tests/App/Dashboard/CriteriaFilterDefaults.test.ts +3 -0
  122. package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +441 -0
  123. package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +458 -0
  124. package/Tests/App/Dashboard/DashboardToolbarPopupLayering.test.tsx +566 -0
  125. package/Tests/App/Dashboard/DiscoveryScanLivePage.test.tsx +376 -0
  126. package/Tests/App/Dashboard/DiscoveryScanLiveUpdates.test.tsx +642 -0
  127. package/Tests/App/Dashboard/DiscoveryScanProgress.test.tsx +267 -0
  128. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +69 -231
  129. package/Tests/App/Dashboard/GoogleSecOpsConnectionsErrors.test.tsx +244 -0
  130. package/Tests/App/Dashboard/GoogleSecOpsDiagnostics.test.tsx +724 -0
  131. package/Tests/App/Dashboard/MonitorTemplateSyncFields.test.tsx +539 -0
  132. package/Tests/App/Dashboard/OnCallLayerCardOverrides.test.tsx +24 -7
  133. package/Tests/App/Dashboard/OnCallOverridePresentation.test.ts +496 -0
  134. package/Tests/App/Dashboard/OnCallScheduleOverrideClarity.test.tsx +677 -0
  135. package/Tests/App/Dashboard/OnCallSchedulePreviewOverrides.test.tsx +31 -3
  136. package/Tests/App/Dashboard/PaidUsageConsent.test.tsx +180 -0
  137. package/Tests/App/Dashboard/PasskeySettings.test.tsx +1220 -0
  138. package/Tests/App/Dashboard/PayAsYouGoConsentGate.test.tsx +176 -275
  139. package/Tests/App/Dashboard/PayAsYouGoNotices.test.tsx +380 -233
  140. package/Tests/App/Dashboard/ProductMenuBreadcrumbs.test.tsx +3 -23
  141. package/Tests/App/Dashboard/ResourceFeed.test.tsx +1 -0
  142. package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +8 -1
  143. package/Tests/App/Dashboard/TwoFactorStatus.test.tsx +260 -0
  144. package/Tests/App/Dashboard/VMwareDashboardWidgets.test.ts +573 -0
  145. package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
  146. package/Tests/App/Dashboard/WorkflowVariablesTable.test.tsx +768 -0
  147. package/Tests/App/StatusPage/StatusPageOverviewLiveAndSearch.test.tsx +532 -40
  148. package/Tests/App/StatusPage/StatusPageResourceSearchBox.test.tsx +19 -2
  149. package/Tests/Fixtures/MobilePasskeyUser.json +8 -0
  150. package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +25 -6
  151. package/Tests/Models/DatabaseModels/VMwareModels.test.ts +1134 -0
  152. package/Tests/Models/RunnerVersionLabel.test.ts +4 -2
  153. package/Tests/Server/API/AIChatProvidersAIEnabled.test.ts +259 -0
  154. package/Tests/Server/API/AIChatRouteAuthorization.test.ts +31 -2
  155. package/Tests/Server/API/BillingPayAsYouGoStatus.test.ts +116 -0
  156. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +29 -1
  157. package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +13 -2
  158. package/Tests/Server/API/GitHubWebhookSignature.test.ts +368 -0
  159. package/Tests/Server/API/GoogleSecOpsConnectionAPI.test.ts +248 -0
  160. package/Tests/Server/API/UserWebAuthnAuthenticationOptionsRoute.test.ts +330 -0
  161. package/Tests/Server/API/UserWebAuthnPasskeyAPI.test.ts +172 -0
  162. package/Tests/Server/API/VMwareResourceAPI.test.ts +546 -0
  163. package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupMetadataMigration.test.ts +85 -0
  164. package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupTableMigration.test.ts +34 -3
  165. package/Tests/Server/Middleware/PasskeyRateLimit.test.ts +141 -0
  166. package/Tests/Server/Services/AutoImportRuleRearmRecentScans.test.ts +343 -0
  167. package/Tests/Server/Services/AutoImportRuleWriteRearmsScans.test.ts +381 -0
  168. package/Tests/Server/Services/BillingPaymentMethodServiceSync.test.ts +175 -0
  169. package/Tests/Server/Services/BillingService.test.ts +26 -11
  170. package/Tests/Server/Services/BillingServiceMeteredPaymentAuthorization.test.ts +245 -0
  171. package/Tests/Server/Services/BillingServicePaymentMethodReads.test.ts +362 -0
  172. package/Tests/Server/Services/CloudResourceInstanceStalePrune.test.ts +188 -0
  173. package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +16 -2
  174. package/Tests/Server/Services/GoogleSecOpsDiagnosticsModel.test.ts +153 -0
  175. package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +13 -0
  176. package/Tests/Server/Services/InventoryItemPromotionGate.test.ts +5 -0
  177. package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +36 -0
  178. package/Tests/Server/Services/InventoryUpsertTruncationGuard.test.ts +151 -0
  179. package/Tests/Server/Services/MobilePasskeyLoginIntegration.test.ts +231 -0
  180. package/Tests/Server/Services/MobilePasskeyLoginService.test.ts +315 -0
  181. package/Tests/Server/Services/MonitorPayAsYouGoBilling.test.ts +302 -0
  182. package/Tests/Server/Services/MonitorTemplateServiceFieldSync.test.ts +994 -0
  183. package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +22 -0
  184. package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +7 -1
  185. package/Tests/Server/Services/PayAsYouGoBillingService.test.ts +857 -0
  186. package/Tests/Server/Services/PayAsYouGoStripeRateLimitBudget.test.ts +379 -0
  187. package/Tests/Server/Services/ProjectServiceExtendTrial.test.ts +99 -1
  188. package/Tests/Server/Services/ProjectServiceSubscriptionSeats.test.ts +134 -0
  189. package/Tests/Server/Services/ResourceFeedServices.test.ts +3 -2
  190. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +32 -6
  191. package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +363 -175
  192. package/Tests/Server/Services/ServerlessFunctionInstanceStalePrune.test.ts +200 -0
  193. package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +3 -0
  194. package/Tests/Server/Services/TeamMemberBillingSeatSync.test.ts +762 -0
  195. package/Tests/Server/Services/TeamMemberInviteRegistrationToken.test.ts +3 -0
  196. package/Tests/Server/Services/TelemetryIngestionKeyPolicyResolution.test.ts +72 -0
  197. package/Tests/Server/Services/TelemetryIngestionKeyValidation.test.ts +17 -4
  198. package/Tests/Server/Services/TelemetryPayAsYouGoBilling.test.ts +355 -0
  199. package/Tests/Server/Services/TraceAnalyticsResourceDisplayNames.test.ts +41 -4
  200. package/Tests/Server/Services/UserNotificationEmailRollupModels.test.ts +37 -0
  201. package/Tests/Server/Services/UserWebAuthnPasskeyIntegration.test.ts +401 -0
  202. package/Tests/Server/Services/UserWebAuthnPasskeyService.test.ts +769 -0
  203. package/Tests/Server/Services/UserWebAuthnUserVerification.test.ts +649 -0
  204. package/Tests/Server/Services/VMwareResourceService.test.ts +945 -0
  205. package/Tests/Server/Services/VMwareVCenterService.test.ts +722 -0
  206. package/Tests/Server/Services/WorkflowVariableRenameUniqueness.test.ts +842 -0
  207. package/Tests/Server/TestingUtils/PasskeyHttpIntegration.ts +102 -0
  208. package/Tests/Server/TestingUtils/SecurityKey.ts +464 -0
  209. package/Tests/Server/TestingUtils/WebAuthnServiceMocks.ts +60 -0
  210. package/Tests/Server/Types/Billing/PayAsYouGoMeteredAuthorization.test.ts +573 -0
  211. package/Tests/Server/Types/Database/Permissions/ProjectCustomerSupportAccessColumn.test.ts +261 -0
  212. package/Tests/Server/Types/Database/Permissions/WorkflowVariableColumnPermission.test.ts +95 -0
  213. package/Tests/Server/Utils/CodeRepository/GitHubAgentTaskTrigger.test.ts +2101 -0
  214. package/Tests/Server/Utils/CodeRepository/GitHubCommandAuthorizer.test.ts +883 -0
  215. package/Tests/Server/Utils/CodeRepository/GitHubCommandParser.test.ts +1474 -0
  216. package/Tests/Server/Utils/CodeRepository/GitHubConversation.test.ts +1526 -0
  217. package/Tests/Server/Utils/CodeRepository/GitHubReplyComposer.test.ts +1389 -0
  218. package/Tests/Server/Utils/CodeRepository/GitHubRunReply.test.ts +1707 -0
  219. package/Tests/Server/Utils/CodeRepository/GitHubWebhookHandler.test.ts +2202 -0
  220. package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +345 -0
  221. package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +896 -0
  222. package/Tests/Server/Utils/EmailRollup/EmailRollupMetadataIntegration.test.ts +246 -0
  223. package/Tests/Server/Utils/EmailRollup/EmailRollupRenderer.test.ts +299 -1
  224. package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +6 -0
  225. package/Tests/Server/Utils/EmailRollup/EmailRollupWriter.test.ts +185 -0
  226. package/Tests/Server/Utils/LogRedaction.test.ts +33 -0
  227. package/Tests/Server/Utils/Monitor/CapturedMetricAttributeUtil.test.ts +2 -1
  228. package/Tests/Server/Utils/Monitor/Criteria/TelemetryStepMetricAlias.test.ts +10 -0
  229. package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +66 -1
  230. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +362 -0
  231. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +1 -0
  232. package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +60 -1
  233. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +60 -0
  234. package/Tests/Server/Utils/Monitor/MonitorRootCauseTargetResolution.test.ts +423 -0
  235. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +6 -0
  236. package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +1 -0
  237. package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1 -0
  238. package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +46 -2
  239. package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +81 -45
  240. package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.test.ts +711 -0
  241. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClickhouseIntegration.test.ts +223 -0
  242. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +69 -1
  243. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsDiagnostics.test.ts +838 -0
  244. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsErrorHandling.test.ts +241 -28
  245. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsHttpIntegration.test.ts +651 -0
  246. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +11 -0
  247. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +13 -12
  248. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +112 -127
  249. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsRequestContract.test.ts +12 -18
  250. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsResponseParsing.test.ts +43 -0
  251. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +580 -0
  252. package/Tests/Server/Utils/Telemetry/VMwareSnapshotScan.test.ts +1748 -0
  253. package/Tests/Types/Cloud/CloudPlatform.test.ts +574 -0
  254. package/Tests/Types/Monitor/MetricAndProfileDefaultCriteria.test.ts +2 -0
  255. package/Tests/Types/Monitor/MonitorCriteriaMetricVariables.test.ts +9 -0
  256. package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +1 -0
  257. package/Tests/Types/Monitor/MonitorStepInfraMonitorUtils.test.ts +53 -8
  258. package/Tests/Types/Monitor/MonitorStepInfrastructureMonitors.test.ts +97 -0
  259. package/Tests/Types/Monitor/MonitorStepMetricViewConfigUtil.test.ts +1 -0
  260. package/Tests/Types/Monitor/MonitorStepTemplateSyncFields.test.ts +107 -0
  261. package/Tests/Types/Monitor/MonitorTemplateSyncField.test.ts +172 -0
  262. package/Tests/Types/Monitor/MonitorType.test.ts +1 -0
  263. package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +2 -0
  264. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationAlertDebuggability.test.ts +1 -0
  265. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +9 -0
  266. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +1 -1
  267. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +1 -1
  268. package/Tests/Types/Monitor/SeriesContext/SeriesDebugHints.test.ts +131 -0
  269. package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +10 -0
  270. package/Tests/Types/Monitor/VMwareAlertTemplates.test.ts +1608 -0
  271. package/Tests/Types/Monitor/VMwareMetricCatalog.test.ts +488 -0
  272. package/Tests/Types/OnCallDutyPolicy/OverrideProvenance.test.ts +295 -0
  273. package/Tests/Types/Runner/RunnerLiveStatus.test.ts +2 -2
  274. package/Tests/Types/SignupPassword.test.ts +205 -0
  275. package/Tests/Types/StatusPage/StatusPageLanguage.test.ts +44 -0
  276. package/Tests/Types/SupportedLanguages.test.ts +119 -0
  277. package/Tests/Types/Telemetry/EntityTypeGroups.test.ts +19 -0
  278. package/Tests/UI/ColorPickerBuild.test.ts +86 -0
  279. package/Tests/UI/Components/Breadcrumbs.test.tsx +32 -0
  280. package/Tests/UI/Components/Forms/ModelFormPreservesUserInput.test.tsx +937 -0
  281. package/Tests/UI/Components/Forms/ModelFormWriteOnlyColumnSelect.test.tsx +230 -0
  282. package/Tests/UI/Components/Forms/ValidationFormSteps.test.ts +3 -4
  283. package/Tests/UI/Components/LabelRuleImportExport.test.tsx +907 -0
  284. package/Tests/UI/Components/ModelTable/ModelTableCreateAfterEdit.test.tsx +514 -0
  285. package/Tests/UI/Components/MonitorGraphs/Uptime.test.tsx +301 -0
  286. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +2 -1
  287. package/Tests/UI/Components/TooltipLazyContent.test.tsx +373 -0
  288. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsMessagingEndpointGuidance.test.tsx +43 -12
  289. package/Tests/UI/ReactDomBuild.test.ts +104 -0
  290. package/Tests/UI/ReactRouterSingletonBuild.test.ts +11 -1
  291. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +148 -0
  292. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +29 -0
  293. package/Tests/UI/Utils/DashboardStackingLayers.test.ts +197 -0
  294. package/Tests/UI/Utils/LabelRuleImportExport.test.ts +546 -0
  295. package/Tests/UI/Utils/ModelAPITenantHeader.test.ts +109 -2
  296. package/Tests/UI/Utils/UseDashboardGridDnd.test.tsx +7 -2
  297. package/Tests/UI/Utils/UserEmailRegistrationStatus.test.tsx +295 -0
  298. package/Tests/UI/Utils/WebAuthn.test.ts +265 -0
  299. package/Tests/Utils/Dashboard/Components/DashboardComponentDefaults.test.ts +5 -0
  300. package/Tests/Utils/Dashboard/Components/DashboardVMwareListComponents.test.ts +548 -0
  301. package/Tests/Utils/Dashboard/DashboardResourceListSharedArgs.test.ts +17 -3
  302. package/Tests/Utils/LabelRuleImportExport.test.ts +583 -0
  303. package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
  304. package/Tests/Utils/Monitor/MonitorTemplateSyncUtil.test.ts +590 -0
  305. package/Tests/Utils/RequestFailedDetails.test.ts +325 -0
  306. package/Tests/Utils/Telemetry/CloudInstanceIdentity.test.ts +255 -0
  307. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +167 -0
  308. package/Tests/Utils/WebAuthnTestUtil.ts +79 -0
  309. package/Tests/__mocks__/simplewebauthn.js +33 -4
  310. package/Types/AI/CodeFixTaskContext.ts +122 -0
  311. package/Types/AI/CodeFixTaskType.ts +62 -0
  312. package/Types/Accounts/AccountsLanguage.ts +1 -0
  313. package/Types/AdminDashboard/AdminDashboardLanguage.ts +1 -0
  314. package/Types/Calendar/CalendarEvent.ts +16 -0
  315. package/Types/Cloud/CloudPlatform.ts +372 -0
  316. package/Types/CodeRepository/GitHubCommand.ts +69 -0
  317. package/Types/Dashboard/DashboardComponentType.ts +2 -0
  318. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  319. package/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.ts +23 -0
  320. package/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.ts +30 -0
  321. package/Types/Dashboard/DashboardLanguage.ts +1 -0
  322. package/Types/Dashboard/DashboardTemplates.ts +314 -0
  323. package/Types/Docs/DocsLanguage.ts +1 -0
  324. package/Types/Exception/EgressGuardException.ts +65 -0
  325. package/Types/Icon/IconProp.ts +1 -0
  326. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +36 -0
  327. package/Types/Monitor/MonitorCriteriaInstance.ts +1 -0
  328. package/Types/Monitor/MonitorStep.ts +78 -17
  329. package/Types/Monitor/MonitorStepMetricViewConfigUtil.ts +1 -0
  330. package/Types/Monitor/MonitorStepVMwareMonitor.ts +127 -0
  331. package/Types/Monitor/MonitorTemplateSyncField.ts +291 -0
  332. package/Types/Monitor/MonitorType.ts +24 -0
  333. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +33 -0
  334. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +2 -0
  335. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +3 -0
  336. package/Types/Monitor/SeriesContext/SeriesDebugHints.ts +158 -0
  337. package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +61 -0
  338. package/Types/Monitor/VMwareAlertTemplates.ts +1070 -0
  339. package/Types/Monitor/VMwareMetricCatalog.ts +914 -0
  340. package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +29 -0
  341. package/Types/OnCallDutyPolicy/UserOverrideUtil.ts +16 -0
  342. package/Types/Password.ts +84 -5
  343. package/Types/Permission.ts +265 -0
  344. package/Types/Probe/RequestFailedDetails.ts +7 -0
  345. package/Types/Runner/RunnerLiveStatus.ts +1 -1
  346. package/Types/SecurityEvent/GoogleSecOpsDiagnostics.ts +56 -0
  347. package/Types/StatusPage/StatusPageLanguage.ts +1 -0
  348. package/Types/Telemetry/EntityType.ts +21 -0
  349. package/Types/Telemetry/ServiceType.ts +1 -0
  350. package/Typings/Index.d.ts +63 -0
  351. package/UI/Components/Breadcrumbs/Breadcrumbs.tsx +2 -2
  352. package/UI/Components/Calendar/Calendar.css +78 -0
  353. package/UI/Components/Calendar/Calendar.tsx +28 -3
  354. package/UI/Components/Forms/BasicForm.tsx +44 -2
  355. package/UI/Components/Forms/Fields/ColorPicker.tsx +2 -1
  356. package/UI/Components/Forms/Fields/FormField.tsx +16 -3
  357. package/UI/Components/Forms/ModelForm.tsx +159 -5
  358. package/UI/Components/Forms/Types/Field.ts +8 -1
  359. package/UI/Components/Graphs/DayUptimeGraph.tsx +8 -10
  360. package/UI/Components/Icon/Icon.tsx +16 -0
  361. package/UI/Components/Input/Input.tsx +42 -7
  362. package/UI/Components/LabelRule/ImportLabelRulesModal.tsx +441 -0
  363. package/UI/Components/LabelRule/LabelRuleTable.tsx +142 -0
  364. package/UI/Components/ModelTable/BaseModelTable.tsx +22 -5
  365. package/UI/Components/ModelTable/ModelTable.tsx +14 -6
  366. package/UI/Components/MonitorGraphs/Uptime.tsx +17 -27
  367. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +3 -1
  368. package/UI/Components/Tooltip/Tooltip.tsx +52 -6
  369. package/UI/Utils/DashboardStackingLayers.ts +85 -0
  370. package/UI/Utils/LabelRuleImportExport.ts +310 -0
  371. package/UI/Utils/ModelAPI/ModelAPI.ts +4 -3
  372. package/UI/Utils/TelemetryService.ts +4 -3
  373. package/UI/Utils/UseDashboardGridDnd.ts +4 -1
  374. package/UI/Utils/UserEmailRegistrationStatus.ts +33 -5
  375. package/UI/Utils/WebAuthn.ts +220 -0
  376. package/UI/esbuild-config.js +4 -0
  377. package/Utils/API.ts +34 -0
  378. package/Utils/Dashboard/Components/DashboardVMwareHostListComponent.ts +38 -0
  379. package/Utils/Dashboard/Components/DashboardVMwareResourceListShared.ts +70 -0
  380. package/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.ts +76 -0
  381. package/Utils/Dashboard/Components/Index.ts +16 -0
  382. package/Utils/LabelRuleImportExport.ts +496 -0
  383. package/Utils/Monitor/MonitorTemplateSyncUtil.ts +164 -0
  384. package/Utils/NetworkDiscovery/DiscoveryScanStatus.ts +8 -0
  385. package/Utils/Telemetry/CloudInstanceIdentity.ts +94 -0
  386. package/Utils/Telemetry/EntityKey.ts +19 -0
  387. package/Utils/Telemetry/EntityRelationship.ts +19 -0
  388. package/build/dist/Models/DatabaseModels/Alert.js +54 -0
  389. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  390. package/build/dist/Models/DatabaseModels/CloudResource.js +44 -7
  391. package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -1
  392. package/build/dist/Models/DatabaseModels/CodeRepository.js +87 -0
  393. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  394. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +60 -7
  395. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
  396. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnectionRun.js +287 -0
  397. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnectionRun.js.map +1 -0
  398. package/build/dist/Models/DatabaseModels/Incident.js +54 -0
  399. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  400. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  401. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  402. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +54 -0
  403. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  404. package/build/dist/Models/DatabaseModels/User.js +57 -4
  405. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  406. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js +47 -2
  407. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js.map +1 -1
  408. package/build/dist/Models/DatabaseModels/UserWebAuthn.js +18 -0
  409. package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
  410. package/build/dist/Models/DatabaseModels/VMwareResource.js +1201 -0
  411. package/build/dist/Models/DatabaseModels/VMwareResource.js.map +1 -0
  412. package/build/dist/Models/DatabaseModels/VMwareVCenter.js +1149 -0
  413. package/build/dist/Models/DatabaseModels/VMwareVCenter.js.map +1 -0
  414. package/build/dist/Models/DatabaseModels/VMwareVCenterFeed.js +648 -0
  415. package/build/dist/Models/DatabaseModels/VMwareVCenterFeed.js.map +1 -0
  416. package/build/dist/Models/DatabaseModels/VMwareVCenterLabelRule.js +522 -0
  417. package/build/dist/Models/DatabaseModels/VMwareVCenterLabelRule.js.map +1 -0
  418. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerRule.js +603 -0
  419. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerRule.js.map +1 -0
  420. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js +503 -0
  421. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js.map +1 -0
  422. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js +502 -0
  423. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js.map +1 -0
  424. package/build/dist/Models/DatabaseModels/WorkflowVariable.js +22 -1
  425. package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
  426. package/build/dist/Server/API/AIAgentDataAPI.js +63 -3
  427. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  428. package/build/dist/Server/API/AIAgentGitHubAPI.js +363 -0
  429. package/build/dist/Server/API/AIAgentGitHubAPI.js.map +1 -0
  430. package/build/dist/Server/API/AIChatAPI.js +19 -1
  431. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  432. package/build/dist/Server/API/BillingAPI.js +22 -0
  433. package/build/dist/Server/API/BillingAPI.js.map +1 -1
  434. package/build/dist/Server/API/DashboardAPI.js +10 -0
  435. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  436. package/build/dist/Server/API/GitHubAPI.js +33 -5
  437. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  438. package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js +56 -0
  439. package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js.map +1 -0
  440. package/build/dist/Server/API/UserWebAuthnAPI.js +17 -1
  441. package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
  442. package/build/dist/Server/API/VMwareResourceAPI.js +106 -0
  443. package/build/dist/Server/API/VMwareResourceAPI.js.map +1 -0
  444. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.js +41 -0
  445. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.js.map +1 -0
  446. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.js +14 -0
  447. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.js.map +1 -0
  448. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.js +241 -0
  449. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.js.map +1 -0
  450. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.js +36 -0
  451. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.js.map +1 -0
  452. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.js +12 -0
  453. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.js.map +1 -0
  454. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.js +34 -0
  455. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.js.map +1 -0
  456. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  457. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  458. package/build/dist/Server/Middleware/IdentityRateLimit.js +80 -0
  459. package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
  460. package/build/dist/Server/Services/AIRunService.js +14 -1
  461. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  462. package/build/dist/Server/Services/BillingPaymentMethodService.js +71 -21
  463. package/build/dist/Server/Services/BillingPaymentMethodService.js.map +1 -1
  464. package/build/dist/Server/Services/BillingService.js +210 -22
  465. package/build/dist/Server/Services/BillingService.js.map +1 -1
  466. package/build/dist/Server/Services/CloudResourceInstanceService.js +66 -0
  467. package/build/dist/Server/Services/CloudResourceInstanceService.js.map +1 -1
  468. package/build/dist/Server/Services/ExceptionAggregationService.js +1 -0
  469. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  470. package/build/dist/Server/Services/GoogleSecOpsConnectionRunService.js +9 -0
  471. package/build/dist/Server/Services/GoogleSecOpsConnectionRunService.js.map +1 -0
  472. package/build/dist/Server/Services/GoogleSecOpsConnectionService.js +7 -0
  473. package/build/dist/Server/Services/GoogleSecOpsConnectionService.js.map +1 -1
  474. package/build/dist/Server/Services/Index.js +16 -0
  475. package/build/dist/Server/Services/Index.js.map +1 -1
  476. package/build/dist/Server/Services/LogAggregationService.js +1 -0
  477. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  478. package/build/dist/Server/Services/MetricAggregationService.js +1 -0
  479. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  480. package/build/dist/Server/Services/MobilePasskeyLoginService.js +137 -0
  481. package/build/dist/Server/Services/MobilePasskeyLoginService.js.map +1 -0
  482. package/build/dist/Server/Services/MonitorService.js +34 -1
  483. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  484. package/build/dist/Server/Services/MonitorTemplateService.js +64 -26
  485. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  486. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +124 -1
  487. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  488. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +142 -2
  489. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  490. package/build/dist/Server/Services/OpenTelemetryIngestService.js +28 -13
  491. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  492. package/build/dist/Server/Services/PayAsYouGoBillingService.js +297 -0
  493. package/build/dist/Server/Services/PayAsYouGoBillingService.js.map +1 -0
  494. package/build/dist/Server/Services/ProjectService.js +38 -2
  495. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  496. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js +66 -0
  497. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js.map +1 -1
  498. package/build/dist/Server/Services/TeamMemberService.js +85 -28
  499. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  500. package/build/dist/Server/Services/TelemetryIngestionKeyService.js +61 -10
  501. package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
  502. package/build/dist/Server/Services/TelemetryUsageBillingService.js +62 -5
  503. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  504. package/build/dist/Server/Services/TraceAggregationService.js +5 -4
  505. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  506. package/build/dist/Server/Services/UserWebAuthnService.js +345 -113
  507. package/build/dist/Server/Services/UserWebAuthnService.js.map +1 -1
  508. package/build/dist/Server/Services/VMwareResourceService.js +395 -0
  509. package/build/dist/Server/Services/VMwareResourceService.js.map +1 -0
  510. package/build/dist/Server/Services/VMwareVCenterFeedService.js +89 -0
  511. package/build/dist/Server/Services/VMwareVCenterFeedService.js.map +1 -0
  512. package/build/dist/Server/Services/VMwareVCenterLabelRuleEngineService.js +197 -0
  513. package/build/dist/Server/Services/VMwareVCenterLabelRuleEngineService.js.map +1 -0
  514. package/build/dist/Server/Services/VMwareVCenterLabelRuleService.js +13 -0
  515. package/build/dist/Server/Services/VMwareVCenterLabelRuleService.js.map +1 -0
  516. package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js +214 -0
  517. package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js.map +1 -0
  518. package/build/dist/Server/Services/VMwareVCenterOwnerRuleService.js +13 -0
  519. package/build/dist/Server/Services/VMwareVCenterOwnerRuleService.js.map +1 -0
  520. package/build/dist/Server/Services/VMwareVCenterOwnerTeamService.js +129 -0
  521. package/build/dist/Server/Services/VMwareVCenterOwnerTeamService.js.map +1 -0
  522. package/build/dist/Server/Services/VMwareVCenterOwnerUserService.js +122 -0
  523. package/build/dist/Server/Services/VMwareVCenterOwnerUserService.js.map +1 -0
  524. package/build/dist/Server/Services/VMwareVCenterService.js +533 -0
  525. package/build/dist/Server/Services/VMwareVCenterService.js.map +1 -0
  526. package/build/dist/Server/Services/WorkflowVariableService.js +169 -0
  527. package/build/dist/Server/Services/WorkflowVariableService.js.map +1 -1
  528. package/build/dist/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.js +12 -1
  529. package/build/dist/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.js.map +1 -1
  530. package/build/dist/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.js +25 -2
  531. package/build/dist/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.js.map +1 -1
  532. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  533. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.js +275 -0
  534. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.js.map +1 -0
  535. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.js +226 -0
  536. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.js.map +1 -0
  537. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.js +297 -0
  538. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.js.map +1 -0
  539. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubConversation.js +582 -0
  540. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubConversation.js.map +1 -0
  541. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.js +275 -0
  542. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.js.map +1 -0
  543. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubRunReply.js +365 -0
  544. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubRunReply.js.map +1 -0
  545. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.js +103 -0
  546. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.js.map +1 -0
  547. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.js +661 -0
  548. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.js.map +1 -0
  549. package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js +113 -0
  550. package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js.map +1 -1
  551. package/build/dist/Server/Utils/DataSource/EgressGuard.js +99 -15
  552. package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -1
  553. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +2 -0
  554. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -1
  555. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js +18 -0
  556. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js.map +1 -1
  557. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js +31 -2
  558. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js.map +1 -1
  559. package/build/dist/Server/Utils/LogRedaction.js +2 -1
  560. package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
  561. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +1 -1
  562. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +219 -4
  563. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  564. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +12 -4
  565. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  566. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +5 -3
  567. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -1
  568. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +22 -9
  569. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -1
  570. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +1 -0
  571. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  572. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +21 -0
  573. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  574. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +21 -6
  575. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
  576. package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js +3 -3
  577. package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js +9 -9
  578. package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js.map +1 -1
  579. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +92 -71
  580. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
  581. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +428 -143
  582. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
  583. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js +376 -0
  584. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js.map +1 -0
  585. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +5 -0
  586. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  587. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -1
  588. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +136 -1
  589. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  590. package/build/dist/Server/Utils/Telemetry/VMwareSnapshotScan.js +933 -0
  591. package/build/dist/Server/Utils/Telemetry/VMwareSnapshotScan.js.map +1 -0
  592. package/build/dist/Types/AI/CodeFixTaskContext.js +40 -0
  593. package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -1
  594. package/build/dist/Types/AI/CodeFixTaskType.js +57 -0
  595. package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -1
  596. package/build/dist/Types/Accounts/AccountsLanguage.js +1 -0
  597. package/build/dist/Types/Accounts/AccountsLanguage.js.map +1 -1
  598. package/build/dist/Types/AdminDashboard/AdminDashboardLanguage.js +1 -0
  599. package/build/dist/Types/AdminDashboard/AdminDashboardLanguage.js.map +1 -1
  600. package/build/dist/Types/Cloud/CloudPlatform.js +277 -0
  601. package/build/dist/Types/Cloud/CloudPlatform.js.map +1 -0
  602. package/build/dist/Types/CodeRepository/GitHubCommand.js +52 -0
  603. package/build/dist/Types/CodeRepository/GitHubCommand.js.map +1 -0
  604. package/build/dist/Types/Dashboard/DashboardComponentType.js +2 -0
  605. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  606. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  607. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  608. package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.js +2 -0
  609. package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.js.map +1 -0
  610. package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.js +2 -0
  611. package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.js.map +1 -0
  612. package/build/dist/Types/Dashboard/DashboardLanguage.js +1 -0
  613. package/build/dist/Types/Dashboard/DashboardLanguage.js.map +1 -1
  614. package/build/dist/Types/Dashboard/DashboardTemplates.js +286 -0
  615. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  616. package/build/dist/Types/Docs/DocsLanguage.js +1 -0
  617. package/build/dist/Types/Docs/DocsLanguage.js.map +1 -1
  618. package/build/dist/Types/Exception/EgressGuardException.js +59 -0
  619. package/build/dist/Types/Exception/EgressGuardException.js.map +1 -0
  620. package/build/dist/Types/Icon/IconProp.js +1 -0
  621. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  622. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +1 -0
  623. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  624. package/build/dist/Types/Monitor/MonitorStep.js +61 -18
  625. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  626. package/build/dist/Types/Monitor/MonitorStepMetricViewConfigUtil.js +1 -0
  627. package/build/dist/Types/Monitor/MonitorStepMetricViewConfigUtil.js.map +1 -1
  628. package/build/dist/Types/Monitor/MonitorStepVMwareMonitor.js +71 -0
  629. package/build/dist/Types/Monitor/MonitorStepVMwareMonitor.js.map +1 -0
  630. package/build/dist/Types/Monitor/MonitorTemplateSyncField.js +211 -0
  631. package/build/dist/Types/Monitor/MonitorTemplateSyncField.js.map +1 -0
  632. package/build/dist/Types/Monitor/MonitorType.js +23 -0
  633. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  634. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +28 -0
  635. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  636. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +1 -0
  637. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  638. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +2 -0
  639. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
  640. package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js +120 -0
  641. package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js.map +1 -1
  642. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +60 -0
  643. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -1
  644. package/build/dist/Types/Monitor/VMwareAlertTemplates.js +775 -0
  645. package/build/dist/Types/Monitor/VMwareAlertTemplates.js.map +1 -0
  646. package/build/dist/Types/Monitor/VMwareMetricCatalog.js +799 -0
  647. package/build/dist/Types/Monitor/VMwareMetricCatalog.js.map +1 -0
  648. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +25 -0
  649. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
  650. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js +5 -0
  651. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js.map +1 -1
  652. package/build/dist/Types/Password.js +63 -5
  653. package/build/dist/Types/Password.js.map +1 -1
  654. package/build/dist/Types/Permission.js +234 -0
  655. package/build/dist/Types/Permission.js.map +1 -1
  656. package/build/dist/Types/Probe/RequestFailedDetails.js +7 -0
  657. package/build/dist/Types/Probe/RequestFailedDetails.js.map +1 -1
  658. package/build/dist/Types/SecurityEvent/GoogleSecOpsDiagnostics.js +2 -0
  659. package/build/dist/Types/SecurityEvent/GoogleSecOpsDiagnostics.js.map +1 -0
  660. package/build/dist/Types/StatusPage/StatusPageLanguage.js +1 -0
  661. package/build/dist/Types/StatusPage/StatusPageLanguage.js.map +1 -1
  662. package/build/dist/Types/Telemetry/EntityType.js +21 -0
  663. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  664. package/build/dist/Types/Telemetry/ServiceType.js +1 -0
  665. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  666. package/build/dist/UI/Components/Breadcrumbs/Breadcrumbs.js +2 -2
  667. package/build/dist/UI/Components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  668. package/build/dist/UI/Components/Calendar/Calendar.js +24 -4
  669. package/build/dist/UI/Components/Calendar/Calendar.js.map +1 -1
  670. package/build/dist/UI/Components/Forms/BasicForm.js +28 -3
  671. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  672. package/build/dist/UI/Components/Forms/Fields/ColorPicker.js +1 -1
  673. package/build/dist/UI/Components/Forms/Fields/ColorPicker.js.map +1 -1
  674. package/build/dist/UI/Components/Forms/Fields/FormField.js +10 -3
  675. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  676. package/build/dist/UI/Components/Forms/ModelForm.js +89 -6
  677. package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
  678. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js +5 -6
  679. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js.map +1 -1
  680. package/build/dist/UI/Components/Icon/Icon.js +14 -0
  681. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  682. package/build/dist/UI/Components/Input/Input.js +37 -8
  683. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  684. package/build/dist/UI/Components/LabelRule/ImportLabelRulesModal.js +228 -0
  685. package/build/dist/UI/Components/LabelRule/ImportLabelRulesModal.js.map +1 -0
  686. package/build/dist/UI/Components/LabelRule/LabelRuleTable.js +102 -0
  687. package/build/dist/UI/Components/LabelRule/LabelRuleTable.js.map +1 -0
  688. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +15 -2
  689. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  690. package/build/dist/UI/Components/ModelTable/ModelTable.js +13 -5
  691. package/build/dist/UI/Components/ModelTable/ModelTable.js.map +1 -1
  692. package/build/dist/UI/Components/MonitorGraphs/Uptime.js +14 -15
  693. package/build/dist/UI/Components/MonitorGraphs/Uptime.js.map +1 -1
  694. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +2 -0
  695. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  696. package/build/dist/UI/Components/Tooltip/Tooltip.js +33 -4
  697. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  698. package/build/dist/UI/Utils/DashboardStackingLayers.js +44 -0
  699. package/build/dist/UI/Utils/DashboardStackingLayers.js.map +1 -0
  700. package/build/dist/UI/Utils/LabelRuleImportExport.js +195 -0
  701. package/build/dist/UI/Utils/LabelRuleImportExport.js.map +1 -0
  702. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +4 -4
  703. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
  704. package/build/dist/UI/Utils/TelemetryService.js +3 -2
  705. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  706. package/build/dist/UI/Utils/UseDashboardGridDnd.js +2 -1
  707. package/build/dist/UI/Utils/UseDashboardGridDnd.js.map +1 -1
  708. package/build/dist/UI/Utils/UserEmailRegistrationStatus.js +21 -4
  709. package/build/dist/UI/Utils/UserEmailRegistrationStatus.js.map +1 -1
  710. package/build/dist/UI/Utils/WebAuthn.js +121 -0
  711. package/build/dist/UI/Utils/WebAuthn.js.map +1 -0
  712. package/build/dist/Utils/API.js +29 -0
  713. package/build/dist/Utils/API.js.map +1 -1
  714. package/build/dist/Utils/Dashboard/Components/DashboardVMwareHostListComponent.js +33 -0
  715. package/build/dist/Utils/Dashboard/Components/DashboardVMwareHostListComponent.js.map +1 -0
  716. package/build/dist/Utils/Dashboard/Components/DashboardVMwareResourceListShared.js +54 -0
  717. package/build/dist/Utils/Dashboard/Components/DashboardVMwareResourceListShared.js.map +1 -0
  718. package/build/dist/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.js +60 -0
  719. package/build/dist/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.js.map +1 -0
  720. package/build/dist/Utils/Dashboard/Components/Index.js +8 -0
  721. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  722. package/build/dist/Utils/LabelRuleImportExport.js +356 -0
  723. package/build/dist/Utils/LabelRuleImportExport.js.map +1 -0
  724. package/build/dist/Utils/Monitor/MonitorTemplateSyncUtil.js +110 -0
  725. package/build/dist/Utils/Monitor/MonitorTemplateSyncUtil.js.map +1 -0
  726. package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js +6 -0
  727. package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js.map +1 -1
  728. package/build/dist/Utils/Telemetry/CloudInstanceIdentity.js +88 -0
  729. package/build/dist/Utils/Telemetry/CloudInstanceIdentity.js.map +1 -0
  730. package/build/dist/Utils/Telemetry/EntityKey.js +15 -0
  731. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  732. package/build/dist/Utils/Telemetry/EntityRelationship.js +13 -0
  733. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
  734. package/package.json +1 -1
@@ -11,13 +11,94 @@ import DatabaseService from "./DatabaseService";
11
11
  import Model from "../../Models/DatabaseModels/UserWebAuthn";
12
12
  import UserService from "./UserService";
13
13
  import BadDataException from "../../Types/Exception/BadDataException";
14
+ import Exception from "../../Types/Exception/Exception";
15
+ import Hostname from "../../Types/API/Hostname";
14
16
  import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
15
17
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
16
18
  import { generateRegistrationOptions, verifyRegistrationResponse, generateAuthenticationOptions, verifyAuthenticationResponse, } from "@simplewebauthn/server";
17
19
  import { Host, HttpProtocol } from "../EnvironmentConfig";
18
20
  import ObjectID from "../../Types/ObjectID";
19
- import OneUptimeDate from "../../Types/Date";
21
+ import Redis from "../Infrastructure/Redis";
22
+ import DatabaseNotConnectedException from "../../Types/Exception/DatabaseNotConnectedException";
23
+ import { randomBytes } from "crypto";
24
+ import { URL } from "url";
20
25
  const WEBAUTHN_CHALLENGE_TTL_MINUTES = 5;
26
+ const AUTHENTICATION_CHALLENGE_PREFIX = "webauthn-security-key-login-";
27
+ const REGISTRATION_CHALLENGE_PREFIX = "webauthn-registration-";
28
+ const PASSKEY_CHALLENGE_PREFIX = "webauthn-passkey-login-";
29
+ /*
30
+ * One answer for both ways of having no security key to offer, because the
31
+ * route that asks is anonymous.
32
+ *
33
+ * `generateAuthenticationOptions` is reached by POSTing an email address and
34
+ * nothing else. It used to answer "User not found" for an address nobody has
35
+ * registered and "No WebAuthn credentials found for this user" for one that
36
+ * exists but has no key -- two distinguishable replies, which together are a
37
+ * free account-existence oracle for anyone who can send a request, and a
38
+ * second oracle telling them which of those accounts is protected by hardware.
39
+ *
40
+ * Every other door on this surface already refuses to say that much: the login
41
+ * routes deliberately do not reveal which half of a credential was wrong, and
42
+ * IdentityRateLimit answers identically for a real address and an invented
43
+ * one specifically so that being throttled does not give back the enumeration
44
+ * the handlers withhold. This route was the exception.
45
+ *
46
+ * Nothing legitimate is lost. A real user only reaches this after signing in
47
+ * with their password, from a list of their OWN registered keys returned by
48
+ * /login -- so they cannot arrive here with an account that has none, and the
49
+ * message they would never see is not worth an oracle to everyone else.
50
+ */
51
+ const NO_SECURITY_KEY_AVAILABLE = "No security key is available for this account.";
52
+ const WEBAUTHN_USER_VERIFICATION = "preferred";
53
+ const requiresUserVerification = (policy) => {
54
+ return policy === "required";
55
+ };
56
+ const WEBAUTHN_REQUIRE_USER_VERIFICATION = requiresUserVerification(WEBAUTHN_USER_VERIFICATION);
57
+ const explainVerificationFailure = async (verify) => {
58
+ try {
59
+ return await verify();
60
+ }
61
+ catch (err) {
62
+ if (err instanceof Exception) {
63
+ throw err;
64
+ }
65
+ throw new BadDataException(err instanceof Error && err.message
66
+ ? err.message
67
+ : "Could not verify this security key.");
68
+ }
69
+ };
70
+ const webAuthnRelyingPartyId = () => {
71
+ return Hostname.fromAuthority(Host.toString()).hostname;
72
+ };
73
+ const KNOWN_WEBAUTHN_TRANSPORTS = [
74
+ "ble",
75
+ "cable",
76
+ "hybrid",
77
+ "internal",
78
+ "nfc",
79
+ "smart-card",
80
+ "usb",
81
+ ];
82
+ const parseStoredTransports = (stored) => {
83
+ if (!stored) {
84
+ return undefined;
85
+ }
86
+ let parsed = undefined;
87
+ try {
88
+ parsed = JSON.parse(stored);
89
+ }
90
+ catch (_a) {
91
+ return undefined;
92
+ }
93
+ if (!Array.isArray(parsed)) {
94
+ return undefined;
95
+ }
96
+ const transports = parsed.filter((transport) => {
97
+ return (typeof transport === "string" &&
98
+ KNOWN_WEBAUTHN_TRANSPORTS.includes(transport));
99
+ });
100
+ return transports.length > 0 ? transports : undefined;
101
+ };
21
102
  export class Service extends DatabaseService {
22
103
  constructor() {
23
104
  super(Model);
@@ -46,6 +127,7 @@ export class Service extends DatabaseService {
46
127
  },
47
128
  select: {
48
129
  credentialId: true,
130
+ transports: true,
49
131
  },
50
132
  limit: LIMIT_PER_PROJECT,
51
133
  skip: 0,
@@ -55,7 +137,7 @@ export class Service extends DatabaseService {
55
137
  });
56
138
  const options = await generateRegistrationOptions({
57
139
  rpName: "OneUptime",
58
- rpID: Host.toString(),
140
+ rpID: this.getRelyingParty().rpID,
59
141
  userID: new Uint8Array(Buffer.from(data.userId.toString())),
60
142
  userName: user.email.toString(),
61
143
  userDisplayName: user.name ? user.name.toString() : user.email.toString(),
@@ -65,36 +147,24 @@ export class Service extends DatabaseService {
65
147
  return cred.credentialId;
66
148
  })
67
149
  .map((cred) => {
68
- return {
69
- id: cred.credentialId,
70
- type: "public-key",
71
- };
150
+ /* Same hint as allowCredentials carries; see the note there. */
151
+ const transports = parseStoredTransports(cred.transports);
152
+ return Object.assign({ id: cred.credentialId, type: "public-key" }, (transports ? { transports } : {}));
72
153
  }),
73
154
  authenticatorSelection: {
74
- residentKey: "discouraged",
75
- userVerification: "preferred",
76
- },
77
- });
78
- // Convert to JSON serializable format
79
- options.challenge = Buffer.from(options.challenge).toString("base64url");
80
- if (options.excludeCredentials) {
81
- options.excludeCredentials = options.excludeCredentials.map((cred) => {
82
- return Object.assign(Object.assign({}, cred), { id: typeof cred.id === "string"
83
- ? cred.id
84
- : Buffer.from(cred.id).toString("base64url") });
85
- });
86
- }
87
- // Store the challenge server-side so verification uses a trusted value
88
- await UserService.updateOneById({
89
- id: data.userId,
90
- data: {
91
- webauthnChallenge: options.challenge,
92
- webauthnChallengeExpiresAt: OneUptimeDate.addRemoveMinutes(OneUptimeDate.getCurrentDate(), WEBAUTHN_CHALLENGE_TTL_MINUTES),
93
- },
94
- props: {
95
- isRoot: true,
155
+ residentKey: data.isPasskey === true ? "required" : "discouraged",
156
+ userVerification: data.isPasskey === true ? "required" : WEBAUTHN_USER_VERIFICATION,
96
157
  },
97
158
  });
159
+ /*
160
+ * SimpleWebAuthn already returns base64url JSON. Preserve the exact
161
+ * challenge, and bind the verification requirement to server-side state.
162
+ */
163
+ await this.storeChallenge(`${REGISTRATION_CHALLENGE_PREFIX}${data.userId.toString()}`, JSON.stringify({
164
+ challenge: options.challenge,
165
+ requireUserVerification: data.isPasskey === true || WEBAUTHN_REQUIRE_USER_VERIFICATION,
166
+ isPasskey: data.isPasskey === true,
167
+ }));
98
168
  return {
99
169
  options: options,
100
170
  challenge: options.challenge,
@@ -104,14 +174,19 @@ export class Service extends DatabaseService {
104
174
  if (!data.props.userId) {
105
175
  throw new BadDataException("User ID not found in request");
106
176
  }
107
- // Retrieve the challenge from the server-side store
108
- const storedChallenge = await this.getAndClearStoredChallenge(data.props.userId);
109
- const expectedOrigin = `${HttpProtocol}${Host.toString()}`;
110
- const verification = await verifyRegistrationResponse({
111
- response: data.credential,
112
- expectedChallenge: storedChallenge,
113
- expectedOrigin: expectedOrigin,
114
- expectedRPID: Host.toString(),
177
+ const storedChallenge = JSON.parse(await this.consumeChallenge(`${REGISTRATION_CHALLENGE_PREFIX}${data.props.userId.toString()}`));
178
+ if (!storedChallenge.challenge ||
179
+ typeof storedChallenge.requireUserVerification !== "boolean") {
180
+ throw new BadDataException("Invalid registration challenge");
181
+ }
182
+ const verification = await explainVerificationFailure(() => {
183
+ return verifyRegistrationResponse({
184
+ response: data.credential,
185
+ expectedChallenge: storedChallenge.challenge,
186
+ expectedOrigin: this.getRelyingParty().origin,
187
+ expectedRPID: this.getRelyingParty().rpID,
188
+ requireUserVerification: storedChallenge.requireUserVerification,
189
+ });
115
190
  });
116
191
  if (!verification.verified) {
117
192
  throw new BadDataException("Registration verification failed");
@@ -120,19 +195,61 @@ export class Service extends DatabaseService {
120
195
  if (!registrationInfo) {
121
196
  throw new BadDataException("Registration info not found");
122
197
  }
198
+ if (storedChallenge.requireUserVerification &&
199
+ !registrationInfo.userVerified) {
200
+ throw new BadDataException("Passkey registration requires user verification");
201
+ }
123
202
  // Save the credential
124
203
  const userWebAuthn = Model.fromJSON({
125
204
  name: data.name,
126
205
  credentialId: registrationInfo.credential.id,
127
206
  publicKey: Buffer.from(registrationInfo.credential.publicKey).toString("base64"),
128
- counter: "0",
129
- transports: JSON.stringify([]),
207
+ /*
208
+ * From the authenticator, not hard-coded.
209
+ *
210
+ * The counter used to be written as "0" regardless. Most platform
211
+ * authenticators do report 0 -- a passkey synced between devices
212
+ * cannot keep a meaningful count -- but a discrete key that has been
213
+ * used elsewhere arrives with a real one, and pinning it to 0 threw
214
+ * that away. `verifyAuthenticationResponse` only compares counters
215
+ * when at least one side is above zero, so the discarded value was
216
+ * precisely the clone detection this credential was eligible for:
217
+ * a key registered at count 40 and a clone of it replaying count 12
218
+ * both looked fine against a stored 0.
219
+ *
220
+ * The trade is not free, and the tail is worth naming: an
221
+ * authenticator that reports the SAME counter at registration and at
222
+ * its first assertion now fails that comparison, where a stored 0
223
+ * would have waved it through. A spec-compliant key increments on
224
+ * every assertion, so this should not happen -- but if it does, the
225
+ * key is unusable and the way back in is a backup code (minted at
226
+ * enrolment, see UserWebAuthnAPI) followed by registering it again.
227
+ * The alternative is to keep discarding the counter and keep the
228
+ * clone detection permanently off, which is the worse default.
229
+ *
230
+ * Transports were likewise always "[]". They are the browser's hint
231
+ * about HOW to reach this key -- USB, NFC, the platform itself -- and
232
+ * with none recorded every sign-in prompt has to offer all of them.
233
+ */
234
+ counter: typeof registrationInfo.credential.counter === "number"
235
+ ? registrationInfo.credential.counter.toString()
236
+ : "0",
237
+ transports: JSON.stringify(registrationInfo.credential.transports || []),
130
238
  isVerified: true,
239
+ /*
240
+ * Use only the server-bound ceremony purpose, never a client assertion.
241
+ * Challenges created just before an upgrade retain the legacy unknown value.
242
+ */
243
+ isPasskey: storedChallenge.isPasskey,
131
244
  userId: data.props.userId,
132
245
  }, Model);
133
246
  await this.create({
134
247
  data: userWebAuthn,
135
- props: data.props,
248
+ /*
249
+ * The credential and its purpose have been verified above. The purpose is
250
+ * read-only through CRUD; only this verified registration path writes it.
251
+ */
252
+ props: Object.assign(Object.assign({}, data.props), { isRoot: true }),
136
253
  });
137
254
  }
138
255
  async generateAuthenticationOptions(data) {
@@ -146,7 +263,7 @@ export class Service extends DatabaseService {
146
263
  },
147
264
  });
148
265
  if (!user) {
149
- throw new BadDataException("User not found");
266
+ throw new BadDataException(NO_SECURITY_KEY_AVAILABLE);
150
267
  }
151
268
  // Get user's WebAuthn credentials
152
269
  const credentials = await this.findBy({
@@ -156,6 +273,7 @@ export class Service extends DatabaseService {
156
273
  },
157
274
  select: {
158
275
  credentialId: true,
276
+ transports: true,
159
277
  },
160
278
  limit: LIMIT_PER_PROJECT,
161
279
  skip: 0,
@@ -164,41 +282,56 @@ export class Service extends DatabaseService {
164
282
  },
165
283
  });
166
284
  if (credentials.length === 0) {
167
- throw new BadDataException("No WebAuthn credentials found for this user");
285
+ throw new BadDataException(NO_SECURITY_KEY_AVAILABLE);
168
286
  }
169
287
  const options = await generateAuthenticationOptions({
170
- rpID: Host.toString(),
288
+ rpID: this.getRelyingParty().rpID,
171
289
  allowCredentials: credentials.map((cred) => {
172
- return {
173
- id: cred.credentialId,
174
- type: "public-key",
175
- };
290
+ /*
291
+ * Recording transports at registration buys nothing unless they are
292
+ * handed back here: this is the only place the browser reads them.
293
+ * With the hint, a key that says "usb" prompts for a USB key rather
294
+ * than opening the whole carousel of ways a credential might be
295
+ * reachable. `generateAuthenticationOptions` copies unknown fields
296
+ * straight through onto the descriptor, and Login.tsx rewrites only
297
+ * `id`, so the array survives to navigator.credentials.get().
298
+ *
299
+ * SPREAD rather than `transports: undefined`, so a credential with no
300
+ * hint carries no `transports` member at all. The two are not the
301
+ * same to a browser -- an empty array is a hint that excludes every
302
+ * transport, and Chromium filters on the hint when it is present, so
303
+ * an empty one could hide a key that works perfectly well.
304
+ */
305
+ const transports = parseStoredTransports(cred.transports);
306
+ return Object.assign({ id: cred.credentialId, type: "public-key" }, (transports ? { transports } : {}));
176
307
  }),
177
- userVerification: "preferred",
178
- });
179
- // Convert to JSON serializable format
180
- options.challenge = Buffer.from(options.challenge).toString("base64url");
181
- // allowCredentials id is already base64url string
182
- // Store the challenge server-side so verification uses a trusted value
183
- await UserService.updateOneById({
184
- id: user.id,
185
- data: {
186
- webauthnChallenge: options.challenge,
187
- webauthnChallengeExpiresAt: OneUptimeDate.addRemoveMinutes(OneUptimeDate.getCurrentDate(), WEBAUTHN_CHALLENGE_TTL_MINUTES),
188
- },
189
- props: {
190
- isRoot: true,
191
- },
308
+ userVerification: WEBAUTHN_USER_VERIFICATION,
192
309
  });
310
+ await this.storeChallenge(`${AUTHENTICATION_CHALLENGE_PREFIX}${user.id.toString()}`, options.challenge);
311
+ /*
312
+ * The anonymous caller gets the ceremony and nothing else.
313
+ *
314
+ * This used to hand back `userId` too -- the account's real row id, to
315
+ * anybody who could name an email address with a key on it. Nothing ever
316
+ * read it: the browser posts the assertion to /verify-webauthn-auth along
317
+ * with the email and password again, and that route takes the user from
318
+ * the password it has just verified
319
+ * (App/FeatureSet/Identity/API/Authentication.ts), never from the body.
320
+ *
321
+ * So it was an identifier handed to strangers for free, on the one route
322
+ * that has just been made careful about what it tells them -- and it would
323
+ * have undone half of that: unifying the two refusals stops a caller
324
+ * learning whether an account exists, while a success that carries its
325
+ * internal id tells them rather more than that.
326
+ */
193
327
  return {
194
328
  options: options,
195
329
  challenge: options.challenge,
196
- userId: user.id.toString(),
197
330
  };
198
331
  }
199
332
  async verifyAuthentication(data) {
200
333
  // Retrieve the challenge from the server-side store
201
- const storedChallenge = await this.getAndClearStoredChallenge(new ObjectID(data.userId));
334
+ const storedChallenge = await this.consumeChallenge(`${AUTHENTICATION_CHALLENGE_PREFIX}${new ObjectID(data.userId).toString()}`);
202
335
  const user = await UserService.findOneById({
203
336
  id: new ObjectID(data.userId),
204
337
  select: {
@@ -232,17 +365,19 @@ export class Service extends DatabaseService {
232
365
  if (!dbCredential) {
233
366
  throw new BadDataException("Credential not found");
234
367
  }
235
- const expectedOrigin = `${HttpProtocol}${Host.toString()}`;
236
- const verification = await verifyAuthenticationResponse({
237
- response: data.credential,
238
- expectedChallenge: storedChallenge,
239
- expectedOrigin: expectedOrigin,
240
- expectedRPID: Host.toString(),
241
- credential: {
242
- id: dbCredential.credentialId,
243
- publicKey: Buffer.from(dbCredential.publicKey, "base64"),
244
- counter: parseInt(dbCredential.counter),
245
- },
368
+ const verification = await explainVerificationFailure(() => {
369
+ return verifyAuthenticationResponse({
370
+ response: data.credential,
371
+ expectedChallenge: storedChallenge,
372
+ requireUserVerification: WEBAUTHN_REQUIRE_USER_VERIFICATION,
373
+ expectedOrigin: this.getRelyingParty().origin,
374
+ expectedRPID: this.getRelyingParty().rpID,
375
+ credential: {
376
+ id: dbCredential.credentialId,
377
+ publicKey: Buffer.from(dbCredential.publicKey, "base64"),
378
+ counter: parseInt(dbCredential.counter),
379
+ },
380
+ });
246
381
  });
247
382
  if (!verification.verified) {
248
383
  throw new BadDataException("Authentication verification failed");
@@ -259,54 +394,139 @@ export class Service extends DatabaseService {
259
394
  });
260
395
  return user;
261
396
  }
262
- /**
263
- * Retrieves the stored WebAuthn challenge for the given user,
264
- * validates it has not expired, and clears it so it cannot be reused.
265
- */
266
- async getAndClearStoredChallenge(userId) {
267
- const user = await UserService.findOneById({
268
- id: userId,
269
- select: {
270
- webauthnChallenge: true,
271
- webauthnChallengeExpiresAt: true,
397
+ async generatePasskeyAuthenticationOptions() {
398
+ /*
399
+ * No email or credential allow-list is needed: the authenticator offers
400
+ * the discoverable credentials registered for this relying party.
401
+ */
402
+ const options = await generateAuthenticationOptions({
403
+ rpID: this.getRelyingParty().rpID,
404
+ allowCredentials: [],
405
+ userVerification: "required",
406
+ });
407
+ const challengeId = randomBytes(32).toString("base64url");
408
+ await this.storeChallenge(`${PASSKEY_CHALLENGE_PREFIX}${challengeId}`, options.challenge);
409
+ return { options, challengeId };
410
+ }
411
+ async verifyPasskeyAuthentication(data) {
412
+ var _a, _b, _c, _d;
413
+ if (typeof data.challengeId !== "string" ||
414
+ !data.challengeId.match(/^[A-Za-z0-9_-]{43}$/)) {
415
+ throw new BadDataException("Invalid passkey challenge");
416
+ }
417
+ /*
418
+ * Consume before validation. Failed assertions cannot reuse a challenge,
419
+ * and concurrent requests can never both claim the same ceremony.
420
+ */
421
+ const challenge = await this.consumeChallenge(`${PASSKEY_CHALLENGE_PREFIX}${data.challengeId}`);
422
+ if (typeof ((_a = data.credential) === null || _a === void 0 ? void 0 : _a.id) !== "string" ||
423
+ !data.credential.id ||
424
+ data.credential.type !== "public-key" ||
425
+ data.credential.rawId !== data.credential.id ||
426
+ typeof ((_c = (_b = data.credential) === null || _b === void 0 ? void 0 : _b.response) === null || _c === void 0 ? void 0 : _c.userHandle) !== "string" ||
427
+ !data.credential.response.userHandle ||
428
+ !["clientDataJSON", "authenticatorData", "signature"].every((field) => {
429
+ return (typeof data.credential.response[field] === "string" &&
430
+ data.credential.response[field].length > 0);
431
+ })) {
432
+ throw new BadDataException("Invalid passkey credential");
433
+ }
434
+ const dbCredential = await this.findOneBy({
435
+ query: {
436
+ credentialId: data.credential.id,
437
+ isVerified: true,
272
438
  },
273
- props: {
274
- isRoot: true,
439
+ select: {
440
+ _id: true,
441
+ userId: true,
442
+ credentialId: true,
443
+ publicKey: true,
444
+ counter: true,
275
445
  },
446
+ props: { isRoot: true },
276
447
  });
277
- if (!user) {
278
- throw new BadDataException("User not found");
448
+ if (!(dbCredential === null || dbCredential === void 0 ? void 0 : dbCredential.userId) ||
449
+ !dbCredential.id ||
450
+ !dbCredential.publicKey ||
451
+ !dbCredential.credentialId ||
452
+ data.credential.response.userHandle !==
453
+ Buffer.from(dbCredential.userId.toString()).toString("base64url")) {
454
+ throw new BadDataException("Passkey authentication failed");
279
455
  }
280
- if (!user.webauthnChallenge || !user.webauthnChallengeExpiresAt) {
281
- throw new BadDataException("No pending WebAuthn challenge found. Please initiate the WebAuthn flow again.");
456
+ const counter = Number(dbCredential.counter);
457
+ if (!dbCredential.counter ||
458
+ !dbCredential.counter.match(/^\d+$/) ||
459
+ !Number.isSafeInteger(counter) ||
460
+ counter < 0) {
461
+ throw new BadDataException("Invalid passkey counter");
282
462
  }
283
- // Check expiry
284
- if (OneUptimeDate.isBefore(user.webauthnChallengeExpiresAt, OneUptimeDate.getCurrentDate())) {
285
- // Clear the expired challenge
286
- await UserService.updateOneById({
287
- id: userId,
288
- data: {
289
- webauthnChallenge: null,
290
- webauthnChallengeExpiresAt: null,
291
- },
292
- props: {
293
- isRoot: true,
294
- },
295
- });
296
- throw new BadDataException("WebAuthn challenge has expired. Please initiate the WebAuthn flow again.");
463
+ const verification = await verifyAuthenticationResponse({
464
+ response: data.credential,
465
+ expectedChallenge: challenge,
466
+ expectedOrigin: this.getRelyingParty().origin,
467
+ expectedRPID: this.getRelyingParty().rpID,
468
+ requireUserVerification: true,
469
+ credential: {
470
+ id: dbCredential.credentialId,
471
+ publicKey: new Uint8Array(Buffer.from(dbCredential.publicKey, "base64")),
472
+ counter,
473
+ },
474
+ });
475
+ if (!verification.verified ||
476
+ !((_d = verification.authenticationInfo) === null || _d === void 0 ? void 0 : _d.userVerified)) {
477
+ throw new BadDataException("Passkey authentication failed");
297
478
  }
298
- const challenge = user.webauthnChallenge;
299
- // Clear the challenge immediately so it cannot be reused (one-time use)
300
- await UserService.updateOneById({
301
- id: userId,
479
+ const updated = await this.updateOneById({
480
+ id: dbCredential.id,
302
481
  data: {
303
- webauthnChallenge: null,
304
- webauthnChallengeExpiresAt: null,
305
- },
306
- props: {
307
- isRoot: true,
482
+ counter: verification.authenticationInfo.newCounter.toString(),
308
483
  },
484
+ props: { isRoot: true },
485
+ });
486
+ if (updated !== 1) {
487
+ throw new BadDataException("Passkey authentication failed");
488
+ }
489
+ const user = await UserService.findOneById({
490
+ id: dbCredential.userId,
491
+ select: { _id: true, email: true },
492
+ props: { isRoot: true },
309
493
  });
494
+ if (!user) {
495
+ throw new BadDataException("Passkey authentication failed");
496
+ }
497
+ return user;
498
+ }
499
+ getRelyingParty() {
500
+ const origin = new URL(`${HttpProtocol}${Host.toString()}`);
501
+ /*
502
+ * Relying party IDs exclude the port; origins include it for installations
503
+ * hosted on a non-default port.
504
+ */
505
+ return { rpID: webAuthnRelyingPartyId(), origin: origin.origin };
506
+ }
507
+ getChallengeStore() {
508
+ const client = Redis.getClient();
509
+ if (!client || !Redis.isConnected()) {
510
+ throw new DatabaseNotConnectedException("Passkey challenge store is unavailable");
511
+ }
512
+ return client;
513
+ }
514
+ async storeChallenge(key, value) {
515
+ const result = await this.getChallengeStore().set(key, value, "EX", WEBAUTHN_CHALLENGE_TTL_MINUTES * 60);
516
+ if (result !== "OK") {
517
+ throw new BadDataException("Unable to create a WebAuthn challenge");
518
+ }
519
+ }
520
+ async consumeChallenge(key) {
521
+ /*
522
+ * A Lua GET+DEL works on Redis versions before GETDEL was introduced.
523
+ * Both operations execute atomically and the key remains subject to TTL.
524
+ */
525
+ const challenge = await this.getChallengeStore().eval("local value = redis.call('GET', KEYS[1]); " +
526
+ "if value then redis.call('DEL', KEYS[1]); end; return value", 1, key);
527
+ if (typeof challenge !== "string" || !challenge) {
528
+ throw new BadDataException("WebAuthn challenge expired or was already used. Please try again.");
529
+ }
310
530
  return challenge;
311
531
  }
312
532
  async onBeforeCreate(createBy) {
@@ -361,6 +581,18 @@ __decorate([
361
581
  __metadata("design:paramtypes", [Object]),
362
582
  __metadata("design:returntype", Promise)
363
583
  ], Service.prototype, "verifyAuthentication", null);
584
+ __decorate([
585
+ CaptureSpan(),
586
+ __metadata("design:type", Function),
587
+ __metadata("design:paramtypes", []),
588
+ __metadata("design:returntype", Promise)
589
+ ], Service.prototype, "generatePasskeyAuthenticationOptions", null);
590
+ __decorate([
591
+ CaptureSpan(),
592
+ __metadata("design:type", Function),
593
+ __metadata("design:paramtypes", [Object]),
594
+ __metadata("design:returntype", Promise)
595
+ ], Service.prototype, "verifyPasskeyAuthentication", null);
364
596
  __decorate([
365
597
  CaptureSpan(),
366
598
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"UserWebAuthnService.js","sourceRoot":"","sources":["../../../../Server/Services/UserWebAuthnService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserWebAuthnService.js","sourceRoot":"","sources":["../../../../Server/Services/UserWebAuthnService.ts"],"names":[],"mappings":"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"}