@oneuptime/common 10.0.65 → 10.0.67

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 (276) hide show
  1. package/Models/DatabaseModels/DockerHostOwnerTeam.ts +464 -0
  2. package/Models/DatabaseModels/DockerHostOwnerUser.ts +463 -0
  3. package/Models/DatabaseModels/GlobalConfig.ts +56 -0
  4. package/Models/DatabaseModels/Index.ts +28 -0
  5. package/Models/DatabaseModels/KubernetesClusterOwnerTeam.ts +464 -0
  6. package/Models/DatabaseModels/KubernetesClusterOwnerUser.ts +463 -0
  7. package/Models/DatabaseModels/KubernetesResource.ts +548 -0
  8. package/Models/DatabaseModels/MetricPipelineRule.ts +804 -0
  9. package/Models/DatabaseModels/MetricRecordingRule.ts +470 -0
  10. package/Models/DatabaseModels/Monitor.ts +2 -0
  11. package/Models/DatabaseModels/Project.ts +83 -0
  12. package/Models/DatabaseModels/Service.ts +79 -0
  13. package/Models/DatabaseModels/TelegramLog.ts +1025 -0
  14. package/Models/DatabaseModels/TraceDropFilter.ts +508 -0
  15. package/Models/DatabaseModels/TracePipeline.ts +436 -0
  16. package/Models/DatabaseModels/TracePipelineProcessor.ts +454 -0
  17. package/Models/DatabaseModels/TraceRecordingRule.ts +470 -0
  18. package/Models/DatabaseModels/TraceScrubRule.ts +546 -0
  19. package/Models/DatabaseModels/UserNotificationRule.ts +49 -0
  20. package/Models/DatabaseModels/UserNotificationSetting.ts +17 -0
  21. package/Models/DatabaseModels/UserOnCallLogTimeline.ts +48 -0
  22. package/Models/DatabaseModels/UserTelegram.ts +312 -0
  23. package/Server/API/KubernetesResourceAPI.ts +129 -0
  24. package/Server/API/UserTelegramAPI.ts +167 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.ts +399 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.ts +205 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.ts +335 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.ts +29 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.ts +53 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.ts +325 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -1
  32. package/Server/Services/DockerHostOwnerTeamService.ts +10 -0
  33. package/Server/Services/DockerHostOwnerUserService.ts +10 -0
  34. package/Server/Services/Index.ts +6 -0
  35. package/Server/Services/KubernetesClusterOwnerTeamService.ts +10 -0
  36. package/Server/Services/KubernetesClusterOwnerUserService.ts +10 -0
  37. package/Server/Services/KubernetesResourceService.ts +351 -0
  38. package/Server/Services/MetricPipelineRuleService.ts +10 -0
  39. package/Server/Services/MetricRecordingRuleService.ts +10 -0
  40. package/Server/Services/TelegramLogService.ts +15 -0
  41. package/Server/Services/TelegramService.ts +139 -0
  42. package/Server/Services/TraceDropFilterService.ts +10 -0
  43. package/Server/Services/TracePipelineProcessorService.ts +10 -0
  44. package/Server/Services/TracePipelineService.ts +10 -0
  45. package/Server/Services/TraceRecordingRuleService.ts +10 -0
  46. package/Server/Services/TraceScrubRuleService.ts +10 -0
  47. package/Server/Services/UserNotificationRuleService.ts +350 -1
  48. package/Server/Services/UserNotificationSettingService.ts +114 -0
  49. package/Server/Services/UserTelegramService.ts +140 -0
  50. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +71 -9
  51. package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +483 -75
  52. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +379 -6
  53. package/Server/Utils/Monitor/MonitorResource.ts +29 -15
  54. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +29 -16
  55. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +502 -0
  56. package/Tests/Types/Date.test.ts +158 -0
  57. package/Tests/Utils/MetricUnitUtil.test.ts +216 -0
  58. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +269 -0
  59. package/Tests/Utils/Metrics/MetricResultUnitConverter.test.ts +231 -0
  60. package/Tests/Utils/RecordingRuleExpression.test.ts +177 -0
  61. package/Types/Date.ts +12 -3
  62. package/Types/Icon/IconProp.ts +1 -0
  63. package/Types/Kubernetes/KubernetesInventoryExtractor.ts +327 -0
  64. package/Types/Kubernetes/KubernetesObjectParser.ts +1949 -0
  65. package/Types/Metrics/MetricDownsamplingRetentionDays.ts +49 -0
  66. package/Types/Metrics/MetricFormulaConfigData.ts +4 -0
  67. package/Types/Metrics/MetricPipelineRuleFilterCondition.ts +136 -0
  68. package/Types/Metrics/MetricPipelineRuleType.ts +27 -0
  69. package/Types/Metrics/RecordingRuleDefinition.ts +180 -0
  70. package/Types/Monitor/CriteriaFilter.ts +43 -0
  71. package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +70 -0
  72. package/Types/Permission.ts +531 -0
  73. package/Types/Telegram/TelegramMessage.ts +9 -0
  74. package/Types/TelegramStatus.ts +14 -0
  75. package/Types/Trace/TraceAggregationType.ts +17 -0
  76. package/Types/Trace/TraceDropFilterAction.ts +6 -0
  77. package/Types/Trace/TracePipelineProcessorType.ts +56 -0
  78. package/Types/Trace/TraceRecordingRuleDefinition.ts +218 -0
  79. package/Types/Trace/TraceScrubAction.ts +7 -0
  80. package/Types/Trace/TraceScrubField.ts +8 -0
  81. package/Types/Trace/TraceScrubPatternType.ts +10 -0
  82. package/UI/Components/CardSelect/CardSelect.tsx +9 -1
  83. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +6 -10
  84. package/UI/Components/Forms/Fields/FormField.tsx +1 -0
  85. package/UI/Components/Forms/Types/Field.ts +1 -0
  86. package/UI/Components/Icon/Icon.tsx +15 -0
  87. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +57 -0
  88. package/UI/Components/Page/Page.tsx +6 -0
  89. package/Utils/MetricUnitUtil.ts +289 -0
  90. package/Utils/Metrics/MetricFormulaEvaluator.ts +610 -0
  91. package/Utils/Metrics/MetricResultUnitConverter.ts +91 -0
  92. package/Utils/Metrics/RecordingRuleExpression.ts +359 -0
  93. package/Utils/ValueFormatter.ts +137 -13
  94. package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js +480 -0
  95. package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js.map +1 -0
  96. package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js +479 -0
  97. package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js.map +1 -0
  98. package/build/dist/Models/DatabaseModels/GlobalConfig.js +59 -0
  99. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  100. package/build/dist/Models/DatabaseModels/Index.js +28 -0
  101. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  102. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js +480 -0
  103. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js.map +1 -0
  104. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js +479 -0
  105. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js.map +1 -0
  106. package/build/dist/Models/DatabaseModels/KubernetesResource.js +590 -0
  107. package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -0
  108. package/build/dist/Models/DatabaseModels/MetricPipelineRule.js +836 -0
  109. package/build/dist/Models/DatabaseModels/MetricPipelineRule.js.map +1 -0
  110. package/build/dist/Models/DatabaseModels/MetricRecordingRule.js +497 -0
  111. package/build/dist/Models/DatabaseModels/MetricRecordingRule.js.map +1 -0
  112. package/build/dist/Models/DatabaseModels/Monitor.js +2 -0
  113. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  114. package/build/dist/Models/DatabaseModels/Project.js +85 -0
  115. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  116. package/build/dist/Models/DatabaseModels/Service.js +79 -0
  117. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  118. package/build/dist/Models/DatabaseModels/TelegramLog.js +1056 -0
  119. package/build/dist/Models/DatabaseModels/TelegramLog.js.map +1 -0
  120. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +536 -0
  121. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -0
  122. package/build/dist/Models/DatabaseModels/TracePipeline.js +462 -0
  123. package/build/dist/Models/DatabaseModels/TracePipeline.js.map +1 -0
  124. package/build/dist/Models/DatabaseModels/TracePipelineProcessor.js +476 -0
  125. package/build/dist/Models/DatabaseModels/TracePipelineProcessor.js.map +1 -0
  126. package/build/dist/Models/DatabaseModels/TraceRecordingRule.js +497 -0
  127. package/build/dist/Models/DatabaseModels/TraceRecordingRule.js.map +1 -0
  128. package/build/dist/Models/DatabaseModels/TraceScrubRule.js +575 -0
  129. package/build/dist/Models/DatabaseModels/TraceScrubRule.js.map +1 -0
  130. package/build/dist/Models/DatabaseModels/UserNotificationRule.js +49 -0
  131. package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
  132. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js +19 -0
  133. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js.map +1 -1
  134. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +48 -0
  135. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
  136. package/build/dist/Models/DatabaseModels/UserTelegram.js +331 -0
  137. package/build/dist/Models/DatabaseModels/UserTelegram.js.map +1 -0
  138. package/build/dist/Server/API/KubernetesResourceAPI.js +98 -0
  139. package/build/dist/Server/API/KubernetesResourceAPI.js.map +1 -0
  140. package/build/dist/Server/API/UserTelegramAPI.js +99 -0
  141. package/build/dist/Server/API/UserTelegramAPI.js.map +1 -0
  142. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.js +144 -0
  143. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.js.map +1 -0
  144. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.js +82 -0
  145. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.js.map +1 -0
  146. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.js +118 -0
  147. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.js.map +1 -0
  148. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.js +16 -0
  149. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.js.map +1 -0
  150. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.js +24 -0
  151. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.js.map +1 -0
  152. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.js +116 -0
  153. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.js.map +1 -0
  154. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  155. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  156. package/build/dist/Server/Services/DockerHostOwnerTeamService.js +9 -0
  157. package/build/dist/Server/Services/DockerHostOwnerTeamService.js.map +1 -0
  158. package/build/dist/Server/Services/DockerHostOwnerUserService.js +9 -0
  159. package/build/dist/Server/Services/DockerHostOwnerUserService.js.map +1 -0
  160. package/build/dist/Server/Services/Index.js +6 -0
  161. package/build/dist/Server/Services/Index.js.map +1 -1
  162. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js +9 -0
  163. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js.map +1 -0
  164. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js +9 -0
  165. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js.map +1 -0
  166. package/build/dist/Server/Services/KubernetesResourceService.js +237 -0
  167. package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -0
  168. package/build/dist/Server/Services/MetricPipelineRuleService.js +9 -0
  169. package/build/dist/Server/Services/MetricPipelineRuleService.js.map +1 -0
  170. package/build/dist/Server/Services/MetricRecordingRuleService.js +9 -0
  171. package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -0
  172. package/build/dist/Server/Services/TelegramLogService.js +13 -0
  173. package/build/dist/Server/Services/TelegramLogService.js.map +1 -0
  174. package/build/dist/Server/Services/TelegramService.js +100 -0
  175. package/build/dist/Server/Services/TelegramService.js.map +1 -0
  176. package/build/dist/Server/Services/TraceDropFilterService.js +9 -0
  177. package/build/dist/Server/Services/TraceDropFilterService.js.map +1 -0
  178. package/build/dist/Server/Services/TracePipelineProcessorService.js +9 -0
  179. package/build/dist/Server/Services/TracePipelineProcessorService.js.map +1 -0
  180. package/build/dist/Server/Services/TracePipelineService.js +9 -0
  181. package/build/dist/Server/Services/TracePipelineService.js.map +1 -0
  182. package/build/dist/Server/Services/TraceRecordingRuleService.js +9 -0
  183. package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -0
  184. package/build/dist/Server/Services/TraceScrubRuleService.js +9 -0
  185. package/build/dist/Server/Services/TraceScrubRuleService.js.map +1 -0
  186. package/build/dist/Server/Services/UserNotificationRuleService.js +272 -21
  187. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  188. package/build/dist/Server/Services/UserNotificationSettingService.js +94 -0
  189. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  190. package/build/dist/Server/Services/UserTelegramService.js +133 -0
  191. package/build/dist/Server/Services/UserTelegramService.js.map +1 -0
  192. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +56 -9
  193. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
  194. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +335 -53
  195. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
  196. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +277 -5
  197. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  198. package/build/dist/Server/Utils/Monitor/MonitorResource.js +25 -12
  199. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  200. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +24 -12
  201. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  202. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +407 -0
  203. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +1 -0
  204. package/build/dist/Tests/Types/Date.test.js +96 -0
  205. package/build/dist/Tests/Types/Date.test.js.map +1 -1
  206. package/build/dist/Tests/Utils/MetricUnitUtil.test.js +159 -0
  207. package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +1 -0
  208. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +224 -0
  209. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +1 -0
  210. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +180 -0
  211. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +1 -0
  212. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +142 -0
  213. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +1 -0
  214. package/build/dist/Types/Date.js +9 -3
  215. package/build/dist/Types/Date.js.map +1 -1
  216. package/build/dist/Types/Icon/IconProp.js +1 -0
  217. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  218. package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js +200 -0
  219. package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js.map +1 -0
  220. package/build/dist/Types/Kubernetes/KubernetesObjectParser.js +1205 -0
  221. package/build/dist/Types/Kubernetes/KubernetesObjectParser.js.map +1 -0
  222. package/build/dist/Types/Metrics/MetricDownsamplingRetentionDays.js +32 -0
  223. package/build/dist/Types/Metrics/MetricDownsamplingRetentionDays.js.map +1 -0
  224. package/build/dist/Types/Metrics/MetricPipelineRuleFilterCondition.js +103 -0
  225. package/build/dist/Types/Metrics/MetricPipelineRuleFilterCondition.js.map +1 -0
  226. package/build/dist/Types/Metrics/MetricPipelineRuleType.js +27 -0
  227. package/build/dist/Types/Metrics/MetricPipelineRuleType.js.map +1 -0
  228. package/build/dist/Types/Metrics/RecordingRuleDefinition.js +110 -0
  229. package/build/dist/Types/Metrics/RecordingRuleDefinition.js.map +1 -0
  230. package/build/dist/Types/Monitor/CriteriaFilter.js +22 -0
  231. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  232. package/build/dist/Types/Monitor/MetricMonitor/MetricCriteriaContext.js +2 -0
  233. package/build/dist/Types/Monitor/MetricMonitor/MetricCriteriaContext.js.map +1 -0
  234. package/build/dist/Types/Permission.js +464 -0
  235. package/build/dist/Types/Permission.js.map +1 -1
  236. package/build/dist/Types/Telegram/TelegramMessage.js +2 -0
  237. package/build/dist/Types/Telegram/TelegramMessage.js.map +1 -0
  238. package/build/dist/Types/TelegramStatus.js +15 -0
  239. package/build/dist/Types/TelegramStatus.js.map +1 -0
  240. package/build/dist/Types/Trace/TraceAggregationType.js +18 -0
  241. package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -0
  242. package/build/dist/Types/Trace/TraceDropFilterAction.js +7 -0
  243. package/build/dist/Types/Trace/TraceDropFilterAction.js.map +1 -0
  244. package/build/dist/Types/Trace/TracePipelineProcessorType.js +10 -0
  245. package/build/dist/Types/Trace/TracePipelineProcessorType.js.map +1 -0
  246. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +145 -0
  247. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -0
  248. package/build/dist/Types/Trace/TraceScrubAction.js +8 -0
  249. package/build/dist/Types/Trace/TraceScrubAction.js.map +1 -0
  250. package/build/dist/Types/Trace/TraceScrubField.js +9 -0
  251. package/build/dist/Types/Trace/TraceScrubField.js.map +1 -0
  252. package/build/dist/Types/Trace/TraceScrubPatternType.js +11 -0
  253. package/build/dist/Types/Trace/TraceScrubPatternType.js.map +1 -0
  254. package/build/dist/UI/Components/CardSelect/CardSelect.js +3 -1
  255. package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
  256. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +6 -9
  257. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  258. package/build/dist/UI/Components/Forms/Fields/FormField.js +1 -1
  259. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  260. package/build/dist/UI/Components/Icon/Icon.js +5 -0
  261. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  262. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +30 -0
  263. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  264. package/build/dist/UI/Components/Page/Page.js +1 -0
  265. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  266. package/build/dist/Utils/MetricUnitUtil.js +232 -0
  267. package/build/dist/Utils/MetricUnitUtil.js.map +1 -0
  268. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +453 -0
  269. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -0
  270. package/build/dist/Utils/Metrics/MetricResultUnitConverter.js +61 -0
  271. package/build/dist/Utils/Metrics/MetricResultUnitConverter.js.map +1 -0
  272. package/build/dist/Utils/Metrics/RecordingRuleExpression.js +298 -0
  273. package/build/dist/Utils/Metrics/RecordingRuleExpression.js.map +1 -0
  274. package/build/dist/Utils/ValueFormatter.js +123 -13
  275. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  276. package/package.json +2 -2
@@ -0,0 +1,546 @@
1
+ import Project from "./Project";
2
+ import User from "./User";
3
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
4
+ import Route from "../../Types/API/Route";
5
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
6
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
7
+ import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
8
+ import ColumnLength from "../../Types/Database/ColumnLength";
9
+ import ColumnType from "../../Types/Database/ColumnType";
10
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
11
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
12
+ import TableColumn from "../../Types/Database/TableColumn";
13
+ import TableColumnType from "../../Types/Database/TableColumnType";
14
+ import TableMetadata from "../../Types/Database/TableMetadata";
15
+ import TenantColumn from "../../Types/Database/TenantColumn";
16
+ import IconProp from "../../Types/Icon/IconProp";
17
+ import ObjectID from "../../Types/ObjectID";
18
+ import Permission from "../../Types/Permission";
19
+ import { PlanType } from "../../Types/Billing/SubscriptionPlan";
20
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
21
+
22
+ @EnableDocumentation()
23
+ @TableBillingAccessControl({
24
+ create: PlanType.Free,
25
+ read: PlanType.Free,
26
+ update: PlanType.Free,
27
+ delete: PlanType.Free,
28
+ })
29
+ @TenantColumn("projectId")
30
+ @CrudApiEndpoint(new Route("/trace-scrub-rule"))
31
+ @Entity({
32
+ name: "TraceScrubRule",
33
+ })
34
+ @TableMetadata({
35
+ tableName: "TraceScrubRule",
36
+ singularName: "Trace Scrub Rule",
37
+ pluralName: "Trace Scrub Rules",
38
+ icon: IconProp.ShieldCheck,
39
+ tableDescription:
40
+ "Configure rules to automatically detect and scrub sensitive data (PII) from spans at ingest time.",
41
+ })
42
+ @TableAccessControl({
43
+ create: [
44
+ Permission.ProjectOwner,
45
+ Permission.ProjectAdmin,
46
+ Permission.CreateProjectTraceScrubRule,
47
+ ],
48
+ read: [
49
+ Permission.ProjectOwner,
50
+ Permission.ProjectAdmin,
51
+ Permission.ProjectMember,
52
+ Permission.Viewer,
53
+ Permission.TelemetryManager,
54
+ Permission.ReadProjectTraceScrubRule,
55
+ Permission.ReadAllProjectResources,
56
+ ],
57
+ delete: [
58
+ Permission.ProjectOwner,
59
+ Permission.ProjectAdmin,
60
+ Permission.DeleteProjectTraceScrubRule,
61
+ ],
62
+ update: [
63
+ Permission.ProjectOwner,
64
+ Permission.ProjectAdmin,
65
+ Permission.EditProjectTraceScrubRule,
66
+ ],
67
+ })
68
+ export default class TraceScrubRule extends BaseModel {
69
+ @ColumnAccessControl({
70
+ create: [
71
+ Permission.ProjectOwner,
72
+ Permission.ProjectAdmin,
73
+ Permission.CreateProjectTraceScrubRule,
74
+ ],
75
+ read: [
76
+ Permission.ProjectOwner,
77
+ Permission.ProjectAdmin,
78
+ Permission.ProjectMember,
79
+ Permission.Viewer,
80
+ Permission.TelemetryManager,
81
+ Permission.ReadProjectTraceScrubRule,
82
+ Permission.ReadAllProjectResources,
83
+ ],
84
+ update: [],
85
+ })
86
+ @TableColumn({
87
+ manyToOneRelationColumn: "projectId",
88
+ type: TableColumnType.Entity,
89
+ modelType: Project,
90
+ title: "Project",
91
+ description: "Relation to the project this trace scrub rule belongs to.",
92
+ })
93
+ @ManyToOne(
94
+ () => {
95
+ return Project;
96
+ },
97
+ {
98
+ eager: false,
99
+ nullable: true,
100
+ onDelete: "CASCADE",
101
+ orphanedRowAction: "nullify",
102
+ },
103
+ )
104
+ @JoinColumn({ name: "projectId" })
105
+ public project?: Project = undefined;
106
+
107
+ @ColumnAccessControl({
108
+ create: [
109
+ Permission.ProjectOwner,
110
+ Permission.ProjectAdmin,
111
+ Permission.CreateProjectTraceScrubRule,
112
+ ],
113
+ read: [
114
+ Permission.ProjectOwner,
115
+ Permission.ProjectAdmin,
116
+ Permission.ProjectMember,
117
+ Permission.Viewer,
118
+ Permission.TelemetryManager,
119
+ Permission.ReadProjectTraceScrubRule,
120
+ Permission.ReadAllProjectResources,
121
+ ],
122
+ update: [],
123
+ })
124
+ @Index()
125
+ @TableColumn({
126
+ type: TableColumnType.ObjectID,
127
+ required: true,
128
+ canReadOnRelationQuery: true,
129
+ title: "Project ID",
130
+ description: "ID of the project this trace scrub rule belongs to.",
131
+ })
132
+ @Column({
133
+ type: ColumnType.ObjectID,
134
+ nullable: false,
135
+ transformer: ObjectID.getDatabaseTransformer(),
136
+ })
137
+ public projectId?: ObjectID = undefined;
138
+
139
+ @ColumnAccessControl({
140
+ create: [
141
+ Permission.ProjectOwner,
142
+ Permission.ProjectAdmin,
143
+ Permission.CreateProjectTraceScrubRule,
144
+ ],
145
+ read: [
146
+ Permission.ProjectOwner,
147
+ Permission.ProjectAdmin,
148
+ Permission.ProjectMember,
149
+ Permission.Viewer,
150
+ Permission.TelemetryManager,
151
+ Permission.ReadProjectTraceScrubRule,
152
+ Permission.ReadAllProjectResources,
153
+ ],
154
+ update: [
155
+ Permission.ProjectOwner,
156
+ Permission.ProjectAdmin,
157
+ Permission.EditProjectTraceScrubRule,
158
+ ],
159
+ })
160
+ @TableColumn({
161
+ required: true,
162
+ type: TableColumnType.Name,
163
+ canReadOnRelationQuery: true,
164
+ title: "Name",
165
+ description: "Friendly name for this scrub rule.",
166
+ })
167
+ @Column({
168
+ nullable: false,
169
+ type: ColumnType.Name,
170
+ length: ColumnLength.Name,
171
+ })
172
+ public name?: string = undefined;
173
+
174
+ @ColumnAccessControl({
175
+ create: [
176
+ Permission.ProjectOwner,
177
+ Permission.ProjectAdmin,
178
+ Permission.CreateProjectTraceScrubRule,
179
+ ],
180
+ read: [
181
+ Permission.ProjectOwner,
182
+ Permission.ProjectAdmin,
183
+ Permission.ProjectMember,
184
+ Permission.Viewer,
185
+ Permission.TelemetryManager,
186
+ Permission.ReadProjectTraceScrubRule,
187
+ Permission.ReadAllProjectResources,
188
+ ],
189
+ update: [
190
+ Permission.ProjectOwner,
191
+ Permission.ProjectAdmin,
192
+ Permission.EditProjectTraceScrubRule,
193
+ ],
194
+ })
195
+ @TableColumn({
196
+ required: false,
197
+ type: TableColumnType.LongText,
198
+ canReadOnRelationQuery: true,
199
+ title: "Description",
200
+ description: "Description of what this scrub rule does.",
201
+ })
202
+ @Column({
203
+ nullable: true,
204
+ type: ColumnType.LongText,
205
+ length: ColumnLength.LongText,
206
+ })
207
+ public description?: string = undefined;
208
+
209
+ @ColumnAccessControl({
210
+ create: [
211
+ Permission.ProjectOwner,
212
+ Permission.ProjectAdmin,
213
+ Permission.CreateProjectTraceScrubRule,
214
+ ],
215
+ read: [
216
+ Permission.ProjectOwner,
217
+ Permission.ProjectAdmin,
218
+ Permission.ProjectMember,
219
+ Permission.Viewer,
220
+ Permission.TelemetryManager,
221
+ Permission.ReadProjectTraceScrubRule,
222
+ Permission.ReadAllProjectResources,
223
+ ],
224
+ update: [
225
+ Permission.ProjectOwner,
226
+ Permission.ProjectAdmin,
227
+ Permission.EditProjectTraceScrubRule,
228
+ ],
229
+ })
230
+ @TableColumn({
231
+ required: true,
232
+ type: TableColumnType.ShortText,
233
+ canReadOnRelationQuery: true,
234
+ title: "Pattern Type",
235
+ description:
236
+ "The type of sensitive data pattern to detect: email, creditCard, ssn, phoneNumber, ipAddress, or custom.",
237
+ })
238
+ @Column({
239
+ nullable: false,
240
+ type: ColumnType.ShortText,
241
+ length: ColumnLength.ShortText,
242
+ })
243
+ public patternType?: string = undefined;
244
+
245
+ @ColumnAccessControl({
246
+ create: [
247
+ Permission.ProjectOwner,
248
+ Permission.ProjectAdmin,
249
+ Permission.CreateProjectTraceScrubRule,
250
+ ],
251
+ read: [
252
+ Permission.ProjectOwner,
253
+ Permission.ProjectAdmin,
254
+ Permission.ProjectMember,
255
+ Permission.Viewer,
256
+ Permission.TelemetryManager,
257
+ Permission.ReadProjectTraceScrubRule,
258
+ Permission.ReadAllProjectResources,
259
+ ],
260
+ update: [
261
+ Permission.ProjectOwner,
262
+ Permission.ProjectAdmin,
263
+ Permission.EditProjectTraceScrubRule,
264
+ ],
265
+ })
266
+ @TableColumn({
267
+ required: false,
268
+ type: TableColumnType.LongText,
269
+ canReadOnRelationQuery: true,
270
+ title: "Custom Regex",
271
+ description:
272
+ "A custom regular expression pattern to match. Only used when patternType is 'custom'.",
273
+ })
274
+ @Column({
275
+ nullable: true,
276
+ type: ColumnType.LongText,
277
+ length: ColumnLength.LongText,
278
+ })
279
+ public customRegex?: string = undefined;
280
+
281
+ @ColumnAccessControl({
282
+ create: [
283
+ Permission.ProjectOwner,
284
+ Permission.ProjectAdmin,
285
+ Permission.CreateProjectTraceScrubRule,
286
+ ],
287
+ read: [
288
+ Permission.ProjectOwner,
289
+ Permission.ProjectAdmin,
290
+ Permission.ProjectMember,
291
+ Permission.Viewer,
292
+ Permission.TelemetryManager,
293
+ Permission.ReadProjectTraceScrubRule,
294
+ Permission.ReadAllProjectResources,
295
+ ],
296
+ update: [
297
+ Permission.ProjectOwner,
298
+ Permission.ProjectAdmin,
299
+ Permission.EditProjectTraceScrubRule,
300
+ ],
301
+ })
302
+ @TableColumn({
303
+ required: true,
304
+ type: TableColumnType.ShortText,
305
+ canReadOnRelationQuery: true,
306
+ title: "Scrub Action",
307
+ description:
308
+ "How to scrub matched data: 'mask' partially hides it, 'hash' replaces with a hash, 'redact' removes entirely.",
309
+ })
310
+ @Column({
311
+ nullable: false,
312
+ type: ColumnType.ShortText,
313
+ length: ColumnLength.ShortText,
314
+ default: "redact",
315
+ })
316
+ public scrubAction?: string = undefined;
317
+
318
+ @ColumnAccessControl({
319
+ create: [
320
+ Permission.ProjectOwner,
321
+ Permission.ProjectAdmin,
322
+ Permission.CreateProjectTraceScrubRule,
323
+ ],
324
+ read: [
325
+ Permission.ProjectOwner,
326
+ Permission.ProjectAdmin,
327
+ Permission.ProjectMember,
328
+ Permission.Viewer,
329
+ Permission.TelemetryManager,
330
+ Permission.ReadProjectTraceScrubRule,
331
+ Permission.ReadAllProjectResources,
332
+ ],
333
+ update: [
334
+ Permission.ProjectOwner,
335
+ Permission.ProjectAdmin,
336
+ Permission.EditProjectTraceScrubRule,
337
+ ],
338
+ })
339
+ @TableColumn({
340
+ required: true,
341
+ type: TableColumnType.ShortText,
342
+ canReadOnRelationQuery: true,
343
+ title: "Fields to Scrub",
344
+ description:
345
+ "Which span fields to scrub: 'name' (span name), 'attributes' (attribute values), 'events' (span event attributes), or 'all'.",
346
+ })
347
+ @Column({
348
+ nullable: false,
349
+ type: ColumnType.ShortText,
350
+ length: ColumnLength.ShortText,
351
+ default: "all",
352
+ })
353
+ public fieldsToScrub?: string = undefined;
354
+
355
+ @ColumnAccessControl({
356
+ create: [
357
+ Permission.ProjectOwner,
358
+ Permission.ProjectAdmin,
359
+ Permission.CreateProjectTraceScrubRule,
360
+ ],
361
+ read: [
362
+ Permission.ProjectOwner,
363
+ Permission.ProjectAdmin,
364
+ Permission.ProjectMember,
365
+ Permission.Viewer,
366
+ Permission.TelemetryManager,
367
+ Permission.ReadProjectTraceScrubRule,
368
+ Permission.ReadAllProjectResources,
369
+ ],
370
+ update: [
371
+ Permission.ProjectOwner,
372
+ Permission.ProjectAdmin,
373
+ Permission.EditProjectTraceScrubRule,
374
+ ],
375
+ })
376
+ @Index()
377
+ @TableColumn({
378
+ required: true,
379
+ type: TableColumnType.Boolean,
380
+ canReadOnRelationQuery: true,
381
+ title: "Enabled",
382
+ description: "Whether this scrub rule is active.",
383
+ defaultValue: true,
384
+ })
385
+ @Column({
386
+ nullable: false,
387
+ type: ColumnType.Boolean,
388
+ default: true,
389
+ })
390
+ public isEnabled?: boolean = undefined;
391
+
392
+ @ColumnAccessControl({
393
+ create: [
394
+ Permission.ProjectOwner,
395
+ Permission.ProjectAdmin,
396
+ Permission.CreateProjectTraceScrubRule,
397
+ ],
398
+ read: [
399
+ Permission.ProjectOwner,
400
+ Permission.ProjectAdmin,
401
+ Permission.ProjectMember,
402
+ Permission.Viewer,
403
+ Permission.TelemetryManager,
404
+ Permission.ReadProjectTraceScrubRule,
405
+ Permission.ReadAllProjectResources,
406
+ ],
407
+ update: [
408
+ Permission.ProjectOwner,
409
+ Permission.ProjectAdmin,
410
+ Permission.EditProjectTraceScrubRule,
411
+ ],
412
+ })
413
+ @TableColumn({
414
+ title: "Sort Order",
415
+ required: false,
416
+ type: TableColumnType.Number,
417
+ canReadOnRelationQuery: true,
418
+ description:
419
+ "Determines the evaluation order of this rule relative to others.",
420
+ defaultValue: 0,
421
+ })
422
+ @Column({
423
+ type: ColumnType.Number,
424
+ nullable: false,
425
+ default: 0,
426
+ })
427
+ public sortOrder?: number = undefined;
428
+
429
+ @ColumnAccessControl({
430
+ create: [],
431
+ read: [
432
+ Permission.ProjectOwner,
433
+ Permission.ProjectAdmin,
434
+ Permission.ProjectMember,
435
+ Permission.Viewer,
436
+ Permission.TelemetryManager,
437
+ Permission.ReadProjectTraceScrubRule,
438
+ Permission.ReadAllProjectResources,
439
+ ],
440
+ update: [],
441
+ })
442
+ @TableColumn({
443
+ manyToOneRelationColumn: "createdByUserId",
444
+ type: TableColumnType.Entity,
445
+ modelType: User,
446
+ title: "Created By User",
447
+ description: "Relation to the user who created this trace scrub rule.",
448
+ })
449
+ @ManyToOne(
450
+ () => {
451
+ return User;
452
+ },
453
+ {
454
+ eager: false,
455
+ nullable: true,
456
+ onDelete: "SET NULL",
457
+ orphanedRowAction: "nullify",
458
+ },
459
+ )
460
+ @JoinColumn({ name: "createdByUserId" })
461
+ public createdByUser?: User = undefined;
462
+
463
+ @ColumnAccessControl({
464
+ create: [],
465
+ read: [
466
+ Permission.ProjectOwner,
467
+ Permission.ProjectAdmin,
468
+ Permission.ProjectMember,
469
+ Permission.Viewer,
470
+ Permission.TelemetryManager,
471
+ Permission.ReadProjectTraceScrubRule,
472
+ Permission.ReadAllProjectResources,
473
+ ],
474
+ update: [],
475
+ })
476
+ @TableColumn({
477
+ type: TableColumnType.ObjectID,
478
+ title: "Created By User ID",
479
+ description: "ID of the user who created this trace scrub rule.",
480
+ })
481
+ @Column({
482
+ type: ColumnType.ObjectID,
483
+ nullable: true,
484
+ transformer: ObjectID.getDatabaseTransformer(),
485
+ })
486
+ public createdByUserId?: ObjectID = undefined;
487
+
488
+ @ColumnAccessControl({
489
+ create: [],
490
+ read: [
491
+ Permission.ProjectOwner,
492
+ Permission.ProjectAdmin,
493
+ Permission.ProjectMember,
494
+ Permission.Viewer,
495
+ Permission.TelemetryManager,
496
+ Permission.ReadProjectTraceScrubRule,
497
+ Permission.ReadAllProjectResources,
498
+ ],
499
+ update: [],
500
+ })
501
+ @TableColumn({
502
+ manyToOneRelationColumn: "deletedByUserId",
503
+ type: TableColumnType.Entity,
504
+ modelType: User,
505
+ title: "Deleted By User",
506
+ description: "Relation to the user who deleted this trace scrub rule.",
507
+ })
508
+ @ManyToOne(
509
+ () => {
510
+ return User;
511
+ },
512
+ {
513
+ eager: false,
514
+ nullable: true,
515
+ onDelete: "SET NULL",
516
+ orphanedRowAction: "nullify",
517
+ },
518
+ )
519
+ @JoinColumn({ name: "deletedByUserId" })
520
+ public deletedByUser?: User = undefined;
521
+
522
+ @ColumnAccessControl({
523
+ create: [],
524
+ read: [
525
+ Permission.ProjectOwner,
526
+ Permission.ProjectAdmin,
527
+ Permission.ProjectMember,
528
+ Permission.Viewer,
529
+ Permission.TelemetryManager,
530
+ Permission.ReadProjectTraceScrubRule,
531
+ Permission.ReadAllProjectResources,
532
+ ],
533
+ update: [],
534
+ })
535
+ @TableColumn({
536
+ type: TableColumnType.ObjectID,
537
+ title: "Deleted By User ID",
538
+ description: "ID of the user who deleted this trace scrub rule.",
539
+ })
540
+ @Column({
541
+ type: ColumnType.ObjectID,
542
+ nullable: true,
543
+ transformer: ObjectID.getDatabaseTransformer(),
544
+ })
545
+ public deletedByUserId?: ObjectID = undefined;
546
+ }
@@ -6,6 +6,7 @@ import UserCall from "./UserCall";
6
6
  import UserEmail from "./UserEmail";
7
7
  import UserPush from "./UserPush";
8
8
  import UserSMS from "./UserSMS";
9
+ import UserTelegram from "./UserTelegram";
9
10
  import UserWhatsApp from "./UserWhatsApp";
10
11
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
11
12
  import Route from "../../Types/API/Route";
@@ -440,6 +441,54 @@ class UserNotificationRule extends BaseModel {
440
441
  })
441
442
  public userWhatsAppId?: ObjectID = undefined;
442
443
 
444
+ @ColumnAccessControl({
445
+ create: [Permission.CurrentUser],
446
+ read: [Permission.CurrentUser],
447
+ update: [],
448
+ })
449
+ @TableColumn({
450
+ manyToOneRelationColumn: "userTelegramId",
451
+ type: TableColumnType.Entity,
452
+ modelType: UserTelegram,
453
+ title: "User Telegram",
454
+ description:
455
+ "Relation to User Telegram Resource in which this object belongs",
456
+ })
457
+ @ManyToOne(
458
+ () => {
459
+ return UserTelegram;
460
+ },
461
+ {
462
+ eager: false,
463
+ nullable: true,
464
+ onDelete: "CASCADE",
465
+ orphanedRowAction: "nullify",
466
+ },
467
+ )
468
+ @JoinColumn({ name: "userTelegramId" })
469
+ public userTelegram?: UserTelegram = undefined;
470
+
471
+ @ColumnAccessControl({
472
+ create: [Permission.CurrentUser],
473
+ read: [Permission.CurrentUser],
474
+ update: [],
475
+ })
476
+ @Index()
477
+ @TableColumn({
478
+ type: TableColumnType.ObjectID,
479
+ required: false,
480
+ canReadOnRelationQuery: true,
481
+ title: "User Telegram ID",
482
+ description: "ID of User Telegram in which this object belongs",
483
+ example: "8f7e6d5c-4b3a-2f1e-0d9c-8b7a6f5e4d3c",
484
+ })
485
+ @Column({
486
+ type: ColumnType.ObjectID,
487
+ nullable: true,
488
+ transformer: ObjectID.getDatabaseTransformer(),
489
+ })
490
+ public userTelegramId?: ObjectID = undefined;
491
+
443
492
  @ColumnAccessControl({
444
493
  create: [Permission.CurrentUser],
445
494
  read: [Permission.CurrentUser],
@@ -297,6 +297,23 @@ class UserNotificationSetting extends BaseModel {
297
297
  })
298
298
  public alertByWhatsApp?: boolean = undefined;
299
299
 
300
+ @ColumnAccessControl({
301
+ create: [Permission.CurrentUser],
302
+ read: [Permission.CurrentUser],
303
+ update: [Permission.CurrentUser],
304
+ })
305
+ @TableColumn({
306
+ isDefaultValueColumn: true,
307
+ type: TableColumnType.Boolean,
308
+ defaultValue: false,
309
+ example: false,
310
+ })
311
+ @Column({
312
+ type: ColumnType.Boolean,
313
+ default: false,
314
+ })
315
+ public alertByTelegram?: boolean = undefined;
316
+
300
317
  @ColumnAccessControl({
301
318
  create: [Permission.CurrentUser],
302
319
  read: [Permission.CurrentUser],
@@ -15,6 +15,7 @@ import UserNotificationRule from "./UserNotificationRule";
15
15
  import UserPush from "./UserPush";
16
16
  import UserOnCallLog from "./UserOnCallLog";
17
17
  import UserSMS from "./UserSMS";
18
+ import UserTelegram from "./UserTelegram";
18
19
  import UserWhatsApp from "./UserWhatsApp";
19
20
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
20
21
  import Route from "../../Types/API/Route";
@@ -980,6 +981,53 @@ export default class UserOnCallLogTimeline extends BaseModel {
980
981
  })
981
982
  public userWhatsAppId?: ObjectID = undefined;
982
983
 
984
+ @ColumnAccessControl({
985
+ create: [],
986
+ read: [Permission.CurrentUser],
987
+ update: [],
988
+ })
989
+ @TableColumn({
990
+ manyToOneRelationColumn: "userTelegramId",
991
+ type: TableColumnType.Entity,
992
+ modelType: UserTelegram,
993
+ title: "User Telegram",
994
+ description:
995
+ "Relation to User Telegram Resource in which this object belongs",
996
+ })
997
+ @ManyToOne(
998
+ () => {
999
+ return UserTelegram;
1000
+ },
1001
+ {
1002
+ eager: false,
1003
+ nullable: true,
1004
+ onDelete: "CASCADE",
1005
+ orphanedRowAction: "nullify",
1006
+ },
1007
+ )
1008
+ @JoinColumn({ name: "userTelegramId" })
1009
+ public userTelegram?: UserTelegram = undefined;
1010
+
1011
+ @ColumnAccessControl({
1012
+ create: [],
1013
+ read: [Permission.CurrentUser],
1014
+ update: [],
1015
+ })
1016
+ @Index()
1017
+ @TableColumn({
1018
+ type: TableColumnType.ObjectID,
1019
+ required: false,
1020
+ canReadOnRelationQuery: true,
1021
+ title: "User Telegram ID",
1022
+ description: "ID of User Telegram in which this object belongs",
1023
+ })
1024
+ @Column({
1025
+ type: ColumnType.ObjectID,
1026
+ nullable: true,
1027
+ transformer: ObjectID.getDatabaseTransformer(),
1028
+ })
1029
+ public userTelegramId?: ObjectID = undefined;
1030
+
983
1031
  @ColumnAccessControl({
984
1032
  create: [],
985
1033
  read: [Permission.CurrentUser],