@oneuptime/common 10.0.39 → 10.0.41

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 (285) hide show
  1. package/Models/AnalyticsModels/Index.ts +4 -0
  2. package/Models/AnalyticsModels/Profile.ts +687 -0
  3. package/Models/AnalyticsModels/ProfileSample.ts +547 -0
  4. package/Models/DatabaseModels/Dashboard.ts +357 -0
  5. package/Models/DatabaseModels/DashboardDomain.ts +658 -0
  6. package/Models/DatabaseModels/Index.ts +2 -0
  7. package/Models/DatabaseModels/StatusPage.ts +41 -0
  8. package/Server/API/DashboardAPI.ts +408 -0
  9. package/Server/API/DashboardDomainAPI.ts +235 -0
  10. package/Server/API/StatusPageAPI.ts +36 -2
  11. package/Server/API/TelemetryAPI.ts +393 -0
  12. package/Server/EnvironmentConfig.ts +12 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1774524742177-MigrationName.ts +97 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1774524742178-MigrationName.ts +17 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1774524742179-MigrationName.ts +50 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1774559064919-MigrationName.ts +59 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  18. package/Server/Middleware/UserAuthorization.ts +96 -1
  19. package/Server/Services/DashboardDomainService.ts +647 -0
  20. package/Server/Services/DashboardService.ts +174 -3
  21. package/Server/Services/IncidentService.ts +295 -50
  22. package/Server/Services/IncidentStateTimelineService.ts +1 -0
  23. package/Server/Services/Index.ts +6 -0
  24. package/Server/Services/MonitorService.ts +5 -0
  25. package/Server/Services/ProfileAggregationService.ts +559 -0
  26. package/Server/Services/ProfileSampleService.ts +11 -0
  27. package/Server/Services/ProfileService.ts +11 -0
  28. package/Server/Services/TelemetryUsageBillingService.ts +77 -3
  29. package/Server/Services/WorkspaceNotificationSummaryService.ts +15 -1
  30. package/Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts +9 -0
  31. package/Server/Utils/Cookie.ts +48 -0
  32. package/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.ts +34 -0
  33. package/Server/Utils/Monitor/DataToProcess.ts +3 -1
  34. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +299 -0
  35. package/Server/Utils/Profile/PprofEncoder.ts +225 -0
  36. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +53 -16
  37. package/Server/Utils/Workspace/Slack/Slack.ts +26 -6
  38. package/ServiceRoute.ts +2 -0
  39. package/Tests/UI/Components/ComponentsModal.test.tsx +19 -15
  40. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +2 -0
  41. package/Types/CookieName.ts +1 -0
  42. package/Types/Dashboard/Chart/ChartType.ts +5 -0
  43. package/Types/Dashboard/DashboardComponentType.ts +4 -0
  44. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +10 -0
  45. package/Types/Dashboard/DashboardComponents/DashboardChartComponent.ts +1 -2
  46. package/Types/Dashboard/DashboardComponents/DashboardGaugeComponent.ts +17 -0
  47. package/Types/Dashboard/DashboardComponents/DashboardLogStreamComponent.ts +15 -0
  48. package/Types/Dashboard/DashboardComponents/DashboardTableComponent.ts +14 -0
  49. package/Types/Dashboard/DashboardComponents/DashboardTextComponent.ts +1 -0
  50. package/Types/Dashboard/DashboardComponents/DashboardTraceListComponent.ts +13 -0
  51. package/Types/Dashboard/DashboardComponents/DashboardValueComponent.ts +2 -0
  52. package/Types/Dashboard/DashboardTemplates.ts +964 -0
  53. package/Types/Dashboard/DashboardVariable.ts +23 -0
  54. package/Types/Dashboard/DashboardViewConfig.ts +59 -0
  55. package/Types/Dashboard/MasterPassword.ts +10 -0
  56. package/Types/Icon/IconProp.ts +1 -0
  57. package/Types/Incident/IncidentMetricType.ts +3 -0
  58. package/Types/MeteredPlan/ProductType.ts +1 -0
  59. package/Types/Metrics/MetricQueryConfigData.ts +3 -0
  60. package/Types/Monitor/CriteriaFilter.ts +3 -0
  61. package/Types/Monitor/KubernetesAlertTemplates.ts +78 -7
  62. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +20 -0
  63. package/Types/Monitor/MonitorStep.ts +25 -0
  64. package/Types/Monitor/MonitorStepProfileMonitor.ts +96 -0
  65. package/Types/Monitor/MonitorType.ts +11 -0
  66. package/Types/Monitor/ProfileMonitor/ProfileMonitorResponse.ts +12 -0
  67. package/Types/Permission.ts +87 -0
  68. package/Types/Telemetry/TelemetryType.ts +1 -0
  69. package/Types/Workspace/NotificationSummary/WorkspaceNotificationSummaryItem.ts +1 -0
  70. package/UI/Components/Button/Button.tsx +1 -1
  71. package/UI/Components/Card/Card.tsx +8 -4
  72. package/UI/Components/Charts/Area/AreaChart.tsx +4 -0
  73. package/UI/Components/Charts/Bar/BarChart.tsx +4 -0
  74. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +26 -0
  75. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +26 -0
  76. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +26 -0
  77. package/UI/Components/Charts/Line/LineChart.tsx +4 -0
  78. package/UI/Components/Charts/Types/ReferenceLineProps.ts +6 -0
  79. package/UI/Components/Icon/Icon.tsx +33 -0
  80. package/UI/Components/ModelTable/BaseModelTable.tsx +13 -10
  81. package/UI/Components/MoreMenu/MoreMenu.tsx +15 -2
  82. package/UI/Components/MoreMenu/MoreMenuItem.tsx +4 -4
  83. package/UI/Components/Workflow/Component.tsx +450 -209
  84. package/UI/Components/Workflow/ComponentPortViewer.tsx +57 -20
  85. package/UI/Components/Workflow/ComponentReturnValueViewer.tsx +65 -25
  86. package/UI/Components/Workflow/ComponentSettingsModal.tsx +202 -37
  87. package/UI/Components/Workflow/ComponentsModal.tsx +180 -93
  88. package/UI/Components/Workflow/Workflow.tsx +105 -9
  89. package/UI/Config.ts +9 -0
  90. package/Utils/Dashboard/Components/DashboardChartComponent.ts +53 -22
  91. package/Utils/Dashboard/Components/DashboardGaugeComponent.ts +124 -0
  92. package/Utils/Dashboard/Components/DashboardLogStreamComponent.ts +110 -0
  93. package/Utils/Dashboard/Components/DashboardTableComponent.ts +86 -0
  94. package/Utils/Dashboard/Components/DashboardTextComponent.ts +32 -7
  95. package/Utils/Dashboard/Components/DashboardTraceListComponent.ts +86 -0
  96. package/Utils/Dashboard/Components/DashboardValueComponent.ts +39 -3
  97. package/Utils/Dashboard/Components/Index.ts +28 -0
  98. package/Utils/ValueFormatter.ts +170 -0
  99. package/build/dist/Models/AnalyticsModels/Index.js +4 -0
  100. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  101. package/build/dist/Models/AnalyticsModels/Profile.js +621 -0
  102. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -0
  103. package/build/dist/Models/AnalyticsModels/ProfileSample.js +497 -0
  104. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -0
  105. package/build/dist/Models/DatabaseModels/Dashboard.js +365 -0
  106. package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
  107. package/build/dist/Models/DatabaseModels/DashboardDomain.js +691 -0
  108. package/build/dist/Models/DatabaseModels/DashboardDomain.js.map +1 -0
  109. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  110. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  111. package/build/dist/Models/DatabaseModels/StatusPage.js +42 -0
  112. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  113. package/build/dist/Server/API/DashboardAPI.js +293 -0
  114. package/build/dist/Server/API/DashboardAPI.js.map +1 -0
  115. package/build/dist/Server/API/DashboardDomainAPI.js +124 -0
  116. package/build/dist/Server/API/DashboardDomainAPI.js.map +1 -0
  117. package/build/dist/Server/API/StatusPageAPI.js +26 -2
  118. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  119. package/build/dist/Server/API/TelemetryAPI.js +222 -0
  120. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  121. package/build/dist/Server/EnvironmentConfig.js +4 -0
  122. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  123. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742177-MigrationName.js +40 -0
  124. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742177-MigrationName.js.map +1 -0
  125. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742178-MigrationName.js +12 -0
  126. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742178-MigrationName.js.map +1 -0
  127. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742179-MigrationName.js +23 -0
  128. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742179-MigrationName.js.map +1 -0
  129. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064919-MigrationName.js +26 -0
  130. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064919-MigrationName.js.map +1 -0
  131. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  132. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  133. package/build/dist/Server/Middleware/UserAuthorization.js +41 -0
  134. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  135. package/build/dist/Server/Services/DashboardDomainService.js +595 -0
  136. package/build/dist/Server/Services/DashboardDomainService.js.map +1 -0
  137. package/build/dist/Server/Services/DashboardService.js +117 -3
  138. package/build/dist/Server/Services/DashboardService.js.map +1 -1
  139. package/build/dist/Server/Services/IncidentService.js +231 -55
  140. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  141. package/build/dist/Server/Services/IncidentStateTimelineService.js +1 -1
  142. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  143. package/build/dist/Server/Services/Index.js +6 -0
  144. package/build/dist/Server/Services/Index.js.map +1 -1
  145. package/build/dist/Server/Services/MonitorService.js +5 -2
  146. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  147. package/build/dist/Server/Services/ProfileAggregationService.js +356 -0
  148. package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -0
  149. package/build/dist/Server/Services/ProfileSampleService.js +9 -0
  150. package/build/dist/Server/Services/ProfileSampleService.js.map +1 -0
  151. package/build/dist/Server/Services/ProfileService.js +9 -0
  152. package/build/dist/Server/Services/ProfileService.js.map +1 -0
  153. package/build/dist/Server/Services/TelemetryUsageBillingService.js +61 -4
  154. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  155. package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js +13 -1
  156. package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js.map +1 -1
  157. package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js +8 -0
  158. package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js.map +1 -1
  159. package/build/dist/Server/Utils/Cookie.js +36 -0
  160. package/build/dist/Server/Utils/Cookie.js.map +1 -1
  161. package/build/dist/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.js +34 -0
  162. package/build/dist/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.js.map +1 -0
  163. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +173 -0
  164. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  165. package/build/dist/Server/Utils/Profile/PprofEncoder.js +129 -0
  166. package/build/dist/Server/Utils/Profile/PprofEncoder.js.map +1 -0
  167. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +36 -14
  168. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  169. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +23 -6
  170. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  171. package/build/dist/ServiceRoute.js +1 -0
  172. package/build/dist/ServiceRoute.js.map +1 -1
  173. package/build/dist/Tests/UI/Components/ComponentsModal.test.js +15 -15
  174. package/build/dist/Tests/UI/Components/ComponentsModal.test.js.map +1 -1
  175. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +2 -0
  176. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  177. package/build/dist/Types/CookieName.js +1 -0
  178. package/build/dist/Types/CookieName.js.map +1 -1
  179. package/build/dist/Types/Dashboard/Chart/ChartType.js +5 -0
  180. package/build/dist/Types/Dashboard/Chart/ChartType.js.map +1 -1
  181. package/build/dist/Types/Dashboard/DashboardComponentType.js +4 -0
  182. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  183. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  184. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  185. package/build/dist/Types/Dashboard/DashboardComponents/DashboardGaugeComponent.js +2 -0
  186. package/build/dist/Types/Dashboard/DashboardComponents/DashboardGaugeComponent.js.map +1 -0
  187. package/build/dist/Types/Dashboard/DashboardComponents/DashboardLogStreamComponent.js +2 -0
  188. package/build/dist/Types/Dashboard/DashboardComponents/DashboardLogStreamComponent.js.map +1 -0
  189. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTableComponent.js +2 -0
  190. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTableComponent.js.map +1 -0
  191. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceListComponent.js +2 -0
  192. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceListComponent.js.map +1 -0
  193. package/build/dist/Types/Dashboard/DashboardTemplates.js +853 -0
  194. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -0
  195. package/build/dist/Types/Dashboard/DashboardVariable.js +7 -0
  196. package/build/dist/Types/Dashboard/DashboardVariable.js.map +1 -0
  197. package/build/dist/Types/Dashboard/DashboardViewConfig.js +50 -1
  198. package/build/dist/Types/Dashboard/DashboardViewConfig.js.map +1 -1
  199. package/build/dist/Types/Dashboard/MasterPassword.js +5 -0
  200. package/build/dist/Types/Dashboard/MasterPassword.js.map +1 -0
  201. package/build/dist/Types/Icon/IconProp.js +1 -0
  202. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  203. package/build/dist/Types/Incident/IncidentMetricType.js +3 -0
  204. package/build/dist/Types/Incident/IncidentMetricType.js.map +1 -1
  205. package/build/dist/Types/MeteredPlan/ProductType.js +1 -0
  206. package/build/dist/Types/MeteredPlan/ProductType.js.map +1 -1
  207. package/build/dist/Types/Metrics/MetricQueryConfigData.js +1 -0
  208. package/build/dist/Types/Metrics/MetricQueryConfigData.js.map +1 -1
  209. package/build/dist/Types/Monitor/CriteriaFilter.js +2 -0
  210. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  211. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +58 -7
  212. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  213. package/build/dist/Types/Monitor/MonitorStep.js +15 -0
  214. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  215. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js +59 -0
  216. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js.map +1 -0
  217. package/build/dist/Types/Monitor/MonitorType.js +10 -0
  218. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  219. package/build/dist/Types/Monitor/ProfileMonitor/ProfileMonitorResponse.js +2 -0
  220. package/build/dist/Types/Monitor/ProfileMonitor/ProfileMonitorResponse.js.map +1 -0
  221. package/build/dist/Types/Permission.js +75 -0
  222. package/build/dist/Types/Permission.js.map +1 -1
  223. package/build/dist/Types/Telemetry/TelemetryType.js +1 -0
  224. package/build/dist/Types/Telemetry/TelemetryType.js.map +1 -1
  225. package/build/dist/Types/Workspace/NotificationSummary/WorkspaceNotificationSummaryItem.js +1 -0
  226. package/build/dist/Types/Workspace/NotificationSummary/WorkspaceNotificationSummaryItem.js.map +1 -1
  227. package/build/dist/UI/Components/Button/Button.js +1 -1
  228. package/build/dist/UI/Components/Button/Button.js.map +1 -1
  229. package/build/dist/UI/Components/Card/Card.js +4 -4
  230. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  231. package/build/dist/UI/Components/Charts/Area/AreaChart.js +1 -1
  232. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  233. package/build/dist/UI/Components/Charts/Bar/BarChart.js +1 -1
  234. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  235. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +5 -2
  236. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  237. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +5 -2
  238. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  239. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +6 -3
  240. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  241. package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
  242. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  243. package/build/dist/UI/Components/Charts/Types/ReferenceLineProps.js +2 -0
  244. package/build/dist/UI/Components/Charts/Types/ReferenceLineProps.js.map +1 -0
  245. package/build/dist/UI/Components/Icon/Icon.js +11 -0
  246. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  247. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +12 -9
  248. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  249. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +8 -2
  250. package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
  251. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +4 -4
  252. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
  253. package/build/dist/UI/Components/Workflow/Component.js +311 -143
  254. package/build/dist/UI/Components/Workflow/Component.js.map +1 -1
  255. package/build/dist/UI/Components/Workflow/ComponentPortViewer.js +44 -18
  256. package/build/dist/UI/Components/Workflow/ComponentPortViewer.js.map +1 -1
  257. package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js +48 -22
  258. package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js.map +1 -1
  259. package/build/dist/UI/Components/Workflow/ComponentSettingsModal.js +127 -21
  260. package/build/dist/UI/Components/Workflow/ComponentSettingsModal.js.map +1 -1
  261. package/build/dist/UI/Components/Workflow/ComponentsModal.js +107 -52
  262. package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
  263. package/build/dist/UI/Components/Workflow/Workflow.js +87 -12
  264. package/build/dist/UI/Components/Workflow/Workflow.js.map +1 -1
  265. package/build/dist/UI/Config.js +3 -1
  266. package/build/dist/UI/Config.js.map +1 -1
  267. package/build/dist/Utils/Dashboard/Components/DashboardChartComponent.js +50 -21
  268. package/build/dist/Utils/Dashboard/Components/DashboardChartComponent.js.map +1 -1
  269. package/build/dist/Utils/Dashboard/Components/DashboardGaugeComponent.js +104 -0
  270. package/build/dist/Utils/Dashboard/Components/DashboardGaugeComponent.js.map +1 -0
  271. package/build/dist/Utils/Dashboard/Components/DashboardLogStreamComponent.js +91 -0
  272. package/build/dist/Utils/Dashboard/Components/DashboardLogStreamComponent.js.map +1 -0
  273. package/build/dist/Utils/Dashboard/Components/DashboardTableComponent.js +70 -0
  274. package/build/dist/Utils/Dashboard/Components/DashboardTableComponent.js.map +1 -0
  275. package/build/dist/Utils/Dashboard/Components/DashboardTextComponent.js +28 -7
  276. package/build/dist/Utils/Dashboard/Components/DashboardTextComponent.js.map +1 -1
  277. package/build/dist/Utils/Dashboard/Components/DashboardTraceListComponent.js +70 -0
  278. package/build/dist/Utils/Dashboard/Components/DashboardTraceListComponent.js.map +1 -0
  279. package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js +34 -3
  280. package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js.map +1 -1
  281. package/build/dist/Utils/Dashboard/Components/Index.js +16 -0
  282. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  283. package/build/dist/Utils/ValueFormatter.js +132 -0
  284. package/build/dist/Utils/ValueFormatter.js.map +1 -0
  285. package/package.json +1 -1
@@ -0,0 +1,658 @@
1
+ import Dashboard from "./Dashboard";
2
+ import Domain from "./Domain";
3
+ import Project from "./Project";
4
+ import User from "./User";
5
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
6
+ import Route from "../../Types/API/Route";
7
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
8
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
9
+ import CanAccessIfCanReadOn from "../../Types/Database/CanAccessIfCanReadOn";
10
+ import ColumnLength from "../../Types/Database/ColumnLength";
11
+ import ColumnType from "../../Types/Database/ColumnType";
12
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
13
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
14
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
15
+ import TableColumn from "../../Types/Database/TableColumn";
16
+ import TableColumnType from "../../Types/Database/TableColumnType";
17
+ import TableMetadata from "../../Types/Database/TableMetadata";
18
+ import TenantColumn from "../../Types/Database/TenantColumn";
19
+ import UniqueColumnBy from "../../Types/Database/UniqueColumnBy";
20
+ import IconProp from "../../Types/Icon/IconProp";
21
+ import ObjectID from "../../Types/ObjectID";
22
+ import Permission from "../../Types/Permission";
23
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
24
+
25
+ @EnableDocumentation()
26
+ @CanAccessIfCanReadOn("dashboard")
27
+ @TenantColumn("projectId")
28
+ @TableAccessControl({
29
+ create: [
30
+ Permission.ProjectOwner,
31
+ Permission.ProjectAdmin,
32
+ Permission.ProjectMember,
33
+ Permission.CreateDashboardDomain,
34
+ ],
35
+ read: [
36
+ Permission.ProjectOwner,
37
+ Permission.ProjectAdmin,
38
+ Permission.ProjectMember,
39
+ Permission.ReadDashboardDomain,
40
+ Permission.ReadAllProjectResources,
41
+ ],
42
+ delete: [
43
+ Permission.ProjectOwner,
44
+ Permission.ProjectAdmin,
45
+ Permission.ProjectMember,
46
+ Permission.DeleteDashboardDomain,
47
+ ],
48
+ update: [
49
+ Permission.ProjectOwner,
50
+ Permission.ProjectAdmin,
51
+ Permission.ProjectMember,
52
+ Permission.EditDashboardDomain,
53
+ ],
54
+ })
55
+ @EnableWorkflow({
56
+ create: true,
57
+ delete: true,
58
+ update: true,
59
+ read: true,
60
+ })
61
+ @CrudApiEndpoint(new Route("/dashboard-domain"))
62
+ @TableMetadata({
63
+ tableName: "DashboardDomain",
64
+ singularName: "Dashboard Domain",
65
+ pluralName: "Dashboard Domains",
66
+ icon: IconProp.Globe,
67
+ tableDescription: "Manage custom domains for your dashboard",
68
+ })
69
+ @Entity({
70
+ name: "DashboardDomain",
71
+ })
72
+ export default class DashboardDomain extends BaseModel {
73
+ @ColumnAccessControl({
74
+ create: [
75
+ Permission.ProjectOwner,
76
+ Permission.ProjectAdmin,
77
+ Permission.ProjectMember,
78
+ Permission.CreateDashboardDomain,
79
+ ],
80
+ read: [
81
+ Permission.ProjectOwner,
82
+ Permission.ProjectAdmin,
83
+ Permission.ProjectMember,
84
+ Permission.ReadDashboardDomain,
85
+ Permission.ReadAllProjectResources,
86
+ ],
87
+ update: [],
88
+ })
89
+ @TableColumn({
90
+ manyToOneRelationColumn: "projectId",
91
+ type: TableColumnType.Entity,
92
+ modelType: Project,
93
+ title: "Project",
94
+ description: "Relation to Project Resource in which this object belongs",
95
+ })
96
+ @ManyToOne(
97
+ () => {
98
+ return Project;
99
+ },
100
+ {
101
+ eager: false,
102
+ nullable: true,
103
+ onDelete: "CASCADE",
104
+ orphanedRowAction: "nullify",
105
+ },
106
+ )
107
+ @JoinColumn({ name: "projectId" })
108
+ public project?: Project = undefined;
109
+
110
+ @ColumnAccessControl({
111
+ create: [
112
+ Permission.ProjectOwner,
113
+ Permission.ProjectAdmin,
114
+ Permission.ProjectMember,
115
+ Permission.CreateDashboardDomain,
116
+ ],
117
+ read: [
118
+ Permission.ProjectOwner,
119
+ Permission.ProjectAdmin,
120
+ Permission.ProjectMember,
121
+ Permission.ReadDashboardDomain,
122
+ Permission.ReadAllProjectResources,
123
+ ],
124
+ update: [],
125
+ })
126
+ @Index()
127
+ @TableColumn({
128
+ type: TableColumnType.ObjectID,
129
+ required: true,
130
+ canReadOnRelationQuery: true,
131
+ title: "Project ID",
132
+ description: "ID of your OneUptime Project in which this object belongs",
133
+ example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
134
+ })
135
+ @Column({
136
+ type: ColumnType.ObjectID,
137
+ nullable: false,
138
+ transformer: ObjectID.getDatabaseTransformer(),
139
+ })
140
+ public projectId?: ObjectID = undefined;
141
+
142
+ @ColumnAccessControl({
143
+ create: [
144
+ Permission.ProjectOwner,
145
+ Permission.ProjectAdmin,
146
+ Permission.ProjectMember,
147
+ Permission.CreateDashboardDomain,
148
+ ],
149
+ read: [
150
+ Permission.ProjectOwner,
151
+ Permission.ProjectAdmin,
152
+ Permission.ProjectMember,
153
+ Permission.ReadDashboardDomain,
154
+ Permission.ReadAllProjectResources,
155
+ ],
156
+ update: [],
157
+ })
158
+ @TableColumn({
159
+ manyToOneRelationColumn: "domainId",
160
+ type: TableColumnType.Entity,
161
+ modelType: Domain,
162
+ })
163
+ @ManyToOne(
164
+ () => {
165
+ return Domain;
166
+ },
167
+ {
168
+ eager: false,
169
+ nullable: true,
170
+ onDelete: "CASCADE",
171
+ orphanedRowAction: "nullify",
172
+ },
173
+ )
174
+ @JoinColumn({ name: "domainId" })
175
+ public domain?: Domain = undefined;
176
+
177
+ @ColumnAccessControl({
178
+ create: [
179
+ Permission.ProjectOwner,
180
+ Permission.ProjectAdmin,
181
+ Permission.ProjectMember,
182
+ Permission.CreateDashboardDomain,
183
+ ],
184
+ read: [
185
+ Permission.ProjectOwner,
186
+ Permission.ProjectAdmin,
187
+ Permission.ProjectMember,
188
+ Permission.ReadDashboardDomain,
189
+ Permission.ReadAllProjectResources,
190
+ ],
191
+ update: [],
192
+ })
193
+ @Index()
194
+ @TableColumn({
195
+ type: TableColumnType.ObjectID,
196
+ required: true,
197
+ example: "d4e5f6a7-b8c9-0123-def4-567890abcdef",
198
+ })
199
+ @Column({
200
+ type: ColumnType.ObjectID,
201
+ nullable: false,
202
+ transformer: ObjectID.getDatabaseTransformer(),
203
+ })
204
+ public domainId?: ObjectID = undefined;
205
+
206
+ @ColumnAccessControl({
207
+ create: [
208
+ Permission.ProjectOwner,
209
+ Permission.ProjectAdmin,
210
+ Permission.ProjectMember,
211
+ Permission.CreateDashboardDomain,
212
+ ],
213
+ read: [
214
+ Permission.ProjectOwner,
215
+ Permission.ProjectAdmin,
216
+ Permission.ProjectMember,
217
+ Permission.ReadDashboardDomain,
218
+ Permission.ReadAllProjectResources,
219
+ ],
220
+ update: [],
221
+ })
222
+ @TableColumn({
223
+ manyToOneRelationColumn: "dashboardId",
224
+ type: TableColumnType.Entity,
225
+ modelType: Dashboard,
226
+ title: "Dashboard",
227
+ description: "Relation to Dashboard Resource in which this object belongs",
228
+ })
229
+ @ManyToOne(
230
+ () => {
231
+ return Dashboard;
232
+ },
233
+ {
234
+ eager: false,
235
+ nullable: true,
236
+ onDelete: "CASCADE",
237
+ orphanedRowAction: "nullify",
238
+ },
239
+ )
240
+ @JoinColumn({ name: "dashboardId" })
241
+ public dashboard?: Dashboard = undefined;
242
+
243
+ @ColumnAccessControl({
244
+ create: [
245
+ Permission.ProjectOwner,
246
+ Permission.ProjectAdmin,
247
+ Permission.ProjectMember,
248
+ Permission.CreateDashboardDomain,
249
+ ],
250
+ read: [
251
+ Permission.ProjectOwner,
252
+ Permission.ProjectAdmin,
253
+ Permission.ProjectMember,
254
+ Permission.ReadDashboardDomain,
255
+ Permission.ReadAllProjectResources,
256
+ ],
257
+ update: [],
258
+ })
259
+ @Index()
260
+ @TableColumn({
261
+ type: TableColumnType.ObjectID,
262
+ required: true,
263
+ title: "Dashboard ID",
264
+ description: "ID of your Dashboard resource where this object belongs",
265
+ example: "b2c3d4e5-f6a7-8901-bcde-f1234567890a",
266
+ })
267
+ @Column({
268
+ type: ColumnType.ObjectID,
269
+ nullable: false,
270
+ transformer: ObjectID.getDatabaseTransformer(),
271
+ })
272
+ public dashboardId?: ObjectID = undefined;
273
+
274
+ @ColumnAccessControl({
275
+ create: [
276
+ Permission.ProjectOwner,
277
+ Permission.ProjectAdmin,
278
+ Permission.ProjectMember,
279
+ Permission.CreateDashboardDomain,
280
+ ],
281
+ read: [
282
+ Permission.ProjectOwner,
283
+ Permission.ProjectAdmin,
284
+ Permission.ProjectMember,
285
+ Permission.ReadDashboardDomain,
286
+ Permission.ReadAllProjectResources,
287
+ ],
288
+ update: [
289
+ Permission.ProjectOwner,
290
+ Permission.ProjectAdmin,
291
+ Permission.ProjectMember,
292
+ Permission.EditDashboardDomain,
293
+ ],
294
+ })
295
+ @TableColumn({
296
+ required: false,
297
+ type: TableColumnType.ShortText,
298
+ title: "Subdomain",
299
+ description:
300
+ "Subdomain label for your dashboard such as 'dashboard'. Leave blank or enter @ to use the root domain.",
301
+ example: "dashboard",
302
+ })
303
+ @Column({
304
+ nullable: false,
305
+ type: ColumnType.ShortText,
306
+ length: ColumnLength.ShortText,
307
+ })
308
+ public subdomain?: string = undefined;
309
+
310
+ @UniqueColumnBy("projectId")
311
+ @ColumnAccessControl({
312
+ create: [],
313
+ read: [
314
+ Permission.ProjectOwner,
315
+ Permission.ProjectAdmin,
316
+ Permission.ProjectMember,
317
+ Permission.ReadDashboardDomain,
318
+ Permission.ReadAllProjectResources,
319
+ ],
320
+ update: [],
321
+ })
322
+ @TableColumn({
323
+ required: false,
324
+ computed: true,
325
+ type: TableColumnType.ShortText,
326
+ title: "Full Domain",
327
+ description:
328
+ "Full domain of your dashboard (like dashboard.acmeinc.com). This is autogenerated and is derived from subdomain and domain.",
329
+ example: "dashboard.acmeinc.com",
330
+ })
331
+ @Column({
332
+ nullable: false,
333
+ type: ColumnType.ShortText,
334
+ length: ColumnLength.ShortText,
335
+ })
336
+ public fullDomain?: string = undefined;
337
+
338
+ @ColumnAccessControl({
339
+ create: [
340
+ Permission.ProjectOwner,
341
+ Permission.ProjectAdmin,
342
+ Permission.ProjectMember,
343
+ Permission.CreateDashboardDomain,
344
+ ],
345
+ read: [
346
+ Permission.ProjectOwner,
347
+ Permission.ProjectAdmin,
348
+ Permission.ProjectMember,
349
+ Permission.ReadDashboardDomain,
350
+ Permission.ReadAllProjectResources,
351
+ ],
352
+ update: [],
353
+ })
354
+ @TableColumn({
355
+ manyToOneRelationColumn: "createdByUserId",
356
+ type: TableColumnType.Entity,
357
+ modelType: User,
358
+ title: "Created by User",
359
+ description:
360
+ "Relation to User who created this object (if this object was created by a User)",
361
+ })
362
+ @ManyToOne(
363
+ () => {
364
+ return User;
365
+ },
366
+ {
367
+ eager: false,
368
+ nullable: true,
369
+ onDelete: "SET NULL",
370
+ orphanedRowAction: "nullify",
371
+ },
372
+ )
373
+ @JoinColumn({ name: "createdByUserId" })
374
+ public createdByUser?: User = undefined;
375
+
376
+ @ColumnAccessControl({
377
+ create: [
378
+ Permission.ProjectOwner,
379
+ Permission.ProjectAdmin,
380
+ Permission.ProjectMember,
381
+ Permission.CreateDashboardDomain,
382
+ ],
383
+ read: [
384
+ Permission.ProjectOwner,
385
+ Permission.ProjectAdmin,
386
+ Permission.ProjectMember,
387
+ Permission.ReadDashboardDomain,
388
+ Permission.ReadAllProjectResources,
389
+ ],
390
+ update: [],
391
+ })
392
+ @TableColumn({
393
+ type: TableColumnType.ObjectID,
394
+ title: "Created by User ID",
395
+ description:
396
+ "User ID who created this object (if this object was created by a User)",
397
+ example: "c3d4e5f6-a7b8-9012-cdef-234567890abc",
398
+ })
399
+ @Column({
400
+ type: ColumnType.ObjectID,
401
+ nullable: true,
402
+ transformer: ObjectID.getDatabaseTransformer(),
403
+ })
404
+ public createdByUserId?: ObjectID = undefined;
405
+
406
+ @ColumnAccessControl({
407
+ create: [],
408
+ read: [
409
+ Permission.ProjectOwner,
410
+ Permission.ProjectAdmin,
411
+ Permission.ProjectMember,
412
+ Permission.ReadDashboardDomain,
413
+ Permission.ReadAllProjectResources,
414
+ ],
415
+ update: [],
416
+ })
417
+ @TableColumn({
418
+ manyToOneRelationColumn: "deletedByUserId",
419
+ type: TableColumnType.Entity,
420
+ title: "Deleted by User",
421
+ modelType: User,
422
+ description:
423
+ "Relation to User who deleted this object (if this object was deleted by a User)",
424
+ })
425
+ @ManyToOne(
426
+ () => {
427
+ return User;
428
+ },
429
+ {
430
+ cascade: false,
431
+ eager: false,
432
+ nullable: true,
433
+ onDelete: "SET NULL",
434
+ orphanedRowAction: "nullify",
435
+ },
436
+ )
437
+ @JoinColumn({ name: "deletedByUserId" })
438
+ public deletedByUser?: User = undefined;
439
+
440
+ @ColumnAccessControl({
441
+ create: [],
442
+ read: [],
443
+ update: [],
444
+ })
445
+ @TableColumn({
446
+ required: false,
447
+ computed: true,
448
+ type: TableColumnType.ShortText,
449
+ title: "CNAME Verification Token",
450
+ description: "CNAME Verification Token",
451
+ })
452
+ @Column({
453
+ nullable: false,
454
+ type: ColumnType.ShortText,
455
+ length: ColumnLength.ShortText,
456
+ })
457
+ public cnameVerificationToken?: string = undefined;
458
+
459
+ @ColumnAccessControl({
460
+ create: [],
461
+ read: [
462
+ Permission.ProjectOwner,
463
+ Permission.ProjectAdmin,
464
+ Permission.ProjectMember,
465
+ Permission.ReadDashboardDomain,
466
+ Permission.ReadAllProjectResources,
467
+ ],
468
+ update: [],
469
+ })
470
+ @TableColumn({
471
+ isDefaultValueColumn: true,
472
+ required: true,
473
+ type: TableColumnType.Boolean,
474
+ title: "CNAME Verified",
475
+ description: "Is CNAME Verified?",
476
+ defaultValue: false,
477
+ })
478
+ @Column({
479
+ type: ColumnType.Boolean,
480
+ nullable: false,
481
+ unique: false,
482
+ default: false,
483
+ })
484
+ public isCnameVerified?: boolean = undefined;
485
+
486
+ @ColumnAccessControl({
487
+ create: [
488
+ Permission.ProjectOwner,
489
+ Permission.ProjectAdmin,
490
+ Permission.ProjectMember,
491
+ Permission.CreateDashboardDomain,
492
+ ],
493
+ read: [
494
+ Permission.ProjectOwner,
495
+ Permission.ProjectAdmin,
496
+ Permission.ProjectMember,
497
+ Permission.ReadDashboardDomain,
498
+ Permission.ReadAllProjectResources,
499
+ ],
500
+ update: [],
501
+ })
502
+ @TableColumn({
503
+ isDefaultValueColumn: true,
504
+ required: true,
505
+ computed: true,
506
+ type: TableColumnType.Boolean,
507
+ title: "SSL Ordered",
508
+ description: "Is SSL ordered?",
509
+ defaultValue: false,
510
+ })
511
+ @Column({
512
+ type: ColumnType.Boolean,
513
+ nullable: false,
514
+ unique: false,
515
+ default: false,
516
+ })
517
+ public isSslOrdered?: boolean = undefined;
518
+
519
+ @ColumnAccessControl({
520
+ create: [
521
+ Permission.ProjectOwner,
522
+ Permission.ProjectAdmin,
523
+ Permission.ProjectMember,
524
+ Permission.CreateDashboardDomain,
525
+ ],
526
+ read: [
527
+ Permission.ProjectOwner,
528
+ Permission.ProjectAdmin,
529
+ Permission.ProjectMember,
530
+ Permission.ReadDashboardDomain,
531
+ Permission.ReadAllProjectResources,
532
+ ],
533
+ update: [],
534
+ })
535
+ @TableColumn({
536
+ isDefaultValueColumn: true,
537
+ required: true,
538
+ computed: true,
539
+ type: TableColumnType.Boolean,
540
+ title: "SSL Provisioned",
541
+ description: "Is SSL provisioned?",
542
+ defaultValue: false,
543
+ })
544
+ @Column({
545
+ type: ColumnType.Boolean,
546
+ nullable: false,
547
+ unique: false,
548
+ default: false,
549
+ })
550
+ public isSslProvisioned?: boolean = undefined;
551
+
552
+ @ColumnAccessControl({
553
+ create: [],
554
+ read: [],
555
+ update: [],
556
+ })
557
+ @TableColumn({
558
+ type: TableColumnType.ObjectID,
559
+ title: "Deleted by User ID",
560
+ description:
561
+ "User ID who deleted this object (if this object was deleted by a User)",
562
+ })
563
+ @Column({
564
+ type: ColumnType.ObjectID,
565
+ nullable: true,
566
+ transformer: ObjectID.getDatabaseTransformer(),
567
+ })
568
+ public deletedByUserId?: ObjectID = undefined;
569
+
570
+ @ColumnAccessControl({
571
+ create: [
572
+ Permission.ProjectOwner,
573
+ Permission.ProjectAdmin,
574
+ Permission.ProjectMember,
575
+ Permission.CreateDashboardDomain,
576
+ ],
577
+ read: [
578
+ Permission.ProjectOwner,
579
+ Permission.ProjectAdmin,
580
+ Permission.ProjectMember,
581
+ Permission.ReadDashboardDomain,
582
+ Permission.ReadAllProjectResources,
583
+ ],
584
+ update: [
585
+ Permission.ProjectOwner,
586
+ Permission.ProjectAdmin,
587
+ Permission.ProjectMember,
588
+ Permission.EditDashboardDomain,
589
+ ],
590
+ })
591
+ @TableColumn({ type: TableColumnType.VeryLongText })
592
+ @Column({
593
+ type: ColumnType.VeryLongText,
594
+ nullable: true,
595
+ unique: false,
596
+ })
597
+ public customCertificate?: string = undefined;
598
+
599
+ @ColumnAccessControl({
600
+ create: [
601
+ Permission.ProjectOwner,
602
+ Permission.ProjectAdmin,
603
+ Permission.ProjectMember,
604
+ Permission.CreateDashboardDomain,
605
+ ],
606
+ read: [
607
+ Permission.ProjectOwner,
608
+ Permission.ProjectAdmin,
609
+ Permission.ProjectMember,
610
+ Permission.ReadDashboardDomain,
611
+ Permission.ReadAllProjectResources,
612
+ ],
613
+ update: [
614
+ Permission.ProjectOwner,
615
+ Permission.ProjectAdmin,
616
+ Permission.ProjectMember,
617
+ Permission.EditDashboardDomain,
618
+ ],
619
+ })
620
+ @TableColumn({ type: TableColumnType.VeryLongText })
621
+ @Column({
622
+ type: ColumnType.VeryLongText,
623
+ nullable: true,
624
+ unique: false,
625
+ })
626
+ public customCertificateKey?: string = undefined;
627
+
628
+ // If this is true, then the certificate is custom and not managed by OneUptime (LetsEncrypt)
629
+ @ColumnAccessControl({
630
+ create: [
631
+ Permission.ProjectOwner,
632
+ Permission.ProjectAdmin,
633
+ Permission.ProjectMember,
634
+ Permission.CreateDashboardDomain,
635
+ ],
636
+ read: [
637
+ Permission.ProjectOwner,
638
+ Permission.ProjectAdmin,
639
+ Permission.ProjectMember,
640
+ Permission.ReadDashboardDomain,
641
+ Permission.ReadAllProjectResources,
642
+ ],
643
+ update: [
644
+ Permission.ProjectOwner,
645
+ Permission.ProjectAdmin,
646
+ Permission.ProjectMember,
647
+ Permission.EditDashboardDomain,
648
+ ],
649
+ })
650
+ @TableColumn({ type: TableColumnType.Boolean })
651
+ @Column({
652
+ type: ColumnType.Boolean,
653
+ nullable: false,
654
+ unique: false,
655
+ default: false,
656
+ })
657
+ public isCustomCertificate?: boolean = undefined;
658
+ }
@@ -224,6 +224,7 @@ import IncidentSla from "./IncidentSla";
224
224
 
225
225
  import TableView from "./TableView";
226
226
  import Dashboard from "./Dashboard";
227
+ import DashboardDomain from "./DashboardDomain";
227
228
 
228
229
  import MonitorTest from "./MonitorTest";
229
230
  import ScheduledMaintenanceFeed from "./ScheduledMaintenanceFeed";
@@ -486,6 +487,7 @@ const AllModelTypes: Array<{
486
487
 
487
488
  // Dashboards
488
489
  Dashboard,
490
+ DashboardDomain,
489
491
 
490
492
  MonitorTest,
491
493
 
@@ -2638,6 +2638,47 @@ export default class StatusPage extends BaseModel {
2638
2638
  })
2639
2639
  public enableEmbeddedOverallStatus?: boolean = undefined;
2640
2640
 
2641
+ @ColumnAccessControl({
2642
+ create: [
2643
+ Permission.ProjectOwner,
2644
+ Permission.ProjectAdmin,
2645
+ Permission.ProjectMember,
2646
+ Permission.CreateProjectStatusPage,
2647
+ ],
2648
+ read: [
2649
+ Permission.ProjectOwner,
2650
+ Permission.ProjectAdmin,
2651
+ Permission.ProjectMember,
2652
+ Permission.ReadProjectStatusPage,
2653
+ Permission.ReadAllProjectResources,
2654
+ ],
2655
+ update: [
2656
+ Permission.ProjectOwner,
2657
+ Permission.ProjectAdmin,
2658
+ Permission.ProjectMember,
2659
+ Permission.EditProjectStatusPage,
2660
+ ],
2661
+ })
2662
+ @TableColumn({
2663
+ isDefaultValueColumn: true,
2664
+ type: TableColumnType.Number,
2665
+ title: "Show Uptime History In Days",
2666
+ description:
2667
+ "How many days of uptime history should be shown on the status page? Maximum is 90 days.",
2668
+ defaultValue: 90,
2669
+ })
2670
+ @Column({
2671
+ type: ColumnType.Number,
2672
+ default: 90,
2673
+ nullable: false,
2674
+ })
2675
+ @ColumnBillingAccessControl({
2676
+ read: PlanType.Free,
2677
+ update: PlanType.Free,
2678
+ create: PlanType.Free,
2679
+ })
2680
+ public showUptimeHistoryInDays?: number = undefined;
2681
+
2641
2682
  @ColumnAccessControl({
2642
2683
  create: [
2643
2684
  Permission.ProjectOwner,