@oneuptime/common 14.0.3 → 14.0.5

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 (617) hide show
  1. package/Models/DatabaseModels/Alert.ts +55 -0
  2. package/Models/DatabaseModels/DatabaseServer.ts +1650 -0
  3. package/Models/DatabaseModels/DatabaseServerEndpoint.ts +540 -0
  4. package/Models/DatabaseModels/DatabaseServerFeed.ts +625 -0
  5. package/Models/DatabaseModels/DatabaseServerLabelRule.ts +514 -0
  6. package/Models/DatabaseModels/DatabaseServerOwnerRule.ts +596 -0
  7. package/Models/DatabaseModels/DatabaseServerOwnerTeam.ts +491 -0
  8. package/Models/DatabaseModels/DatabaseServerOwnerUser.ts +490 -0
  9. package/Models/DatabaseModels/Incident.ts +55 -0
  10. package/Models/DatabaseModels/Index.ts +16 -0
  11. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +26 -0
  12. package/Models/DatabaseModels/ScheduledMaintenance.ts +55 -0
  13. package/Models/DatabaseModels/TelemetryException.ts +2 -0
  14. package/Models/DatabaseModels/UserProjectSsoConsent.ts +146 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.ts +673 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.ts +51 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  18. package/Server/Middleware/MultipartFormData.ts +1 -1
  19. package/Server/Middleware/TelemetryIngest.ts +15 -8
  20. package/Server/Services/AlertReminderRuleService.ts +100 -24
  21. package/Server/Services/DatabaseServerEndpointService.ts +895 -0
  22. package/Server/Services/DatabaseServerFeedService.ts +128 -0
  23. package/Server/Services/DatabaseServerLabelRuleEngineService.ts +340 -0
  24. package/Server/Services/DatabaseServerLabelRuleService.ts +14 -0
  25. package/Server/Services/DatabaseServerOwnerRuleEngineService.ts +425 -0
  26. package/Server/Services/DatabaseServerOwnerRuleService.ts +14 -0
  27. package/Server/Services/DatabaseServerOwnerTeamService.ts +180 -0
  28. package/Server/Services/DatabaseServerOwnerUserService.ts +173 -0
  29. package/Server/Services/DatabaseServerService.ts +4546 -0
  30. package/Server/Services/DatabaseService.ts +14 -8
  31. package/Server/Services/DockerResourceService.ts +43 -2
  32. package/Server/Services/IncidentReminderRuleService.ts +103 -23
  33. package/Server/Services/Index.ts +16 -0
  34. package/Server/Services/InventoryItemService.ts +113 -5
  35. package/Server/Services/IoTDeviceService.ts +145 -37
  36. package/Server/Services/OpenTelemetryIngestService.ts +19 -0
  37. package/Server/Services/PodmanResourceService.ts +43 -2
  38. package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +107 -23
  39. package/Server/Services/ServiceService.ts +1 -1
  40. package/Server/Services/TelemetryUsageBillingService.ts +29 -2
  41. package/Server/Services/UserProjectSsoConsentService.ts +74 -0
  42. package/Server/Services/UserService.ts +14 -1
  43. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +18 -0
  44. package/Server/Types/Database/QueryHelper.ts +30 -1
  45. package/Server/Utils/AI/Toolbox/ResourceTools.ts +69 -1
  46. package/Server/Utils/Database/AffectedResourceRelations.ts +6 -0
  47. package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +188 -6
  48. package/Server/Utils/Monitor/MonitorAlert.ts +28 -1
  49. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +2262 -755
  50. package/Server/Utils/Monitor/MonitorIncident.ts +28 -1
  51. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +268 -6
  52. package/Server/Utils/Monitor/MonitorResource.ts +47 -11
  53. package/Server/Utils/Monitor/MonitorResourceContext.ts +1 -0
  54. package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +239 -21
  55. package/Server/Utils/Monitor/PerSeriesResolutionRootCause.ts +43 -0
  56. package/Server/Utils/Monitor/SeriesResourceLabels.ts +291 -0
  57. package/Server/Utils/Monitor/SeriesResourceLinker.ts +111 -12
  58. package/Server/Utils/Rules/RuleRun/RuleRunRegistry.ts +25 -0
  59. package/Server/Utils/StartServer.ts +26 -6
  60. package/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.ts +2 -0
  61. package/Server/Utils/Telemetry/DatabaseEndpointDiscovery.ts +688 -0
  62. package/Server/Utils/Telemetry/EntityRegistry.ts +5 -1
  63. package/Server/Utils/Telemetry/LogExceptionExtractor.ts +18 -1
  64. package/Server/Utils/Telemetry/ResourceEntityFilter.ts +175 -12
  65. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +12 -0
  66. package/Server/Utils/Telemetry/ServiceDependencyDiscovery.ts +606 -36
  67. package/Server/Utils/Telemetry/Telemetry.ts +16 -0
  68. package/Server/Utils/Telemetry/TelemetryEntity.ts +22 -22
  69. package/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.ts +16 -10
  70. package/Tests/App/Accounts/SignedInRedirect.test.tsx +241 -0
  71. package/Tests/App/AdminDashboard/AdminHeaderSmallScreens.test.tsx +221 -4
  72. package/Tests/App/Dashboard/AIInsightsResourcePageContext.test.ts +42 -0
  73. package/Tests/App/Dashboard/AffectedResourcesDisplay.test.tsx +100 -0
  74. package/Tests/App/Dashboard/AffectedResourcesPicker.test.tsx +86 -0
  75. package/Tests/App/Dashboard/AffectedResourcesPickerHiddenTypes.test.tsx +2 -0
  76. package/Tests/App/Dashboard/AffectedResourcesSummaryStep.test.tsx +19 -0
  77. package/Tests/App/Dashboard/BreadcrumbCoverage.test.tsx +14 -0
  78. package/Tests/App/Dashboard/CorrelateFilterBuilder.test.tsx +26 -1
  79. package/Tests/App/Dashboard/DashboardAppSsoError.test.tsx +501 -0
  80. package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +64 -1
  81. package/Tests/App/Dashboard/DashboardHeaderSmallScreens.test.tsx +178 -18
  82. package/Tests/App/Dashboard/DashboardMasterPageSsoRedirect.test.tsx +444 -0
  83. package/Tests/App/Dashboard/DashboardNavBarForeignHiddenRule.test.tsx +573 -0
  84. package/Tests/App/Dashboard/DatabaseChartAxes.test.tsx +431 -0
  85. package/Tests/App/Dashboard/DatabaseContainerDetailBadge.test.tsx +249 -0
  86. package/Tests/App/Dashboard/DatabaseDashboardE2EFixes.test.ts +681 -0
  87. package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +1801 -0
  88. package/Tests/App/Dashboard/DatabaseFleetSummaryRefresh.test.tsx +280 -0
  89. package/Tests/App/Dashboard/DatabaseFormHelpers.test.tsx +321 -0
  90. package/Tests/App/Dashboard/DatabaseMetricMonitorLink.test.tsx +795 -0
  91. package/Tests/App/Dashboard/DatabaseOverviewHeader.test.tsx +580 -0
  92. package/Tests/App/Dashboard/DatabaseRecommendationsEngineMetrics.test.ts +270 -0
  93. package/Tests/App/Dashboard/DatabaseServerComponents.test.tsx +1486 -0
  94. package/Tests/App/Dashboard/DatabaseServerEngineMetricsFilter.test.ts +223 -0
  95. package/Tests/App/Dashboard/DatabaseServerPresentation.test.ts +435 -0
  96. package/Tests/App/Dashboard/DatabaseServerSummary.test.ts +186 -0
  97. package/Tests/App/Dashboard/DatabaseServerTelemetryQueries.test.ts +1553 -0
  98. package/Tests/App/Dashboard/DatabaseTableTruncation.test.tsx +326 -0
  99. package/Tests/App/Dashboard/DatabaseTelemetryScope.test.ts +512 -0
  100. package/Tests/App/Dashboard/DatabaseTelemetryTabs.test.tsx +774 -0
  101. package/Tests/App/Dashboard/DatabaseViewLayout.test.tsx +233 -0
  102. package/Tests/App/Dashboard/DatabaseWorkloadBadge.test.tsx +972 -0
  103. package/Tests/App/Dashboard/DiscoveryReviewInventoryRefresh.test.tsx +5 -0
  104. package/Tests/App/Dashboard/DiscoveryReviewUnnamedHostHint.test.tsx +1061 -0
  105. package/Tests/App/Dashboard/EventOverlayScope.test.ts +147 -0
  106. package/Tests/App/Dashboard/EventOverlayScopeHook.test.tsx +1 -0
  107. package/Tests/App/Dashboard/LogsResourceFacetChips.test.tsx +1 -0
  108. package/Tests/App/Dashboard/MetricsViewerDrillDown.test.tsx +310 -0
  109. package/Tests/App/Dashboard/MetricsViewerEntityScopedRows.test.tsx +495 -0
  110. package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +132 -1
  111. package/Tests/App/Dashboard/NavigationSearchKeywords.test.tsx +5 -0
  112. package/Tests/App/Dashboard/ProductOrientation.test.tsx +4 -3
  113. package/Tests/App/Dashboard/RecommendationsLoadedContext.test.tsx +349 -0
  114. package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +62 -0
  115. package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +8 -1
  116. package/Tests/App/Dashboard/ResourceFeedPagesFilterSort.test.tsx +14 -0
  117. package/Tests/App/Dashboard/ScheduledMaintenanceOverviewPage.test.tsx +2 -0
  118. package/Tests/App/Dashboard/ServiceMapDatabaseLink.test.tsx +1085 -0
  119. package/Tests/App/Dashboard/TelemetryResourceRetentionSettings.test.tsx +10 -0
  120. package/Tests/App/Dashboard/TracesResourceFacets.test.tsx +2 -1
  121. package/Tests/App/StatusPage/StatusPageHeaderForeignHiddenRule.test.tsx +284 -0
  122. package/Tests/ClassStrings.ts +178 -0
  123. package/Tests/Fixtures/MobilePasskeyUser.json +1 -2
  124. package/Tests/ForeignHiddenRuleGuard.ts +2152 -0
  125. package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +2250 -0
  126. package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +24 -5
  127. package/Tests/Models/DatabaseModels/StaticRuleCriteriaInheritance.test.ts +4 -2
  128. package/Tests/RenderedMarkup.ts +518 -0
  129. package/Tests/ResponsiveVisibility.test.ts +490 -4
  130. package/Tests/ResponsiveVisibility.ts +505 -52
  131. package/Tests/Server/Infrastructure/Postgres/AddConfigurableRuleCriteriaMigration.test.ts +3 -0
  132. package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +541 -0
  133. package/Tests/Server/Infrastructure/Postgres/AddUserProjectSsoConsentMigration.test.ts +234 -0
  134. package/Tests/Server/Services/ContainerSnapshotUpsertPostgres.test.ts +319 -0
  135. package/Tests/Server/Services/CrossProjectRelationWriteGuard.test.ts +13 -0
  136. package/Tests/Server/Services/DatabaseServerEndpointService.test.ts +2033 -0
  137. package/Tests/Server/Services/DatabaseServerFeedAndOwnerServices.test.ts +529 -0
  138. package/Tests/Server/Services/DatabaseServerLifecycle.test.ts +3302 -0
  139. package/Tests/Server/Services/DatabaseServerRegistries.test.ts +603 -0
  140. package/Tests/Server/Services/DatabaseServerRuleEngines.test.ts +754 -0
  141. package/Tests/Server/Services/DatabaseServerService.test.ts +3558 -0
  142. package/Tests/Server/Services/DatabaseServerSqlPostgres.test.ts +2045 -0
  143. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlockedPostgres.test.ts +362 -0
  144. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlockedReply.test.ts +210 -0
  145. package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +18 -0
  146. package/Tests/Server/Services/IncidentAlertSloLinkSurvivesEdit.test.ts +2 -0
  147. package/Tests/Server/Services/IncomingCallPolicyEscalationRuleTarget.test.ts +225 -0
  148. package/Tests/Server/Services/InventoryItemDisplayName.test.ts +280 -2
  149. package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +8 -2
  150. package/Tests/Server/Services/IoTDeviceLatestMetricsPostgres.test.ts +689 -0
  151. package/Tests/Server/Services/IoTDeviceService.test.ts +379 -0
  152. package/Tests/Server/Services/LatestMetricsValuesShape.test.ts +360 -0
  153. package/Tests/Server/Services/LlmModelPriceService.test.ts +402 -0
  154. package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +7 -1
  155. package/Tests/Server/Services/OwnerRowUniqueness.test.ts +61 -9
  156. package/Tests/Server/Services/ReminderRuleLookupPostgres.test.ts +2250 -0
  157. package/Tests/Server/Services/ReminderRuleRefreshOpenSubjectsPaging.test.ts +653 -0
  158. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +68 -20
  159. package/Tests/Server/Services/StaticRuleCriteriaRuntimeCoverage.test.ts +3 -3
  160. package/Tests/Server/Services/TelemetryResourceFacetCounting.test.ts +9 -0
  161. package/Tests/Server/Services/UserProjectSsoConsentPostgres.test.ts +153 -0
  162. package/Tests/Server/Services/UserProjectSsoConsentService.test.ts +192 -0
  163. package/Tests/Server/Services/UserServiceFirstMasterAdminElection.test.ts +71 -0
  164. package/Tests/Server/Services/UserSignupIdTakeoverPostgres.test.ts +238 -0
  165. package/Tests/Server/Services/WorkspaceNotificationSummaryHelpers.test.ts +592 -0
  166. package/Tests/Server/Types/Billing/PayAsYouGoMeteredAuthorization.test.ts +3 -0
  167. package/Tests/Server/Types/Database/EventOverlayScopePostgres.test.ts +1 -0
  168. package/Tests/Server/Types/Database/FeedEventTypeFilterQuery.test.ts +11 -0
  169. package/Tests/Server/Types/Database/Permissions/InfrastructureOwnershipScope.test.ts +8 -0
  170. package/Tests/Server/Types/Database/QueryHelperBooleanForCriteriaBackedRule.test.ts +1094 -0
  171. package/Tests/Server/Utils/AI/ResourceTools.test.ts +134 -0
  172. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +41 -0
  173. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaAnomalyUnits.test.ts +279 -9
  174. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaDisplayContext.test.ts +933 -0
  175. package/Tests/Server/Utils/Monitor/DatabaseMaintenanceSuppression.test.ts +582 -0
  176. package/Tests/Server/Utils/Monitor/DatabaseServerMonitorLinking.test.ts +753 -0
  177. package/Tests/Server/Utils/Monitor/MonitorActionTimestamps.test.ts +1 -0
  178. package/Tests/Server/Utils/Monitor/MonitorAlertCriteriaReferences.test.ts +1 -0
  179. package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +119 -0
  180. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +60 -25
  181. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorAffectedResourceEdgeCases.test.ts +1719 -0
  182. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorKubernetesAffectedResources.test.ts +1447 -0
  183. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorKubernetesRatioEmail.test.ts +352 -0
  184. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformMetricUnits.test.ts +717 -0
  185. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformRawScan.test.ts +2125 -0
  186. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformSeriesAffectedResources.test.ts +1288 -0
  187. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +1 -0
  188. package/Tests/Server/Utils/Monitor/MonitorIncidentCriteriaReferences.test.ts +1 -0
  189. package/Tests/Server/Utils/Monitor/MonitorIncidentMemberRoleMembership.test.ts +1 -0
  190. package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +88 -0
  191. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +205 -0
  192. package/Tests/Server/Utils/Monitor/MonitorResourceContext.test.ts +62 -0
  193. package/Tests/Server/Utils/Monitor/MonitorResourceDatabaseMaintenance.test.ts +803 -0
  194. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +133 -3
  195. package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +1 -0
  196. package/Tests/Server/Utils/Monitor/PerSeriesRecoveryResolution.test.ts +472 -1
  197. package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1 -0
  198. package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +236 -2
  199. package/Tests/Server/Utils/SeriesResourceLabels.test.ts +70 -0
  200. package/Tests/Server/Utils/StartServerProtobufContentType.test.ts +54 -0
  201. package/Tests/Server/Utils/Telemetry/DatabaseEndpointDiscovery.test.ts +1895 -0
  202. package/Tests/Server/Utils/Telemetry/EntityRegistry.test.ts +7 -0
  203. package/Tests/Server/Utils/Telemetry/LogExceptionExtractorSeverityGate.test.ts +90 -0
  204. package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +570 -0
  205. package/Tests/Server/Utils/Telemetry/ResourceFacetResolver.test.ts +97 -2
  206. package/Tests/Server/Utils/Telemetry/ServiceDependencyDiscovery.test.ts +1337 -0
  207. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +295 -0
  208. package/Tests/Types/AI/AIResourceContext.test.ts +30 -0
  209. package/Tests/Types/DatabaseServer/DatabaseContainerClassifier.test.ts +3644 -0
  210. package/Tests/Types/DatabaseServer/DatabaseContainerCommand.test.ts +340 -0
  211. package/Tests/Types/DatabaseServer/DatabaseContainerCommandCorpus.ts +826 -0
  212. package/Tests/Types/DatabaseServer/DatabaseContainerCommandPostgres.test.ts +150 -0
  213. package/Tests/Types/DatabaseServer/DatabaseEndpoint.test.ts +2657 -0
  214. package/Tests/Types/DatabaseServer/DatabaseServerDiscoverySource.test.ts +64 -0
  215. package/Tests/Types/DatabaseServer/DatabaseServerEntityKeys.test.ts +952 -0
  216. package/Tests/Types/DatabaseServer/DatabaseServerMetricCatalog.test.ts +1161 -0
  217. package/Tests/Types/DatabaseServer/DatabaseSystem.test.ts +1514 -0
  218. package/Tests/Types/DatabaseServer/DatabaseTelemetryResolver.test.ts +1558 -0
  219. package/Tests/Types/Monitor/CephAlertTemplates.test.ts +255 -6
  220. package/Tests/Types/Monitor/DatabaseAlertTemplates.test.ts +2254 -0
  221. package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +298 -0
  222. package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +271 -0
  223. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +253 -9
  224. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +13 -5
  225. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +4 -2
  226. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +111 -2
  227. package/Tests/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.test.ts +61 -0
  228. package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +114 -0
  229. package/Tests/Types/Monitor/Utils/KubernetesAgentEmittedMetrics.ts +181 -0
  230. package/Tests/Types/NetworkDevice/DiscoveredHostNamingStatus.test.ts +401 -0
  231. package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +4 -1
  232. package/Tests/Types/Telemetry/ResourceFacetCatalog.test.ts +24 -2
  233. package/Tests/UI/Components/Card.test.tsx +93 -2
  234. package/Tests/UI/Components/FeedOptions.test.ts +6 -0
  235. package/Tests/UI/Components/FeedOptionsButton.test.tsx +8 -1
  236. package/Tests/UI/Components/ForeignHiddenRuleResilience.test.tsx +1147 -0
  237. package/Tests/UI/Components/HeaderRightRail.test.tsx +41 -1
  238. package/Tests/UI/Components/LogsEntityNames.test.ts +16 -1
  239. package/Tests/UI/Components/LogsFacetSidebarHiddenFacets.test.tsx +7 -3
  240. package/Tests/UI/Components/ResourceFacetConfigs.test.ts +2 -1
  241. package/Tests/UI/Components/RuleCriteria/RuleCriteriaModelTable.test.tsx +3 -3
  242. package/Tests/UI/Components/SrOnlyForeignRule.test.tsx +994 -0
  243. package/Tests/UI/Components/StatusPage/ResourceListSelection.test.tsx +34 -1
  244. package/Tests/UI/Components/TelemetryFacetSidebarHiddenFacets.test.tsx +4 -1
  245. package/Tests/UI/ForeignHiddenRuleGuard.test.ts +1951 -0
  246. package/Tests/UI/Rum/ReplayPlayerChrome.test.tsx +19 -1
  247. package/Tests/UI/Rum/ReplayTabSwitcher.test.tsx +19 -1
  248. package/Tests/UI/TailwindPlayCdnForeignHiddenRule.test.ts +1005 -0
  249. package/Tests/UI/ThemeGroupHoverReveal.test.ts +847 -0
  250. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +70 -0
  251. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +21 -0
  252. package/Tests/UI/Utils/ModelAPISsoRedirect.test.ts +127 -0
  253. package/Tests/UI/Utils/Navigation.test.ts +102 -0
  254. package/Tests/UI/Utils/Telemetry/TelemetryEntityNames.test.ts +23 -0
  255. package/Tests/Utils/LabelRuleImportExport.test.ts +5 -0
  256. package/Tests/Utils/MetricUnitUtil.test.ts +227 -2
  257. package/Tests/Utils/Monitor/MetricValueFormatter.test.ts +288 -2
  258. package/Tests/Utils/Monitor/PlatformResourceIdentityAndUnits.test.ts +1559 -0
  259. package/Tests/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.test.ts +2546 -0
  260. package/Tests/Utils/NetworkDiscovery/DiscoveredHostUtil.test.ts +315 -0
  261. package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +336 -1
  262. package/Tests/Utils/NetworkDiscovery/NetbiosNameUtil.test.ts +244 -0
  263. package/Tests/Utils/ValueFormatter.test.ts +50 -0
  264. package/Tests/tsconfig.json +16 -0
  265. package/Types/AI/AIResourceContext.ts +7 -0
  266. package/Types/Dashboard/DashboardTemplates.ts +2 -1
  267. package/Types/DatabaseServer/DatabaseConnectionSpan.ts +77 -0
  268. package/Types/DatabaseServer/DatabaseContainerClassifier.ts +2068 -0
  269. package/Types/DatabaseServer/DatabaseContainerCommand.ts +801 -0
  270. package/Types/DatabaseServer/DatabaseEndpoint.ts +1943 -0
  271. package/Types/DatabaseServer/DatabaseServerDiscoverySource.ts +68 -0
  272. package/Types/DatabaseServer/DatabaseServerMetricCatalog.ts +966 -0
  273. package/Types/DatabaseServer/DatabaseSystem.ts +2124 -0
  274. package/Types/DatabaseServer/DatabaseTelemetryResolver.ts +555 -0
  275. package/Types/Email/EmailTemplateType.ts +1 -0
  276. package/Types/Monitor/CephAlertTemplates.ts +18 -0
  277. package/Types/Monitor/DatabaseAlertTemplates.ts +2020 -0
  278. package/Types/Monitor/KubernetesAlertTemplates.ts +64 -24
  279. package/Types/Monitor/KubernetesMetricCatalog.ts +118 -19
  280. package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +14 -0
  281. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +93 -10
  282. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +109 -8
  283. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +36 -7
  284. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +43 -2
  285. package/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.ts +41 -6
  286. package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +26 -0
  287. package/Types/NetworkDevice/DiscoveredHostNamingStatus.ts +147 -0
  288. package/Types/Permission.ts +267 -0
  289. package/Types/Probe/ProbeApiIngestResponse.ts +8 -0
  290. package/Types/Rules/RuleCriteriaFieldRegistry.ts +10 -0
  291. package/Types/Rules/RuleRun.ts +12 -0
  292. package/Types/Telemetry/EntityType.ts +23 -0
  293. package/Types/Telemetry/ResourceFacetCatalog.ts +14 -0
  294. package/Types/Telemetry/ServiceType.ts +8 -0
  295. package/UI/Components/Banner/Banner.tsx +1 -1
  296. package/UI/Components/Card/Card.tsx +1 -1
  297. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +2 -2
  298. package/UI/Components/Charts/Line/LineChart.tsx +7 -0
  299. package/UI/Components/CommandPalette/CommandPalette.tsx +1 -1
  300. package/UI/Components/Date/StartAndEndDate.tsx +5 -5
  301. package/UI/Components/Diagram/HorizontalStepChain.tsx +1 -1
  302. package/UI/Components/Feed/FeedOptionsButton.tsx +1 -1
  303. package/UI/Components/Forms/BasicForm.tsx +1 -1
  304. package/UI/Components/Header/Header.tsx +1 -1
  305. package/UI/Components/Header/HeaderIconDropdownButton.tsx +1 -1
  306. package/UI/Components/HeaderAlert/HeaderAlert.tsx +1 -1
  307. package/UI/Components/LogsViewer/components/FacetValueRow.tsx +1 -1
  308. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +1 -1
  309. package/UI/Components/Modal/ModalFooter.tsx +1 -1
  310. package/UI/Components/ModelDetail/CardModelDetail.tsx +2 -2
  311. package/UI/Components/ModelTable/BaseModelTable.tsx +4 -4
  312. package/UI/Components/Navbar/NavBar.tsx +9 -2
  313. package/UI/Components/Navbar/NavBarMenuModal.tsx +2 -2
  314. package/UI/Components/Page/Page.tsx +1 -1
  315. package/UI/Components/Pagination/Pagination.tsx +3 -3
  316. package/UI/Components/ProgressButtons/ProgressButtonItem.tsx +1 -1
  317. package/UI/Components/SideMenu/SideMenu.tsx +4 -1
  318. package/UI/Components/StatusPage/ResourceGroupNavigator.tsx +4 -2
  319. package/UI/Components/StatusPage/ResourceList.tsx +6 -6
  320. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +1 -1
  321. package/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.tsx +1 -1
  322. package/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.tsx +1 -1
  323. package/UI/Components/Workflow/ComponentsModal.tsx +2 -2
  324. package/UI/Components/Workflow/StepTraceViewer.tsx +1 -1
  325. package/UI/Styles/Theme.css +8 -1
  326. package/UI/Utils/Navigation.ts +89 -42
  327. package/UI/Utils/Telemetry/TelemetryEntityNames.ts +7 -0
  328. package/UI/Utils/TelemetryService.ts +4 -3
  329. package/Utils/LabelRuleImportExport.ts +2 -0
  330. package/Utils/MetricUnitUtil.ts +103 -11
  331. package/Utils/Monitor/MetricValueFormatter.ts +66 -13
  332. package/Utils/Monitor/PlatformMetricUnitUtil.ts +215 -0
  333. package/Utils/Monitor/PlatformResourceIdentity.ts +514 -0
  334. package/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.ts +425 -0
  335. package/Utils/NetworkDiscovery/DiscoveredHostUtil.ts +32 -0
  336. package/Utils/NetworkDiscovery/NetbiosNameUtil.ts +73 -0
  337. package/Utils/Telemetry/DatabaseServerEntityKeys.ts +275 -0
  338. package/Utils/Telemetry/EntityKey.ts +176 -0
  339. package/Utils/ValueFormatter.ts +16 -0
  340. package/build/dist/Models/DatabaseModels/Alert.js +54 -0
  341. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  342. package/build/dist/Models/DatabaseModels/DatabaseServer.js +1683 -0
  343. package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -0
  344. package/build/dist/Models/DatabaseModels/DatabaseServerEndpoint.js +559 -0
  345. package/build/dist/Models/DatabaseModels/DatabaseServerEndpoint.js.map +1 -0
  346. package/build/dist/Models/DatabaseModels/DatabaseServerFeed.js +648 -0
  347. package/build/dist/Models/DatabaseModels/DatabaseServerFeed.js.map +1 -0
  348. package/build/dist/Models/DatabaseModels/DatabaseServerLabelRule.js +522 -0
  349. package/build/dist/Models/DatabaseModels/DatabaseServerLabelRule.js.map +1 -0
  350. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerRule.js +603 -0
  351. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerRule.js.map +1 -0
  352. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerTeam.js +506 -0
  353. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerTeam.js.map +1 -0
  354. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerUser.js +505 -0
  355. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerUser.js.map +1 -0
  356. package/build/dist/Models/DatabaseModels/Incident.js +54 -0
  357. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  358. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  359. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  360. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  361. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +54 -0
  362. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  363. package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
  364. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  365. package/build/dist/Models/DatabaseModels/UserProjectSsoConsent.js +162 -0
  366. package/build/dist/Models/DatabaseModels/UserProjectSsoConsent.js.map +1 -0
  367. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.js +240 -0
  368. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.js.map +1 -0
  369. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.js +26 -0
  370. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.js.map +1 -0
  371. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  372. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  373. package/build/dist/Server/Middleware/MultipartFormData.js +1 -1
  374. package/build/dist/Server/Middleware/TelemetryIngest.js +15 -8
  375. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  376. package/build/dist/Server/Services/AlertReminderRuleService.js +72 -23
  377. package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -1
  378. package/build/dist/Server/Services/DatabaseServerEndpointService.js +694 -0
  379. package/build/dist/Server/Services/DatabaseServerEndpointService.js.map +1 -0
  380. package/build/dist/Server/Services/DatabaseServerFeedService.js +110 -0
  381. package/build/dist/Server/Services/DatabaseServerFeedService.js.map +1 -0
  382. package/build/dist/Server/Services/DatabaseServerLabelRuleEngineService.js +272 -0
  383. package/build/dist/Server/Services/DatabaseServerLabelRuleEngineService.js.map +1 -0
  384. package/build/dist/Server/Services/DatabaseServerLabelRuleService.js +13 -0
  385. package/build/dist/Server/Services/DatabaseServerLabelRuleService.js.map +1 -0
  386. package/build/dist/Server/Services/DatabaseServerOwnerRuleEngineService.js +340 -0
  387. package/build/dist/Server/Services/DatabaseServerOwnerRuleEngineService.js.map +1 -0
  388. package/build/dist/Server/Services/DatabaseServerOwnerRuleService.js +13 -0
  389. package/build/dist/Server/Services/DatabaseServerOwnerRuleService.js.map +1 -0
  390. package/build/dist/Server/Services/DatabaseServerOwnerTeamService.js +160 -0
  391. package/build/dist/Server/Services/DatabaseServerOwnerTeamService.js.map +1 -0
  392. package/build/dist/Server/Services/DatabaseServerOwnerUserService.js +153 -0
  393. package/build/dist/Server/Services/DatabaseServerOwnerUserService.js.map +1 -0
  394. package/build/dist/Server/Services/DatabaseServerService.js +3272 -0
  395. package/build/dist/Server/Services/DatabaseServerService.js.map +1 -0
  396. package/build/dist/Server/Services/DatabaseService.js +8 -4
  397. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  398. package/build/dist/Server/Services/DockerResourceService.js +30 -3
  399. package/build/dist/Server/Services/DockerResourceService.js.map +1 -1
  400. package/build/dist/Server/Services/IncidentReminderRuleService.js +73 -23
  401. package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -1
  402. package/build/dist/Server/Services/Index.js +16 -0
  403. package/build/dist/Server/Services/Index.js.map +1 -1
  404. package/build/dist/Server/Services/InventoryItemService.js +88 -5
  405. package/build/dist/Server/Services/InventoryItemService.js.map +1 -1
  406. package/build/dist/Server/Services/IoTDeviceService.js +111 -24
  407. package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
  408. package/build/dist/Server/Services/OpenTelemetryIngestService.js +24 -9
  409. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  410. package/build/dist/Server/Services/PodmanResourceService.js +30 -3
  411. package/build/dist/Server/Services/PodmanResourceService.js.map +1 -1
  412. package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +75 -23
  413. package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -1
  414. package/build/dist/Server/Services/ServiceService.js +1 -1
  415. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  416. package/build/dist/Server/Services/TelemetryUsageBillingService.js +23 -2
  417. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  418. package/build/dist/Server/Services/UserProjectSsoConsentService.js +79 -0
  419. package/build/dist/Server/Services/UserProjectSsoConsentService.js.map +1 -0
  420. package/build/dist/Server/Services/UserService.js +13 -1
  421. package/build/dist/Server/Services/UserService.js.map +1 -1
  422. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +18 -0
  423. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  424. package/build/dist/Server/Types/Database/QueryHelper.js +26 -1
  425. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  426. package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js +46 -0
  427. package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js.map +1 -1
  428. package/build/dist/Server/Utils/Database/AffectedResourceRelations.js +6 -0
  429. package/build/dist/Server/Utils/Database/AffectedResourceRelations.js.map +1 -1
  430. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +134 -13
  431. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
  432. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +22 -6
  433. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  434. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +1489 -524
  435. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  436. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +22 -6
  437. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  438. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +196 -6
  439. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  440. package/build/dist/Server/Utils/Monitor/MonitorResource.js +36 -9
  441. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  442. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +1 -0
  443. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -1
  444. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +175 -17
  445. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -1
  446. package/build/dist/Server/Utils/Monitor/PerSeriesResolutionRootCause.js +29 -0
  447. package/build/dist/Server/Utils/Monitor/PerSeriesResolutionRootCause.js.map +1 -0
  448. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +211 -0
  449. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  450. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +82 -10
  451. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
  452. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js +25 -0
  453. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js.map +1 -1
  454. package/build/dist/Server/Utils/StartServer.js +20 -4
  455. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  456. package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js +2 -0
  457. package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js.map +1 -1
  458. package/build/dist/Server/Utils/Telemetry/DatabaseEndpointDiscovery.js +442 -0
  459. package/build/dist/Server/Utils/Telemetry/DatabaseEndpointDiscovery.js.map +1 -0
  460. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +5 -1
  461. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  462. package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js +15 -1
  463. package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js.map +1 -1
  464. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +121 -5
  465. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
  466. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +12 -0
  467. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  468. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js +438 -36
  469. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js.map +1 -1
  470. package/build/dist/Server/Utils/Telemetry/Telemetry.js +12 -0
  471. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  472. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -18
  473. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  474. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js +16 -10
  475. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js.map +1 -1
  476. package/build/dist/Types/AI/AIResourceContext.js +7 -0
  477. package/build/dist/Types/AI/AIResourceContext.js.map +1 -1
  478. package/build/dist/Types/Dashboard/DashboardTemplates.js +2 -1
  479. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  480. package/build/dist/Types/DatabaseServer/DatabaseConnectionSpan.js +71 -0
  481. package/build/dist/Types/DatabaseServer/DatabaseConnectionSpan.js.map +1 -0
  482. package/build/dist/Types/DatabaseServer/DatabaseContainerClassifier.js +1462 -0
  483. package/build/dist/Types/DatabaseServer/DatabaseContainerClassifier.js.map +1 -0
  484. package/build/dist/Types/DatabaseServer/DatabaseContainerCommand.js +691 -0
  485. package/build/dist/Types/DatabaseServer/DatabaseContainerCommand.js.map +1 -0
  486. package/build/dist/Types/DatabaseServer/DatabaseEndpoint.js +1407 -0
  487. package/build/dist/Types/DatabaseServer/DatabaseEndpoint.js.map +1 -0
  488. package/build/dist/Types/DatabaseServer/DatabaseServerDiscoverySource.js +60 -0
  489. package/build/dist/Types/DatabaseServer/DatabaseServerDiscoverySource.js.map +1 -0
  490. package/build/dist/Types/DatabaseServer/DatabaseServerMetricCatalog.js +804 -0
  491. package/build/dist/Types/DatabaseServer/DatabaseServerMetricCatalog.js.map +1 -0
  492. package/build/dist/Types/DatabaseServer/DatabaseSystem.js +1860 -0
  493. package/build/dist/Types/DatabaseServer/DatabaseSystem.js.map +1 -0
  494. package/build/dist/Types/DatabaseServer/DatabaseTelemetryResolver.js +406 -0
  495. package/build/dist/Types/DatabaseServer/DatabaseTelemetryResolver.js.map +1 -0
  496. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  497. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  498. package/build/dist/Types/Monitor/CephAlertTemplates.js +18 -0
  499. package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -1
  500. package/build/dist/Types/Monitor/DatabaseAlertTemplates.js +1518 -0
  501. package/build/dist/Types/Monitor/DatabaseAlertTemplates.js.map +1 -0
  502. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +57 -24
  503. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  504. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js +104 -18
  505. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js.map +1 -1
  506. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +80 -3
  507. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  508. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +10 -3
  509. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  510. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +29 -0
  511. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
  512. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js +21 -6
  513. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js.map +1 -1
  514. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +25 -0
  515. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -1
  516. package/build/dist/Types/NetworkDevice/DiscoveredHostNamingStatus.js +136 -0
  517. package/build/dist/Types/NetworkDevice/DiscoveredHostNamingStatus.js.map +1 -0
  518. package/build/dist/Types/Permission.js +234 -0
  519. package/build/dist/Types/Permission.js.map +1 -1
  520. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +10 -0
  521. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -1
  522. package/build/dist/Types/Rules/RuleRun.js +4 -0
  523. package/build/dist/Types/Rules/RuleRun.js.map +1 -1
  524. package/build/dist/Types/Telemetry/EntityType.js +23 -0
  525. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  526. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js +14 -0
  527. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js.map +1 -1
  528. package/build/dist/Types/Telemetry/ServiceType.js +8 -0
  529. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  530. package/build/dist/UI/Components/Banner/Banner.js +1 -1
  531. package/build/dist/UI/Components/Banner/Banner.js.map +1 -1
  532. package/build/dist/UI/Components/Card/Card.js +1 -1
  533. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  534. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
  535. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  536. package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
  537. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  538. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +1 -1
  539. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
  540. package/build/dist/UI/Components/Date/StartAndEndDate.js +5 -5
  541. package/build/dist/UI/Components/Date/StartAndEndDate.js.map +1 -1
  542. package/build/dist/UI/Components/Diagram/HorizontalStepChain.js +1 -1
  543. package/build/dist/UI/Components/Diagram/HorizontalStepChain.js.map +1 -1
  544. package/build/dist/UI/Components/Feed/FeedOptionsButton.js +1 -1
  545. package/build/dist/UI/Components/Feed/FeedOptionsButton.js.map +1 -1
  546. package/build/dist/UI/Components/Forms/BasicForm.js +1 -1
  547. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  548. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +1 -1
  549. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
  550. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js +1 -1
  551. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js.map +1 -1
  552. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js +1 -1
  553. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js.map +1 -1
  554. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +1 -1
  555. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  556. package/build/dist/UI/Components/Modal/ModalFooter.js +1 -1
  557. package/build/dist/UI/Components/Modal/ModalFooter.js.map +1 -1
  558. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +2 -2
  559. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
  560. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +4 -4
  561. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  562. package/build/dist/UI/Components/Navbar/NavBar.js +9 -2
  563. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  564. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +2 -2
  565. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  566. package/build/dist/UI/Components/Page/Page.js +1 -1
  567. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  568. package/build/dist/UI/Components/Pagination/Pagination.js +3 -3
  569. package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
  570. package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js +1 -1
  571. package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js.map +1 -1
  572. package/build/dist/UI/Components/SideMenu/SideMenu.js +4 -1
  573. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  574. package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js +3 -1
  575. package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js.map +1 -1
  576. package/build/dist/UI/Components/StatusPage/ResourceList.js +6 -6
  577. package/build/dist/UI/Components/StatusPage/ResourceList.js.map +1 -1
  578. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +1 -1
  579. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  580. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js +1 -1
  581. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js.map +1 -1
  582. package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js +1 -1
  583. package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js.map +1 -1
  584. package/build/dist/UI/Components/Workflow/ComponentsModal.js +2 -2
  585. package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
  586. package/build/dist/UI/Components/Workflow/StepTraceViewer.js +1 -1
  587. package/build/dist/UI/Components/Workflow/StepTraceViewer.js.map +1 -1
  588. package/build/dist/UI/Utils/Navigation.js +66 -33
  589. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  590. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js +7 -0
  591. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js.map +1 -1
  592. package/build/dist/UI/Utils/TelemetryService.js +3 -2
  593. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  594. package/build/dist/Utils/LabelRuleImportExport.js +2 -0
  595. package/build/dist/Utils/LabelRuleImportExport.js.map +1 -1
  596. package/build/dist/Utils/MetricUnitUtil.js +77 -13
  597. package/build/dist/Utils/MetricUnitUtil.js.map +1 -1
  598. package/build/dist/Utils/Monitor/MetricValueFormatter.js +58 -13
  599. package/build/dist/Utils/Monitor/MetricValueFormatter.js.map +1 -1
  600. package/build/dist/Utils/Monitor/PlatformMetricUnitUtil.js +161 -0
  601. package/build/dist/Utils/Monitor/PlatformMetricUnitUtil.js.map +1 -0
  602. package/build/dist/Utils/Monitor/PlatformResourceIdentity.js +323 -0
  603. package/build/dist/Utils/Monitor/PlatformResourceIdentity.js.map +1 -0
  604. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.js +270 -0
  605. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.js.map +1 -0
  606. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js +23 -0
  607. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js.map +1 -1
  608. package/build/dist/Utils/NetworkDiscovery/NetbiosNameUtil.js +61 -0
  609. package/build/dist/Utils/NetworkDiscovery/NetbiosNameUtil.js.map +1 -1
  610. package/build/dist/Utils/Telemetry/DatabaseServerEntityKeys.js +178 -0
  611. package/build/dist/Utils/Telemetry/DatabaseServerEntityKeys.js.map +1 -0
  612. package/build/dist/Utils/Telemetry/EntityKey.js +133 -0
  613. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  614. package/build/dist/Utils/ValueFormatter.js +15 -0
  615. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  616. package/package.json +1 -1
  617. package/tsconfig.tests.json +7 -5
@@ -0,0 +1,1683 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DockerHost from "./DockerHost";
11
+ import KubernetesCluster from "./KubernetesCluster";
12
+ import Label from "./Label";
13
+ import PodmanHost from "./PodmanHost";
14
+ import Project from "./Project";
15
+ import User from "./User";
16
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
17
+ import Route from "../../Types/API/Route";
18
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
19
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
20
+ import AccessControlColumn from "../../Types/Database/AccessControlColumn";
21
+ import ColumnLength from "../../Types/Database/ColumnLength";
22
+ import ColumnType from "../../Types/Database/ColumnType";
23
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
24
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
25
+ import SlugifyColumn from "../../Types/Database/SlugifyColumn";
26
+ import TableColumn from "../../Types/Database/TableColumn";
27
+ import TableColumnType from "../../Types/Database/TableColumnType";
28
+ import TableMetadata from "../../Types/Database/TableMetadata";
29
+ import TenantColumn from "../../Types/Database/TenantColumn";
30
+ import IconProp from "../../Types/Icon/IconProp";
31
+ import ObjectID from "../../Types/ObjectID";
32
+ import Permission from "../../Types/Permission";
33
+ import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, } from "typeorm";
34
+ /*
35
+ * A database server a project runs or talks to - PostgreSQL, MySQL, Redis,
36
+ * MongoDB and the rest of the engines in Types/DatabaseServer/DatabaseSystem.
37
+ *
38
+ * Not called `Database`: DatabaseService is the base class of every service,
39
+ * and MonitorType.Database / EntityType.Database already exist. The display
40
+ * names are still "Database" / "Databases".
41
+ *
42
+ * Rows come from five discovery sources (discoverySource, first creator
43
+ * wins): OTel Collector database receivers at ingest, CLIENT spans of
44
+ * instrumented applications, database workloads on a monitored Kubernetes
45
+ * cluster, database containers on a monitored Docker / Podman host, and
46
+ * manual creation in the dashboard. Every non-manual path writes as root.
47
+ *
48
+ * Telemetry is selected by entity keys, never by a column here: the keys of
49
+ * the row's endpoints (DatabaseServerEndpoint, one owner per endpoint per
50
+ * project) plus the workload member keys in memberEntityKeys.
51
+ *
52
+ * COLUMN ACCESS: DatabaseService.create runs onBeforeCreate BEFORE the column
53
+ * permission check, so every column DatabaseServerService.onBeforeCreate sets
54
+ * during a manual (non-root) create - name, description, dbSystem,
55
+ * serverAddress, serverPort, databaseIdentifier, discoverySource, labels -
56
+ * carries create permission for the table's create roles, or a manual create
57
+ * is refused with "User is not allowed to Create on <column>". Columns only
58
+ * the discovery paths write are create: [] and update: [].
59
+ */
60
+ let DatabaseServer = class DatabaseServer extends BaseModel {
61
+ constructor() {
62
+ super(...arguments);
63
+ this.project = undefined;
64
+ this.projectId = undefined;
65
+ /*
66
+ * Display name only - identity lives in databaseIdentifier. Discovered rows are
67
+ * named "<Engine> <host:port>" (buildDatabaseServerDisplayName), so a label or
68
+ * owner rule name pattern such as ^PostgreSQL expresses "every PostgreSQL
69
+ * database".
70
+ */
71
+ this.name = undefined;
72
+ this.slug = undefined;
73
+ this.description = undefined;
74
+ /*
75
+ * Creatable, never updatable - see the identical note on
76
+ * CloudResource.resourceIdentifier. For a manual create
77
+ * DatabaseServerService.onBeforeCreate computes it from dbSystem and the
78
+ * canonical endpoint, which is exactly why it must stay user-creatable: the
79
+ * column permission check runs after that hook.
80
+ */
81
+ this.databaseIdentifier = undefined;
82
+ /*
83
+ * Root-only. Set by the container discovery worker on rows it creates AND on
84
+ * endpoint rows it adopts, so the workload is found again by this column on
85
+ * every run (IDX_database_server_workload) rather than by alias.
86
+ */
87
+ this.workloadIdentifier = undefined;
88
+ this.dbSystem = undefined;
89
+ this.serverAddress = undefined;
90
+ this.serverPort = undefined;
91
+ this.dbVersion = undefined;
92
+ /*
93
+ * Which path created the row: collector, client-spans, kubernetes, docker,
94
+ * podman or manual (DatabaseServerDiscoverySource). First creator wins; it is
95
+ * never overwritten. Creatable because onBeforeCreate stamps "manual".
96
+ */
97
+ this.discoverySource = undefined;
98
+ this.kubernetesCluster = undefined;
99
+ this.kubernetesClusterId = undefined;
100
+ this.kubernetesNamespace = undefined;
101
+ this.workloadKind = undefined;
102
+ this.workloadName = undefined;
103
+ this.dockerHost = undefined;
104
+ this.dockerHostId = undefined;
105
+ this.podmanHost = undefined;
106
+ this.podmanHostId = undefined;
107
+ /*
108
+ * Telemetry entity keys of the workload's members (Kubernetes pod / deployment
109
+ * keys, container keys) mapped to the ISO time each was last seen
110
+ * (DatabaseServerMemberKeys). Merged - never replaced - on every discovery run
111
+ * and pruned by age, so logs of a pod that was replaced last week still show
112
+ * on the page.
113
+ */
114
+ this.memberEntityKeys = undefined;
115
+ this.instanceCount = undefined;
116
+ /*
117
+ * Collector liveness ONLY: "connected" while an OTel Collector database
118
+ * receiver (or the OneUptime Database Agent) keeps reporting engine metrics for
119
+ * this database, "disconnected" once it has stopped (the stale-collector
120
+ * sweep). Empty (NULL) while no collector ever reported - no DB default, so
121
+ * a database that is merely queried by applications, seen as a container or
122
+ * added by hand never claims a collector that "disconnected". lastSeenAt is
123
+ * the any-source signal.
124
+ */
125
+ this.otelCollectorStatus = undefined;
126
+ this.collectorLastSeenAt = undefined;
127
+ this.agentVersion = undefined;
128
+ this.lastSeenAt = undefined;
129
+ /*
130
+ * Set only by the auto-archive sweep (DatabaseServer:CleanupStaleResources) and
131
+ * cleared when the database is seen again. It is what lets discovery un-archive
132
+ * a row it archived itself while never touching one a person archived.
133
+ */
134
+ this.autoArchivedAt = undefined;
135
+ /*
136
+ * Set when a PERSON restores the row from the archive (a hooked update to
137
+ * isArchived=false), cleared when a person archives it. The auto-archive
138
+ * sweep leaves such a row alone until discovery sees it again or a long
139
+ * grace period passes - otherwise a Restore of a stale discovered database
140
+ * would be undone by the next five-minute sweep.
141
+ */
142
+ this.manuallyRestoredAt = undefined;
143
+ /*
144
+ * Which evidence set dbSystem (DatabaseSystemEvidence in
145
+ * DatabaseServerService): manual > collector > container > client-spans.
146
+ * A stronger source may correct the engine a weaker one guessed (a pgx
147
+ * client saying "postgresql" for CockroachDB), any source may refine an
148
+ * engine to a fork of it (redis -> valkey), and nothing ever downgrades.
149
+ * Empty on a row whose engine was set by the path that created it - its
150
+ * discoverySource then says which evidence that was.
151
+ */
152
+ this.dbSystemSource = undefined;
153
+ /*
154
+ * When Kubernetes / Docker / Podman discovery last saw this row's workload.
155
+ * Unlike lastSeenAt, application traces and collector heartbeats never move
156
+ * it, so it is what tells a workload that is gone (its endpoints may be
157
+ * handed to the workload that replaced it) from one that is merely quiet.
158
+ */
159
+ this.workloadLastSeenAt = undefined;
160
+ /*
161
+ * The labels and owners that rules and ingest attached to this row on their
162
+ * own ({ labelIds, ownerUserIds, ownerTeamIds }, ids as lowercase strings).
163
+ * The auto-archive sweep counts only the OTHER labels and owners as a sign
164
+ * that somebody cares about the row, so a catch-all label or owner rule
165
+ * cannot keep every discovered database alive forever. A person adding
166
+ * one of these labels or owners again takes it off the list.
167
+ */
168
+ this.automaticAssignments = undefined;
169
+ this.createdByUser = undefined;
170
+ this.createdByUserId = undefined;
171
+ this.isArchived = undefined;
172
+ this.archivedAt = undefined;
173
+ this.archivedByUser = undefined;
174
+ this.archivedByUserId = undefined;
175
+ this.deletedByUser = undefined;
176
+ this.deletedByUserId = undefined;
177
+ this.labels = undefined;
178
+ this.retainTelemetryDataForDays = undefined;
179
+ this.telemetryRetentionConfig = undefined;
180
+ }
181
+ };
182
+ __decorate([
183
+ ColumnAccessControl({
184
+ create: [
185
+ Permission.ProjectOwner,
186
+ Permission.ProjectAdmin,
187
+ Permission.ProjectMember,
188
+ Permission.SettingsAdmin,
189
+ Permission.SettingsMember,
190
+ Permission.CreateDatabaseServer,
191
+ ],
192
+ read: [
193
+ Permission.ProjectOwner,
194
+ Permission.ProjectAdmin,
195
+ Permission.ProjectMember,
196
+ Permission.Viewer,
197
+ Permission.SettingsAdmin,
198
+ Permission.SettingsMember,
199
+ Permission.SettingsViewer,
200
+ Permission.ReadDatabaseServer,
201
+ ],
202
+ update: [],
203
+ }),
204
+ TableColumn({
205
+ manyToOneRelationColumn: "projectId",
206
+ type: TableColumnType.Entity,
207
+ modelType: Project,
208
+ title: "Project",
209
+ description: "Relation to Project Resource in which this object belongs",
210
+ }),
211
+ ManyToOne(() => {
212
+ return Project;
213
+ }, {
214
+ eager: false,
215
+ nullable: true,
216
+ onDelete: "CASCADE",
217
+ orphanedRowAction: "nullify",
218
+ }),
219
+ JoinColumn({ name: "projectId" }),
220
+ __metadata("design:type", Project)
221
+ ], DatabaseServer.prototype, "project", void 0);
222
+ __decorate([
223
+ ColumnAccessControl({
224
+ create: [
225
+ Permission.ProjectOwner,
226
+ Permission.ProjectAdmin,
227
+ Permission.ProjectMember,
228
+ Permission.SettingsAdmin,
229
+ Permission.SettingsMember,
230
+ Permission.CreateDatabaseServer,
231
+ ],
232
+ read: [
233
+ Permission.ProjectOwner,
234
+ Permission.ProjectAdmin,
235
+ Permission.ProjectMember,
236
+ Permission.Viewer,
237
+ Permission.SettingsAdmin,
238
+ Permission.SettingsMember,
239
+ Permission.SettingsViewer,
240
+ Permission.ReadDatabaseServer,
241
+ ],
242
+ update: [],
243
+ }),
244
+ Index(),
245
+ TableColumn({
246
+ type: TableColumnType.ObjectID,
247
+ required: true,
248
+ canReadOnRelationQuery: true,
249
+ title: "Project ID",
250
+ description: "ID of your OneUptime Project in which this object belongs",
251
+ }),
252
+ Column({
253
+ type: ColumnType.ObjectID,
254
+ nullable: false,
255
+ transformer: ObjectID.getDatabaseTransformer(),
256
+ }),
257
+ __metadata("design:type", ObjectID)
258
+ ], DatabaseServer.prototype, "projectId", void 0);
259
+ __decorate([
260
+ ColumnAccessControl({
261
+ create: [
262
+ Permission.ProjectOwner,
263
+ Permission.ProjectAdmin,
264
+ Permission.ProjectMember,
265
+ Permission.SettingsAdmin,
266
+ Permission.SettingsMember,
267
+ Permission.CreateDatabaseServer,
268
+ ],
269
+ read: [
270
+ Permission.ProjectOwner,
271
+ Permission.ProjectAdmin,
272
+ Permission.ProjectMember,
273
+ Permission.Viewer,
274
+ Permission.SettingsAdmin,
275
+ Permission.SettingsMember,
276
+ Permission.SettingsViewer,
277
+ Permission.ReadDatabaseServer,
278
+ ],
279
+ update: [
280
+ Permission.ProjectOwner,
281
+ Permission.ProjectAdmin,
282
+ Permission.ProjectMember,
283
+ Permission.SettingsAdmin,
284
+ Permission.SettingsMember,
285
+ Permission.EditDatabaseServer,
286
+ ],
287
+ }),
288
+ Index(),
289
+ TableColumn({
290
+ required: true,
291
+ type: TableColumnType.ShortText,
292
+ canReadOnRelationQuery: true,
293
+ title: "Name",
294
+ description: "Name of this database. Discovered databases are named after their engine and endpoint, e.g. PostgreSQL orders-db.internal:5432. Not unique - rename freely.",
295
+ example: "PostgreSQL orders-db.internal:5432",
296
+ }),
297
+ Column({
298
+ nullable: false,
299
+ type: ColumnType.ShortText,
300
+ length: ColumnLength.ShortText,
301
+ }),
302
+ __metadata("design:type", String)
303
+ ], DatabaseServer.prototype, "name", void 0);
304
+ __decorate([
305
+ ColumnAccessControl({
306
+ create: [],
307
+ read: [
308
+ Permission.ProjectOwner,
309
+ Permission.ProjectAdmin,
310
+ Permission.ProjectMember,
311
+ Permission.Viewer,
312
+ Permission.SettingsAdmin,
313
+ Permission.SettingsMember,
314
+ Permission.SettingsViewer,
315
+ Permission.ReadDatabaseServer,
316
+ ],
317
+ update: [],
318
+ }),
319
+ TableColumn({
320
+ required: true,
321
+ unique: true,
322
+ type: TableColumnType.Slug,
323
+ computed: true,
324
+ title: "Slug",
325
+ description: "Friendly globally unique name for your object",
326
+ }),
327
+ Column({
328
+ nullable: false,
329
+ type: ColumnType.Slug,
330
+ length: ColumnLength.Slug,
331
+ }),
332
+ __metadata("design:type", String)
333
+ ], DatabaseServer.prototype, "slug", void 0);
334
+ __decorate([
335
+ ColumnAccessControl({
336
+ create: [
337
+ Permission.ProjectOwner,
338
+ Permission.ProjectAdmin,
339
+ Permission.ProjectMember,
340
+ Permission.SettingsAdmin,
341
+ Permission.SettingsMember,
342
+ Permission.CreateDatabaseServer,
343
+ ],
344
+ read: [
345
+ Permission.ProjectOwner,
346
+ Permission.ProjectAdmin,
347
+ Permission.ProjectMember,
348
+ Permission.Viewer,
349
+ Permission.SettingsAdmin,
350
+ Permission.SettingsMember,
351
+ Permission.SettingsViewer,
352
+ Permission.ReadDatabaseServer,
353
+ ],
354
+ update: [
355
+ Permission.ProjectOwner,
356
+ Permission.ProjectAdmin,
357
+ Permission.ProjectMember,
358
+ Permission.SettingsAdmin,
359
+ Permission.SettingsMember,
360
+ Permission.EditDatabaseServer,
361
+ ],
362
+ }),
363
+ TableColumn({
364
+ required: false,
365
+ type: TableColumnType.LongText,
366
+ canReadOnRelationQuery: true,
367
+ title: "Description",
368
+ description: "Friendly description for this database",
369
+ example: "Primary PostgreSQL database for the orders service",
370
+ }),
371
+ Column({
372
+ nullable: true,
373
+ type: ColumnType.LongText,
374
+ length: ColumnLength.LongText,
375
+ }),
376
+ __metadata("design:type", String)
377
+ ], DatabaseServer.prototype, "description", void 0);
378
+ __decorate([
379
+ ColumnAccessControl({
380
+ create: [
381
+ Permission.ProjectOwner,
382
+ Permission.ProjectAdmin,
383
+ Permission.ProjectMember,
384
+ Permission.SettingsAdmin,
385
+ Permission.SettingsMember,
386
+ Permission.CreateDatabaseServer,
387
+ ],
388
+ read: [
389
+ Permission.ProjectOwner,
390
+ Permission.ProjectAdmin,
391
+ Permission.ProjectMember,
392
+ Permission.Viewer,
393
+ Permission.SettingsAdmin,
394
+ Permission.SettingsMember,
395
+ Permission.SettingsViewer,
396
+ Permission.ReadDatabaseServer,
397
+ ],
398
+ update: [],
399
+ }),
400
+ Index(),
401
+ TableColumn({
402
+ required: true,
403
+ type: TableColumnType.LongText,
404
+ canReadOnRelationQuery: true,
405
+ title: "Database Identifier",
406
+ description: "Stable identity of this database within the project: the engine family and its canonical endpoint joined with '|' (e.g. postgresql|orders-db.internal:5432), or the workload form for databases discovered on Kubernetes / Docker / Podman (e.g. postgresql|kubernetes:prod-cluster/data/statefulset/orders-db). A fork keys like the engine it forks (a MariaDB database is mysql|..., a Valkey one redis|...), so learning which of the two a database is never changes its identity. Computed by the server for manually added databases.",
407
+ example: "postgresql|orders-db.internal:5432",
408
+ }),
409
+ Column({
410
+ nullable: false,
411
+ type: ColumnType.LongText,
412
+ length: ColumnLength.LongText,
413
+ }),
414
+ __metadata("design:type", String)
415
+ ], DatabaseServer.prototype, "databaseIdentifier", void 0);
416
+ __decorate([
417
+ ColumnAccessControl({
418
+ create: [],
419
+ read: [
420
+ Permission.ProjectOwner,
421
+ Permission.ProjectAdmin,
422
+ Permission.ProjectMember,
423
+ Permission.Viewer,
424
+ Permission.SettingsAdmin,
425
+ Permission.SettingsMember,
426
+ Permission.SettingsViewer,
427
+ Permission.ReadDatabaseServer,
428
+ ],
429
+ update: [],
430
+ }),
431
+ TableColumn({
432
+ required: false,
433
+ type: TableColumnType.LongText,
434
+ title: "Workload Identifier",
435
+ description: "Identity of the Kubernetes / Docker / Podman workload this database runs as, e.g. postgresql|kubernetes:prod-cluster/data/statefulset/orders-db. The prefix is the engine family, not the engine (a MariaDB workload is mysql|..., a Valkey one redis|...). Empty for databases that are only known by their endpoint.",
436
+ example: "postgresql|kubernetes:prod-cluster/data/statefulset/orders-db",
437
+ }),
438
+ Column({
439
+ nullable: true,
440
+ type: ColumnType.LongText,
441
+ length: ColumnLength.LongText,
442
+ }),
443
+ __metadata("design:type", String)
444
+ ], DatabaseServer.prototype, "workloadIdentifier", void 0);
445
+ __decorate([
446
+ ColumnAccessControl({
447
+ create: [
448
+ Permission.ProjectOwner,
449
+ Permission.ProjectAdmin,
450
+ Permission.ProjectMember,
451
+ Permission.SettingsAdmin,
452
+ Permission.SettingsMember,
453
+ Permission.CreateDatabaseServer,
454
+ ],
455
+ read: [
456
+ Permission.ProjectOwner,
457
+ Permission.ProjectAdmin,
458
+ Permission.ProjectMember,
459
+ Permission.Viewer,
460
+ Permission.SettingsAdmin,
461
+ Permission.SettingsMember,
462
+ Permission.SettingsViewer,
463
+ Permission.ReadDatabaseServer,
464
+ ],
465
+ update: [],
466
+ }),
467
+ TableColumn({
468
+ required: true,
469
+ type: TableColumnType.ShortText,
470
+ canReadOnRelationQuery: true,
471
+ title: "Database Engine",
472
+ description: "Database engine family as an OpenTelemetry db.system.name value, e.g. postgresql, mysql, redis, mongodb, microsoft.sql_server.",
473
+ example: "postgresql",
474
+ }),
475
+ Column({
476
+ nullable: false,
477
+ type: ColumnType.ShortText,
478
+ length: ColumnLength.ShortText,
479
+ }),
480
+ __metadata("design:type", String)
481
+ ], DatabaseServer.prototype, "dbSystem", void 0);
482
+ __decorate([
483
+ ColumnAccessControl({
484
+ create: [
485
+ Permission.ProjectOwner,
486
+ Permission.ProjectAdmin,
487
+ Permission.ProjectMember,
488
+ Permission.SettingsAdmin,
489
+ Permission.SettingsMember,
490
+ Permission.CreateDatabaseServer,
491
+ ],
492
+ read: [
493
+ Permission.ProjectOwner,
494
+ Permission.ProjectAdmin,
495
+ Permission.ProjectMember,
496
+ Permission.Viewer,
497
+ Permission.SettingsAdmin,
498
+ Permission.SettingsMember,
499
+ Permission.SettingsViewer,
500
+ Permission.ReadDatabaseServer,
501
+ ],
502
+ update: [],
503
+ }),
504
+ TableColumn({
505
+ required: false,
506
+ type: TableColumnType.LongText,
507
+ canReadOnRelationQuery: true,
508
+ title: "Server Address",
509
+ description: "Host name or IP address of the primary endpoint of this database (the OpenTelemetry server.address attribute).",
510
+ example: "orders-db.internal",
511
+ }),
512
+ Column({
513
+ nullable: true,
514
+ type: ColumnType.LongText,
515
+ length: ColumnLength.LongText,
516
+ }),
517
+ __metadata("design:type", String)
518
+ ], DatabaseServer.prototype, "serverAddress", void 0);
519
+ __decorate([
520
+ ColumnAccessControl({
521
+ create: [
522
+ Permission.ProjectOwner,
523
+ Permission.ProjectAdmin,
524
+ Permission.ProjectMember,
525
+ Permission.SettingsAdmin,
526
+ Permission.SettingsMember,
527
+ Permission.CreateDatabaseServer,
528
+ ],
529
+ read: [
530
+ Permission.ProjectOwner,
531
+ Permission.ProjectAdmin,
532
+ Permission.ProjectMember,
533
+ Permission.Viewer,
534
+ Permission.SettingsAdmin,
535
+ Permission.SettingsMember,
536
+ Permission.SettingsViewer,
537
+ Permission.ReadDatabaseServer,
538
+ ],
539
+ update: [],
540
+ }),
541
+ TableColumn({
542
+ required: false,
543
+ type: TableColumnType.Number,
544
+ canReadOnRelationQuery: true,
545
+ title: "Server Port",
546
+ description: "Port of the primary endpoint of this database (the OpenTelemetry server.port attribute). Defaults to the engine's standard port when not given.",
547
+ example: "5432",
548
+ }),
549
+ Column({
550
+ nullable: true,
551
+ type: ColumnType.Number,
552
+ }),
553
+ __metadata("design:type", Number)
554
+ ], DatabaseServer.prototype, "serverPort", void 0);
555
+ __decorate([
556
+ ColumnAccessControl({
557
+ create: [],
558
+ read: [
559
+ Permission.ProjectOwner,
560
+ Permission.ProjectAdmin,
561
+ Permission.ProjectMember,
562
+ Permission.Viewer,
563
+ Permission.SettingsAdmin,
564
+ Permission.SettingsMember,
565
+ Permission.SettingsViewer,
566
+ Permission.ReadDatabaseServer,
567
+ ],
568
+ update: [],
569
+ }),
570
+ TableColumn({
571
+ required: false,
572
+ type: TableColumnType.ShortText,
573
+ title: "Database Version",
574
+ description: "Engine version last reported for this database, from the collector receiver or the container image tag.",
575
+ example: "16.4",
576
+ }),
577
+ Column({
578
+ nullable: true,
579
+ type: ColumnType.ShortText,
580
+ length: ColumnLength.ShortText,
581
+ }),
582
+ __metadata("design:type", String)
583
+ ], DatabaseServer.prototype, "dbVersion", void 0);
584
+ __decorate([
585
+ ColumnAccessControl({
586
+ create: [
587
+ Permission.ProjectOwner,
588
+ Permission.ProjectAdmin,
589
+ Permission.ProjectMember,
590
+ Permission.SettingsAdmin,
591
+ Permission.SettingsMember,
592
+ Permission.CreateDatabaseServer,
593
+ ],
594
+ read: [
595
+ Permission.ProjectOwner,
596
+ Permission.ProjectAdmin,
597
+ Permission.ProjectMember,
598
+ Permission.Viewer,
599
+ Permission.SettingsAdmin,
600
+ Permission.SettingsMember,
601
+ Permission.SettingsViewer,
602
+ Permission.ReadDatabaseServer,
603
+ ],
604
+ update: [],
605
+ }),
606
+ TableColumn({
607
+ required: false,
608
+ type: TableColumnType.ShortText,
609
+ canReadOnRelationQuery: true,
610
+ title: "Discovery Source",
611
+ description: "How this database was first discovered: collector, client-spans, kubernetes, docker, podman or manual.",
612
+ example: "collector",
613
+ }),
614
+ Column({
615
+ nullable: true,
616
+ type: ColumnType.ShortText,
617
+ length: ColumnLength.ShortText,
618
+ }),
619
+ __metadata("design:type", String)
620
+ ], DatabaseServer.prototype, "discoverySource", void 0);
621
+ __decorate([
622
+ ColumnAccessControl({
623
+ create: [],
624
+ read: [
625
+ Permission.ProjectOwner,
626
+ Permission.ProjectAdmin,
627
+ Permission.ProjectMember,
628
+ Permission.Viewer,
629
+ Permission.SettingsAdmin,
630
+ Permission.SettingsMember,
631
+ Permission.SettingsViewer,
632
+ Permission.ReadDatabaseServer,
633
+ ],
634
+ update: [],
635
+ }),
636
+ TableColumn({
637
+ manyToOneRelationColumn: "kubernetesClusterId",
638
+ type: TableColumnType.Entity,
639
+ modelType: KubernetesCluster,
640
+ title: "Kubernetes Cluster",
641
+ description: "Kubernetes cluster this database runs on, when it was discovered as a workload on a monitored cluster.",
642
+ }),
643
+ ManyToOne(() => {
644
+ return KubernetesCluster;
645
+ }, {
646
+ eager: false,
647
+ nullable: true,
648
+ onDelete: "SET NULL",
649
+ orphanedRowAction: "nullify",
650
+ }),
651
+ JoinColumn({ name: "kubernetesClusterId" }),
652
+ __metadata("design:type", KubernetesCluster)
653
+ ], DatabaseServer.prototype, "kubernetesCluster", void 0);
654
+ __decorate([
655
+ ColumnAccessControl({
656
+ create: [],
657
+ read: [
658
+ Permission.ProjectOwner,
659
+ Permission.ProjectAdmin,
660
+ Permission.ProjectMember,
661
+ Permission.Viewer,
662
+ Permission.SettingsAdmin,
663
+ Permission.SettingsMember,
664
+ Permission.SettingsViewer,
665
+ Permission.ReadDatabaseServer,
666
+ ],
667
+ update: [],
668
+ }),
669
+ Index(),
670
+ TableColumn({
671
+ type: TableColumnType.ObjectID,
672
+ title: "Kubernetes Cluster ID",
673
+ description: "ID of the Kubernetes cluster this database runs on, when it was discovered as a workload on a monitored cluster.",
674
+ }),
675
+ Column({
676
+ type: ColumnType.ObjectID,
677
+ nullable: true,
678
+ transformer: ObjectID.getDatabaseTransformer(),
679
+ }),
680
+ __metadata("design:type", ObjectID)
681
+ ], DatabaseServer.prototype, "kubernetesClusterId", void 0);
682
+ __decorate([
683
+ ColumnAccessControl({
684
+ create: [],
685
+ read: [
686
+ Permission.ProjectOwner,
687
+ Permission.ProjectAdmin,
688
+ Permission.ProjectMember,
689
+ Permission.Viewer,
690
+ Permission.SettingsAdmin,
691
+ Permission.SettingsMember,
692
+ Permission.SettingsViewer,
693
+ Permission.ReadDatabaseServer,
694
+ ],
695
+ update: [],
696
+ }),
697
+ TableColumn({
698
+ required: false,
699
+ type: TableColumnType.ShortText,
700
+ title: "Kubernetes Namespace",
701
+ description: "Kubernetes namespace of the workload this database runs as.",
702
+ example: "data",
703
+ }),
704
+ Column({
705
+ nullable: true,
706
+ type: ColumnType.ShortText,
707
+ length: ColumnLength.ShortText,
708
+ }),
709
+ __metadata("design:type", String)
710
+ ], DatabaseServer.prototype, "kubernetesNamespace", void 0);
711
+ __decorate([
712
+ ColumnAccessControl({
713
+ create: [],
714
+ read: [
715
+ Permission.ProjectOwner,
716
+ Permission.ProjectAdmin,
717
+ Permission.ProjectMember,
718
+ Permission.Viewer,
719
+ Permission.SettingsAdmin,
720
+ Permission.SettingsMember,
721
+ Permission.SettingsViewer,
722
+ Permission.ReadDatabaseServer,
723
+ ],
724
+ update: [],
725
+ }),
726
+ TableColumn({
727
+ required: false,
728
+ type: TableColumnType.ShortText,
729
+ title: "Workload Kind",
730
+ description: "Kind of workload this database runs as, e.g. StatefulSet, Deployment, Cluster (an operator-managed cluster) or Container.",
731
+ example: "StatefulSet",
732
+ }),
733
+ Column({
734
+ nullable: true,
735
+ type: ColumnType.ShortText,
736
+ length: ColumnLength.ShortText,
737
+ }),
738
+ __metadata("design:type", String)
739
+ ], DatabaseServer.prototype, "workloadKind", void 0);
740
+ __decorate([
741
+ ColumnAccessControl({
742
+ create: [],
743
+ read: [
744
+ Permission.ProjectOwner,
745
+ Permission.ProjectAdmin,
746
+ Permission.ProjectMember,
747
+ Permission.Viewer,
748
+ Permission.SettingsAdmin,
749
+ Permission.SettingsMember,
750
+ Permission.SettingsViewer,
751
+ Permission.ReadDatabaseServer,
752
+ ],
753
+ update: [],
754
+ }),
755
+ TableColumn({
756
+ required: false,
757
+ type: TableColumnType.LongText,
758
+ title: "Workload Name",
759
+ description: "Name of the workload (StatefulSet, Deployment, operator cluster or container group) this database runs as.",
760
+ example: "orders-db",
761
+ }),
762
+ Column({
763
+ nullable: true,
764
+ type: ColumnType.LongText,
765
+ length: ColumnLength.LongText,
766
+ }),
767
+ __metadata("design:type", String)
768
+ ], DatabaseServer.prototype, "workloadName", void 0);
769
+ __decorate([
770
+ ColumnAccessControl({
771
+ create: [],
772
+ read: [
773
+ Permission.ProjectOwner,
774
+ Permission.ProjectAdmin,
775
+ Permission.ProjectMember,
776
+ Permission.Viewer,
777
+ Permission.SettingsAdmin,
778
+ Permission.SettingsMember,
779
+ Permission.SettingsViewer,
780
+ Permission.ReadDatabaseServer,
781
+ ],
782
+ update: [],
783
+ }),
784
+ TableColumn({
785
+ manyToOneRelationColumn: "dockerHostId",
786
+ type: TableColumnType.Entity,
787
+ modelType: DockerHost,
788
+ title: "Docker Host",
789
+ description: "Docker host this database runs on, when it was discovered as a container on a monitored host.",
790
+ }),
791
+ ManyToOne(() => {
792
+ return DockerHost;
793
+ }, {
794
+ eager: false,
795
+ nullable: true,
796
+ onDelete: "SET NULL",
797
+ orphanedRowAction: "nullify",
798
+ }),
799
+ JoinColumn({ name: "dockerHostId" }),
800
+ __metadata("design:type", DockerHost)
801
+ ], DatabaseServer.prototype, "dockerHost", void 0);
802
+ __decorate([
803
+ ColumnAccessControl({
804
+ create: [],
805
+ read: [
806
+ Permission.ProjectOwner,
807
+ Permission.ProjectAdmin,
808
+ Permission.ProjectMember,
809
+ Permission.Viewer,
810
+ Permission.SettingsAdmin,
811
+ Permission.SettingsMember,
812
+ Permission.SettingsViewer,
813
+ Permission.ReadDatabaseServer,
814
+ ],
815
+ update: [],
816
+ }),
817
+ TableColumn({
818
+ type: TableColumnType.ObjectID,
819
+ title: "Docker Host ID",
820
+ description: "ID of the Docker host this database runs on, when it was discovered as a container on a monitored host.",
821
+ }),
822
+ Column({
823
+ type: ColumnType.ObjectID,
824
+ nullable: true,
825
+ transformer: ObjectID.getDatabaseTransformer(),
826
+ }),
827
+ __metadata("design:type", ObjectID)
828
+ ], DatabaseServer.prototype, "dockerHostId", void 0);
829
+ __decorate([
830
+ ColumnAccessControl({
831
+ create: [],
832
+ read: [
833
+ Permission.ProjectOwner,
834
+ Permission.ProjectAdmin,
835
+ Permission.ProjectMember,
836
+ Permission.Viewer,
837
+ Permission.SettingsAdmin,
838
+ Permission.SettingsMember,
839
+ Permission.SettingsViewer,
840
+ Permission.ReadDatabaseServer,
841
+ ],
842
+ update: [],
843
+ }),
844
+ TableColumn({
845
+ manyToOneRelationColumn: "podmanHostId",
846
+ type: TableColumnType.Entity,
847
+ modelType: PodmanHost,
848
+ title: "Podman Host",
849
+ description: "Podman host this database runs on, when it was discovered as a container on a monitored host.",
850
+ }),
851
+ ManyToOne(() => {
852
+ return PodmanHost;
853
+ }, {
854
+ eager: false,
855
+ nullable: true,
856
+ onDelete: "SET NULL",
857
+ orphanedRowAction: "nullify",
858
+ }),
859
+ JoinColumn({ name: "podmanHostId" }),
860
+ __metadata("design:type", PodmanHost)
861
+ ], DatabaseServer.prototype, "podmanHost", void 0);
862
+ __decorate([
863
+ ColumnAccessControl({
864
+ create: [],
865
+ read: [
866
+ Permission.ProjectOwner,
867
+ Permission.ProjectAdmin,
868
+ Permission.ProjectMember,
869
+ Permission.Viewer,
870
+ Permission.SettingsAdmin,
871
+ Permission.SettingsMember,
872
+ Permission.SettingsViewer,
873
+ Permission.ReadDatabaseServer,
874
+ ],
875
+ update: [],
876
+ }),
877
+ TableColumn({
878
+ type: TableColumnType.ObjectID,
879
+ title: "Podman Host ID",
880
+ description: "ID of the Podman host this database runs on, when it was discovered as a container on a monitored host.",
881
+ }),
882
+ Column({
883
+ type: ColumnType.ObjectID,
884
+ nullable: true,
885
+ transformer: ObjectID.getDatabaseTransformer(),
886
+ }),
887
+ __metadata("design:type", ObjectID)
888
+ ], DatabaseServer.prototype, "podmanHostId", void 0);
889
+ __decorate([
890
+ ColumnAccessControl({
891
+ create: [],
892
+ read: [
893
+ Permission.ProjectOwner,
894
+ Permission.ProjectAdmin,
895
+ Permission.ProjectMember,
896
+ Permission.Viewer,
897
+ Permission.SettingsAdmin,
898
+ Permission.SettingsMember,
899
+ Permission.SettingsViewer,
900
+ Permission.ReadDatabaseServer,
901
+ ],
902
+ update: [],
903
+ }),
904
+ TableColumn({
905
+ required: false,
906
+ type: TableColumnType.JSON,
907
+ title: "Member Entity Keys",
908
+ description: "Telemetry entity keys of the pods / containers this database runs as, each with the time it was last seen. Maintained by discovery.",
909
+ }),
910
+ Column({
911
+ type: ColumnType.JSON,
912
+ nullable: true,
913
+ }),
914
+ __metadata("design:type", Object)
915
+ ], DatabaseServer.prototype, "memberEntityKeys", void 0);
916
+ __decorate([
917
+ ColumnAccessControl({
918
+ create: [],
919
+ read: [
920
+ Permission.ProjectOwner,
921
+ Permission.ProjectAdmin,
922
+ Permission.ProjectMember,
923
+ Permission.Viewer,
924
+ Permission.SettingsAdmin,
925
+ Permission.SettingsMember,
926
+ Permission.SettingsViewer,
927
+ Permission.ReadDatabaseServer,
928
+ ],
929
+ update: [],
930
+ }),
931
+ TableColumn({
932
+ type: TableColumnType.Number,
933
+ title: "Instance Count",
934
+ description: "Number of running instances (pods / containers) last seen for this database's workload.",
935
+ }),
936
+ Column({
937
+ type: ColumnType.Number,
938
+ nullable: true,
939
+ default: 0,
940
+ }),
941
+ __metadata("design:type", Number)
942
+ ], DatabaseServer.prototype, "instanceCount", void 0);
943
+ __decorate([
944
+ ColumnAccessControl({
945
+ create: [],
946
+ read: [
947
+ Permission.ProjectOwner,
948
+ Permission.ProjectAdmin,
949
+ Permission.ProjectMember,
950
+ Permission.Viewer,
951
+ Permission.SettingsAdmin,
952
+ Permission.SettingsMember,
953
+ Permission.SettingsViewer,
954
+ Permission.ReadDatabaseServer,
955
+ ],
956
+ update: [],
957
+ }),
958
+ TableColumn({
959
+ required: false,
960
+ type: TableColumnType.ShortText,
961
+ canReadOnRelationQuery: true,
962
+ title: "OTel Collector Status",
963
+ description: "Whether engine metrics are currently being received from a collector / agent for this database (connected) or a collector reported and has stopped (disconnected). Empty when no collector has ever reported.",
964
+ example: "connected",
965
+ }),
966
+ Column({
967
+ nullable: true,
968
+ type: ColumnType.ShortText,
969
+ length: ColumnLength.ShortText,
970
+ }),
971
+ __metadata("design:type", String)
972
+ ], DatabaseServer.prototype, "otelCollectorStatus", void 0);
973
+ __decorate([
974
+ ColumnAccessControl({
975
+ create: [],
976
+ read: [
977
+ Permission.ProjectOwner,
978
+ Permission.ProjectAdmin,
979
+ Permission.ProjectMember,
980
+ Permission.Viewer,
981
+ Permission.SettingsAdmin,
982
+ Permission.SettingsMember,
983
+ Permission.SettingsViewer,
984
+ Permission.ReadDatabaseServer,
985
+ ],
986
+ update: [],
987
+ }),
988
+ TableColumn({
989
+ required: false,
990
+ type: TableColumnType.Date,
991
+ title: "Collector Last Seen At",
992
+ description: "When engine telemetry from a collector / agent was last received for this database.",
993
+ }),
994
+ Column({
995
+ nullable: true,
996
+ type: ColumnType.Date,
997
+ }),
998
+ __metadata("design:type", Date)
999
+ ], DatabaseServer.prototype, "collectorLastSeenAt", void 0);
1000
+ __decorate([
1001
+ ColumnAccessControl({
1002
+ create: [],
1003
+ read: [
1004
+ Permission.ProjectOwner,
1005
+ Permission.ProjectAdmin,
1006
+ Permission.ProjectMember,
1007
+ Permission.Viewer,
1008
+ Permission.SettingsAdmin,
1009
+ Permission.SettingsMember,
1010
+ Permission.SettingsViewer,
1011
+ Permission.ReadDatabaseServer,
1012
+ ],
1013
+ update: [],
1014
+ }),
1015
+ TableColumn({
1016
+ required: false,
1017
+ type: TableColumnType.ShortText,
1018
+ title: "Agent Version",
1019
+ description: "Version of the OneUptime agent reporting this database, as self-reported via the oneuptime.agent.version resource attribute",
1020
+ example: "1.0.0",
1021
+ }),
1022
+ Column({
1023
+ nullable: true,
1024
+ type: ColumnType.ShortText,
1025
+ length: ColumnLength.ShortText,
1026
+ }),
1027
+ __metadata("design:type", String)
1028
+ ], DatabaseServer.prototype, "agentVersion", void 0);
1029
+ __decorate([
1030
+ ColumnAccessControl({
1031
+ create: [],
1032
+ read: [
1033
+ Permission.ProjectOwner,
1034
+ Permission.ProjectAdmin,
1035
+ Permission.ProjectMember,
1036
+ Permission.Viewer,
1037
+ Permission.SettingsAdmin,
1038
+ Permission.SettingsMember,
1039
+ Permission.SettingsViewer,
1040
+ Permission.ReadDatabaseServer,
1041
+ ],
1042
+ update: [],
1043
+ }),
1044
+ TableColumn({
1045
+ required: false,
1046
+ type: TableColumnType.Date,
1047
+ canReadOnRelationQuery: true,
1048
+ title: "Last Seen At",
1049
+ description: "When this database was last seen by any discovery source - engine telemetry, application database calls or the workload inventory.",
1050
+ }),
1051
+ Column({
1052
+ nullable: true,
1053
+ type: ColumnType.Date,
1054
+ }),
1055
+ __metadata("design:type", Date)
1056
+ ], DatabaseServer.prototype, "lastSeenAt", void 0);
1057
+ __decorate([
1058
+ ColumnAccessControl({
1059
+ create: [],
1060
+ read: [
1061
+ Permission.ProjectOwner,
1062
+ Permission.ProjectAdmin,
1063
+ Permission.ProjectMember,
1064
+ Permission.Viewer,
1065
+ Permission.SettingsAdmin,
1066
+ Permission.SettingsMember,
1067
+ Permission.SettingsViewer,
1068
+ Permission.ReadDatabaseServer,
1069
+ ],
1070
+ update: [],
1071
+ }),
1072
+ TableColumn({
1073
+ required: false,
1074
+ type: TableColumnType.Date,
1075
+ title: "Auto Archived At",
1076
+ description: "When this database was archived automatically because no discovery source had seen it for a while. Empty when it was archived by a person or is not archived.",
1077
+ }),
1078
+ Column({
1079
+ nullable: true,
1080
+ type: ColumnType.Date,
1081
+ }),
1082
+ __metadata("design:type", Date)
1083
+ ], DatabaseServer.prototype, "autoArchivedAt", void 0);
1084
+ __decorate([
1085
+ ColumnAccessControl({
1086
+ create: [],
1087
+ read: [
1088
+ Permission.ProjectOwner,
1089
+ Permission.ProjectAdmin,
1090
+ Permission.ProjectMember,
1091
+ Permission.Viewer,
1092
+ Permission.SettingsAdmin,
1093
+ Permission.SettingsMember,
1094
+ Permission.SettingsViewer,
1095
+ Permission.ReadDatabaseServer,
1096
+ ],
1097
+ update: [],
1098
+ }),
1099
+ TableColumn({
1100
+ required: false,
1101
+ type: TableColumnType.Date,
1102
+ title: "Manually Restored At",
1103
+ description: "When a person last restored this database from the archive. Automatic archiving leaves it alone until it is seen again or a grace period passes.",
1104
+ }),
1105
+ Column({
1106
+ nullable: true,
1107
+ type: ColumnType.Date,
1108
+ }),
1109
+ __metadata("design:type", Date)
1110
+ ], DatabaseServer.prototype, "manuallyRestoredAt", void 0);
1111
+ __decorate([
1112
+ ColumnAccessControl({
1113
+ create: [],
1114
+ read: [
1115
+ Permission.ProjectOwner,
1116
+ Permission.ProjectAdmin,
1117
+ Permission.ProjectMember,
1118
+ Permission.Viewer,
1119
+ Permission.SettingsAdmin,
1120
+ Permission.SettingsMember,
1121
+ Permission.SettingsViewer,
1122
+ Permission.ReadDatabaseServer,
1123
+ ],
1124
+ update: [],
1125
+ }),
1126
+ TableColumn({
1127
+ required: false,
1128
+ type: TableColumnType.ShortText,
1129
+ title: "Database Engine Source",
1130
+ description: "What the database engine was last determined from: manual, collector, container or client-spans. Stronger evidence may correct the engine; weaker evidence never changes it.",
1131
+ example: "container",
1132
+ }),
1133
+ Column({
1134
+ nullable: true,
1135
+ type: ColumnType.ShortText,
1136
+ length: ColumnLength.ShortText,
1137
+ }),
1138
+ __metadata("design:type", String)
1139
+ ], DatabaseServer.prototype, "dbSystemSource", void 0);
1140
+ __decorate([
1141
+ ColumnAccessControl({
1142
+ create: [],
1143
+ read: [
1144
+ Permission.ProjectOwner,
1145
+ Permission.ProjectAdmin,
1146
+ Permission.ProjectMember,
1147
+ Permission.Viewer,
1148
+ Permission.SettingsAdmin,
1149
+ Permission.SettingsMember,
1150
+ Permission.SettingsViewer,
1151
+ Permission.ReadDatabaseServer,
1152
+ ],
1153
+ update: [],
1154
+ }),
1155
+ TableColumn({
1156
+ required: false,
1157
+ type: TableColumnType.Date,
1158
+ title: "Workload Last Seen At",
1159
+ description: "When Kubernetes, Docker or Podman discovery last saw the workload this database runs as. Empty for a database that is not a discovered workload.",
1160
+ }),
1161
+ Column({
1162
+ nullable: true,
1163
+ type: ColumnType.Date,
1164
+ }),
1165
+ __metadata("design:type", Date)
1166
+ ], DatabaseServer.prototype, "workloadLastSeenAt", void 0);
1167
+ __decorate([
1168
+ ColumnAccessControl({
1169
+ create: [],
1170
+ read: [
1171
+ Permission.ProjectOwner,
1172
+ Permission.ProjectAdmin,
1173
+ Permission.ProjectMember,
1174
+ Permission.Viewer,
1175
+ Permission.SettingsAdmin,
1176
+ Permission.SettingsMember,
1177
+ Permission.SettingsViewer,
1178
+ Permission.ReadDatabaseServer,
1179
+ ],
1180
+ update: [],
1181
+ }),
1182
+ TableColumn({
1183
+ required: false,
1184
+ type: TableColumnType.JSON,
1185
+ title: "Automatic Assignments",
1186
+ description: "Label and owner ids that label rules, owner rules or telemetry attached automatically. Maintained by OneUptime.",
1187
+ }),
1188
+ Column({
1189
+ type: ColumnType.JSON,
1190
+ nullable: true,
1191
+ }),
1192
+ __metadata("design:type", Object)
1193
+ ], DatabaseServer.prototype, "automaticAssignments", void 0);
1194
+ __decorate([
1195
+ ColumnAccessControl({
1196
+ create: [
1197
+ Permission.ProjectOwner,
1198
+ Permission.ProjectAdmin,
1199
+ Permission.ProjectMember,
1200
+ Permission.SettingsAdmin,
1201
+ Permission.SettingsMember,
1202
+ Permission.CreateDatabaseServer,
1203
+ ],
1204
+ read: [
1205
+ Permission.ProjectOwner,
1206
+ Permission.ProjectAdmin,
1207
+ Permission.ProjectMember,
1208
+ Permission.Viewer,
1209
+ Permission.SettingsAdmin,
1210
+ Permission.SettingsMember,
1211
+ Permission.SettingsViewer,
1212
+ Permission.ReadDatabaseServer,
1213
+ ],
1214
+ update: [],
1215
+ }),
1216
+ TableColumn({
1217
+ manyToOneRelationColumn: "createdByUserId",
1218
+ type: TableColumnType.Entity,
1219
+ modelType: User,
1220
+ title: "Created by User",
1221
+ description: "Relation to User who created this object (if this object was created by a User)",
1222
+ }),
1223
+ ManyToOne(() => {
1224
+ return User;
1225
+ }, {
1226
+ eager: false,
1227
+ nullable: true,
1228
+ onDelete: "SET NULL",
1229
+ orphanedRowAction: "nullify",
1230
+ }),
1231
+ JoinColumn({ name: "createdByUserId" }),
1232
+ __metadata("design:type", User)
1233
+ ], DatabaseServer.prototype, "createdByUser", void 0);
1234
+ __decorate([
1235
+ ColumnAccessControl({
1236
+ create: [
1237
+ Permission.ProjectOwner,
1238
+ Permission.ProjectAdmin,
1239
+ Permission.ProjectMember,
1240
+ Permission.SettingsAdmin,
1241
+ Permission.SettingsMember,
1242
+ Permission.CreateDatabaseServer,
1243
+ ],
1244
+ read: [
1245
+ Permission.ProjectOwner,
1246
+ Permission.ProjectAdmin,
1247
+ Permission.ProjectMember,
1248
+ Permission.Viewer,
1249
+ Permission.SettingsAdmin,
1250
+ Permission.SettingsMember,
1251
+ Permission.SettingsViewer,
1252
+ Permission.ReadDatabaseServer,
1253
+ ],
1254
+ update: [],
1255
+ }),
1256
+ TableColumn({
1257
+ type: TableColumnType.ObjectID,
1258
+ title: "Created by User ID",
1259
+ description: "User ID who created this object (if this object was created by a User)",
1260
+ }),
1261
+ Column({
1262
+ type: ColumnType.ObjectID,
1263
+ nullable: true,
1264
+ transformer: ObjectID.getDatabaseTransformer(),
1265
+ }),
1266
+ __metadata("design:type", ObjectID)
1267
+ ], DatabaseServer.prototype, "createdByUserId", void 0);
1268
+ __decorate([
1269
+ ColumnAccessControl({
1270
+ create: [
1271
+ Permission.ProjectOwner,
1272
+ Permission.ProjectAdmin,
1273
+ Permission.ProjectMember,
1274
+ Permission.SettingsAdmin,
1275
+ Permission.SettingsMember,
1276
+ Permission.CreateDatabaseServer,
1277
+ ],
1278
+ read: [
1279
+ Permission.ProjectOwner,
1280
+ Permission.ProjectAdmin,
1281
+ Permission.ProjectMember,
1282
+ Permission.Viewer,
1283
+ Permission.SettingsAdmin,
1284
+ Permission.SettingsMember,
1285
+ Permission.SettingsViewer,
1286
+ Permission.ReadDatabaseServer,
1287
+ ],
1288
+ update: [
1289
+ Permission.ProjectOwner,
1290
+ Permission.ProjectAdmin,
1291
+ Permission.ProjectMember,
1292
+ Permission.SettingsAdmin,
1293
+ Permission.SettingsMember,
1294
+ Permission.EditDatabaseServer,
1295
+ ],
1296
+ }),
1297
+ TableColumn({
1298
+ isDefaultValueColumn: true,
1299
+ required: true,
1300
+ type: TableColumnType.Boolean,
1301
+ title: "Is Archived",
1302
+ description: "Is this database archived? Archived databases are hidden from lists but keep collecting telemetry.",
1303
+ defaultValue: false,
1304
+ }),
1305
+ Column({
1306
+ type: ColumnType.Boolean,
1307
+ nullable: false,
1308
+ default: false,
1309
+ }),
1310
+ __metadata("design:type", Boolean)
1311
+ ], DatabaseServer.prototype, "isArchived", void 0);
1312
+ __decorate([
1313
+ ColumnAccessControl({
1314
+ create: [],
1315
+ read: [
1316
+ Permission.ProjectOwner,
1317
+ Permission.ProjectAdmin,
1318
+ Permission.ProjectMember,
1319
+ Permission.Viewer,
1320
+ Permission.SettingsAdmin,
1321
+ Permission.SettingsMember,
1322
+ Permission.SettingsViewer,
1323
+ Permission.ReadDatabaseServer,
1324
+ ],
1325
+ update: [],
1326
+ }),
1327
+ TableColumn({
1328
+ required: false,
1329
+ type: TableColumnType.Date,
1330
+ title: "Archived At",
1331
+ description: "When was this database archived?",
1332
+ }),
1333
+ Column({
1334
+ type: ColumnType.Date,
1335
+ nullable: true,
1336
+ }),
1337
+ __metadata("design:type", Date)
1338
+ ], DatabaseServer.prototype, "archivedAt", void 0);
1339
+ __decorate([
1340
+ ColumnAccessControl({
1341
+ create: [],
1342
+ read: [
1343
+ Permission.ProjectOwner,
1344
+ Permission.ProjectAdmin,
1345
+ Permission.ProjectMember,
1346
+ Permission.Viewer,
1347
+ Permission.SettingsAdmin,
1348
+ Permission.SettingsMember,
1349
+ Permission.SettingsViewer,
1350
+ Permission.ReadDatabaseServer,
1351
+ ],
1352
+ update: [],
1353
+ }),
1354
+ TableColumn({
1355
+ manyToOneRelationColumn: "archivedByUserId",
1356
+ type: TableColumnType.Entity,
1357
+ modelType: User,
1358
+ title: "Archived by User",
1359
+ description: "Relation to User who archived this object (if this object was archived by a User)",
1360
+ }),
1361
+ ManyToOne(() => {
1362
+ return User;
1363
+ }, {
1364
+ eager: false,
1365
+ nullable: true,
1366
+ onDelete: "SET NULL",
1367
+ orphanedRowAction: "nullify",
1368
+ }),
1369
+ JoinColumn({ name: "archivedByUserId" }),
1370
+ __metadata("design:type", User)
1371
+ ], DatabaseServer.prototype, "archivedByUser", void 0);
1372
+ __decorate([
1373
+ ColumnAccessControl({
1374
+ create: [],
1375
+ read: [
1376
+ Permission.ProjectOwner,
1377
+ Permission.ProjectAdmin,
1378
+ Permission.ProjectMember,
1379
+ Permission.Viewer,
1380
+ Permission.SettingsAdmin,
1381
+ Permission.SettingsMember,
1382
+ Permission.SettingsViewer,
1383
+ Permission.ReadDatabaseServer,
1384
+ ],
1385
+ update: [],
1386
+ }),
1387
+ TableColumn({
1388
+ type: TableColumnType.ObjectID,
1389
+ title: "Archived by User ID",
1390
+ description: "User ID who archived this object (if this object was archived by a User)",
1391
+ }),
1392
+ Column({
1393
+ type: ColumnType.ObjectID,
1394
+ nullable: true,
1395
+ transformer: ObjectID.getDatabaseTransformer(),
1396
+ }),
1397
+ __metadata("design:type", ObjectID)
1398
+ ], DatabaseServer.prototype, "archivedByUserId", void 0);
1399
+ __decorate([
1400
+ ColumnAccessControl({
1401
+ create: [],
1402
+ read: [
1403
+ Permission.ProjectOwner,
1404
+ Permission.ProjectAdmin,
1405
+ Permission.ProjectMember,
1406
+ Permission.Viewer,
1407
+ Permission.SettingsAdmin,
1408
+ Permission.SettingsMember,
1409
+ Permission.SettingsViewer,
1410
+ Permission.ReadDatabaseServer,
1411
+ ],
1412
+ update: [],
1413
+ }),
1414
+ TableColumn({
1415
+ manyToOneRelationColumn: "deletedByUserId",
1416
+ type: TableColumnType.Entity,
1417
+ title: "Deleted by User",
1418
+ modelType: User,
1419
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
1420
+ }),
1421
+ ManyToOne(() => {
1422
+ return User;
1423
+ }, {
1424
+ cascade: false,
1425
+ eager: false,
1426
+ nullable: true,
1427
+ onDelete: "SET NULL",
1428
+ orphanedRowAction: "nullify",
1429
+ }),
1430
+ JoinColumn({ name: "deletedByUserId" }),
1431
+ __metadata("design:type", User)
1432
+ ], DatabaseServer.prototype, "deletedByUser", void 0);
1433
+ __decorate([
1434
+ ColumnAccessControl({
1435
+ create: [],
1436
+ read: [
1437
+ Permission.ProjectOwner,
1438
+ Permission.ProjectAdmin,
1439
+ Permission.ProjectMember,
1440
+ Permission.Viewer,
1441
+ Permission.SettingsAdmin,
1442
+ Permission.SettingsMember,
1443
+ Permission.SettingsViewer,
1444
+ Permission.ReadDatabaseServer,
1445
+ ],
1446
+ update: [],
1447
+ }),
1448
+ TableColumn({
1449
+ type: TableColumnType.ObjectID,
1450
+ title: "Deleted by User ID",
1451
+ description: "User ID who deleted this object (if this object was deleted by a User)",
1452
+ }),
1453
+ Column({
1454
+ type: ColumnType.ObjectID,
1455
+ nullable: true,
1456
+ transformer: ObjectID.getDatabaseTransformer(),
1457
+ }),
1458
+ __metadata("design:type", ObjectID)
1459
+ ], DatabaseServer.prototype, "deletedByUserId", void 0);
1460
+ __decorate([
1461
+ ColumnAccessControl({
1462
+ create: [
1463
+ Permission.ProjectOwner,
1464
+ Permission.ProjectAdmin,
1465
+ Permission.ProjectMember,
1466
+ Permission.SettingsAdmin,
1467
+ Permission.SettingsMember,
1468
+ Permission.CreateDatabaseServer,
1469
+ ],
1470
+ read: [
1471
+ Permission.ProjectOwner,
1472
+ Permission.ProjectAdmin,
1473
+ Permission.ProjectMember,
1474
+ Permission.Viewer,
1475
+ Permission.SettingsAdmin,
1476
+ Permission.SettingsMember,
1477
+ Permission.SettingsViewer,
1478
+ Permission.ReadDatabaseServer,
1479
+ ],
1480
+ update: [
1481
+ Permission.ProjectOwner,
1482
+ Permission.ProjectAdmin,
1483
+ Permission.ProjectMember,
1484
+ Permission.SettingsAdmin,
1485
+ Permission.SettingsMember,
1486
+ Permission.EditDatabaseServer,
1487
+ ],
1488
+ }),
1489
+ TableColumn({
1490
+ required: false,
1491
+ type: TableColumnType.EntityArray,
1492
+ modelType: Label,
1493
+ title: "Labels",
1494
+ description: "Relation to Labels Array where this object is categorized in.",
1495
+ }),
1496
+ ManyToMany(() => {
1497
+ return Label;
1498
+ }, { eager: false }),
1499
+ JoinTable({
1500
+ name: "DatabaseServerLabel",
1501
+ inverseJoinColumn: {
1502
+ name: "labelId",
1503
+ referencedColumnName: "_id",
1504
+ },
1505
+ joinColumn: {
1506
+ name: "databaseServerId",
1507
+ referencedColumnName: "_id",
1508
+ },
1509
+ }),
1510
+ __metadata("design:type", Array)
1511
+ ], DatabaseServer.prototype, "labels", void 0);
1512
+ __decorate([
1513
+ ColumnAccessControl({
1514
+ create: [
1515
+ Permission.ProjectOwner,
1516
+ Permission.ProjectAdmin,
1517
+ Permission.ProjectMember,
1518
+ Permission.SettingsAdmin,
1519
+ Permission.SettingsMember,
1520
+ Permission.CreateDatabaseServer,
1521
+ ],
1522
+ read: [
1523
+ Permission.ProjectOwner,
1524
+ Permission.ProjectAdmin,
1525
+ Permission.ProjectMember,
1526
+ Permission.Viewer,
1527
+ Permission.SettingsAdmin,
1528
+ Permission.SettingsMember,
1529
+ Permission.SettingsViewer,
1530
+ Permission.ReadDatabaseServer,
1531
+ ],
1532
+ update: [
1533
+ Permission.ProjectOwner,
1534
+ Permission.ProjectAdmin,
1535
+ Permission.ProjectMember,
1536
+ Permission.SettingsAdmin,
1537
+ Permission.SettingsMember,
1538
+ Permission.EditDatabaseServer,
1539
+ ],
1540
+ }),
1541
+ TableColumn({
1542
+ type: TableColumnType.Number,
1543
+ title: "Retain Telemetry Data For Days",
1544
+ description: "Number of days to retain telemetry collected from this database by a collector / agent. Leave blank to use the project-wide default.",
1545
+ }),
1546
+ Column({
1547
+ type: ColumnType.Number,
1548
+ nullable: true,
1549
+ unique: false,
1550
+ }),
1551
+ __metadata("design:type", Number)
1552
+ ], DatabaseServer.prototype, "retainTelemetryDataForDays", void 0);
1553
+ __decorate([
1554
+ ColumnAccessControl({
1555
+ create: [
1556
+ Permission.ProjectOwner,
1557
+ Permission.ProjectAdmin,
1558
+ Permission.ProjectMember,
1559
+ Permission.SettingsAdmin,
1560
+ Permission.SettingsMember,
1561
+ Permission.CreateDatabaseServer,
1562
+ ],
1563
+ read: [
1564
+ Permission.ProjectOwner,
1565
+ Permission.ProjectAdmin,
1566
+ Permission.ProjectMember,
1567
+ Permission.Viewer,
1568
+ Permission.SettingsAdmin,
1569
+ Permission.SettingsMember,
1570
+ Permission.SettingsViewer,
1571
+ Permission.ReadDatabaseServer,
1572
+ ],
1573
+ update: [
1574
+ Permission.ProjectOwner,
1575
+ Permission.ProjectAdmin,
1576
+ Permission.ProjectMember,
1577
+ Permission.SettingsAdmin,
1578
+ Permission.SettingsMember,
1579
+ Permission.EditDatabaseServer,
1580
+ ],
1581
+ }),
1582
+ TableColumn({
1583
+ type: TableColumnType.JSON,
1584
+ required: false,
1585
+ title: "Telemetry Data Retention Overrides",
1586
+ description: "Per-pillar retention overrides for telemetry collected from this database by a collector / agent (logs by severity, traces by status, metrics, profiles). Unset fields fall back to the database default, then the project's retention settings.",
1587
+ }),
1588
+ Column({
1589
+ type: ColumnType.JSON,
1590
+ nullable: true,
1591
+ }),
1592
+ __metadata("design:type", Object)
1593
+ ], DatabaseServer.prototype, "telemetryRetentionConfig", void 0);
1594
+ DatabaseServer = __decorate([
1595
+ AccessControlColumn("labels"),
1596
+ EnableDocumentation(),
1597
+ TenantColumn("projectId"),
1598
+ TableAccessControl({
1599
+ create: [
1600
+ Permission.ProjectOwner,
1601
+ Permission.ProjectAdmin,
1602
+ Permission.ProjectMember,
1603
+ Permission.SettingsAdmin,
1604
+ Permission.SettingsMember,
1605
+ Permission.CreateDatabaseServer,
1606
+ ],
1607
+ read: [
1608
+ Permission.ProjectOwner,
1609
+ Permission.ProjectAdmin,
1610
+ Permission.ProjectMember,
1611
+ Permission.Viewer,
1612
+ Permission.SettingsAdmin,
1613
+ Permission.SettingsMember,
1614
+ Permission.SettingsViewer,
1615
+ Permission.ReadDatabaseServer,
1616
+ ],
1617
+ delete: [
1618
+ Permission.ProjectOwner,
1619
+ Permission.ProjectAdmin,
1620
+ Permission.ProjectMember,
1621
+ Permission.SettingsAdmin,
1622
+ Permission.SettingsMember,
1623
+ Permission.DeleteDatabaseServer,
1624
+ ],
1625
+ update: [
1626
+ Permission.ProjectOwner,
1627
+ Permission.ProjectAdmin,
1628
+ Permission.ProjectMember,
1629
+ Permission.SettingsAdmin,
1630
+ Permission.SettingsMember,
1631
+ Permission.EditDatabaseServer,
1632
+ ],
1633
+ }),
1634
+ CrudApiEndpoint(new Route("/database-server")),
1635
+ SlugifyColumn("name", "slug")
1636
+ /*
1637
+ * DB-level identity guard. Every discovery path find-or-creates by
1638
+ * databaseIdentifier ("<family>|<endpoint>" or the workload form - the
1639
+ * engine FAMILY, so a fork such as MariaDB keys as mysql), and several
1640
+ * ingest pods / worker runs can race on the same database - only this index
1641
+ * collapses them into one row. The display name is deliberately NOT unique:
1642
+ * two engines can legitimately share a host name.
1643
+ */
1644
+ ,
1645
+ Index(["projectId", "databaseIdentifier"], { unique: true }),
1646
+ Index(["projectId", "isArchived"]),
1647
+ Index(["projectId", "dbSystem"])
1648
+ /*
1649
+ * Named for the same reason as IDX_ceph_cluster_slug: TypeORM's schema
1650
+ * builder matches database indexes to entity metadata by name and drops every
1651
+ * one it cannot find, so a partial unique index must be declared here, by
1652
+ * name, to survive the next generated migration.
1653
+ */
1654
+ ,
1655
+ Index("IDX_database_server_slug", ["slug"], {
1656
+ unique: true,
1657
+ where: '"deletedAt" IS NULL',
1658
+ })
1659
+ /*
1660
+ * One row per discovered workload (Kubernetes StatefulSet / Deployment /
1661
+ * operator cluster, Docker / Podman container group). Partial so the many
1662
+ * endpoint-only rows (NULL workloadIdentifier) never collide, and so an
1663
+ * adopted row keeps being found by its workload after the discovery worker
1664
+ * sets the column on it.
1665
+ */
1666
+ ,
1667
+ Index("IDX_database_server_workload", ["projectId", "workloadIdentifier"], {
1668
+ unique: true,
1669
+ where: '"workloadIdentifier" IS NOT NULL AND "deletedAt" IS NULL',
1670
+ }),
1671
+ TableMetadata({
1672
+ tableName: "DatabaseServer",
1673
+ singularName: "Database",
1674
+ pluralName: "Databases",
1675
+ icon: IconProp.Database,
1676
+ tableDescription: "Database servers this project runs or talks to. Each database is discovered from OpenTelemetry Collector database receivers, from database calls in application traces, from database workloads on monitored Kubernetes clusters and Docker / Podman hosts, or added manually.",
1677
+ }),
1678
+ Entity({
1679
+ name: "DatabaseServer",
1680
+ })
1681
+ ], DatabaseServer);
1682
+ export default DatabaseServer;
1683
+ //# sourceMappingURL=DatabaseServer.js.map