@kumori/aurora-backend-handler 1.0.44 → 1.0.46
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/api/account-api-service.ts +6 -0
- package/api/service-api-service.ts +55 -60
- package/api/user-api-service.ts +203 -233
- package/helpers/account-helper.ts +1 -0
- package/helpers/link-helper.ts +3 -0
- package/helpers/revision-helper.ts +338 -279
- package/helpers/service-helper.ts +80 -189
- package/package.json +2 -2
- package/websocket-manager.ts +36 -13
|
@@ -222,6 +222,7 @@ export const createAccount = async (account: Account, security: Security) => {
|
|
|
222
222
|
username: account.cloudProvider.username || "",
|
|
223
223
|
password: account.cloudProvider.password || "",
|
|
224
224
|
region: account.cloudProvider?.region || "",
|
|
225
|
+
project_id: account.cloudProvider?.project_id || "",
|
|
225
226
|
}
|
|
226
227
|
: {
|
|
227
228
|
method: providerName,
|
|
@@ -333,6 +334,7 @@ export const createAccount = async (account: Account, security: Security) => {
|
|
|
333
334
|
password: account.cloudProvider.password || "",
|
|
334
335
|
region: account.cloudProvider?.region || "",
|
|
335
336
|
domain: account.cloudProvider?.domain || "",
|
|
337
|
+
project_id: account.cloudProvider?.project_id || "",
|
|
336
338
|
}
|
|
337
339
|
: {
|
|
338
340
|
method: providerName,
|
|
@@ -611,6 +613,7 @@ export const deleteAccount = async (account: Account, security: Security) => {
|
|
|
611
613
|
credentials: {
|
|
612
614
|
username: account.cloudProvider.username,
|
|
613
615
|
password: account.cloudProvider.password,
|
|
616
|
+
project_id: account.cloudProvider.project_id || "",
|
|
614
617
|
},
|
|
615
618
|
},
|
|
616
619
|
};
|
|
@@ -625,6 +628,7 @@ export const deleteAccount = async (account: Account, security: Security) => {
|
|
|
625
628
|
username: account.cloudProvider.username,
|
|
626
629
|
password: account.cloudProvider.password,
|
|
627
630
|
domain: account.cloudProvider.domain,
|
|
631
|
+
project_id: account.cloudProvider.project_id || "",
|
|
628
632
|
},
|
|
629
633
|
},
|
|
630
634
|
};
|
|
@@ -990,6 +994,7 @@ export const updateAccount = async (account: Account, security: Security) => {
|
|
|
990
994
|
username: account.cloudProvider.username || "",
|
|
991
995
|
password: account.cloudProvider.password || "",
|
|
992
996
|
region: account.cloudProvider?.region || "",
|
|
997
|
+
project_id: account.cloudProvider?.project_id || "",
|
|
993
998
|
}
|
|
994
999
|
: {
|
|
995
1000
|
method: providerName,
|
|
@@ -1099,6 +1104,7 @@ export const updateAccount = async (account: Account, security: Security) => {
|
|
|
1099
1104
|
password: account.cloudProvider.password || "",
|
|
1100
1105
|
region: account.cloudProvider?.region || "",
|
|
1101
1106
|
domain: account.cloudProvider?.domain || "",
|
|
1107
|
+
project_id: account.cloudProvider?.project_id || "",
|
|
1102
1108
|
}
|
|
1103
1109
|
: {
|
|
1104
1110
|
method: providerName,
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
makeGlobalWebSocketRequest,
|
|
8
8
|
} from "../websocket-manager";
|
|
9
9
|
import { Link, Notification, Service } from "@kumori/aurora-interfaces";
|
|
10
|
+
import { Revision } from "@kumori/aurora-interfaces/interfaces/revision-interface";
|
|
10
11
|
let pendingLinks = new Map<string, Link[]>();
|
|
11
12
|
/**
|
|
12
13
|
* Function to deploy a service
|
|
@@ -15,13 +16,13 @@ let pendingLinks = new Map<string, Link[]>();
|
|
|
15
16
|
export const deployService = async (data: Service, token: string) => {
|
|
16
17
|
try {
|
|
17
18
|
const url = new URL(
|
|
18
|
-
`${environment.apiServer.baseUrl}/api/${environment.apiServer.apiVersion}/tenant/${data.tenant}/service/${data.name}
|
|
19
|
+
`${environment.apiServer.baseUrl}/api/${environment.apiServer.apiVersion}/tenant/${data.tenant}/service/${data.name}`
|
|
19
20
|
);
|
|
20
21
|
url.searchParams.append("dryrun", "false");
|
|
21
22
|
url.searchParams.append("accept", "true");
|
|
22
23
|
url.searchParams.append("wait", "30000");
|
|
23
24
|
url.searchParams.append("validate", "true");
|
|
24
|
-
if
|
|
25
|
+
if(data.dsl){
|
|
25
26
|
url.searchParams.append("dsl", "true");
|
|
26
27
|
}
|
|
27
28
|
if (data.serviceData) {
|
|
@@ -32,7 +33,7 @@ export const deployService = async (data: Service, token: string) => {
|
|
|
32
33
|
JSON.stringify({
|
|
33
34
|
targetAccount: data.account,
|
|
34
35
|
targetEnvironment: data.environment,
|
|
35
|
-
})
|
|
36
|
+
})
|
|
36
37
|
);
|
|
37
38
|
formData.append("labels", JSON.stringify({ project: data.project }));
|
|
38
39
|
formData.append("comment", " ");
|
|
@@ -47,7 +48,7 @@ export const deployService = async (data: Service, token: string) => {
|
|
|
47
48
|
const jsonResponse = await response.json();
|
|
48
49
|
|
|
49
50
|
const isTimeout = jsonResponse?.events?.some(
|
|
50
|
-
(event: any) => event.content === "_timeout_"
|
|
51
|
+
(event: any) => event.content === "_timeout_"
|
|
51
52
|
);
|
|
52
53
|
|
|
53
54
|
if (isTimeout) {
|
|
@@ -80,7 +81,7 @@ export const deployService = async (data: Service, token: string) => {
|
|
|
80
81
|
const jsonResponse = await response.json();
|
|
81
82
|
|
|
82
83
|
const isTimeout = jsonResponse?.events?.some(
|
|
83
|
-
(event: any) => event.content === "_timeout_"
|
|
84
|
+
(event: any) => event.content === "_timeout_"
|
|
84
85
|
);
|
|
85
86
|
|
|
86
87
|
if (isTimeout) {
|
|
@@ -110,7 +111,7 @@ export const redeployService = async (data: Service) => {
|
|
|
110
111
|
try {
|
|
111
112
|
const formData = await deployServiceHelper(data);
|
|
112
113
|
const url = new URL(
|
|
113
|
-
`${environment.apiServer.baseUrl}/api/${environment.apiServer.apiVersion}/tenant/${data.tenant}/service/${data.name}/revision/${data.currentRevision}
|
|
114
|
+
`${environment.apiServer.baseUrl}/api/${environment.apiServer.apiVersion}/tenant/${data.tenant}/service/${data.name}/revision/${data.currentRevision}`
|
|
114
115
|
);
|
|
115
116
|
url.searchParams.append("dryrun", "false");
|
|
116
117
|
url.searchParams.append("accept", "true");
|
|
@@ -129,7 +130,7 @@ export const redeployService = async (data: Service) => {
|
|
|
129
130
|
const jsonResponse = await response.json();
|
|
130
131
|
|
|
131
132
|
const isTimeout = jsonResponse?.events?.some(
|
|
132
|
-
(event: any) => event.content === "_timeout_"
|
|
133
|
+
(event: any) => event.content === "_timeout_"
|
|
133
134
|
);
|
|
134
135
|
|
|
135
136
|
if (isTimeout) {
|
|
@@ -162,7 +163,7 @@ export const deleteService = async (data: Service, security: string) => {
|
|
|
162
163
|
deleteBody,
|
|
163
164
|
30000,
|
|
164
165
|
"DELETE",
|
|
165
|
-
data.name
|
|
166
|
+
data.name
|
|
166
167
|
);
|
|
167
168
|
return response;
|
|
168
169
|
} catch (err) {
|
|
@@ -187,7 +188,7 @@ export const restartService = async (data: Service, security: string) => {
|
|
|
187
188
|
restartBody,
|
|
188
189
|
30000,
|
|
189
190
|
"RESTART",
|
|
190
|
-
data.name
|
|
191
|
+
data.name
|
|
191
192
|
);
|
|
192
193
|
|
|
193
194
|
const updatedService: Service = {
|
|
@@ -210,33 +211,27 @@ export const restartService = async (data: Service, security: string) => {
|
|
|
210
211
|
const generateLinkBody = (data: Service, link: Link) => {
|
|
211
212
|
const originInClient = data.clientChannels.find(
|
|
212
213
|
(channel) =>
|
|
213
|
-
channel.name === link.originChannel ||
|
|
214
|
-
channel.from === link.originChannel,
|
|
214
|
+
channel.name === link.originChannel || channel.from === link.originChannel
|
|
215
215
|
);
|
|
216
216
|
const originInServer = data.serverChannels.find(
|
|
217
217
|
(channel) =>
|
|
218
|
-
channel.name === link.originChannel ||
|
|
219
|
-
channel.from === link.originChannel,
|
|
218
|
+
channel.name === link.originChannel || channel.from === link.originChannel
|
|
220
219
|
);
|
|
221
220
|
const originInDuplex = data.duplexChannels.find(
|
|
222
221
|
(channel) =>
|
|
223
|
-
channel.name === link.originChannel ||
|
|
224
|
-
channel.from === link.originChannel,
|
|
222
|
+
channel.name === link.originChannel || channel.from === link.originChannel
|
|
225
223
|
);
|
|
226
224
|
const targetInClient = data.clientChannels.find(
|
|
227
225
|
(channel) =>
|
|
228
|
-
channel.name === link.targetChannel ||
|
|
229
|
-
channel.from === link.targetChannel,
|
|
226
|
+
channel.name === link.targetChannel || channel.from === link.targetChannel
|
|
230
227
|
);
|
|
231
228
|
const targetInServer = data.serverChannels.find(
|
|
232
229
|
(channel) =>
|
|
233
|
-
channel.name === link.targetChannel ||
|
|
234
|
-
channel.from === link.targetChannel,
|
|
230
|
+
channel.name === link.targetChannel || channel.from === link.targetChannel
|
|
235
231
|
);
|
|
236
232
|
const targetInDuplex = data.duplexChannels.find(
|
|
237
233
|
(channel) =>
|
|
238
|
-
channel.name === link.targetChannel ||
|
|
239
|
-
channel.from === link.targetChannel,
|
|
234
|
+
channel.name === link.targetChannel || channel.from === link.targetChannel
|
|
240
235
|
);
|
|
241
236
|
|
|
242
237
|
let linkBody;
|
|
@@ -296,7 +291,7 @@ const generateLinkBody = (data: Service, link: Link) => {
|
|
|
296
291
|
};
|
|
297
292
|
} else {
|
|
298
293
|
console.warn(
|
|
299
|
-
`No se encontraron canales para el enlace: origin=${link.origin}, target=${link.target}
|
|
294
|
+
`No se encontraron canales para el enlace: origin=${link.origin}, target=${link.target}`
|
|
300
295
|
);
|
|
301
296
|
linkBody = {
|
|
302
297
|
client_tenant: data.tenant,
|
|
@@ -324,7 +319,7 @@ export const linkPendingServices = async (service: Service, token: string) => {
|
|
|
324
319
|
linkBody,
|
|
325
320
|
30000,
|
|
326
321
|
"LINK",
|
|
327
|
-
service.name
|
|
322
|
+
service.name
|
|
328
323
|
);
|
|
329
324
|
|
|
330
325
|
const notification: Notification = {
|
|
@@ -358,7 +353,7 @@ export const linkPendingServices = async (service: Service, token: string) => {
|
|
|
358
353
|
};
|
|
359
354
|
eventHelper.notification.publish.creation(notification);
|
|
360
355
|
}
|
|
361
|
-
})
|
|
356
|
+
})
|
|
362
357
|
);
|
|
363
358
|
}
|
|
364
359
|
};
|
|
@@ -380,7 +375,7 @@ export const requestRevisionData = async (service: Service, token: string) => {
|
|
|
380
375
|
"GET_REVISION",
|
|
381
376
|
service.name,
|
|
382
377
|
"service",
|
|
383
|
-
service
|
|
378
|
+
service
|
|
384
379
|
);
|
|
385
380
|
return response;
|
|
386
381
|
} catch (err) {
|
|
@@ -577,33 +572,33 @@ export const updateService = async (
|
|
|
577
572
|
"UPDATE_CONFIG",
|
|
578
573
|
data.name,
|
|
579
574
|
);
|
|
575
|
+
const updatedService: Service = {
|
|
576
|
+
...data,
|
|
577
|
+
status: {
|
|
578
|
+
code: "PENDING",
|
|
579
|
+
message: "",
|
|
580
|
+
timestamp: "",
|
|
581
|
+
args: [],
|
|
582
|
+
},
|
|
583
|
+
};
|
|
584
|
+
eventHelper.service.publish.updated(updatedService);
|
|
585
|
+
|
|
586
|
+
const updateNotification: Notification = {
|
|
587
|
+
type: "success",
|
|
588
|
+
subtype: "service-updated",
|
|
589
|
+
date: Date.now().toString(),
|
|
590
|
+
status: "unread",
|
|
591
|
+
callToAction: false,
|
|
592
|
+
data: {
|
|
593
|
+
service: data.name,
|
|
594
|
+
tenant: data.tenant,
|
|
595
|
+
},
|
|
596
|
+
};
|
|
597
|
+
|
|
598
|
+
eventHelper.notification.publish.creation(updateNotification);
|
|
599
|
+
return response;
|
|
580
600
|
}
|
|
581
601
|
|
|
582
|
-
const updatedService: Service = {
|
|
583
|
-
...data,
|
|
584
|
-
status: {
|
|
585
|
-
code: "PENDING",
|
|
586
|
-
message: "",
|
|
587
|
-
timestamp: "",
|
|
588
|
-
args: [],
|
|
589
|
-
},
|
|
590
|
-
};
|
|
591
|
-
eventHelper.service.publish.updated(updatedService);
|
|
592
|
-
|
|
593
|
-
const updateNotification: Notification = {
|
|
594
|
-
type: "success",
|
|
595
|
-
subtype: "service-updated",
|
|
596
|
-
date: Date.now().toString(),
|
|
597
|
-
status: "unread",
|
|
598
|
-
callToAction: false,
|
|
599
|
-
data: {
|
|
600
|
-
service: data.name,
|
|
601
|
-
tenant: data.tenant,
|
|
602
|
-
},
|
|
603
|
-
};
|
|
604
|
-
|
|
605
|
-
eventHelper.notification.publish.creation(updateNotification);
|
|
606
|
-
return response;
|
|
607
602
|
} catch (err) {
|
|
608
603
|
console.error("Error updating service configuration via WebSocket:", err);
|
|
609
604
|
const notification: Notification = {
|
|
@@ -628,7 +623,7 @@ export const updateService = async (
|
|
|
628
623
|
};
|
|
629
624
|
export const unlinkServices = async (service: Service, token: string) => {
|
|
630
625
|
const deleteLinks: Link[] = service.links.filter(
|
|
631
|
-
(link) => link.delete === true
|
|
626
|
+
(link) => link.delete === true
|
|
632
627
|
);
|
|
633
628
|
if (deleteLinks.length > 0) {
|
|
634
629
|
await Promise.all(
|
|
@@ -643,7 +638,7 @@ export const unlinkServices = async (service: Service, token: string) => {
|
|
|
643
638
|
unlinkBody,
|
|
644
639
|
30000,
|
|
645
640
|
"UNLINK",
|
|
646
|
-
service.name
|
|
641
|
+
service.name
|
|
647
642
|
);
|
|
648
643
|
|
|
649
644
|
const unlinkNotification: Notification = {
|
|
@@ -679,7 +674,7 @@ export const unlinkServices = async (service: Service, token: string) => {
|
|
|
679
674
|
};
|
|
680
675
|
eventHelper.notification.publish.creation(notification);
|
|
681
676
|
}
|
|
682
|
-
})
|
|
677
|
+
})
|
|
683
678
|
);
|
|
684
679
|
}
|
|
685
680
|
};
|
|
@@ -704,7 +699,7 @@ export const updateServiceLinks = async (link: Link, token: string) => {
|
|
|
704
699
|
linkBody,
|
|
705
700
|
30000,
|
|
706
701
|
"UNLINK",
|
|
707
|
-
link.origin
|
|
702
|
+
link.origin
|
|
708
703
|
);
|
|
709
704
|
|
|
710
705
|
// const unlinkNotification: Notification = {
|
|
@@ -750,7 +745,7 @@ export const updateServiceLinks = async (link: Link, token: string) => {
|
|
|
750
745
|
linkBody,
|
|
751
746
|
30000,
|
|
752
747
|
"LINK",
|
|
753
|
-
link.origin
|
|
748
|
+
link.origin
|
|
754
749
|
);
|
|
755
750
|
|
|
756
751
|
const notification: Notification = {
|
|
@@ -806,7 +801,7 @@ export const changeRevision = async (data: Service, token: string) => {
|
|
|
806
801
|
revisionBody,
|
|
807
802
|
30000,
|
|
808
803
|
"UPDATE_REVISION",
|
|
809
|
-
data.name
|
|
804
|
+
data.name
|
|
810
805
|
);
|
|
811
806
|
const notification: Notification = {
|
|
812
807
|
type: "success",
|
|
@@ -838,10 +833,10 @@ export const changeRevision = async (data: Service, token: string) => {
|
|
|
838
833
|
eventHelper.notification.publish.creation(notification);
|
|
839
834
|
}
|
|
840
835
|
};
|
|
841
|
-
function getLatestRevision(revisions:
|
|
836
|
+
function getLatestRevision(revisions: Revision[]): number | null {
|
|
842
837
|
if (!revisions || revisions.length === 0) {
|
|
843
838
|
return null;
|
|
844
839
|
}
|
|
845
|
-
|
|
846
|
-
return Math.max(...revisions.map(Number));
|
|
847
|
-
}
|
|
840
|
+
|
|
841
|
+
return Math.max(...revisions.map((revision) => Number(revision.id)));
|
|
842
|
+
}
|