@oneuptime/common 10.4.10 → 10.4.12

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 (174) hide show
  1. package/Models/AnalyticsModels/ExceptionInstance.ts +47 -1
  2. package/Models/AnalyticsModels/Log.ts +47 -1
  3. package/Models/AnalyticsModels/Metric.ts +1 -7
  4. package/Models/AnalyticsModels/Profile.ts +47 -1
  5. package/Models/AnalyticsModels/ProfileSample.ts +47 -1
  6. package/Models/AnalyticsModels/Span.ts +47 -1
  7. package/Models/DatabaseModels/Alert.ts +332 -0
  8. package/Models/DatabaseModels/DockerHost.ts +83 -0
  9. package/Models/DatabaseModels/Host.ts +83 -0
  10. package/Models/DatabaseModels/Incident.ts +332 -0
  11. package/Models/DatabaseModels/Index.ts +0 -2
  12. package/Models/DatabaseModels/KubernetesCluster.ts +83 -0
  13. package/Models/DatabaseModels/RunbookAgent.ts +16 -2
  14. package/Server/EnvironmentConfig.ts +16 -0
  15. package/Server/Infrastructure/ClickhouseConfig.ts +14 -0
  16. package/Server/Infrastructure/ClickhouseDatabase.ts +20 -3
  17. package/Server/Infrastructure/InMemoryTTLCache.ts +61 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1779199346010-AddTelemetryRetentionConfig.ts +1 -1
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1779277271302-DropServiceDependencyTable.ts +44 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1779282769946-AddTelemetryRetentionToHostDockerKubernetes.ts +50 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1779302536475-AttachKubernetesAndDockerToIncidentAndAlert.ts +253 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1779303924241-AttachServiceToIncidentAndAlert.ts +60 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  24. package/Server/Middleware/TelemetryIngest.ts +6 -38
  25. package/Server/Middleware/UserAuthorization.ts +1 -11
  26. package/Server/Services/AlertService.ts +2 -4
  27. package/Server/Services/AnalyticsDatabaseService.ts +33 -1
  28. package/Server/Services/IncidentService.ts +2 -4
  29. package/Server/Services/Index.ts +0 -2
  30. package/Server/Services/LogAggregationService.ts +54 -6
  31. package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +6 -0
  32. package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +1 -0
  33. package/Server/Services/OnCallDutyPolicyScheduleService.ts +17 -0
  34. package/Server/Services/OpenTelemetryIngestService.ts +132 -0
  35. package/Server/Services/TelemetryIngestionKeyService.ts +90 -1
  36. package/Server/Services/TraceAggregationService.ts +83 -8
  37. package/Server/Utils/Monitor/MonitorMetricUtil.ts +2 -4
  38. package/Server/Utils/Telemetry/Telemetry.ts +38 -0
  39. package/Tests/Server/Middleware/UserAuthorization.test.ts +5 -7
  40. package/Types/Dashboard/DashboardComponentType.ts +0 -1
  41. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +2 -0
  42. package/Types/Dashboard/DashboardComponents/DashboardTableComponent.ts +74 -1
  43. package/Types/Dashboard/DashboardTemplates.ts +164 -51
  44. package/Types/Monitor/MonitorType.ts +1 -1
  45. package/Types/OnCallDutyPolicy/UserOverrideUtil.ts +36 -9
  46. package/Types/Permission.ts +0 -46
  47. package/Types/Telemetry/ServiceType.ts +19 -0
  48. package/UI/Components/Forms/Validation.ts +2 -2
  49. package/UI/Components/LogsViewer/LogsViewer.tsx +135 -17
  50. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +84 -1
  51. package/UI/Components/Telemetry/TelemetryRetentionConfigForm.tsx +0 -1
  52. package/Utils/Dashboard/Components/DashboardTableComponent.ts +80 -17
  53. package/Utils/Dashboard/Components/Index.ts +0 -7
  54. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +41 -1
  55. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  56. package/build/dist/Models/AnalyticsModels/Log.js +41 -1
  57. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  58. package/build/dist/Models/AnalyticsModels/Metric.js +0 -7
  59. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  60. package/build/dist/Models/AnalyticsModels/Profile.js +41 -1
  61. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  62. package/build/dist/Models/AnalyticsModels/ProfileSample.js +41 -1
  63. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
  64. package/build/dist/Models/AnalyticsModels/Span.js +41 -1
  65. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  66. package/build/dist/Models/DatabaseModels/Alert.js +324 -0
  67. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  68. package/build/dist/Models/DatabaseModels/DockerHost.js +84 -0
  69. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  70. package/build/dist/Models/DatabaseModels/Host.js +84 -0
  71. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  72. package/build/dist/Models/DatabaseModels/Incident.js +324 -0
  73. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  74. package/build/dist/Models/DatabaseModels/Index.js +0 -2
  75. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  76. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +84 -0
  77. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  78. package/build/dist/Models/DatabaseModels/RunbookAgent.js +16 -2
  79. package/build/dist/Models/DatabaseModels/RunbookAgent.js.map +1 -1
  80. package/build/dist/Server/EnvironmentConfig.js +8 -0
  81. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  82. package/build/dist/Server/Infrastructure/ClickhouseConfig.js +9 -1
  83. package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
  84. package/build/dist/Server/Infrastructure/ClickhouseDatabase.js +12 -3
  85. package/build/dist/Server/Infrastructure/ClickhouseDatabase.js.map +1 -1
  86. package/build/dist/Server/Infrastructure/InMemoryTTLCache.js +49 -0
  87. package/build/dist/Server/Infrastructure/InMemoryTTLCache.js.map +1 -0
  88. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779199346010-AddTelemetryRetentionConfig.js.map +1 -1
  89. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779277271302-DropServiceDependencyTable.js +42 -0
  90. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779277271302-DropServiceDependencyTable.js.map +1 -0
  91. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779282769946-AddTelemetryRetentionToHostDockerKubernetes.js +22 -0
  92. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779282769946-AddTelemetryRetentionToHostDockerKubernetes.js.map +1 -0
  93. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779302536475-AttachKubernetesAndDockerToIncidentAndAlert.js +100 -0
  94. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779302536475-AttachKubernetesAndDockerToIncidentAndAlert.js.map +1 -0
  95. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779303924241-AttachServiceToIncidentAndAlert.js +28 -0
  96. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779303924241-AttachServiceToIncidentAndAlert.js.map +1 -0
  97. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  98. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  99. package/build/dist/Server/Middleware/TelemetryIngest.js +2 -26
  100. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  101. package/build/dist/Server/Middleware/UserAuthorization.js +1 -7
  102. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  103. package/build/dist/Server/Services/AlertService.js +2 -1
  104. package/build/dist/Server/Services/AlertService.js.map +1 -1
  105. package/build/dist/Server/Services/AnalyticsDatabaseService.js +23 -2
  106. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  107. package/build/dist/Server/Services/IncidentService.js +2 -1
  108. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  109. package/build/dist/Server/Services/Index.js +0 -2
  110. package/build/dist/Server/Services/Index.js.map +1 -1
  111. package/build/dist/Server/Services/LogAggregationService.js +46 -4
  112. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  113. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +28 -24
  114. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
  115. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +1 -1
  116. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
  117. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +18 -2
  118. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  119. package/build/dist/Server/Services/OpenTelemetryIngestService.js +103 -0
  120. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  121. package/build/dist/Server/Services/TelemetryIngestionKeyService.js +83 -0
  122. package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
  123. package/build/dist/Server/Services/TraceAggregationService.js +66 -6
  124. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  125. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +2 -1
  126. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  127. package/build/dist/Server/Utils/Telemetry/Telemetry.js +26 -0
  128. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  129. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +3 -7
  130. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +1 -1
  131. package/build/dist/Types/Dashboard/DashboardComponentType.js +0 -1
  132. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  133. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +2 -0
  134. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  135. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTableComponent.js +13 -1
  136. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTableComponent.js.map +1 -1
  137. package/build/dist/Types/Dashboard/DashboardTemplates.js +142 -42
  138. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  139. package/build/dist/Types/Monitor/MonitorType.js +1 -1
  140. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  141. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js +27 -7
  142. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js.map +1 -1
  143. package/build/dist/Types/Permission.js +0 -40
  144. package/build/dist/Types/Permission.js.map +1 -1
  145. package/build/dist/Types/Telemetry/ServiceType.js +20 -0
  146. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -0
  147. package/build/dist/UI/Components/Forms/Validation.js +2 -2
  148. package/build/dist/UI/Components/Forms/Validation.js.map +1 -1
  149. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +106 -16
  150. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  151. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +67 -1
  152. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  153. package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigForm.js.map +1 -1
  154. package/build/dist/Utils/Dashboard/Components/DashboardTableComponent.js +68 -16
  155. package/build/dist/Utils/Dashboard/Components/DashboardTableComponent.js.map +1 -1
  156. package/build/dist/Utils/Dashboard/Components/Index.js +0 -4
  157. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  158. package/package.json +1 -2
  159. package/Models/DatabaseModels/ServiceDependency.ts +0 -529
  160. package/Server/Services/ServiceDependencyService.ts +0 -48
  161. package/Types/Dashboard/DashboardComponents/DashboardHostMetricChartComponent.ts +0 -27
  162. package/Typings/elkjs.d.ts +0 -30
  163. package/UI/Components/Graphs/ServiceDependencyGraph.tsx +0 -286
  164. package/Utils/Dashboard/Components/DashboardHostMetricChartComponent.ts +0 -132
  165. package/build/dist/Models/DatabaseModels/ServiceDependency.js +0 -545
  166. package/build/dist/Models/DatabaseModels/ServiceDependency.js.map +0 -1
  167. package/build/dist/Server/Services/ServiceDependencyService.js +0 -47
  168. package/build/dist/Server/Services/ServiceDependencyService.js.map +0 -1
  169. package/build/dist/Types/Dashboard/DashboardComponents/DashboardHostMetricChartComponent.js +0 -11
  170. package/build/dist/Types/Dashboard/DashboardComponents/DashboardHostMetricChartComponent.js.map +0 -1
  171. package/build/dist/UI/Components/Graphs/ServiceDependencyGraph.js +0 -206
  172. package/build/dist/UI/Components/Graphs/ServiceDependencyGraph.js.map +0 -1
  173. package/build/dist/Utils/Dashboard/Components/DashboardHostMetricChartComponent.js +0 -113
  174. package/build/dist/Utils/Dashboard/Components/DashboardHostMetricChartComponent.js.map +0 -1
@@ -1,529 +0,0 @@
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 { PlanType } from "../../Types/Billing/SubscriptionPlan";
6
- import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
7
- import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
8
- import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
9
- import CanAccessIfCanReadOn from "../../Types/Database/CanAccessIfCanReadOn";
10
- import ColumnType from "../../Types/Database/ColumnType";
11
- import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
12
- import EnableDocumentation from "../../Types/Database/EnableDocumentation";
13
- import EnableWorkflow from "../../Types/Database/EnableWorkflow";
14
- import SlugifyColumn from "../../Types/Database/SlugifyColumn";
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 IconProp from "../../Types/Icon/IconProp";
20
- import ObjectID from "../../Types/ObjectID";
21
- import Permission from "../../Types/Permission";
22
- import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
23
- import Service from "./Service";
24
-
25
- @CanAccessIfCanReadOn("serviceId")
26
- @EnableDocumentation()
27
- @TenantColumn("projectId")
28
- @TableBillingAccessControl({
29
- create: PlanType.Growth,
30
- read: PlanType.Growth,
31
- update: PlanType.Growth,
32
- delete: PlanType.Growth,
33
- })
34
- @TableAccessControl({
35
- create: [
36
- Permission.ProjectOwner,
37
- Permission.ProjectAdmin,
38
- Permission.ProjectMember,
39
- Permission.SettingsAdmin,
40
- Permission.SettingsMember,
41
- Permission.CreateServiceDependency,
42
- ],
43
- read: [
44
- Permission.ProjectOwner,
45
- Permission.ProjectAdmin,
46
- Permission.ProjectMember,
47
- Permission.Viewer,
48
- Permission.SettingsAdmin,
49
- Permission.SettingsMember,
50
- Permission.SettingsViewer,
51
- Permission.ProjectMember,
52
- Permission.Viewer,
53
- Permission.SettingsAdmin,
54
- Permission.SettingsMember,
55
- Permission.SettingsViewer,
56
- Permission.ReadServiceDependency,
57
- ],
58
- delete: [
59
- Permission.ProjectOwner,
60
- Permission.ProjectAdmin,
61
- Permission.ProjectMember,
62
- Permission.SettingsAdmin,
63
- Permission.SettingsMember,
64
- Permission.DeleteServiceDependency,
65
- ],
66
- update: [
67
- Permission.ProjectOwner,
68
- Permission.ProjectAdmin,
69
- Permission.ProjectMember,
70
- Permission.SettingsAdmin,
71
- Permission.SettingsMember,
72
- Permission.EditServiceDependency,
73
- ],
74
- })
75
- @EnableWorkflow({
76
- create: true,
77
- delete: true,
78
- update: true,
79
- read: true,
80
- })
81
- @CrudApiEndpoint(new Route("/service-dependency"))
82
- @SlugifyColumn("name", "slug")
83
- @TableMetadata({
84
- tableName: "ServiceDependency",
85
- singularName: "Service Dependency",
86
- pluralName: "Service Dependencies",
87
- icon: IconProp.SquareStack,
88
- tableDescription:
89
- "Service is a collection of services that you have in your organization. It can be a collection of services that you are monitoring or services that you are providing to your customers. It can be anything that you want to keep track of.",
90
- })
91
- @Entity({
92
- name: "ServiceDependency",
93
- })
94
- export default class ServiceDependency extends BaseModel {
95
- @ColumnAccessControl({
96
- create: [
97
- Permission.ProjectOwner,
98
- Permission.ProjectAdmin,
99
- Permission.ProjectMember,
100
- Permission.SettingsAdmin,
101
- Permission.SettingsMember,
102
- Permission.CreateServiceDependency,
103
- ],
104
- read: [
105
- Permission.ProjectOwner,
106
- Permission.ProjectAdmin,
107
- Permission.ProjectMember,
108
- Permission.Viewer,
109
- Permission.SettingsAdmin,
110
- Permission.SettingsMember,
111
- Permission.SettingsViewer,
112
- Permission.ProjectMember,
113
- Permission.Viewer,
114
- Permission.SettingsAdmin,
115
- Permission.SettingsMember,
116
- Permission.SettingsViewer,
117
- Permission.ReadServiceDependency,
118
- ],
119
- update: [],
120
- })
121
- @TableColumn({
122
- manyToOneRelationColumn: "projectId",
123
- type: TableColumnType.Entity,
124
- modelType: Project,
125
- title: "Project",
126
- description: "Relation to Project Resource in which this object belongs",
127
- example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
128
- })
129
- @ManyToOne(
130
- () => {
131
- return Project;
132
- },
133
- {
134
- eager: false,
135
- nullable: true,
136
- onDelete: "CASCADE",
137
- orphanedRowAction: "nullify",
138
- },
139
- )
140
- @JoinColumn({ name: "projectId" })
141
- public project?: Project = undefined;
142
-
143
- @ColumnAccessControl({
144
- create: [
145
- Permission.ProjectOwner,
146
- Permission.ProjectAdmin,
147
- Permission.ProjectMember,
148
- Permission.SettingsAdmin,
149
- Permission.SettingsMember,
150
- Permission.CreateServiceDependency,
151
- ],
152
- read: [
153
- Permission.ProjectOwner,
154
- Permission.ProjectAdmin,
155
- Permission.ProjectMember,
156
- Permission.Viewer,
157
- Permission.SettingsAdmin,
158
- Permission.SettingsMember,
159
- Permission.SettingsViewer,
160
- Permission.ProjectMember,
161
- Permission.Viewer,
162
- Permission.SettingsAdmin,
163
- Permission.SettingsMember,
164
- Permission.SettingsViewer,
165
- Permission.ReadServiceDependency,
166
- ],
167
- update: [],
168
- })
169
- @Index()
170
- @TableColumn({
171
- type: TableColumnType.ObjectID,
172
- required: true,
173
- canReadOnRelationQuery: true,
174
- title: "Project ID",
175
- description: "ID of your OneUptime Project in which this object belongs",
176
- example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
177
- })
178
- @Column({
179
- type: ColumnType.ObjectID,
180
- nullable: false,
181
- transformer: ObjectID.getDatabaseTransformer(),
182
- })
183
- public projectId?: ObjectID = undefined;
184
-
185
- @ColumnAccessControl({
186
- create: [
187
- Permission.ProjectOwner,
188
- Permission.ProjectAdmin,
189
- Permission.ProjectMember,
190
- Permission.SettingsAdmin,
191
- Permission.SettingsMember,
192
- Permission.CreateServiceDependency,
193
- ],
194
- read: [
195
- Permission.ProjectOwner,
196
- Permission.ProjectAdmin,
197
- Permission.ProjectMember,
198
- Permission.Viewer,
199
- Permission.SettingsAdmin,
200
- Permission.SettingsMember,
201
- Permission.SettingsViewer,
202
- Permission.ProjectMember,
203
- Permission.Viewer,
204
- Permission.SettingsAdmin,
205
- Permission.SettingsMember,
206
- Permission.SettingsViewer,
207
- Permission.ReadServiceDependency,
208
- ],
209
- update: [],
210
- })
211
- @TableColumn({
212
- manyToOneRelationColumn: "serviceId",
213
- type: TableColumnType.Entity,
214
- modelType: Service,
215
- title: "Service",
216
- description: "Relation to Service Resource in which this object belongs",
217
- example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
218
- })
219
- @ManyToOne(
220
- () => {
221
- return Service;
222
- },
223
- {
224
- eager: false,
225
- nullable: true,
226
- onDelete: "CASCADE",
227
- orphanedRowAction: "nullify",
228
- },
229
- )
230
- @JoinColumn({ name: "serviceId" })
231
- public service?: Service = undefined;
232
-
233
- @ColumnAccessControl({
234
- create: [
235
- Permission.ProjectOwner,
236
- Permission.ProjectAdmin,
237
- Permission.ProjectMember,
238
- Permission.SettingsAdmin,
239
- Permission.SettingsMember,
240
- Permission.CreateServiceDependency,
241
- ],
242
- read: [
243
- Permission.ProjectOwner,
244
- Permission.ProjectAdmin,
245
- Permission.ProjectMember,
246
- Permission.Viewer,
247
- Permission.SettingsAdmin,
248
- Permission.SettingsMember,
249
- Permission.SettingsViewer,
250
- Permission.ProjectMember,
251
- Permission.Viewer,
252
- Permission.SettingsAdmin,
253
- Permission.SettingsMember,
254
- Permission.SettingsViewer,
255
- Permission.ReadServiceDependency,
256
- ],
257
- update: [],
258
- })
259
- @Index()
260
- @TableColumn({
261
- type: TableColumnType.ObjectID,
262
- required: true,
263
- canReadOnRelationQuery: true,
264
- title: "Service ID",
265
- description: "ID of your OneUptime Service in which this object belongs",
266
- example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
267
- })
268
- @Column({
269
- type: ColumnType.ObjectID,
270
- nullable: false,
271
- transformer: ObjectID.getDatabaseTransformer(),
272
- })
273
- public serviceId?: ObjectID = undefined;
274
-
275
- @ColumnAccessControl({
276
- create: [
277
- Permission.ProjectOwner,
278
- Permission.ProjectAdmin,
279
- Permission.ProjectMember,
280
- Permission.SettingsAdmin,
281
- Permission.SettingsMember,
282
- Permission.CreateServiceDependency,
283
- ],
284
- read: [
285
- Permission.ProjectOwner,
286
- Permission.ProjectAdmin,
287
- Permission.ProjectMember,
288
- Permission.Viewer,
289
- Permission.SettingsAdmin,
290
- Permission.SettingsMember,
291
- Permission.SettingsViewer,
292
- Permission.ProjectMember,
293
- Permission.Viewer,
294
- Permission.SettingsAdmin,
295
- Permission.SettingsMember,
296
- Permission.SettingsViewer,
297
- Permission.ReadServiceDependency,
298
- ],
299
- update: [],
300
- })
301
- @TableColumn({
302
- manyToOneRelationColumn: "dependencyServiceId",
303
- type: TableColumnType.Entity,
304
- modelType: Service,
305
- title: "Dependency Service",
306
- description: "Relation to Service Resource in which this object belongs",
307
- example: "a7b8c9d0-e1f2-3456-ab78-cd90ef123456",
308
- })
309
- @ManyToOne(
310
- () => {
311
- return Service;
312
- },
313
- {
314
- eager: false,
315
- nullable: true,
316
- onDelete: "CASCADE",
317
- orphanedRowAction: "nullify",
318
- },
319
- )
320
- @JoinColumn({ name: "dependencyServiceId" })
321
- public dependencyService?: Service = undefined;
322
-
323
- @ColumnAccessControl({
324
- create: [
325
- Permission.ProjectOwner,
326
- Permission.ProjectAdmin,
327
- Permission.ProjectMember,
328
- Permission.SettingsAdmin,
329
- Permission.SettingsMember,
330
- Permission.CreateServiceDependency,
331
- ],
332
- read: [
333
- Permission.ProjectOwner,
334
- Permission.ProjectAdmin,
335
- Permission.ProjectMember,
336
- Permission.Viewer,
337
- Permission.SettingsAdmin,
338
- Permission.SettingsMember,
339
- Permission.SettingsViewer,
340
- Permission.ProjectMember,
341
- Permission.Viewer,
342
- Permission.SettingsAdmin,
343
- Permission.SettingsMember,
344
- Permission.SettingsViewer,
345
- Permission.ReadServiceDependency,
346
- ],
347
- update: [],
348
- })
349
- @Index()
350
- @TableColumn({
351
- type: TableColumnType.ObjectID,
352
- required: true,
353
- canReadOnRelationQuery: true,
354
- title: "Dependency Service ID",
355
- description: "ID of your OneUptime Service in which this object belongs",
356
- example: "a7b8c9d0-e1f2-3456-ab78-cd90ef123456",
357
- })
358
- @Column({
359
- type: ColumnType.ObjectID,
360
- nullable: false,
361
- transformer: ObjectID.getDatabaseTransformer(),
362
- })
363
- public dependencyServiceId?: ObjectID = undefined;
364
-
365
- @ColumnAccessControl({
366
- create: [
367
- Permission.ProjectOwner,
368
- Permission.ProjectAdmin,
369
- Permission.ProjectMember,
370
- Permission.SettingsAdmin,
371
- Permission.SettingsMember,
372
- Permission.CreateServiceDependency,
373
- ],
374
- read: [
375
- Permission.ProjectOwner,
376
- Permission.ProjectAdmin,
377
- Permission.ProjectMember,
378
- Permission.Viewer,
379
- Permission.SettingsAdmin,
380
- Permission.SettingsMember,
381
- Permission.SettingsViewer,
382
- Permission.ProjectMember,
383
- Permission.Viewer,
384
- Permission.SettingsAdmin,
385
- Permission.SettingsMember,
386
- Permission.SettingsViewer,
387
- Permission.ReadServiceDependency,
388
- ],
389
- update: [],
390
- })
391
- @TableColumn({
392
- manyToOneRelationColumn: "createdByUserId",
393
- type: TableColumnType.Entity,
394
- modelType: User,
395
- title: "Created by User",
396
- description:
397
- "Relation to User who created this object (if this object was created by a User)",
398
- example: "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
399
- })
400
- @ManyToOne(
401
- () => {
402
- return User;
403
- },
404
- {
405
- eager: false,
406
- nullable: true,
407
- onDelete: "SET NULL",
408
- orphanedRowAction: "nullify",
409
- },
410
- )
411
- @JoinColumn({ name: "createdByUserId" })
412
- public createdByUser?: User = undefined;
413
-
414
- @ColumnAccessControl({
415
- create: [
416
- Permission.ProjectOwner,
417
- Permission.ProjectAdmin,
418
- Permission.ProjectMember,
419
- Permission.SettingsAdmin,
420
- Permission.SettingsMember,
421
- Permission.CreateServiceDependency,
422
- ],
423
- read: [
424
- Permission.ProjectOwner,
425
- Permission.ProjectAdmin,
426
- Permission.ProjectMember,
427
- Permission.Viewer,
428
- Permission.SettingsAdmin,
429
- Permission.SettingsMember,
430
- Permission.SettingsViewer,
431
- Permission.ProjectMember,
432
- Permission.Viewer,
433
- Permission.SettingsAdmin,
434
- Permission.SettingsMember,
435
- Permission.SettingsViewer,
436
- Permission.ReadServiceDependency,
437
- ],
438
- update: [],
439
- })
440
- @TableColumn({
441
- type: TableColumnType.ObjectID,
442
- title: "Created by User ID",
443
- description:
444
- "User ID who created this object (if this object was created by a User)",
445
- example: "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
446
- })
447
- @Column({
448
- type: ColumnType.ObjectID,
449
- nullable: true,
450
- transformer: ObjectID.getDatabaseTransformer(),
451
- })
452
- public createdByUserId?: ObjectID = undefined;
453
-
454
- @ColumnAccessControl({
455
- create: [],
456
- read: [
457
- Permission.ProjectOwner,
458
- Permission.ProjectAdmin,
459
- Permission.ProjectMember,
460
- Permission.Viewer,
461
- Permission.SettingsAdmin,
462
- Permission.SettingsMember,
463
- Permission.SettingsViewer,
464
- Permission.ProjectMember,
465
- Permission.Viewer,
466
- Permission.SettingsAdmin,
467
- Permission.SettingsMember,
468
- Permission.SettingsViewer,
469
- Permission.ReadServiceDependency,
470
- ],
471
- update: [],
472
- })
473
- @TableColumn({
474
- manyToOneRelationColumn: "deletedByUserId",
475
- type: TableColumnType.Entity,
476
- title: "Deleted by User",
477
- modelType: User,
478
- description:
479
- "Relation to User who deleted this object (if this object was deleted by a User)",
480
- example: "d4e5f6a7-b8c9-0123-de45-fa67bc890123",
481
- })
482
- @ManyToOne(
483
- () => {
484
- return User;
485
- },
486
- {
487
- cascade: false,
488
- eager: false,
489
- nullable: true,
490
- onDelete: "SET NULL",
491
- orphanedRowAction: "nullify",
492
- },
493
- )
494
- @JoinColumn({ name: "deletedByUserId" })
495
- public deletedByUser?: User = undefined;
496
-
497
- @ColumnAccessControl({
498
- create: [],
499
- read: [
500
- Permission.ProjectOwner,
501
- Permission.ProjectAdmin,
502
- Permission.ProjectMember,
503
- Permission.Viewer,
504
- Permission.SettingsAdmin,
505
- Permission.SettingsMember,
506
- Permission.SettingsViewer,
507
- Permission.ProjectMember,
508
- Permission.Viewer,
509
- Permission.SettingsAdmin,
510
- Permission.SettingsMember,
511
- Permission.SettingsViewer,
512
- Permission.ReadServiceDependency,
513
- ],
514
- update: [],
515
- })
516
- @TableColumn({
517
- type: TableColumnType.ObjectID,
518
- title: "Deleted by User ID",
519
- description:
520
- "User ID who deleted this object (if this object was deleted by a User)",
521
- example: "d4e5f6a7-b8c9-0123-de45-fa67bc890123",
522
- })
523
- @Column({
524
- type: ColumnType.ObjectID,
525
- nullable: true,
526
- transformer: ObjectID.getDatabaseTransformer(),
527
- })
528
- public deletedByUserId?: ObjectID = undefined;
529
- }
@@ -1,48 +0,0 @@
1
- import BadDataException from "../../Types/Exception/BadDataException";
2
- import CreateBy from "../Types/Database/CreateBy";
3
- import { OnCreate } from "../Types/Database/Hooks";
4
- import DatabaseService from "./DatabaseService";
5
- import Model from "../../Models/DatabaseModels/ServiceDependency";
6
- import ObjectID from "../../Types/ObjectID";
7
- import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
8
-
9
- export class Service extends DatabaseService<Model> {
10
- public constructor() {
11
- super(Model);
12
- }
13
-
14
- @CaptureSpan()
15
- protected override async onBeforeCreate(
16
- createBy: CreateBy<Model>,
17
- ): Promise<OnCreate<Model>> {
18
- // select a random color.
19
-
20
- if (!createBy.data.serviceId && !createBy.data.service) {
21
- throw new BadDataException("service is required");
22
- }
23
-
24
- if (
25
- !createBy.data.dependencyServiceId &&
26
- !createBy.data.dependencyService
27
- ) {
28
- throw new BadDataException("dependencyService is required");
29
- }
30
-
31
- // serviceId and dependencyServiceId should not be the same
32
- const serviceId: string | ObjectID | undefined =
33
- createBy.data.serviceId || createBy.data.service?._id;
34
- const dependencyServiceId: string | ObjectID | undefined =
35
- createBy.data.dependencyServiceId || createBy.data.dependencyService?._id;
36
-
37
- if (serviceId?.toString() === dependencyServiceId?.toString()) {
38
- throw new BadDataException("Service cannot depend on itself.");
39
- }
40
-
41
- return {
42
- carryForward: null,
43
- createBy: createBy,
44
- };
45
- }
46
- }
47
-
48
- export default new Service();
@@ -1,27 +0,0 @@
1
- import ObjectID from "../../ObjectID";
2
- import DashboardChartType from "../Chart/ChartType";
3
- import DashboardComponentType from "../DashboardComponentType";
4
- import BaseComponent from "./DashboardBaseComponent";
5
-
6
- export enum HostMetricKind {
7
- CpuUtilization = "cpu.utilization",
8
- MemoryUtilization = "memory.utilization",
9
- MemoryUsage = "memory.usage",
10
- DiskIo = "disk.io",
11
- NetworkIo = "network.io",
12
- Filesystem = "filesystem.usage",
13
- ProcessCount = "processes.count",
14
- }
15
-
16
- export default interface DashboardHostMetricChartComponent
17
- extends BaseComponent {
18
- componentType: DashboardComponentType.HostMetricChart;
19
- componentId: ObjectID;
20
- arguments: {
21
- title?: string | undefined;
22
- description?: string | undefined;
23
- metricKind?: HostMetricKind | undefined;
24
- hostIdentifier?: string | undefined;
25
- chartType?: DashboardChartType | undefined;
26
- };
27
- }
@@ -1,30 +0,0 @@
1
- declare module "elkjs/lib/elk.bundled.js" {
2
- export interface ElkNode {
3
- id?: string;
4
- x?: number;
5
- y?: number;
6
- width?: number | undefined;
7
- height?: number | undefined;
8
- layoutOptions?: Record<string, string>;
9
- children?: ElkNode[];
10
- edges?: Array<ElkPrimitiveEdge | ElkExtendedEdge>;
11
- }
12
-
13
- export interface ElkPrimitiveEdge {
14
- id: string;
15
- sources: string[];
16
- targets: string[];
17
- }
18
-
19
- export interface ElkExtendedEdge extends ElkPrimitiveEdge {
20
- sections?: Array<{
21
- startPoint?: { x: number; y: number };
22
- endPoint?: { x: number; y: number };
23
- bendPoints?: Array<{ x: number; y: number }>;
24
- }>;
25
- }
26
-
27
- export default class ELK {
28
- public layout(graph: ElkNode): Promise<ElkNode>;
29
- }
30
- }