@oneuptime/common 10.8.2 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. package/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.ts +16 -18
  2. package/Models/AnalyticsModels/AuditLog.ts +3 -1
  3. package/Models/AnalyticsModels/ExceptionInstance.ts +200 -82
  4. package/Models/AnalyticsModels/Index.ts +7 -2
  5. package/Models/AnalyticsModels/Log.ts +197 -81
  6. package/Models/AnalyticsModels/Metric.ts +199 -86
  7. package/Models/AnalyticsModels/MetricBaselineHourly.ts +44 -25
  8. package/Models/AnalyticsModels/MetricItemAggMV1m.ts +23 -20
  9. package/Models/AnalyticsModels/{MetricItemAggMV1mByHost.ts → MetricItemAggMV1mByHostV2.ts} +58 -47
  10. package/Models/AnalyticsModels/MonitorLog.ts +5 -1
  11. package/Models/AnalyticsModels/Profile.ts +206 -85
  12. package/Models/AnalyticsModels/ProfileSample.ts +196 -83
  13. package/Models/AnalyticsModels/Span.ts +218 -85
  14. package/Models/DatabaseModels/Index.ts +4 -0
  15. package/Models/DatabaseModels/Service.ts +29 -0
  16. package/Models/DatabaseModels/TelemetryEntity.ts +393 -0
  17. package/Models/DatabaseModels/TelemetryEntityRelationship.ts +294 -0
  18. package/Models/DatabaseModels/TelemetryException.ts +10 -10
  19. package/Models/DatabaseModels/TelemetryUsageBilling.ts +5 -5
  20. package/Server/API/AIAgentDataAPI.ts +13 -12
  21. package/Server/API/DashboardAPI.ts +2 -2
  22. package/Server/API/TelemetryAPI.ts +656 -141
  23. package/Server/API/TelemetryExceptionAPI.ts +2 -2
  24. package/Server/Infrastructure/ClickhouseConfig.ts +12 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.ts +48 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.ts +70 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.ts +57 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.ts +207 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.ts +24 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.ts +25 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  32. package/Server/Infrastructure/Queue.ts +36 -3
  33. package/Server/Middleware/TelemetryIngest.ts +27 -22
  34. package/Server/Services/AlertService.ts +9 -9
  35. package/Server/Services/AnalyticsDatabaseService.ts +204 -35
  36. package/Server/Services/ExceptionAggregationService.ts +41 -18
  37. package/Server/Services/HostService.ts +2 -1
  38. package/Server/Services/IncidentService.ts +19 -19
  39. package/Server/Services/Index.ts +6 -2
  40. package/Server/Services/LogAggregationService.ts +116 -43
  41. package/Server/Services/MetricAggregationService.ts +29 -14
  42. package/Server/Services/MetricBaselineService.ts +34 -34
  43. package/Server/Services/MetricItemAggMV1mByHostV2Service.ts +30 -0
  44. package/Server/Services/MetricService.ts +119 -31
  45. package/Server/Services/OpenTelemetryIngestService.ts +186 -50
  46. package/Server/Services/ProfileAggregationService.ts +904 -126
  47. package/Server/Services/ServiceService.ts +6 -0
  48. package/Server/Services/SpanService.ts +274 -14
  49. package/Server/Services/TelemetryEntityRelationshipService.ts +71 -0
  50. package/Server/Services/TelemetryEntityService.ts +246 -0
  51. package/Server/Services/TelemetryExceptionService.ts +27 -23
  52. package/Server/Services/TelemetryUsageBillingService.ts +38 -31
  53. package/Server/Services/TraceAggregationService.ts +875 -43
  54. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +43 -2
  55. package/Server/Types/Database/Permissions/AccessControlPermission.ts +47 -2
  56. package/Server/Types/Database/Permissions/BasePermission.ts +37 -1
  57. package/Server/Types/Database/Permissions/OwnedScopePermission.ts +21 -3
  58. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +1 -0
  59. package/Server/Types/Database/QueryHelper.ts +41 -0
  60. package/Server/Utils/Alert/AlertPrivacyFilter.ts +9 -2
  61. package/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.ts +9 -2
  62. package/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.ts +95 -0
  63. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +133 -0
  64. package/Server/Utils/Incident/IncidentPrivacyFilter.ts +9 -2
  65. package/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.ts +9 -2
  66. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +1 -1
  67. package/Server/Utils/Monitor/MonitorLogUtil.ts +1 -2
  68. package/Server/Utils/Monitor/MonitorMetricUtil.ts +3 -4
  69. package/Server/Utils/PrivacyFilterUtil.ts +72 -0
  70. package/Server/Utils/Profile/PprofEncoder.ts +135 -11
  71. package/Server/Utils/Telemetry/EntityRegistry.ts +316 -0
  72. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +5 -0
  73. package/Server/Utils/Telemetry/TelemetryEntity.ts +783 -0
  74. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +79 -4
  75. package/Tests/Server/Services/LogAggregationService.test.ts +7 -2
  76. package/Tests/Server/Services/ProfileAggregationService.test.ts +280 -0
  77. package/Tests/Server/Services/ProfileBreakdown.test.ts +161 -0
  78. package/Tests/Server/Services/ProfileFunctionFocus.test.ts +349 -0
  79. package/Tests/Server/Services/TelemetryAttributeService.test.ts +1 -1
  80. package/Tests/Server/Services/TraceAggregationService.test.ts +403 -0
  81. package/Tests/Server/Types/AnalyticsDatabase/ModelPermissionOwnedScope.test.ts +114 -0
  82. package/Tests/Server/Types/Database/Permissions/AccessControlPermission.test.ts +189 -0
  83. package/Tests/Server/Types/Database/Permissions/BasePermission.test.ts +118 -0
  84. package/Tests/Server/Types/Database/Permissions/OwnedScopePermission.test.ts +159 -0
  85. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +275 -8
  86. package/Tests/Server/Utils/PrivacyFilterUtil.test.ts +177 -0
  87. package/Tests/Server/Utils/Profile/PprofEncoder.test.ts +276 -0
  88. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +761 -0
  89. package/Tests/Types/Monitor/MonitorStepEntityScope.test.ts +275 -0
  90. package/Tests/Types/Text.test.ts +52 -0
  91. package/Tests/Utils/ModelImportExport.test.ts +366 -0
  92. package/Tests/Utils/Telemetry/EntityKey.test.ts +150 -0
  93. package/Tests/Utils/Telemetry/EntityKeySqlParity.test.ts +40 -0
  94. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +150 -0
  95. package/Tests/Utils/UUID.test.ts +47 -0
  96. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +14 -9
  97. package/Types/AnalyticsDatabase/TableColumnType.ts +1 -0
  98. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  99. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +37 -0
  100. package/Types/Dashboard/DashboardTemplates.ts +4 -5
  101. package/Types/Log/LogQueryParser.ts +2 -2
  102. package/Types/Log/LogQueryToFilter.ts +2 -2
  103. package/Types/Monitor/MonitorStepExceptionMonitor.ts +19 -1
  104. package/Types/Monitor/MonitorStepLogMonitor.ts +20 -1
  105. package/Types/Monitor/MonitorStepMetricMonitor.ts +27 -0
  106. package/Types/Monitor/MonitorStepProfileMonitor.ts +19 -1
  107. package/Types/Monitor/MonitorStepTraceMonitor.ts +18 -1
  108. package/Types/Monitor/MonitorType.ts +8 -1
  109. package/Types/ObjectID.ts +10 -0
  110. package/Types/Telemetry/EntityRelationshipType.ts +31 -0
  111. package/Types/Telemetry/EntityType.ts +33 -0
  112. package/Types/Telemetry/TelemetrySavedViewState.ts +2 -0
  113. package/Types/Text.ts +34 -0
  114. package/Types/Trace/TraceAggregationType.ts +1 -0
  115. package/Types/Trace/TraceRecordingRuleDefinition.ts +74 -0
  116. package/UI/Components/ImportExport/ExportModelCard.tsx +90 -0
  117. package/UI/Components/ImportExport/ImportModelsModal.tsx +239 -0
  118. package/UI/Components/LogsViewer/LogsViewer.tsx +12 -9
  119. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +10 -9
  120. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +1 -1
  121. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +2 -2
  122. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +4 -4
  123. package/UI/Components/LogsViewer/components/LogsTable.tsx +5 -3
  124. package/UI/Components/ModelTable/ModelTable.tsx +294 -143
  125. package/UI/Components/Navbar/NavBarMenuModal.tsx +81 -44
  126. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +33 -10
  127. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +18 -3
  128. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +91 -68
  129. package/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.tsx +9 -2
  130. package/UI/Utils/LogExport.ts +2 -2
  131. package/UI/Utils/ModelImportExport.ts +207 -0
  132. package/UI/Utils/TelemetryService.ts +20 -20
  133. package/Utils/Dashboard/Components/DashboardTraceChartComponent.ts +134 -0
  134. package/Utils/Dashboard/Components/Index.ts +7 -0
  135. package/Utils/ModelImportExport.ts +369 -0
  136. package/Utils/Telemetry/EntityKey.ts +151 -0
  137. package/Utils/Telemetry/EntityRelationship.ts +113 -0
  138. package/Utils/Traces/CriticalPath.ts +7 -7
  139. package/Utils/UUID.ts +57 -0
  140. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js +14 -13
  141. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -1
  142. package/build/dist/Models/AnalyticsModels/AuditLog.js +2 -1
  143. package/build/dist/Models/AnalyticsModels/AuditLog.js.map +1 -1
  144. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +125 -22
  145. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  146. package/build/dist/Models/AnalyticsModels/Index.js +7 -2
  147. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  148. package/build/dist/Models/AnalyticsModels/Log.js +123 -22
  149. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  150. package/build/dist/Models/AnalyticsModels/Metric.js +125 -27
  151. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  152. package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js +38 -21
  153. package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js.map +1 -1
  154. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js +17 -16
  155. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js.map +1 -1
  156. package/build/dist/Models/AnalyticsModels/{MetricItemAggMV1mByHost.js → MetricItemAggMV1mByHostV2.js} +54 -42
  157. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHostV2.js.map +1 -0
  158. package/build/dist/Models/AnalyticsModels/MonitorLog.js +4 -1
  159. package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
  160. package/build/dist/Models/AnalyticsModels/Profile.js +132 -26
  161. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  162. package/build/dist/Models/AnalyticsModels/ProfileSample.js +121 -23
  163. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
  164. package/build/dist/Models/AnalyticsModels/Span.js +144 -26
  165. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  166. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  167. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  168. package/build/dist/Models/DatabaseModels/Service.js +30 -0
  169. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  170. package/build/dist/Models/DatabaseModels/TelemetryEntity.js +419 -0
  171. package/build/dist/Models/DatabaseModels/TelemetryEntity.js.map +1 -0
  172. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js +317 -0
  173. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js.map +1 -0
  174. package/build/dist/Models/DatabaseModels/TelemetryException.js +12 -12
  175. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  176. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +7 -7
  177. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
  178. package/build/dist/Server/API/AIAgentDataAPI.js +14 -13
  179. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  180. package/build/dist/Server/API/DashboardAPI.js +2 -2
  181. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  182. package/build/dist/Server/API/TelemetryAPI.js +425 -129
  183. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  184. package/build/dist/Server/API/TelemetryExceptionAPI.js +2 -2
  185. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  186. package/build/dist/Server/Infrastructure/ClickhouseConfig.js +12 -0
  187. package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
  188. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js +29 -0
  189. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js.map +1 -0
  190. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js +38 -0
  191. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js.map +1 -0
  192. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js +33 -0
  193. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js.map +1 -0
  194. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js +78 -0
  195. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js.map +1 -0
  196. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js +19 -0
  197. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js.map +1 -0
  198. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js +18 -0
  199. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js.map +1 -0
  200. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  201. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  202. package/build/dist/Server/Infrastructure/Queue.js +14 -3
  203. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  204. package/build/dist/Server/Middleware/TelemetryIngest.js +16 -18
  205. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  206. package/build/dist/Server/Services/AlertService.js +9 -9
  207. package/build/dist/Server/Services/AlertService.js.map +1 -1
  208. package/build/dist/Server/Services/AnalyticsDatabaseService.js +115 -40
  209. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  210. package/build/dist/Server/Services/ExceptionAggregationService.js +38 -18
  211. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  212. package/build/dist/Server/Services/HostService.js +2 -1
  213. package/build/dist/Server/Services/HostService.js.map +1 -1
  214. package/build/dist/Server/Services/IncidentService.js +19 -19
  215. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  216. package/build/dist/Server/Services/Index.js +6 -2
  217. package/build/dist/Server/Services/Index.js.map +1 -1
  218. package/build/dist/Server/Services/LogAggregationService.js +100 -42
  219. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  220. package/build/dist/Server/Services/MetricAggregationService.js +27 -14
  221. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  222. package/build/dist/Server/Services/MetricBaselineService.js +28 -28
  223. package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
  224. package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js +28 -0
  225. package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js.map +1 -0
  226. package/build/dist/Server/Services/MetricService.js +116 -31
  227. package/build/dist/Server/Services/MetricService.js.map +1 -1
  228. package/build/dist/Server/Services/OpenTelemetryIngestService.js +103 -36
  229. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  230. package/build/dist/Server/Services/ProfileAggregationService.js +613 -105
  231. package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -1
  232. package/build/dist/Server/Services/ServiceService.js +9 -5
  233. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  234. package/build/dist/Server/Services/SpanService.js +217 -15
  235. package/build/dist/Server/Services/SpanService.js.map +1 -1
  236. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +72 -0
  237. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -0
  238. package/build/dist/Server/Services/TelemetryEntityService.js +201 -0
  239. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -0
  240. package/build/dist/Server/Services/TelemetryExceptionService.js +18 -18
  241. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  242. package/build/dist/Server/Services/TelemetryUsageBillingService.js +27 -21
  243. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  244. package/build/dist/Server/Services/TraceAggregationService.js +568 -43
  245. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  246. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +38 -2
  247. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  248. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +36 -2
  249. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js.map +1 -1
  250. package/build/dist/Server/Types/Database/Permissions/BasePermission.js +25 -1
  251. package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
  252. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +17 -3
  253. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
  254. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +1 -0
  255. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  256. package/build/dist/Server/Types/Database/QueryHelper.js +31 -0
  257. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  258. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js +3 -2
  259. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js.map +1 -1
  260. package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js +3 -2
  261. package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js.map +1 -1
  262. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js +46 -0
  263. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js.map +1 -0
  264. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +97 -3
  265. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  266. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js +3 -2
  267. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js.map +1 -1
  268. package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js +3 -2
  269. package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js.map +1 -1
  270. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +1 -1
  271. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  272. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +1 -2
  273. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -1
  274. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +3 -4
  275. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  276. package/build/dist/Server/Utils/PrivacyFilterUtil.js +47 -0
  277. package/build/dist/Server/Utils/PrivacyFilterUtil.js.map +1 -0
  278. package/build/dist/Server/Utils/Profile/PprofEncoder.js +132 -4
  279. package/build/dist/Server/Utils/Profile/PprofEncoder.js.map +1 -1
  280. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +228 -0
  281. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -0
  282. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +5 -0
  283. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  284. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +569 -0
  285. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -0
  286. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +14 -9
  287. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  288. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js +1 -0
  289. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js.map +1 -1
  290. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  291. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  292. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js +2 -0
  293. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js.map +1 -0
  294. package/build/dist/Types/Dashboard/DashboardTemplates.js +4 -5
  295. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  296. package/build/dist/Types/Log/LogQueryParser.js +2 -2
  297. package/build/dist/Types/Log/LogQueryParser.js.map +1 -1
  298. package/build/dist/Types/Log/LogQueryToFilter.js +1 -1
  299. package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
  300. package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js +9 -1
  301. package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js.map +1 -1
  302. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js +9 -1
  303. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js.map +1 -1
  304. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +13 -0
  305. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
  306. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js +9 -1
  307. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js.map +1 -1
  308. package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js +9 -1
  309. package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js.map +1 -1
  310. package/build/dist/Types/Monitor/MonitorType.js +8 -1
  311. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  312. package/build/dist/Types/ObjectID.js +9 -0
  313. package/build/dist/Types/ObjectID.js.map +1 -1
  314. package/build/dist/Types/Telemetry/EntityRelationshipType.js +32 -0
  315. package/build/dist/Types/Telemetry/EntityRelationshipType.js.map +1 -0
  316. package/build/dist/Types/Telemetry/EntityType.js +34 -0
  317. package/build/dist/Types/Telemetry/EntityType.js.map +1 -0
  318. package/build/dist/Types/Text.js +32 -1
  319. package/build/dist/Types/Text.js.map +1 -1
  320. package/build/dist/Types/Trace/TraceAggregationType.js +1 -0
  321. package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -1
  322. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +50 -1
  323. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -1
  324. package/build/dist/UI/Components/ImportExport/ExportModelCard.js +50 -0
  325. package/build/dist/UI/Components/ImportExport/ExportModelCard.js.map +1 -0
  326. package/build/dist/UI/Components/ImportExport/ImportModelsModal.js +115 -0
  327. package/build/dist/UI/Components/ImportExport/ImportModelsModal.js.map +1 -0
  328. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +10 -9
  329. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  330. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +8 -8
  331. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  332. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +1 -1
  333. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
  334. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +2 -2
  335. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  336. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +4 -4
  337. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  338. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +3 -3
  339. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  340. package/build/dist/UI/Components/ModelTable/ModelTable.js +166 -74
  341. package/build/dist/UI/Components/ModelTable/ModelTable.js.map +1 -1
  342. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +43 -30
  343. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  344. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +6 -2
  345. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  346. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +14 -3
  347. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  348. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +18 -10
  349. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  350. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js +4 -2
  351. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js.map +1 -1
  352. package/build/dist/UI/Utils/LogExport.js +2 -2
  353. package/build/dist/UI/Utils/LogExport.js.map +1 -1
  354. package/build/dist/UI/Utils/ModelImportExport.js +142 -0
  355. package/build/dist/UI/Utils/ModelImportExport.js.map +1 -0
  356. package/build/dist/UI/Utils/TelemetryService.js +16 -16
  357. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  358. package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js +110 -0
  359. package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js.map +1 -0
  360. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  361. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  362. package/build/dist/Utils/ModelImportExport.js +257 -0
  363. package/build/dist/Utils/ModelImportExport.js.map +1 -0
  364. package/build/dist/Utils/Telemetry/EntityKey.js +115 -0
  365. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -0
  366. package/build/dist/Utils/Telemetry/EntityRelationship.js +71 -0
  367. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -0
  368. package/build/dist/Utils/Traces/CriticalPath.js +5 -5
  369. package/build/dist/Utils/Traces/CriticalPath.js.map +1 -1
  370. package/build/dist/Utils/UUID.js +50 -0
  371. package/build/dist/Utils/UUID.js.map +1 -1
  372. package/package.json +2 -1
  373. package/tsconfig.json +10 -1
  374. package/Server/Services/MetricItemAggMV1mByHostService.ts +0 -30
  375. package/Types/Profile/ProfileMetricType.ts +0 -16
  376. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHost.js.map +0 -1
  377. package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js +0 -28
  378. package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js.map +0 -1
  379. package/build/dist/Tests/MockType.js +0 -5
  380. package/build/dist/Tests/MockType.js.map +0 -1
  381. package/build/dist/Tests/Models/AnalyticsModels/Log.test.js +0 -12
  382. package/build/dist/Tests/Models/AnalyticsModels/Log.test.js.map +0 -1
  383. package/build/dist/Tests/Models/File.test.js +0 -10
  384. package/build/dist/Tests/Models/File.test.js.map +0 -1
  385. package/build/dist/Tests/Server/API/BaseAPI.test.js +0 -590
  386. package/build/dist/Tests/Server/API/BaseAPI.test.js.map +0 -1
  387. package/build/dist/Tests/Server/API/Helpers.js +0 -27
  388. package/build/dist/Tests/Server/API/Helpers.js.map +0 -1
  389. package/build/dist/Tests/Server/API/ProbeAPI.test.js +0 -84
  390. package/build/dist/Tests/Server/API/ProbeAPI.test.js.map +0 -1
  391. package/build/dist/Tests/Server/API/ProjectAPI.test.js +0 -170
  392. package/build/dist/Tests/Server/API/ProjectAPI.test.js.map +0 -1
  393. package/build/dist/Tests/Server/API/UserSmsApi.test.js +0 -177
  394. package/build/dist/Tests/Server/API/UserSmsApi.test.js.map +0 -1
  395. package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js +0 -63
  396. package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js.map +0 -1
  397. package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js +0 -58
  398. package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js.map +0 -1
  399. package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js +0 -101
  400. package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js.map +0 -1
  401. package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js +0 -160
  402. package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js.map +0 -1
  403. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +0 -410
  404. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +0 -1
  405. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js +0 -165
  406. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js.map +0 -1
  407. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js +0 -193
  408. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js.map +0 -1
  409. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js +0 -435
  410. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js.map +0 -1
  411. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js +0 -320
  412. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js.map +0 -1
  413. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +0 -266
  414. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +0 -1
  415. package/build/dist/Tests/Server/Services/BillingService.test.js +0 -910
  416. package/build/dist/Tests/Server/Services/BillingService.test.js.map +0 -1
  417. package/build/dist/Tests/Server/Services/LogAggregationService.test.js +0 -75
  418. package/build/dist/Tests/Server/Services/LogAggregationService.test.js.map +0 -1
  419. package/build/dist/Tests/Server/Services/ProbeService.test.js +0 -127
  420. package/build/dist/Tests/Server/Services/ProbeService.test.js.map +0 -1
  421. package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js +0 -114
  422. package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js.map +0 -1
  423. package/build/dist/Tests/Server/Services/TeamMemberService.test.js +0 -106
  424. package/build/dist/Tests/Server/Services/TeamMemberService.test.js.map +0 -1
  425. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js +0 -50
  426. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js.map +0 -1
  427. package/build/dist/Tests/Server/TestingUtils/Init.js +0 -4
  428. package/build/dist/Tests/Server/TestingUtils/Init.js.map +0 -1
  429. package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js +0 -9
  430. package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js.map +0 -1
  431. package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js +0 -16
  432. package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js.map +0 -1
  433. package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js +0 -125
  434. package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js.map +0 -1
  435. package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js +0 -39
  436. package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js.map +0 -1
  437. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js +0 -20
  438. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js.map +0 -1
  439. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js +0 -31
  440. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js.map +0 -1
  441. package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js +0 -14
  442. package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js.map +0 -1
  443. package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js +0 -21
  444. package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js.map +0 -1
  445. package/build/dist/Tests/Server/TestingUtils/Services/Types.js +0 -2
  446. package/build/dist/Tests/Server/TestingUtils/Services/Types.js.map +0 -1
  447. package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js +0 -37
  448. package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js.map +0 -1
  449. package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js +0 -13
  450. package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js.map +0 -1
  451. package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js +0 -22
  452. package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js.map +0 -1
  453. package/build/dist/Tests/Server/Types/Domain.test.js +0 -78
  454. package/build/dist/Tests/Server/Types/Domain.test.js.map +0 -1
  455. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js +0 -94
  456. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js.map +0 -1
  457. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js +0 -459
  458. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js.map +0 -1
  459. package/build/dist/Tests/Server/Utils/Cookie.test.js +0 -83
  460. package/build/dist/Tests/Server/Utils/Cookie.test.js.map +0 -1
  461. package/build/dist/Tests/Server/Utils/CronTab.test.js +0 -29
  462. package/build/dist/Tests/Server/Utils/CronTab.test.js.map +0 -1
  463. package/build/dist/Tests/Server/Utils/JsonToCsv.test.js +0 -114
  464. package/build/dist/Tests/Server/Utils/JsonToCsv.test.js.map +0 -1
  465. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +0 -606
  466. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +0 -1
  467. package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js +0 -255
  468. package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js.map +0 -1
  469. package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js +0 -142
  470. package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js.map +0 -1
  471. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js +0 -122
  472. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js.map +0 -1
  473. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js +0 -0
  474. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js.map +0 -1
  475. package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js +0 -205
  476. package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js.map +0 -1
  477. package/build/dist/Tests/Spy.js +0 -4
  478. package/build/dist/Tests/Spy.js.map +0 -1
  479. package/build/dist/Tests/Types/API/ErrorResponse.test.js +0 -13
  480. package/build/dist/Tests/Types/API/ErrorResponse.test.js.map +0 -1
  481. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js +0 -33
  482. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js.map +0 -1
  483. package/build/dist/Tests/Types/API/HTTPMethod.test.js +0 -16
  484. package/build/dist/Tests/Types/API/HTTPMethod.test.js.map +0 -1
  485. package/build/dist/Tests/Types/API/Headers.test.js +0 -14
  486. package/build/dist/Tests/Types/API/Headers.test.js.map +0 -1
  487. package/build/dist/Tests/Types/API/Hostname.test.js +0 -22
  488. package/build/dist/Tests/Types/API/Hostname.test.js.map +0 -1
  489. package/build/dist/Tests/Types/API/Protocal.test.js +0 -19
  490. package/build/dist/Tests/Types/API/Protocal.test.js.map +0 -1
  491. package/build/dist/Tests/Types/API/Response.test.js +0 -14
  492. package/build/dist/Tests/Types/API/Response.test.js.map +0 -1
  493. package/build/dist/Tests/Types/API/ResponseType.test.js +0 -13
  494. package/build/dist/Tests/Types/API/ResponseType.test.js.map +0 -1
  495. package/build/dist/Tests/Types/API/Route.test.js +0 -30
  496. package/build/dist/Tests/Types/API/Route.test.js.map +0 -1
  497. package/build/dist/Tests/Types/API/StatusCode.test.js +0 -26
  498. package/build/dist/Tests/Types/API/StatusCode.test.js.map +0 -1
  499. package/build/dist/Tests/Types/API/URL.test.js +0 -33
  500. package/build/dist/Tests/Types/API/URL.test.js.map +0 -1
  501. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js +0 -34
  502. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js.map +0 -1
  503. package/build/dist/Tests/Types/Alerts/AlertType.test.js +0 -19
  504. package/build/dist/Tests/Types/Alerts/AlertType.test.js.map +0 -1
  505. package/build/dist/Tests/Types/AppEnvironment.test.js +0 -13
  506. package/build/dist/Tests/Types/AppEnvironment.test.js.map +0 -1
  507. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js +0 -13
  508. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js.map +0 -1
  509. package/build/dist/Tests/Types/ArrayUtil.test.js +0 -71
  510. package/build/dist/Tests/Types/ArrayUtil.test.js.map +0 -1
  511. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js +0 -181
  512. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js.map +0 -1
  513. package/build/dist/Tests/Types/BrandColors.test.js +0 -124
  514. package/build/dist/Tests/Types/BrandColors.test.js.map +0 -1
  515. package/build/dist/Tests/Types/Char.test.js +0 -82
  516. package/build/dist/Tests/Types/Char.test.js.map +0 -1
  517. package/build/dist/Tests/Types/Code/CodeType.test.js +0 -13
  518. package/build/dist/Tests/Types/Code/CodeType.test.js.map +0 -1
  519. package/build/dist/Tests/Types/Color.test.js +0 -44
  520. package/build/dist/Tests/Types/Color.test.js.map +0 -1
  521. package/build/dist/Tests/Types/Company/CompanySize.test.js +0 -20
  522. package/build/dist/Tests/Types/Company/CompanySize.test.js.map +0 -1
  523. package/build/dist/Tests/Types/Company/JobRole.test.js +0 -22
  524. package/build/dist/Tests/Types/Company/JobRole.test.js.map +0 -1
  525. package/build/dist/Tests/Types/Countries.test.js +0 -249
  526. package/build/dist/Tests/Types/Countries.test.js.map +0 -1
  527. package/build/dist/Tests/Types/Database/ColumnLength.test.js +0 -43
  528. package/build/dist/Tests/Types/Database/ColumnLength.test.js.map +0 -1
  529. package/build/dist/Tests/Types/Database/ColumnType.test.js +0 -79
  530. package/build/dist/Tests/Types/Database/ColumnType.test.js.map +0 -1
  531. package/build/dist/Tests/Types/Database/Columns.test.js +0 -20
  532. package/build/dist/Tests/Types/Database/Columns.test.js.map +0 -1
  533. package/build/dist/Tests/Types/Database/CompareBase.test.js +0 -37
  534. package/build/dist/Tests/Types/Database/CompareBase.test.js.map +0 -1
  535. package/build/dist/Tests/Types/Database/Date.test.js +0 -62
  536. package/build/dist/Tests/Types/Database/Date.test.js.map +0 -1
  537. package/build/dist/Tests/Types/Database/EqualTo.test.js +0 -65
  538. package/build/dist/Tests/Types/Database/EqualTo.test.js.map +0 -1
  539. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js +0 -62
  540. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +0 -1
  541. package/build/dist/Tests/Types/Database/InBetween.test.js +0 -72
  542. package/build/dist/Tests/Types/Database/InBetween.test.js.map +0 -1
  543. package/build/dist/Tests/Types/Database/LimitMax.test.js +0 -18
  544. package/build/dist/Tests/Types/Database/LimitMax.test.js.map +0 -1
  545. package/build/dist/Tests/Types/Database/NotEqual.test.js +0 -19
  546. package/build/dist/Tests/Types/Database/NotEqual.test.js.map +0 -1
  547. package/build/dist/Tests/Types/Database/Search.test.js +0 -10
  548. package/build/dist/Tests/Types/Database/Search.test.js.map +0 -1
  549. package/build/dist/Tests/Types/DatabaseType.test.js +0 -7
  550. package/build/dist/Tests/Types/DatabaseType.test.js.map +0 -1
  551. package/build/dist/Tests/Types/Date.test.js +0 -194
  552. package/build/dist/Tests/Types/Date.test.js.map +0 -1
  553. package/build/dist/Tests/Types/Dictionary.test.js +0 -25
  554. package/build/dist/Tests/Types/Dictionary.test.js.map +0 -1
  555. package/build/dist/Tests/Types/Domain.test.js +0 -54
  556. package/build/dist/Tests/Types/Domain.test.js.map +0 -1
  557. package/build/dist/Tests/Types/Email/Email.test.js +0 -51
  558. package/build/dist/Tests/Types/Email/Email.test.js.map +0 -1
  559. package/build/dist/Tests/Types/EmailWithName.test.js +0 -36
  560. package/build/dist/Tests/Types/EmailWithName.test.js.map +0 -1
  561. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js +0 -7
  562. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js.map +0 -1
  563. package/build/dist/Tests/Types/Exception/ApiException.test.js +0 -10
  564. package/build/dist/Tests/Types/Exception/ApiException.test.js.map +0 -1
  565. package/build/dist/Tests/Types/Exception/BadDataException.test.js +0 -12
  566. package/build/dist/Tests/Types/Exception/BadDataException.test.js.map +0 -1
  567. package/build/dist/Tests/Types/Exception/BadOperationException.test.js +0 -10
  568. package/build/dist/Tests/Types/Exception/BadOperationException.test.js.map +0 -1
  569. package/build/dist/Tests/Types/Exception/BadRequestException.test.js +0 -12
  570. package/build/dist/Tests/Types/Exception/BadRequestException.test.js.map +0 -1
  571. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js +0 -10
  572. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js.map +0 -1
  573. package/build/dist/Tests/Types/Exception/Exception.test.js +0 -15
  574. package/build/dist/Tests/Types/Exception/Exception.test.js.map +0 -1
  575. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js +0 -12
  576. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js.map +0 -1
  577. package/build/dist/Tests/Types/File.test.js +0 -22
  578. package/build/dist/Tests/Types/File.test.js.map +0 -1
  579. package/build/dist/Tests/Types/HashedString.test.js +0 -51
  580. package/build/dist/Tests/Types/HashedString.test.js.map +0 -1
  581. package/build/dist/Tests/Types/Html.test.js +0 -8
  582. package/build/dist/Tests/Types/Html.test.js.map +0 -1
  583. package/build/dist/Tests/Types/IP/IP.test.js +0 -65
  584. package/build/dist/Tests/Types/IP/IP.test.js.map +0 -1
  585. package/build/dist/Tests/Types/IP/IPType.test.js +0 -10
  586. package/build/dist/Tests/Types/IP/IPType.test.js.map +0 -1
  587. package/build/dist/Tests/Types/IP/IPv4.test.js +0 -17
  588. package/build/dist/Tests/Types/IP/IPv4.test.js.map +0 -1
  589. package/build/dist/Tests/Types/IP/IPv6.test.js +0 -17
  590. package/build/dist/Tests/Types/IP/IPv6.test.js.map +0 -1
  591. package/build/dist/Tests/Types/JSON.test.js +0 -37
  592. package/build/dist/Tests/Types/JSON.test.js.map +0 -1
  593. package/build/dist/Tests/Types/JSONFunctions.test.js +0 -38
  594. package/build/dist/Tests/Types/JSONFunctions.test.js.map +0 -1
  595. package/build/dist/Tests/Types/ListData.test.js +0 -34
  596. package/build/dist/Tests/Types/ListData.test.js.map +0 -1
  597. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js +0 -121
  598. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js.map +0 -1
  599. package/build/dist/Tests/Types/Name.test.js +0 -26
  600. package/build/dist/Tests/Types/Name.test.js.map +0 -1
  601. package/build/dist/Tests/Types/ObjectID.test.js +0 -12
  602. package/build/dist/Tests/Types/ObjectID.test.js.map +0 -1
  603. package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js +0 -530
  604. package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js.map +0 -1
  605. package/build/dist/Tests/Types/Permission.test.js +0 -99
  606. package/build/dist/Tests/Types/Permission.test.js.map +0 -1
  607. package/build/dist/Tests/Types/Phone.test.js +0 -37
  608. package/build/dist/Tests/Types/Phone.test.js.map +0 -1
  609. package/build/dist/Tests/Types/Port.test.js +0 -35
  610. package/build/dist/Tests/Types/Port.test.js.map +0 -1
  611. package/build/dist/Tests/Types/PositiveNumber.test.js +0 -101
  612. package/build/dist/Tests/Types/PositiveNumber.test.js.map +0 -1
  613. package/build/dist/Tests/Types/SecuritySeverity.test.js +0 -16
  614. package/build/dist/Tests/Types/SecuritySeverity.test.js.map +0 -1
  615. package/build/dist/Tests/Types/SerializableObject.test.js +0 -37
  616. package/build/dist/Tests/Types/SerializableObject.test.js.map +0 -1
  617. package/build/dist/Tests/Types/Sleep.test.js +0 -14
  618. package/build/dist/Tests/Types/Sleep.test.js.map +0 -1
  619. package/build/dist/Tests/Types/Text.test.js +0 -8
  620. package/build/dist/Tests/Types/Text.test.js.map +0 -1
  621. package/build/dist/Tests/Types/Timezone.test.js +0 -596
  622. package/build/dist/Tests/Types/Timezone.test.js.map +0 -1
  623. package/build/dist/Tests/Types/Typeof.test.js +0 -16
  624. package/build/dist/Tests/Types/Typeof.test.js.map +0 -1
  625. package/build/dist/Tests/Types/UserType.test.js +0 -16
  626. package/build/dist/Tests/Types/UserType.test.js.map +0 -1
  627. package/build/dist/Tests/Types/Version.test.js +0 -35
  628. package/build/dist/Tests/Types/Version.test.js.map +0 -1
  629. package/build/dist/Tests/Types/XML.test.js +0 -35
  630. package/build/dist/Tests/Types/XML.test.js.map +0 -1
  631. package/build/dist/Tests/UI/Components/404.test.js +0 -59
  632. package/build/dist/Tests/UI/Components/404.test.js.map +0 -1
  633. package/build/dist/Tests/UI/Components/Alert.test.js +0 -83
  634. package/build/dist/Tests/UI/Components/Alert.test.js.map +0 -1
  635. package/build/dist/Tests/UI/Components/Badge.test.js +0 -59
  636. package/build/dist/Tests/UI/Components/Badge.test.js.map +0 -1
  637. package/build/dist/Tests/UI/Components/BasicForm.test.js +0 -92
  638. package/build/dist/Tests/UI/Components/BasicForm.test.js.map +0 -1
  639. package/build/dist/Tests/UI/Components/Breadcrumbs.test.js +0 -69
  640. package/build/dist/Tests/UI/Components/Breadcrumbs.test.js.map +0 -1
  641. package/build/dist/Tests/UI/Components/Button.test.js +0 -104
  642. package/build/dist/Tests/UI/Components/Button.test.js.map +0 -1
  643. package/build/dist/Tests/UI/Components/Card.test.js +0 -81
  644. package/build/dist/Tests/UI/Components/Card.test.js.map +0 -1
  645. package/build/dist/Tests/UI/Components/ColorViewer.test.js +0 -42
  646. package/build/dist/Tests/UI/Components/ColorViewer.test.js.map +0 -1
  647. package/build/dist/Tests/UI/Components/ComponentsModal.test.js +0 -233
  648. package/build/dist/Tests/UI/Components/ComponentsModal.test.js.map +0 -1
  649. package/build/dist/Tests/UI/Components/ConfirmModal.test.js +0 -57
  650. package/build/dist/Tests/UI/Components/ConfirmModal.test.js.map +0 -1
  651. package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js +0 -84
  652. package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js.map +0 -1
  653. package/build/dist/Tests/UI/Components/Dropdown.test.js +0 -146
  654. package/build/dist/Tests/UI/Components/Dropdown.test.js.map +0 -1
  655. package/build/dist/Tests/UI/Components/DuplicateModel.test.js +0 -229
  656. package/build/dist/Tests/UI/Components/DuplicateModel.test.js.map +0 -1
  657. package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js +0 -26
  658. package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js.map +0 -1
  659. package/build/dist/Tests/UI/Components/ErrorBoundary.test.js +0 -32
  660. package/build/dist/Tests/UI/Components/ErrorBoundary.test.js.map +0 -1
  661. package/build/dist/Tests/UI/Components/FilePicker.test.js +0 -342
  662. package/build/dist/Tests/UI/Components/FilePicker.test.js.map +0 -1
  663. package/build/dist/Tests/UI/Components/HiddenText.test.js +0 -50
  664. package/build/dist/Tests/UI/Components/HiddenText.test.js.map +0 -1
  665. package/build/dist/Tests/UI/Components/Input.test.js +0 -223
  666. package/build/dist/Tests/UI/Components/Input.test.js.map +0 -1
  667. package/build/dist/Tests/UI/Components/Item.test.js +0 -58
  668. package/build/dist/Tests/UI/Components/Item.test.js.map +0 -1
  669. package/build/dist/Tests/UI/Components/List.test.js +0 -83
  670. package/build/dist/Tests/UI/Components/List.test.js.map +0 -1
  671. package/build/dist/Tests/UI/Components/Loader.test.js +0 -19
  672. package/build/dist/Tests/UI/Components/Loader.test.js.map +0 -1
  673. package/build/dist/Tests/UI/Components/MarkdownEditor.test.js +0 -85
  674. package/build/dist/Tests/UI/Components/MarkdownEditor.test.js.map +0 -1
  675. package/build/dist/Tests/UI/Components/MasterPage.test.js +0 -46
  676. package/build/dist/Tests/UI/Components/MasterPage.test.js.map +0 -1
  677. package/build/dist/Tests/UI/Components/Modal.test.js +0 -127
  678. package/build/dist/Tests/UI/Components/Modal.test.js.map +0 -1
  679. package/build/dist/Tests/UI/Components/NavBar.test.js +0 -52
  680. package/build/dist/Tests/UI/Components/NavBar.test.js.map +0 -1
  681. package/build/dist/Tests/UI/Components/OrderedStatesList.test.js +0 -86
  682. package/build/dist/Tests/UI/Components/OrderedStatesList.test.js.map +0 -1
  683. package/build/dist/Tests/UI/Components/Pagination.test.js +0 -137
  684. package/build/dist/Tests/UI/Components/Pagination.test.js.map +0 -1
  685. package/build/dist/Tests/UI/Components/Pill.test.js +0 -55
  686. package/build/dist/Tests/UI/Components/Pill.test.js.map +0 -1
  687. package/build/dist/Tests/UI/Components/Probe.test.js +0 -52
  688. package/build/dist/Tests/UI/Components/Probe.test.js.map +0 -1
  689. package/build/dist/Tests/UI/Components/ProgressBar.test.js +0 -41
  690. package/build/dist/Tests/UI/Components/ProgressBar.test.js.map +0 -1
  691. package/build/dist/Tests/UI/Components/RadioButtons.test.js +0 -66
  692. package/build/dist/Tests/UI/Components/RadioButtons.test.js.map +0 -1
  693. package/build/dist/Tests/UI/Components/SideMenuItem.test.js +0 -99
  694. package/build/dist/Tests/UI/Components/SideMenuItem.test.js.map +0 -1
  695. package/build/dist/Tests/UI/Components/SideOver.test.js +0 -77
  696. package/build/dist/Tests/UI/Components/SideOver.test.js.map +0 -1
  697. package/build/dist/Tests/UI/Components/Tabs.test.js +0 -56
  698. package/build/dist/Tests/UI/Components/Tabs.test.js.map +0 -1
  699. package/build/dist/Tests/UI/Components/Template/Template.test.js +0 -15
  700. package/build/dist/Tests/UI/Components/Template/Template.test.js.map +0 -1
  701. package/build/dist/Tests/UI/Components/TextArea.test.js +0 -112
  702. package/build/dist/Tests/UI/Components/TextArea.test.js.map +0 -1
  703. package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js +0 -352
  704. package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js.map +0 -1
  705. package/build/dist/Tests/UI/Components/Toast.test.js +0 -48
  706. package/build/dist/Tests/UI/Components/Toast.test.js.map +0 -1
  707. package/build/dist/Tests/UI/Components/Toggle.test.js +0 -95
  708. package/build/dist/Tests/UI/Components/Toggle.test.js.map +0 -1
  709. package/build/dist/Tests/UI/Components/TopSection.test.js +0 -33
  710. package/build/dist/Tests/UI/Components/TopSection.test.js.map +0 -1
  711. package/build/dist/Tests/UI/Components/XAxis.test.js +0 -21
  712. package/build/dist/Tests/UI/Components/XAxis.test.js.map +0 -1
  713. package/build/dist/Tests/UI/Index.js +0 -2
  714. package/build/dist/Tests/UI/Index.js.map +0 -1
  715. package/build/dist/Tests/UI/Mocks/FileMock.js +0 -3
  716. package/build/dist/Tests/UI/Mocks/FileMock.js.map +0 -1
  717. package/build/dist/Tests/Utils/API.test.js +0 -399
  718. package/build/dist/Tests/Utils/API.test.js.map +0 -1
  719. package/build/dist/Tests/Utils/Analytics.test.js +0 -67
  720. package/build/dist/Tests/Utils/Analytics.test.js.map +0 -1
  721. package/build/dist/Tests/Utils/CronTime.test.js +0 -22
  722. package/build/dist/Tests/Utils/CronTime.test.js.map +0 -1
  723. package/build/dist/Tests/Utils/Faker.test.js +0 -27
  724. package/build/dist/Tests/Utils/Faker.test.js.map +0 -1
  725. package/build/dist/Tests/Utils/MetricUnitUtil.test.js +0 -187
  726. package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +0 -1
  727. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +0 -224
  728. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +0 -1
  729. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +0 -180
  730. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +0 -1
  731. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +0 -142
  732. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +0 -1
  733. package/build/dist/Tests/Utils/Slug.test.js +0 -20
  734. package/build/dist/Tests/Utils/Slug.test.js.map +0 -1
  735. package/build/dist/Tests/Utils/UUID.test.js +0 -48
  736. package/build/dist/Tests/Utils/UUID.test.js.map +0 -1
  737. package/build/dist/Tests/jest.setup.js +0 -30
  738. package/build/dist/Tests/jest.setup.js.map +0 -1
  739. package/build/dist/Types/Profile/ProfileMetricType.js +0 -17
  740. package/build/dist/Types/Profile/ProfileMetricType.js.map +0 -1
@@ -0,0 +1,257 @@
1
+ import BaseModel from "../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
2
+ import TableColumnType from "../Types/Database/TableColumnType";
3
+ import OneUptimeDate from "../Types/Date";
4
+ import Recurring from "../Types/Events/Recurring";
5
+ import BadDataException from "../Types/Exception/BadDataException";
6
+ export const MODEL_EXPORT_FILE_TYPE = "oneuptime-resource-export";
7
+ export const MODEL_EXPORT_SCHEMA_VERSION = 1;
8
+ /*
9
+ * Columns that are always server-managed and must never be exported or
10
+ * imported, regardless of model metadata.
11
+ */
12
+ const SYSTEM_COLUMNS = [
13
+ "_id",
14
+ "createdAt",
15
+ "updatedAt",
16
+ "deletedAt",
17
+ "version",
18
+ ];
19
+ /*
20
+ * Column types that never make sense in an export file: relations to other
21
+ * entities (their ids would not resolve in another project or instance),
22
+ * binary data, and secrets.
23
+ */
24
+ const EXCLUDED_COLUMN_TYPES = [
25
+ TableColumnType.Entity,
26
+ TableColumnType.EntityArray,
27
+ TableColumnType.File,
28
+ TableColumnType.Buffer,
29
+ TableColumnType.Slug,
30
+ TableColumnType.HashedString,
31
+ TableColumnType.Password,
32
+ TableColumnType.OTP,
33
+ ];
34
+ /*
35
+ * Columns that pass the generic metadata filters but must still never be
36
+ * exported: plain-text credentials and server-managed runtime state that
37
+ * would either leak secrets into export files or seed imported resources
38
+ * with stale state from the source resource.
39
+ */
40
+ const EXCLUDED_COLUMNS_BY_TABLE = {
41
+ StatusPage: ["embeddedOverallStatusToken"],
42
+ Monitor: [
43
+ "incomingMonitorRequest",
44
+ "serverMonitorResponse",
45
+ "incomingRequestMonitorHeartbeatCheckedAt",
46
+ "serverMonitorRequestReceivedAt",
47
+ "telemetryMonitorNextMonitorAt",
48
+ "telemetryMonitorLastMonitorAt",
49
+ ],
50
+ };
51
+ export default class ModelImportExport {
52
+ /*
53
+ * Derives the list of columns that can safely round-trip through an export
54
+ * file from the model's own metadata. A column qualifies when the current
55
+ * caller could both read it and set it on create, it is not computed or
56
+ * server-generated, it holds no secret, and it does not reference another
57
+ * entity (foreign keys of Entity relations are excluded along with the
58
+ * relations themselves).
59
+ */
60
+ static getImportExportableColumnNames(modelType) {
61
+ const model = new modelType();
62
+ const tenantColumn = model.getTenantColumn();
63
+ const foreignKeyColumns = [];
64
+ for (const columnName of model.getTableColumns().columns) {
65
+ const metadata = model.getTableColumnMetadata(columnName);
66
+ if (metadata === null || metadata === void 0 ? void 0 : metadata.manyToOneRelationColumn) {
67
+ foreignKeyColumns.push(metadata.manyToOneRelationColumn);
68
+ }
69
+ }
70
+ const excludedColumnsForTable = EXCLUDED_COLUMNS_BY_TABLE[model.tableName || ""] || [];
71
+ const exportableColumns = [];
72
+ for (const columnName of model.getTableColumns().columns) {
73
+ if (SYSTEM_COLUMNS.includes(columnName)) {
74
+ continue;
75
+ }
76
+ if (excludedColumnsForTable.includes(columnName)) {
77
+ continue;
78
+ }
79
+ if (tenantColumn && columnName === tenantColumn) {
80
+ continue;
81
+ }
82
+ if (foreignKeyColumns.includes(columnName)) {
83
+ continue;
84
+ }
85
+ const metadata = model.getTableColumnMetadata(columnName);
86
+ if (!metadata) {
87
+ continue;
88
+ }
89
+ if (EXCLUDED_COLUMN_TYPES.includes(metadata.type)) {
90
+ continue;
91
+ }
92
+ if (metadata.computed || metadata.hashed || metadata.encrypted) {
93
+ continue;
94
+ }
95
+ if (metadata.forceGetDefaultValueOnCreate) {
96
+ continue;
97
+ }
98
+ const accessControl = model.getColumnAccessControlFor(columnName);
99
+ if (!accessControl ||
100
+ accessControl.read.length === 0 ||
101
+ accessControl.create.length === 0) {
102
+ continue;
103
+ }
104
+ exportableColumns.push(columnName);
105
+ }
106
+ return exportableColumns;
107
+ }
108
+ static getImportExportSelect(modelType) {
109
+ const select = {};
110
+ for (const columnName of this.getImportExportableColumnNames(modelType)) {
111
+ select[columnName] = true;
112
+ }
113
+ return select;
114
+ }
115
+ static toExportJSON(item, modelType) {
116
+ const json = BaseModel.toJSON(item, modelType);
117
+ const exportableColumns = this.getImportExportableColumnNames(modelType);
118
+ const exportJson = {};
119
+ for (const key of Object.keys(json)) {
120
+ if (exportableColumns.includes(key)) {
121
+ exportJson[key] = json[key];
122
+ }
123
+ }
124
+ return exportJson;
125
+ }
126
+ static buildExportEnvelope(data) {
127
+ const model = new data.modelType();
128
+ return {
129
+ fileType: MODEL_EXPORT_FILE_TYPE,
130
+ schemaVersion: MODEL_EXPORT_SCHEMA_VERSION,
131
+ resourceType: model.tableName || "",
132
+ exportedAt: data.exportedAt.toISOString(),
133
+ items: data.items.map((item) => {
134
+ return this.toExportJSON(item, data.modelType);
135
+ }),
136
+ };
137
+ }
138
+ /*
139
+ * Accepts an export envelope, a plain array of items, or a single item
140
+ * object, and returns the list of item JSONs to import. Throws
141
+ * BadDataException with a user-facing message when the payload is not
142
+ * usable for this model type.
143
+ */
144
+ static parseImportPayload(data) {
145
+ const model = new data.modelType();
146
+ const resourceName = model.singularName || "resource";
147
+ let items = null;
148
+ if (Array.isArray(data.payload)) {
149
+ items = data.payload;
150
+ }
151
+ else if (data.payload && typeof data.payload === "object") {
152
+ if (Array.isArray(data.payload["items"])) {
153
+ const resourceType = data.payload["resourceType"];
154
+ if (resourceType &&
155
+ model.tableName &&
156
+ resourceType !== model.tableName) {
157
+ throw new BadDataException(`This file contains ${resourceType.toString()} resources and cannot be imported here. Please select a ${resourceName} export file.`);
158
+ }
159
+ items = data.payload["items"];
160
+ }
161
+ else {
162
+ // a single item object exported by hand.
163
+ items = [data.payload];
164
+ }
165
+ }
166
+ if (!items) {
167
+ throw new BadDataException(`This file is not a valid ${resourceName} export file.`);
168
+ }
169
+ if (items.length === 0) {
170
+ throw new BadDataException(`This file does not contain any ${resourceName} to import.`);
171
+ }
172
+ for (const item of items) {
173
+ if (!item || typeof item !== "object" || Array.isArray(item)) {
174
+ throw new BadDataException(`This file is not a valid ${resourceName} export file.`);
175
+ }
176
+ }
177
+ return items;
178
+ }
179
+ /*
180
+ * Builds a model instance from an import item, keeping only columns that
181
+ * are importable for this model. Anything else in the file - ids, slugs,
182
+ * timestamps, relations, unknown keys - is dropped so the server create
183
+ * API treats the item as a brand new resource.
184
+ */
185
+ static fromImportJSON(data) {
186
+ const item = BaseModel.fromJSON(data.json, data.modelType);
187
+ const exportableColumns = this.getImportExportableColumnNames(data.modelType);
188
+ for (const columnName of item.getTableColumns().columns) {
189
+ if (exportableColumns.includes(columnName)) {
190
+ continue;
191
+ }
192
+ if (item[columnName] !== undefined) {
193
+ item.removeValue(columnName);
194
+ }
195
+ }
196
+ this.normalizeImportItem(item);
197
+ return item;
198
+ }
199
+ /*
200
+ * Model-specific fixups so imported items pass server-side create
201
+ * validation. Currently: recurring scheduled maintenance templates are
202
+ * rejected on create when their first-event dates are in the past (the
203
+ * normal case for an export taken from an established template), so the
204
+ * dates are advanced by the recurrence interval until they are in the
205
+ * future, preserving the offsets between them.
206
+ */
207
+ static normalizeImportItem(item) {
208
+ if (item.tableName !== "ScheduledMaintenanceTemplate") {
209
+ return;
210
+ }
211
+ const isRecurringEvent = item.getValue("isRecurringEvent");
212
+ const recurringInterval = item.getValue("recurringInterval");
213
+ if (!isRecurringEvent || !recurringInterval) {
214
+ return;
215
+ }
216
+ const dateColumns = [
217
+ "firstEventScheduledAt",
218
+ "firstEventStartsAt",
219
+ "firstEventEndsAt",
220
+ ];
221
+ const dates = [];
222
+ for (const dateColumn of dateColumns) {
223
+ const value = item.getValue(dateColumn);
224
+ if (value instanceof Date) {
225
+ dates.push(value);
226
+ }
227
+ }
228
+ if (dates.length === 0) {
229
+ return;
230
+ }
231
+ /*
232
+ * Anchor the advance on the earliest date so every date ends up in the
233
+ * future once shifted by the same amount.
234
+ */
235
+ const earliestDate = dates.reduce((a, b) => {
236
+ return a.getTime() <= b.getTime() ? a : b;
237
+ });
238
+ if (OneUptimeDate.isInTheFuture(earliestDate)) {
239
+ return;
240
+ }
241
+ const interval = recurringInterval instanceof Recurring
242
+ ? recurringInterval
243
+ : Recurring.fromJSON(recurringInterval);
244
+ const nextEarliestDate = Recurring.getNextDate(earliestDate, interval);
245
+ const advanceByMs = nextEarliestDate.getTime() - earliestDate.getTime();
246
+ if (advanceByMs <= 0) {
247
+ return;
248
+ }
249
+ for (const dateColumn of dateColumns) {
250
+ const value = item.getValue(dateColumn);
251
+ if (value instanceof Date) {
252
+ item[dateColumn] = new Date(value.getTime() + advanceByMs);
253
+ }
254
+ }
255
+ }
256
+ }
257
+ //# sourceMappingURL=ModelImportExport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelImportExport.js","sourceRoot":"","sources":["../../../Utils/ModelImportExport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import Crypto from "../Crypto";
2
+ import EntityType from "../../Types/Telemetry/EntityType";
3
+ /*
4
+ * Isomorphic OpenTelemetry entity-key computation — the single source of
5
+ * truth shared by ingest (server, stamping `entityKeys`) and reads
6
+ * (server or browser, building `has(entityKeys, :key)` predicates).
7
+ * Hashing goes through an injectable SHA-256 provider: the default is
8
+ * `Common/Utils/Crypto` (crypto-js, pure JS) so this module works in the
9
+ * browser, and the server swaps in node:crypto for the ingest hot path
10
+ * (see TelemetryEntity.ts). Any provider MUST produce the same
11
+ * lowercase-hex SHA-256 — a hard requirement: a read-side key that
12
+ * doesn't byte-match the ingest-side stamp finds nothing.
13
+ *
14
+ * See Internal/Docs/OpenTelemetryEntities.md.
15
+ */
16
+ /** Canonical identity-value form: trimmed + lowercased. */
17
+ export function canonicalizeEntityValue(value) {
18
+ return String(value === undefined || value === null ? "" : value)
19
+ .trim()
20
+ .toLowerCase();
21
+ }
22
+ let sha256HexProvider = (input) => {
23
+ return Crypto.getSha256Hash(input);
24
+ };
25
+ /**
26
+ * Swap the SHA-256 implementation (e.g. node:crypto on the server). The
27
+ * provider must return the full lowercase-hex digest, byte-identical to
28
+ * the crypto-js default, or ingest-stamped and read-side keys fork.
29
+ */
30
+ export function setSha256Provider(provider) {
31
+ sha256HexProvider = provider;
32
+ }
33
+ /*
34
+ * '|' separates preimage segments and '=' separates key from value, so
35
+ * both — and the escape character itself — are backslash-escaped inside
36
+ * keys and values. This keeps the preimage injective (a value like
37
+ * `a|service.namespace=b` cannot collide with a two-attribute identity)
38
+ * while leaving values WITHOUT these characters byte-identical to the
39
+ * historical preimage, so already-stamped keys for normal data are
40
+ * unchanged.
41
+ */
42
+ function escapeIdentityToken(token) {
43
+ return token.replace(/([\\|=])/g, "\\$1");
44
+ }
45
+ /**
46
+ * Stable 16-hex-char identity key for an entity. Pure: same inputs → same
47
+ * key. Keys are sorted so attribute order is irrelevant; values are
48
+ * canonicalized so casing/whitespace drift does not fork identity;
49
+ * projectId is folded in so keys are tenant-unique (and a
50
+ * `has(entityKeys, key)` predicate is implicitly project-scoped).
51
+ */
52
+ export function computeEntityKey(data) {
53
+ const keys = Object.keys(data.identifyingAttributes || {}).sort();
54
+ const parts = [];
55
+ for (const key of keys) {
56
+ parts.push(`${escapeIdentityToken(key)}=${escapeIdentityToken(canonicalizeEntityValue(data.identifyingAttributes[key]))}`);
57
+ }
58
+ const preimage = `${data.projectId}|${data.entityType}|${parts.join("|")}`;
59
+ return sha256HexProvider(preimage).slice(0, 16);
60
+ }
61
+ /*
62
+ * ---- Read-side helpers ---------------------------------------------------
63
+ *
64
+ * Given a OneUptime resource's identifying value, compute the entity key
65
+ * to query `has(entityKeys, :key)`. Each MUST mirror the corresponding
66
+ * ingest-side resolver in `TelemetryEntity.extractEntities` exactly.
67
+ */
68
+ /**
69
+ * `host.name` is the host identity (matches the Host row's `hostIdentifier`,
70
+ * which is the canonicalized host.name). Pass `Host.hostIdentifier`.
71
+ */
72
+ export function keyForHost(projectId, hostIdentifier) {
73
+ return computeEntityKey({
74
+ projectId,
75
+ entityType: EntityType.Host,
76
+ identifyingAttributes: { "host.name": hostIdentifier },
77
+ });
78
+ }
79
+ /**
80
+ * `service.name` (+ `service.namespace` when the resource carries one) is
81
+ * the service identity — the ingest resolver folds the namespace into the
82
+ * key, so a namespaced service is only matchable when the same namespace
83
+ * is passed here. Pass `Service.name` (+ the namespace if known).
84
+ */
85
+ export function keyForService(projectId, serviceName, serviceNamespace) {
86
+ const identifyingAttributes = {
87
+ "service.name": serviceName,
88
+ };
89
+ /*
90
+ * Mirrors the resolver's addIfPresent: blank/whitespace-only namespaces
91
+ * are not identity-bearing.
92
+ */
93
+ if (serviceNamespace && serviceNamespace.trim().length > 0) {
94
+ identifyingAttributes["service.namespace"] = serviceNamespace;
95
+ }
96
+ return computeEntityKey({
97
+ projectId,
98
+ entityType: EntityType.Service,
99
+ identifyingAttributes,
100
+ });
101
+ }
102
+ /**
103
+ * `k8s.cluster.name` is the cluster identity (matches the KubernetesCluster
104
+ * row's `clusterIdentifier`; the ingest resolver is name-only — see
105
+ * `TelemetryEntity.k8sClusterIdentity`). Pass
106
+ * `KubernetesCluster.clusterIdentifier`.
107
+ */
108
+ export function keyForKubernetesCluster(projectId, clusterIdentifier) {
109
+ return computeEntityKey({
110
+ projectId,
111
+ entityType: EntityType.KubernetesCluster,
112
+ identifyingAttributes: { "k8s.cluster.name": clusterIdentifier },
113
+ });
114
+ }
115
+ //# sourceMappingURL=EntityKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityKey.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/EntityKey.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AAEH,2DAA2D;AAC3D,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC9D,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;AACnB,CAAC;AAID,IAAI,iBAAiB,GAAsB,CAAC,KAAa,EAAU,EAAE;IACnE,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,iBAAiB,GAAG,QAAQ,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAIhC;IACC,MAAM,IAAI,GAAkB,MAAM,CAAC,IAAI,CACrC,IAAI,CAAC,qBAAqB,IAAI,EAAE,CACjC,CAAC,IAAI,EAAE,CAAC;IAET,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CACR,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAChD,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CACzD,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAW,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CACzE,GAAG,CACJ,EAAE,CAAC;IAEJ,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,cAAsB;IAClE,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,UAAU,EAAE,UAAU,CAAC,IAAI;QAC3B,qBAAqB,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE;KACvD,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAiB,EACjB,WAAmB,EACnB,gBAAqC;IAErC,MAAM,qBAAqB,GAAuB;QAChD,cAAc,EAAE,WAAW;KAC5B,CAAC;IAEF;;;OAGG;IACH,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,qBAAqB,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;IAChE,CAAC;IAED,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,UAAU,EAAE,UAAU,CAAC,OAAO;QAC9B,qBAAqB;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,iBAAyB;IAEzB,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,UAAU,EAAE,UAAU,CAAC,iBAAiB;QACxC,qBAAqB,EAAE,EAAE,kBAAkB,EAAE,iBAAiB,EAAE;KACjE,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,71 @@
1
+ import EntityRelationshipType from "../../Types/Telemetry/EntityRelationshipType";
2
+ import EntityType from "../../Types/Telemetry/EntityType";
3
+ /*
4
+ * Directed rules: a `from`-type that co-occurs with a `to`-type implies the
5
+ * given relationship. Only the meaningful direction has a rule (e.g. pod →
6
+ * cluster is `member-of`; cluster → pod yields nothing), so iterating all
7
+ * ordered pairs and keeping the non-null results produces a correctly
8
+ * directed edge set without double-counting. Extend as new entity types
9
+ * graduate from membership-only to first-class.
10
+ *
11
+ * `depends-on` is deliberately absent: a caller service and its callee
12
+ * never share one resource, so it cannot be co-occurrence-inferred. Those
13
+ * edges are derived from cross-service parent/child span pairs by the
14
+ * TelemetryEntity:ComputeServiceDependencies worker cron.
15
+ */
16
+ const RULES = {
17
+ [`${EntityType.ServiceInstance}|${EntityType.Service}`]: EntityRelationshipType.InstanceOf,
18
+ [`${EntityType.Service}|${EntityType.Host}`]: EntityRelationshipType.HostedOn,
19
+ [`${EntityType.Service}|${EntityType.KubernetesPod}`]: EntityRelationshipType.RunsOn,
20
+ [`${EntityType.Container}|${EntityType.KubernetesPod}`]: EntityRelationshipType.PartOf,
21
+ [`${EntityType.Container}|${EntityType.Host}`]: EntityRelationshipType.PartOf,
22
+ [`${EntityType.Process}|${EntityType.Container}`]: EntityRelationshipType.PartOf,
23
+ [`${EntityType.Process}|${EntityType.Host}`]: EntityRelationshipType.RunsOn,
24
+ [`${EntityType.KubernetesPod}|${EntityType.KubernetesNode}`]: EntityRelationshipType.RunsOn,
25
+ [`${EntityType.KubernetesPod}|${EntityType.KubernetesNamespace}`]: EntityRelationshipType.MemberOf,
26
+ [`${EntityType.KubernetesPod}|${EntityType.KubernetesCluster}`]: EntityRelationshipType.MemberOf,
27
+ [`${EntityType.KubernetesNode}|${EntityType.KubernetesCluster}`]: EntityRelationshipType.MemberOf,
28
+ [`${EntityType.KubernetesNamespace}|${EntityType.KubernetesCluster}`]: EntityRelationshipType.MemberOf,
29
+ [`${EntityType.KubernetesDeployment}|${EntityType.KubernetesNamespace}`]: EntityRelationshipType.MemberOf,
30
+ [`${EntityType.KubernetesDeployment}|${EntityType.KubernetesCluster}`]: EntityRelationshipType.MemberOf,
31
+ };
32
+ /** The relationship `fromType` → `toType` implies, or null if none. */
33
+ export function inferRelationshipType(fromType, toType) {
34
+ return RULES[`${fromType}|${toType}`] || null;
35
+ }
36
+ /**
37
+ * Derive every directed relationship edge implied by an entity set (one
38
+ * resource batch). Deduped; self-pairs and same-key pairs skipped.
39
+ */
40
+ export function deriveRelationships(entities) {
41
+ const edges = [];
42
+ const seen = new Set();
43
+ for (let i = 0; i < entities.length; i++) {
44
+ for (let j = 0; j < entities.length; j++) {
45
+ if (i === j) {
46
+ continue;
47
+ }
48
+ const from = entities[i];
49
+ const to = entities[j];
50
+ if (from.entityKey === to.entityKey) {
51
+ continue;
52
+ }
53
+ const relationshipType = inferRelationshipType(from.entityType, to.entityType);
54
+ if (!relationshipType) {
55
+ continue;
56
+ }
57
+ const dedupeKey = `${from.entityKey}|${to.entityKey}|${relationshipType}`;
58
+ if (seen.has(dedupeKey)) {
59
+ continue;
60
+ }
61
+ seen.add(dedupeKey);
62
+ edges.push({
63
+ fromEntityKey: from.entityKey,
64
+ toEntityKey: to.entityKey,
65
+ relationshipType,
66
+ });
67
+ }
68
+ }
69
+ return edges;
70
+ }
71
+ //# sourceMappingURL=EntityRelationship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityRelationship.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/EntityRelationship.ts"],"names":[],"mappings":"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"}
@@ -208,8 +208,8 @@ export default class CriticalPathUtil {
208
208
  // Aggregate by service
209
209
  const serviceMap = new Map();
210
210
  for (const span of spans) {
211
- const serviceId = span.serviceId || "unknown";
212
- const entry = serviceMap.get(serviceId) || {
211
+ const primaryEntityId = span.primaryEntityId || "unknown";
212
+ const entry = serviceMap.get(primaryEntityId) || {
213
213
  totalDuration: 0,
214
214
  selfTime: 0,
215
215
  spanCount: 0,
@@ -218,12 +218,12 @@ export default class CriticalPathUtil {
218
218
  const selfTime = selfTimes.get(span.spanId);
219
219
  entry.selfTime += selfTime ? selfTime.selfTimeUnixNano : 0;
220
220
  entry.spanCount += 1;
221
- serviceMap.set(serviceId, entry);
221
+ serviceMap.set(primaryEntityId, entry);
222
222
  }
223
223
  const result = [];
224
- for (const [serviceId, data] of serviceMap.entries()) {
224
+ for (const [primaryEntityId, data] of serviceMap.entries()) {
225
225
  result.push({
226
- serviceId,
226
+ primaryEntityId,
227
227
  totalDurationUnixNano: data.totalDuration,
228
228
  selfTimeUnixNano: data.selfTime,
229
229
  spanCount: data.spanCount,
@@ -1 +1 @@
1
- {"version":3,"file":"CriticalPath.js","sourceRoot":"","sources":["../../../../Utils/Traces/CriticalPath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CriticalPath.js","sourceRoot":"","sources":["../../../../Utils/Traces/CriticalPath.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,54 @@
1
1
  export default class UUID {
2
+ /**
3
+ * RFC 9562 UUIDv7: 48-bit big-endian unix-millisecond timestamp prefix,
4
+ * then version/variant bits, then 74 random bits. Ids generated later
5
+ * sort lexicographically after ids generated earlier (same-millisecond
6
+ * ids tie on the prefix and order randomly). Used for analytics-row
7
+ * `_id`s: time-ordered ids cluster inserts and compress far better in
8
+ * ClickHouse than fully-random v4 UUIDs. Postgres ids keep using
9
+ * `generate()` (random v4) — do not switch those.
10
+ */
11
+ static generateTimeOrdered() {
12
+ const bytes = new Uint8Array(16);
13
+ const cryptoObj = globalThis.crypto;
14
+ if (cryptoObj && typeof cryptoObj.getRandomValues === "function") {
15
+ cryptoObj.getRandomValues(bytes);
16
+ }
17
+ else {
18
+ // Non-cryptographic fallback — uniqueness, not secrecy, is the goal.
19
+ for (let i = 0; i < bytes.length; i++) {
20
+ bytes[i] = (Math.random() * 256) | 0;
21
+ }
22
+ }
23
+ /*
24
+ * 48-bit timestamp written big-endian into bytes 0..5. JS bitwise
25
+ * operators truncate to 32 bits, so the bytes are peeled off with
26
+ * division instead of shifts.
27
+ */
28
+ let timestamp = Date.now();
29
+ for (let i = 5; i >= 0; i--) {
30
+ bytes[i] = timestamp % 256;
31
+ timestamp = Math.floor(timestamp / 256);
32
+ }
33
+ // Version 7 in the high nibble of byte 6; RFC 4122 variant on byte 8.
34
+ bytes[6] = (bytes[6] & 0x0f) | 0x70;
35
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
36
+ return UUID.formatBytes(bytes);
37
+ }
38
+ static formatBytes(bytes) {
39
+ const hex = Array.from(bytes, (b) => {
40
+ return b.toString(16).padStart(2, "0");
41
+ }).join("");
42
+ return (hex.slice(0, 8) +
43
+ "-" +
44
+ hex.slice(8, 12) +
45
+ "-" +
46
+ hex.slice(12, 16) +
47
+ "-" +
48
+ hex.slice(16, 20) +
49
+ "-" +
50
+ hex.slice(20, 32));
51
+ }
2
52
  static generate() {
3
53
  const cryptoObj = globalThis.crypto;
4
54
  if (cryptoObj && typeof cryptoObj.randomUUID === "function") {
@@ -1 +1 @@
1
- {"version":3,"file":"UUID.js","sourceRoot":"","sources":["../../../Utils/UUID.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,IAAI;IAChB,MAAM,CAAC,QAAQ;QACpB,MAAM,SAAS,GAAuB,UAAU,CAAC,MAAM,CAAC;QAExD,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC5D,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC;QAED;;;;;WAKG;QACH,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YACjE,MAAM,KAAK,GAAe,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;YAC7C,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACjC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAE,KAAK,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YAChD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAE,KAAK,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YAChD,MAAM,GAAG,GAAW,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE;gBAClD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,CACL,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACf,GAAG;gBACH,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChB,GAAG;gBACH,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;gBACjB,GAAG;gBACH,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;gBACjB,GAAG;gBACH,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAClB,CAAC;QACJ,CAAC;QAED;;;;WAIG;QACH,OAAO,sCAAsC,CAAC,OAAO,CACnD,OAAO,EACP,CAAC,IAAY,EAAE,EAAE;YACf,MAAM,CAAC,GAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAW,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACrD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"UUID.js","sourceRoot":"","sources":["../../../Utils/UUID.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneuptime/common",
3
- "version": "10.8.2",
3
+ "version": "11.0.1",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -120,6 +120,7 @@
120
120
  "playwright": "^1.56.0",
121
121
  "posthog-js": "^1.275.3",
122
122
  "prop-types": "^15.8.1",
123
+ "protobufjs": "^7.5.4",
123
124
  "qrcode": "^1.5.3",
124
125
  "react": "^18.3.1",
125
126
  "react-beautiful-dnd": "^13.1.1",
package/tsconfig.json CHANGED
@@ -111,5 +111,14 @@
111
111
  // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
112
112
  "skipLibCheck": true, /* Skip type checking all .d.ts files. */
113
113
  "resolveJsonModule": true
114
- }
114
+ },
115
+ // Tests are type-checked by ts-jest in the Common Test workflow (ts-jest
116
+ // ignores "exclude"). Keeping them out of the build keeps `npm run compile`
117
+ // self-contained: Tests/App imports App sources, whose "Common/*" imports
118
+ // only resolve when App/node_modules is installed.
119
+ "exclude": [
120
+ "node_modules",
121
+ "build",
122
+ "Tests"
123
+ ]
115
124
  }