@oneuptime/common 9.3.7 → 9.3.9
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.
- package/Models/DatabaseModels/AIAgentTask.ts +18 -3
- package/Models/DatabaseModels/Index.ts +12 -17
- package/Models/DatabaseModels/MetricType.ts +7 -7
- package/Models/DatabaseModels/{ServiceCatalog.ts → Service.ts} +74 -48
- package/Models/DatabaseModels/{ServiceCatalogCodeRepository.ts → ServiceCodeRepository.ts} +54 -56
- package/Models/DatabaseModels/{ServiceCatalogDependency.ts → ServiceDependency.ts} +49 -53
- package/Models/DatabaseModels/{ServiceCatalogMonitor.ts → ServiceMonitor.ts} +41 -43
- package/Models/DatabaseModels/{ServiceCatalogOwnerTeam.ts → ServiceOwnerTeam.ts} +41 -43
- package/Models/DatabaseModels/{ServiceCatalogOwnerUser.ts → ServiceOwnerUser.ts} +41 -43
- package/Models/DatabaseModels/TelemetryException.ts +11 -13
- package/Models/DatabaseModels/TelemetryUsageBilling.ts +11 -13
- package/Server/API/AIAgentDataAPI.ts +73 -111
- package/Server/Infrastructure/Postgres/SchemaMigrations/1767966850199-RenameServiceCatalogToService.ts +171 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1767979055522-MigrationName.ts +743 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1767979448478-MigrationName.ts +224 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Services/Index.ts +12 -17
- package/Server/Services/OpenTelemetryIngestService.ts +26 -28
- package/Server/Services/{ServiceCatalogCodeRepositoryService.ts → ServiceCodeRepositoryService.ts} +7 -7
- package/Server/Services/ServiceDependencyService.ts +48 -0
- package/Server/Services/{ServiceCatalogMonitorService.ts → ServiceMonitorService.ts} +8 -8
- package/Server/Services/{ServiceCatalogOwnerTeamService.ts → ServiceOwnerTeamService.ts} +1 -1
- package/Server/Services/{ServiceCatalogOwnerUserService.ts → ServiceOwnerUserService.ts} +1 -1
- package/Server/Services/{TelemetryServiceService.ts → ServiceService.ts} +7 -9
- package/Server/Services/TelemetryExceptionService.ts +3 -4
- package/Server/Services/TelemetryUsageBillingService.ts +30 -32
- package/Server/Utils/Telemetry/Telemetry.ts +24 -23
- package/Types/AI/AIAgentTaskMetadata.ts +1 -1
- package/Types/Permission.ts +112 -115
- package/UI/Components/LogsViewer/LogsViewer.tsx +20 -23
- package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +3 -3
- package/UI/Components/LogsViewer/components/LogsTable.tsx +3 -4
- package/UI/Components/Navbar/NavBarMenuItem.tsx +2 -2
- package/Utils/TechStack.ts +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentTask.js +18 -3
- package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +12 -16
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MetricType.js +8 -8
- package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
- package/build/dist/Models/DatabaseModels/{ServiceCatalog.js → Service.js} +93 -65
- package/build/dist/Models/DatabaseModels/Service.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{ServiceCatalogCodeRepository.js → ServiceCodeRepository.js} +72 -72
- package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{ServiceCatalogDependency.js → ServiceDependency.js} +65 -65
- package/build/dist/Models/DatabaseModels/ServiceDependency.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{ServiceCatalogMonitor.js → ServiceMonitor.js} +56 -56
- package/build/dist/Models/DatabaseModels/ServiceMonitor.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{ServiceCatalogOwnerTeam.js → ServiceOwnerTeam.js} +56 -56
- package/build/dist/Models/DatabaseModels/ServiceOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{ServiceCatalogOwnerUser.js → ServiceOwnerUser.js} +56 -56
- package/build/dist/Models/DatabaseModels/ServiceOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js +14 -14
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +14 -14
- package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +48 -77
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767966850199-RenameServiceCatalogToService.js +72 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767966850199-RenameServiceCatalogToService.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767979055522-MigrationName.js +254 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767979055522-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767979448478-MigrationName.js +140 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767979448478-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/Index.js +12 -16
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +7 -7
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/{ServiceCatalogCodeRepositoryService.js → ServiceCodeRepositoryService.js} +7 -7
- package/build/dist/Server/Services/ServiceCodeRepositoryService.js.map +1 -0
- package/build/dist/Server/Services/{ServiceCatalogDependencyService.js → ServiceDependencyService.js} +11 -12
- package/build/dist/Server/Services/ServiceDependencyService.js.map +1 -0
- package/build/dist/Server/Services/{ServiceCatalogMonitorService.js → ServiceMonitorService.js} +8 -8
- package/build/dist/Server/Services/ServiceMonitorService.js.map +1 -0
- package/build/dist/Server/Services/{ServiceCatalogOwnerUserService.js → ServiceOwnerTeamService.js} +2 -2
- package/build/dist/Server/Services/ServiceOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/{ServiceCatalogOwnerTeamService.js → ServiceOwnerUserService.js} +2 -2
- package/build/dist/Server/Services/ServiceOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/{TelemetryServiceService.js → ServiceService.js} +8 -9
- package/build/dist/Server/Services/ServiceService.js.map +1 -0
- package/build/dist/Server/Services/TelemetryExceptionService.js +3 -4
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +15 -16
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +20 -20
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Types/Permission.js +112 -112
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Service/CodeRepositoryImprovementAction.js.map +1 -0
- package/build/dist/Types/Service/TechStack.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +5 -5
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuItem.js +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuItem.js.map +1 -1
- package/build/dist/Utils/TechStack.js +1 -1
- package/build/dist/Utils/TechStack.js.map +1 -1
- package/package.json +1 -1
- package/Models/DatabaseModels/ServiceCatalogTelemetryService.ts +0 -421
- package/Models/DatabaseModels/TelemetryService.ts +0 -529
- package/Server/Services/ServiceCatalogDependencyService.ts +0 -51
- package/Server/Services/ServiceCatalogService.ts +0 -28
- package/Server/Services/ServiceCatalogTelemetryServiceService.ts +0 -59
- package/build/dist/Models/DatabaseModels/ServiceCatalog.js.map +0 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js.map +0 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogDependency.js.map +0 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogMonitor.js.map +0 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerTeam.js.map +0 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerUser.js.map +0 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogTelemetryService.js +0 -436
- package/build/dist/Models/DatabaseModels/ServiceCatalogTelemetryService.js.map +0 -1
- package/build/dist/Models/DatabaseModels/TelemetryService.js +0 -545
- package/build/dist/Models/DatabaseModels/TelemetryService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCatalogDependencyService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCatalogMonitorService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCatalogOwnerTeamService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCatalogOwnerUserService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCatalogService.js +0 -35
- package/build/dist/Server/Services/ServiceCatalogService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCatalogTelemetryServiceService.js +0 -56
- package/build/dist/Server/Services/ServiceCatalogTelemetryServiceService.js.map +0 -1
- package/build/dist/Server/Services/TelemetryServiceService.js.map +0 -1
- package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js.map +0 -1
- package/build/dist/Types/ServiceCatalog/TechStack.js.map +0 -1
- /package/Types/{ServiceCatalog → Service}/CodeRepositoryImprovementAction.ts +0 -0
- /package/Types/{ServiceCatalog → Service}/TechStack.ts +0 -0
- /package/build/dist/Types/{ServiceCatalog → Service}/CodeRepositoryImprovementAction.js +0 -0
- /package/build/dist/Types/{ServiceCatalog → Service}/TechStack.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Project from "./Project";
|
|
2
|
-
import
|
|
2
|
+
import Service from "./Service";
|
|
3
3
|
import User from "./User";
|
|
4
4
|
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
5
5
|
import Route from "../../Types/API/Route";
|
|
@@ -21,7 +21,7 @@ import ObjectID from "../../Types/ObjectID";
|
|
|
21
21
|
import Permission from "../../Types/Permission";
|
|
22
22
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
23
23
|
|
|
24
|
-
@CanAccessIfCanReadOn("
|
|
24
|
+
@CanAccessIfCanReadOn("service")
|
|
25
25
|
@EnableDocumentation()
|
|
26
26
|
@TenantColumn("projectId")
|
|
27
27
|
@TableBillingAccessControl({
|
|
@@ -35,23 +35,23 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
35
35
|
Permission.ProjectOwner,
|
|
36
36
|
Permission.ProjectAdmin,
|
|
37
37
|
Permission.ProjectMember,
|
|
38
|
-
Permission.
|
|
38
|
+
Permission.CreateServiceOwnerUser,
|
|
39
39
|
],
|
|
40
40
|
read: [
|
|
41
41
|
Permission.ProjectOwner,
|
|
42
42
|
Permission.ProjectAdmin,
|
|
43
43
|
Permission.ProjectMember,
|
|
44
|
-
Permission.
|
|
44
|
+
Permission.ReadServiceOwnerUser,
|
|
45
45
|
],
|
|
46
46
|
delete: [
|
|
47
47
|
Permission.ProjectOwner,
|
|
48
48
|
Permission.ProjectAdmin,
|
|
49
|
-
Permission.
|
|
49
|
+
Permission.DeleteServiceOwnerUser,
|
|
50
50
|
],
|
|
51
51
|
update: [
|
|
52
52
|
Permission.ProjectOwner,
|
|
53
53
|
Permission.ProjectAdmin,
|
|
54
|
-
Permission.
|
|
54
|
+
Permission.EditServiceOwnerUser,
|
|
55
55
|
],
|
|
56
56
|
})
|
|
57
57
|
@EnableWorkflow({
|
|
@@ -60,30 +60,30 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
60
60
|
update: true,
|
|
61
61
|
read: true,
|
|
62
62
|
})
|
|
63
|
-
@CrudApiEndpoint(new Route("/service-
|
|
63
|
+
@CrudApiEndpoint(new Route("/service-owner-user"))
|
|
64
64
|
@TableMetadata({
|
|
65
|
-
tableName: "
|
|
66
|
-
singularName: "Service
|
|
67
|
-
pluralName: "Service
|
|
65
|
+
tableName: "ServiceOwnerUser",
|
|
66
|
+
singularName: "Service User Owner",
|
|
67
|
+
pluralName: "Service User Owners",
|
|
68
68
|
icon: IconProp.Signal,
|
|
69
|
-
tableDescription: "Add users as owners to your Service
|
|
69
|
+
tableDescription: "Add users as owners to your Service.",
|
|
70
70
|
})
|
|
71
71
|
@Entity({
|
|
72
|
-
name: "
|
|
72
|
+
name: "ServiceOwnerUser",
|
|
73
73
|
})
|
|
74
|
-
export default class
|
|
74
|
+
export default class ServiceOwnerUser extends BaseModel {
|
|
75
75
|
@ColumnAccessControl({
|
|
76
76
|
create: [
|
|
77
77
|
Permission.ProjectOwner,
|
|
78
78
|
Permission.ProjectAdmin,
|
|
79
79
|
Permission.ProjectMember,
|
|
80
|
-
Permission.
|
|
80
|
+
Permission.CreateServiceOwnerUser,
|
|
81
81
|
],
|
|
82
82
|
read: [
|
|
83
83
|
Permission.ProjectOwner,
|
|
84
84
|
Permission.ProjectAdmin,
|
|
85
85
|
Permission.ProjectMember,
|
|
86
|
-
Permission.
|
|
86
|
+
Permission.ReadServiceOwnerUser,
|
|
87
87
|
],
|
|
88
88
|
update: [],
|
|
89
89
|
})
|
|
@@ -114,13 +114,13 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
114
114
|
Permission.ProjectOwner,
|
|
115
115
|
Permission.ProjectAdmin,
|
|
116
116
|
Permission.ProjectMember,
|
|
117
|
-
Permission.
|
|
117
|
+
Permission.CreateServiceOwnerUser,
|
|
118
118
|
],
|
|
119
119
|
read: [
|
|
120
120
|
Permission.ProjectOwner,
|
|
121
121
|
Permission.ProjectAdmin,
|
|
122
122
|
Permission.ProjectMember,
|
|
123
|
-
Permission.
|
|
123
|
+
Permission.ReadServiceOwnerUser,
|
|
124
124
|
],
|
|
125
125
|
update: [],
|
|
126
126
|
})
|
|
@@ -145,13 +145,13 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
145
145
|
Permission.ProjectOwner,
|
|
146
146
|
Permission.ProjectAdmin,
|
|
147
147
|
Permission.ProjectMember,
|
|
148
|
-
Permission.
|
|
148
|
+
Permission.CreateServiceOwnerUser,
|
|
149
149
|
],
|
|
150
150
|
read: [
|
|
151
151
|
Permission.ProjectOwner,
|
|
152
152
|
Permission.ProjectAdmin,
|
|
153
153
|
Permission.ProjectMember,
|
|
154
|
-
Permission.
|
|
154
|
+
Permission.ReadServiceOwnerUser,
|
|
155
155
|
],
|
|
156
156
|
update: [],
|
|
157
157
|
})
|
|
@@ -183,13 +183,13 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
183
183
|
Permission.ProjectOwner,
|
|
184
184
|
Permission.ProjectAdmin,
|
|
185
185
|
Permission.ProjectMember,
|
|
186
|
-
Permission.
|
|
186
|
+
Permission.CreateServiceOwnerUser,
|
|
187
187
|
],
|
|
188
188
|
read: [
|
|
189
189
|
Permission.ProjectOwner,
|
|
190
190
|
Permission.ProjectAdmin,
|
|
191
191
|
Permission.ProjectMember,
|
|
192
|
-
Permission.
|
|
192
|
+
Permission.ReadServiceOwnerUser,
|
|
193
193
|
],
|
|
194
194
|
update: [],
|
|
195
195
|
})
|
|
@@ -214,28 +214,27 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
214
214
|
Permission.ProjectOwner,
|
|
215
215
|
Permission.ProjectAdmin,
|
|
216
216
|
Permission.ProjectMember,
|
|
217
|
-
Permission.
|
|
217
|
+
Permission.CreateServiceOwnerUser,
|
|
218
218
|
],
|
|
219
219
|
read: [
|
|
220
220
|
Permission.ProjectOwner,
|
|
221
221
|
Permission.ProjectAdmin,
|
|
222
222
|
Permission.ProjectMember,
|
|
223
|
-
Permission.
|
|
223
|
+
Permission.ReadServiceOwnerUser,
|
|
224
224
|
],
|
|
225
225
|
update: [],
|
|
226
226
|
})
|
|
227
227
|
@TableColumn({
|
|
228
|
-
manyToOneRelationColumn: "
|
|
228
|
+
manyToOneRelationColumn: "serviceId",
|
|
229
229
|
type: TableColumnType.Entity,
|
|
230
|
-
modelType:
|
|
231
|
-
title: "Service
|
|
232
|
-
description:
|
|
233
|
-
"Relation to Service Catalog Resource in which this object belongs",
|
|
230
|
+
modelType: Service,
|
|
231
|
+
title: "Service",
|
|
232
|
+
description: "Relation to Service Resource in which this object belongs",
|
|
234
233
|
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
|
|
235
234
|
})
|
|
236
235
|
@ManyToOne(
|
|
237
236
|
() => {
|
|
238
|
-
return
|
|
237
|
+
return Service;
|
|
239
238
|
},
|
|
240
239
|
{
|
|
241
240
|
eager: false,
|
|
@@ -244,21 +243,21 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
244
243
|
orphanedRowAction: "nullify",
|
|
245
244
|
},
|
|
246
245
|
)
|
|
247
|
-
@JoinColumn({ name: "
|
|
248
|
-
public
|
|
246
|
+
@JoinColumn({ name: "serviceId" })
|
|
247
|
+
public service?: Service = undefined;
|
|
249
248
|
|
|
250
249
|
@ColumnAccessControl({
|
|
251
250
|
create: [
|
|
252
251
|
Permission.ProjectOwner,
|
|
253
252
|
Permission.ProjectAdmin,
|
|
254
253
|
Permission.ProjectMember,
|
|
255
|
-
Permission.
|
|
254
|
+
Permission.CreateServiceOwnerUser,
|
|
256
255
|
],
|
|
257
256
|
read: [
|
|
258
257
|
Permission.ProjectOwner,
|
|
259
258
|
Permission.ProjectAdmin,
|
|
260
259
|
Permission.ProjectMember,
|
|
261
|
-
Permission.
|
|
260
|
+
Permission.ReadServiceOwnerUser,
|
|
262
261
|
],
|
|
263
262
|
update: [],
|
|
264
263
|
})
|
|
@@ -267,9 +266,8 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
267
266
|
type: TableColumnType.ObjectID,
|
|
268
267
|
required: true,
|
|
269
268
|
canReadOnRelationQuery: true,
|
|
270
|
-
title: "Service
|
|
271
|
-
description:
|
|
272
|
-
"ID of your OneUptime Service Catalog in which this object belongs",
|
|
269
|
+
title: "Service ID",
|
|
270
|
+
description: "ID of your OneUptime Service in which this object belongs",
|
|
273
271
|
example: "f6a7b8c9-d0e1-2345-fa67-bc89de012345",
|
|
274
272
|
})
|
|
275
273
|
@Column({
|
|
@@ -277,20 +275,20 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
277
275
|
nullable: false,
|
|
278
276
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
279
277
|
})
|
|
280
|
-
public
|
|
278
|
+
public serviceId?: ObjectID = undefined;
|
|
281
279
|
|
|
282
280
|
@ColumnAccessControl({
|
|
283
281
|
create: [
|
|
284
282
|
Permission.ProjectOwner,
|
|
285
283
|
Permission.ProjectAdmin,
|
|
286
284
|
Permission.ProjectMember,
|
|
287
|
-
Permission.
|
|
285
|
+
Permission.CreateServiceOwnerUser,
|
|
288
286
|
],
|
|
289
287
|
read: [
|
|
290
288
|
Permission.ProjectOwner,
|
|
291
289
|
Permission.ProjectAdmin,
|
|
292
290
|
Permission.ProjectMember,
|
|
293
|
-
Permission.
|
|
291
|
+
Permission.ReadServiceOwnerUser,
|
|
294
292
|
],
|
|
295
293
|
update: [],
|
|
296
294
|
})
|
|
@@ -322,13 +320,13 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
322
320
|
Permission.ProjectOwner,
|
|
323
321
|
Permission.ProjectAdmin,
|
|
324
322
|
Permission.ProjectMember,
|
|
325
|
-
Permission.
|
|
323
|
+
Permission.CreateServiceOwnerUser,
|
|
326
324
|
],
|
|
327
325
|
read: [
|
|
328
326
|
Permission.ProjectOwner,
|
|
329
327
|
Permission.ProjectAdmin,
|
|
330
328
|
Permission.ProjectMember,
|
|
331
|
-
Permission.
|
|
329
|
+
Permission.ReadServiceOwnerUser,
|
|
332
330
|
],
|
|
333
331
|
update: [],
|
|
334
332
|
})
|
|
@@ -352,7 +350,7 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
352
350
|
Permission.ProjectOwner,
|
|
353
351
|
Permission.ProjectAdmin,
|
|
354
352
|
Permission.ProjectMember,
|
|
355
|
-
Permission.
|
|
353
|
+
Permission.ReadServiceOwnerUser,
|
|
356
354
|
],
|
|
357
355
|
update: [],
|
|
358
356
|
})
|
|
@@ -386,7 +384,7 @@ export default class ServiceCatalogOwnerUser extends BaseModel {
|
|
|
386
384
|
Permission.ProjectOwner,
|
|
387
385
|
Permission.ProjectAdmin,
|
|
388
386
|
Permission.ProjectMember,
|
|
389
|
-
Permission.
|
|
387
|
+
Permission.ReadServiceOwnerUser,
|
|
390
388
|
],
|
|
391
389
|
update: [],
|
|
392
390
|
})
|
|
@@ -17,7 +17,7 @@ import ObjectID from "../../Types/ObjectID";
|
|
|
17
17
|
import Permission from "../../Types/Permission";
|
|
18
18
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
19
19
|
import DatabaseBaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
20
|
-
import
|
|
20
|
+
import Service from "./Service";
|
|
21
21
|
|
|
22
22
|
@EnableDocumentation()
|
|
23
23
|
@TenantColumn("projectId")
|
|
@@ -142,17 +142,16 @@ export default class TelemetryException extends DatabaseBaseModel {
|
|
|
142
142
|
],
|
|
143
143
|
})
|
|
144
144
|
@TableColumn({
|
|
145
|
-
manyToOneRelationColumn: "
|
|
145
|
+
manyToOneRelationColumn: "serviceId",
|
|
146
146
|
type: TableColumnType.Entity,
|
|
147
|
-
modelType:
|
|
148
|
-
title: "
|
|
149
|
-
description:
|
|
150
|
-
"Relation to Telemetry Service Resource in which this object belongs",
|
|
147
|
+
modelType: Service,
|
|
148
|
+
title: "Service",
|
|
149
|
+
description: "Relation to Service Resource in which this object belongs",
|
|
151
150
|
example: "d4e5f6a7-b8c9-0123-def1-234567890123",
|
|
152
151
|
})
|
|
153
152
|
@ManyToOne(
|
|
154
153
|
() => {
|
|
155
|
-
return
|
|
154
|
+
return Service;
|
|
156
155
|
},
|
|
157
156
|
{
|
|
158
157
|
eager: false,
|
|
@@ -161,8 +160,8 @@ export default class TelemetryException extends DatabaseBaseModel {
|
|
|
161
160
|
orphanedRowAction: "nullify",
|
|
162
161
|
},
|
|
163
162
|
)
|
|
164
|
-
@JoinColumn({ name: "
|
|
165
|
-
public
|
|
163
|
+
@JoinColumn({ name: "serviceId" })
|
|
164
|
+
public service?: Service = undefined;
|
|
166
165
|
|
|
167
166
|
@ColumnAccessControl({
|
|
168
167
|
create: [
|
|
@@ -186,9 +185,8 @@ export default class TelemetryException extends DatabaseBaseModel {
|
|
|
186
185
|
@TableColumn({
|
|
187
186
|
type: TableColumnType.ObjectID,
|
|
188
187
|
required: true,
|
|
189
|
-
title: "
|
|
190
|
-
description:
|
|
191
|
-
"ID of your Telemetry Service resource where this object belongs",
|
|
188
|
+
title: "Service ID",
|
|
189
|
+
description: "ID of your Service resource where this object belongs",
|
|
192
190
|
example: "d4e5f6a7-b8c9-0123-def1-234567890123",
|
|
193
191
|
})
|
|
194
192
|
@Column({
|
|
@@ -196,7 +194,7 @@ export default class TelemetryException extends DatabaseBaseModel {
|
|
|
196
194
|
nullable: false,
|
|
197
195
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
198
196
|
})
|
|
199
|
-
public
|
|
197
|
+
public serviceId?: ObjectID = undefined;
|
|
200
198
|
|
|
201
199
|
@ColumnAccessControl({
|
|
202
200
|
create: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Project from "./Project";
|
|
2
|
-
import
|
|
2
|
+
import Service from "./Service";
|
|
3
3
|
import User from "./User";
|
|
4
4
|
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
5
5
|
import Route from "../../Types/API/Route";
|
|
@@ -256,17 +256,16 @@ export default class TelemetryUsageBilling extends BaseModel {
|
|
|
256
256
|
update: [],
|
|
257
257
|
})
|
|
258
258
|
@TableColumn({
|
|
259
|
-
manyToOneRelationColumn: "
|
|
259
|
+
manyToOneRelationColumn: "serviceId",
|
|
260
260
|
type: TableColumnType.Entity,
|
|
261
|
-
modelType:
|
|
262
|
-
title: "
|
|
263
|
-
description:
|
|
264
|
-
"Relation to Telemetry Service Resource in which this object belongs",
|
|
261
|
+
modelType: Service,
|
|
262
|
+
title: "Service",
|
|
263
|
+
description: "Relation to Service Resource in which this object belongs",
|
|
265
264
|
example: "d4e5f6a7-b8c9-0123-def1-234567890123",
|
|
266
265
|
})
|
|
267
266
|
@ManyToOne(
|
|
268
267
|
() => {
|
|
269
|
-
return
|
|
268
|
+
return Service;
|
|
270
269
|
},
|
|
271
270
|
{
|
|
272
271
|
eager: false,
|
|
@@ -275,8 +274,8 @@ export default class TelemetryUsageBilling extends BaseModel {
|
|
|
275
274
|
orphanedRowAction: "nullify",
|
|
276
275
|
},
|
|
277
276
|
)
|
|
278
|
-
@JoinColumn({ name: "
|
|
279
|
-
public
|
|
277
|
+
@JoinColumn({ name: "serviceId" })
|
|
278
|
+
public service?: Service = undefined;
|
|
280
279
|
|
|
281
280
|
@ColumnAccessControl({
|
|
282
281
|
create: [],
|
|
@@ -291,9 +290,8 @@ export default class TelemetryUsageBilling extends BaseModel {
|
|
|
291
290
|
@TableColumn({
|
|
292
291
|
type: TableColumnType.ObjectID,
|
|
293
292
|
required: true,
|
|
294
|
-
title: "
|
|
295
|
-
description:
|
|
296
|
-
"ID of your Telemetry Service resource where this object belongs",
|
|
293
|
+
title: "Service ID",
|
|
294
|
+
description: "ID of your Service resource where this object belongs",
|
|
297
295
|
example: "d4e5f6a7-b8c9-0123-def1-234567890123",
|
|
298
296
|
})
|
|
299
297
|
@Column({
|
|
@@ -301,7 +299,7 @@ export default class TelemetryUsageBilling extends BaseModel {
|
|
|
301
299
|
nullable: false,
|
|
302
300
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
303
301
|
})
|
|
304
|
-
public
|
|
302
|
+
public serviceId?: ObjectID = undefined;
|
|
305
303
|
|
|
306
304
|
@ColumnAccessControl({
|
|
307
305
|
create: [],
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import AIAgentService from "../Services/AIAgentService";
|
|
2
2
|
import LlmProviderService from "../Services/LlmProviderService";
|
|
3
3
|
import TelemetryExceptionService from "../Services/TelemetryExceptionService";
|
|
4
|
-
import
|
|
5
|
-
import ServiceCatalogCodeRepositoryService from "../Services/ServiceCatalogCodeRepositoryService";
|
|
4
|
+
import ServiceCodeRepositoryService from "../Services/ServiceCodeRepositoryService";
|
|
6
5
|
import CodeRepositoryService from "../Services/CodeRepositoryService";
|
|
7
6
|
import AIAgentTaskPullRequestService from "../Services/AIAgentTaskPullRequestService";
|
|
8
7
|
import AIAgentTaskService from "../Services/AIAgentTaskService";
|
|
@@ -16,8 +15,7 @@ import Response from "../Utils/Response";
|
|
|
16
15
|
import AIAgent from "../../Models/DatabaseModels/AIAgent";
|
|
17
16
|
import LlmProvider from "../../Models/DatabaseModels/LlmProvider";
|
|
18
17
|
import TelemetryException from "../../Models/DatabaseModels/TelemetryException";
|
|
19
|
-
import
|
|
20
|
-
import ServiceCatalogCodeRepository from "../../Models/DatabaseModels/ServiceCatalogCodeRepository";
|
|
18
|
+
import ServiceCodeRepository from "../../Models/DatabaseModels/ServiceCodeRepository";
|
|
21
19
|
import CodeRepository from "../../Models/DatabaseModels/CodeRepository";
|
|
22
20
|
import AIAgentTaskPullRequest from "../../Models/DatabaseModels/AIAgentTaskPullRequest";
|
|
23
21
|
import AIAgentTask from "../../Models/DatabaseModels/AIAgentTask";
|
|
@@ -164,7 +162,7 @@ export default class AIAgentDataAPI {
|
|
|
164
162
|
data["exceptionId"] as string,
|
|
165
163
|
);
|
|
166
164
|
|
|
167
|
-
// Get exception with
|
|
165
|
+
// Get exception with service
|
|
168
166
|
const exception: TelemetryException | null =
|
|
169
167
|
await TelemetryExceptionService.findOneById({
|
|
170
168
|
id: exceptionId,
|
|
@@ -174,8 +172,8 @@ export default class AIAgentDataAPI {
|
|
|
174
172
|
stackTrace: true,
|
|
175
173
|
exceptionType: true,
|
|
176
174
|
fingerprint: true,
|
|
177
|
-
|
|
178
|
-
|
|
175
|
+
serviceId: true,
|
|
176
|
+
service: {
|
|
179
177
|
_id: true,
|
|
180
178
|
name: true,
|
|
181
179
|
description: true,
|
|
@@ -206,11 +204,11 @@ export default class AIAgentDataAPI {
|
|
|
206
204
|
exceptionType: exception.exceptionType,
|
|
207
205
|
fingerprint: exception.fingerprint,
|
|
208
206
|
},
|
|
209
|
-
|
|
207
|
+
service: exception.serviceId
|
|
210
208
|
? {
|
|
211
|
-
id: exception.
|
|
212
|
-
name: exception.
|
|
213
|
-
description: exception.
|
|
209
|
+
id: exception.serviceId.toString(),
|
|
210
|
+
name: exception.service?.name,
|
|
211
|
+
description: exception.service?.description,
|
|
214
212
|
}
|
|
215
213
|
: null,
|
|
216
214
|
});
|
|
@@ -220,7 +218,7 @@ export default class AIAgentDataAPI {
|
|
|
220
218
|
},
|
|
221
219
|
);
|
|
222
220
|
|
|
223
|
-
// Get code repositories linked to a
|
|
221
|
+
// Get code repositories linked to a service
|
|
224
222
|
this.router.post(
|
|
225
223
|
"/ai-agent-data/get-code-repositories",
|
|
226
224
|
async (
|
|
@@ -242,55 +240,22 @@ export default class AIAgentDataAPI {
|
|
|
242
240
|
);
|
|
243
241
|
}
|
|
244
242
|
|
|
245
|
-
// Get
|
|
246
|
-
|
|
243
|
+
// Get service ID (supports both serviceId and legacy telemetryServiceId)
|
|
244
|
+
const serviceIdParam: string | undefined =
|
|
245
|
+
(data["serviceId"] as string) ||
|
|
246
|
+
(data["telemetryServiceId"] as string);
|
|
247
|
+
|
|
248
|
+
if (!serviceIdParam) {
|
|
247
249
|
return Response.sendErrorResponse(
|
|
248
250
|
req,
|
|
249
251
|
res,
|
|
250
|
-
new BadDataException("
|
|
252
|
+
new BadDataException("serviceId is required"),
|
|
251
253
|
);
|
|
252
254
|
}
|
|
253
255
|
|
|
254
|
-
const
|
|
255
|
-
data["telemetryServiceId"] as string,
|
|
256
|
-
);
|
|
257
|
-
|
|
258
|
-
// Step 1: Find ServiceCatalogs linked to this TelemetryService
|
|
259
|
-
const serviceCatalogTelemetryServices: Array<ServiceCatalogTelemetryService> =
|
|
260
|
-
await ServiceCatalogTelemetryServiceService.findBy({
|
|
261
|
-
query: {
|
|
262
|
-
telemetryServiceId: telemetryServiceId,
|
|
263
|
-
},
|
|
264
|
-
select: {
|
|
265
|
-
serviceCatalogId: true,
|
|
266
|
-
},
|
|
267
|
-
skip: 0,
|
|
268
|
-
limit: LIMIT_MAX,
|
|
269
|
-
props: {
|
|
270
|
-
isRoot: true,
|
|
271
|
-
},
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
if (serviceCatalogTelemetryServices.length === 0) {
|
|
275
|
-
logger.debug(
|
|
276
|
-
`No service catalogs found for telemetry service ${telemetryServiceId.toString()}`,
|
|
277
|
-
);
|
|
278
|
-
return Response.sendJsonObjectResponse(req, res, {
|
|
279
|
-
repositories: [],
|
|
280
|
-
});
|
|
281
|
-
}
|
|
256
|
+
const serviceId: ObjectID = new ObjectID(serviceIdParam);
|
|
282
257
|
|
|
283
|
-
//
|
|
284
|
-
const serviceCatalogIds: Array<ObjectID> =
|
|
285
|
-
serviceCatalogTelemetryServices
|
|
286
|
-
.filter((s: ServiceCatalogTelemetryService) => {
|
|
287
|
-
return s.serviceCatalogId;
|
|
288
|
-
})
|
|
289
|
-
.map((s: ServiceCatalogTelemetryService) => {
|
|
290
|
-
return s.serviceCatalogId as ObjectID;
|
|
291
|
-
});
|
|
292
|
-
|
|
293
|
-
// Step 2: Find CodeRepositories linked to these ServiceCatalogs
|
|
258
|
+
// Find CodeRepositories linked to this Service
|
|
294
259
|
const repositories: Array<{
|
|
295
260
|
id: string;
|
|
296
261
|
name: string;
|
|
@@ -302,70 +267,67 @@ export default class AIAgentDataAPI {
|
|
|
302
267
|
gitHubAppInstallationId: string | null;
|
|
303
268
|
}> = [];
|
|
304
269
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
gitHubAppInstallationId: true,
|
|
322
|
-
},
|
|
270
|
+
const serviceCodeRepositories: Array<ServiceCodeRepository> =
|
|
271
|
+
await ServiceCodeRepositoryService.findBy({
|
|
272
|
+
query: {
|
|
273
|
+
serviceId: serviceId,
|
|
274
|
+
},
|
|
275
|
+
select: {
|
|
276
|
+
codeRepositoryId: true,
|
|
277
|
+
servicePathInRepository: true,
|
|
278
|
+
codeRepository: {
|
|
279
|
+
_id: true,
|
|
280
|
+
name: true,
|
|
281
|
+
repositoryHostedAt: true,
|
|
282
|
+
organizationName: true,
|
|
283
|
+
repositoryName: true,
|
|
284
|
+
mainBranchName: true,
|
|
285
|
+
gitHubAppInstallationId: true,
|
|
323
286
|
},
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
287
|
+
},
|
|
288
|
+
skip: 0,
|
|
289
|
+
limit: LIMIT_MAX,
|
|
290
|
+
props: {
|
|
291
|
+
isRoot: true,
|
|
292
|
+
},
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
for (const scr of serviceCodeRepositories) {
|
|
296
|
+
if (scr.codeRepository) {
|
|
297
|
+
// Check if we already have this repository
|
|
298
|
+
const existingRepo: boolean = repositories.some(
|
|
299
|
+
(r: {
|
|
300
|
+
id: string;
|
|
301
|
+
name: string;
|
|
302
|
+
repositoryHostedAt: string;
|
|
303
|
+
organizationName: string;
|
|
304
|
+
repositoryName: string;
|
|
305
|
+
mainBranchName: string;
|
|
306
|
+
servicePathInRepository: string | null;
|
|
307
|
+
gitHubAppInstallationId: string | null;
|
|
308
|
+
}) => {
|
|
309
|
+
return r.id === scr.codeRepository?._id?.toString();
|
|
328
310
|
},
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
gitHubAppInstallationId: string | null;
|
|
344
|
-
}) => {
|
|
345
|
-
return r.id === scr.codeRepository?._id?.toString();
|
|
346
|
-
},
|
|
347
|
-
);
|
|
348
|
-
if (!existingRepo) {
|
|
349
|
-
repositories.push({
|
|
350
|
-
id: scr.codeRepository._id?.toString() || "",
|
|
351
|
-
name: scr.codeRepository.name || "",
|
|
352
|
-
repositoryHostedAt:
|
|
353
|
-
scr.codeRepository.repositoryHostedAt || "",
|
|
354
|
-
organizationName: scr.codeRepository.organizationName || "",
|
|
355
|
-
repositoryName: scr.codeRepository.repositoryName || "",
|
|
356
|
-
mainBranchName: scr.codeRepository.mainBranchName || "main",
|
|
357
|
-
servicePathInRepository:
|
|
358
|
-
scr.servicePathInRepository || null,
|
|
359
|
-
gitHubAppInstallationId:
|
|
360
|
-
scr.codeRepository.gitHubAppInstallationId || null,
|
|
361
|
-
});
|
|
362
|
-
}
|
|
311
|
+
);
|
|
312
|
+
if (!existingRepo) {
|
|
313
|
+
repositories.push({
|
|
314
|
+
id: scr.codeRepository._id?.toString() || "",
|
|
315
|
+
name: scr.codeRepository.name || "",
|
|
316
|
+
repositoryHostedAt:
|
|
317
|
+
scr.codeRepository.repositoryHostedAt || "",
|
|
318
|
+
organizationName: scr.codeRepository.organizationName || "",
|
|
319
|
+
repositoryName: scr.codeRepository.repositoryName || "",
|
|
320
|
+
mainBranchName: scr.codeRepository.mainBranchName || "main",
|
|
321
|
+
servicePathInRepository: scr.servicePathInRepository || null,
|
|
322
|
+
gitHubAppInstallationId:
|
|
323
|
+
scr.codeRepository.gitHubAppInstallationId || null,
|
|
324
|
+
});
|
|
363
325
|
}
|
|
364
326
|
}
|
|
365
327
|
}
|
|
366
328
|
|
|
367
329
|
logger.debug(
|
|
368
|
-
`Found ${repositories.length} code repositories for
|
|
330
|
+
`Found ${repositories.length} code repositories for service ${serviceId.toString()}`,
|
|
369
331
|
);
|
|
370
332
|
|
|
371
333
|
return Response.sendJsonObjectResponse(req, res, {
|