@izara_project/izara-core-library-service-schemas 1.0.100 → 1.0.102
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/index.js +37 -19
- package/package.json +15 -15
- package/src/Consts.js +12 -12
- package/src/GetObjectSchema.js +66 -112
- package/src/IdentifiersObject.js +24 -24
- package/src/ServiceConfig.js +11 -16
- package/src/SharedUtils.js +26 -34
- package/src/UploadObjSchema.js +55 -103
- package/src/Utils.js +25 -46
- package/src/ValidatorSchema.js +58 -96
- package/src/libs/CreateNodeLib.js +12 -14
- package/src/libs/DeliminatorTree.js +6 -6
- package/src/libs/ExplodedReqParams.js +3 -3
- package/src/libs/LambdaUtils.js +2 -4
- package/src/libs/RelSchemaLib.js +9 -12
- package/src/libs/SharedUtilsLibs.js +1 -1
- package/src/libs/UploadUseCase.js +12 -27
- package/src/libs/s3Utils.js +11 -11
package/src/ServiceConfig.js
CHANGED
|
@@ -17,16 +17,11 @@ along with this program.If not, see < http://www.gnu.org/licenses/>.
|
|
|
17
17
|
|
|
18
18
|
'use strict';
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
import { objectHash as hash } from '@izara_project/izara-shared-core';
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
OBJECT_SCHEMA_BUCKET_NAME,
|
|
26
|
-
UPLOAD_PATH_S3,
|
|
27
|
-
} = require('./Consts');
|
|
28
|
-
|
|
29
|
-
const { getObjectS3 } = require("./libs/s3Utils")
|
|
22
|
+
import { inMemoryCacheLib } from '@izara_project/izara-core-library-core';
|
|
23
|
+
import consts from './Consts.js'
|
|
24
|
+
import s3Utils from "./libs/s3Utils.js"
|
|
30
25
|
|
|
31
26
|
/**
|
|
32
27
|
* get serviceName in s3 depend on serviceTag
|
|
@@ -42,12 +37,12 @@ async function getServiceName(
|
|
|
42
37
|
_izContext.logger.debug("getServiceName: ", serviceTag)
|
|
43
38
|
|
|
44
39
|
const getObjectParam = {
|
|
45
|
-
Bucket: process.env.iz_serviceSchemaBucketName || OBJECT_SCHEMA_BUCKET_NAME,
|
|
46
|
-
Key: UPLOAD_PATH_S3.serviceName(_izContext, serviceTag),
|
|
40
|
+
Bucket: process.env.iz_serviceSchemaBucketName || consts.OBJECT_SCHEMA_BUCKET_NAME,
|
|
41
|
+
Key: consts.UPLOAD_PATH_S3.serviceName(_izContext, serviceTag),
|
|
47
42
|
};
|
|
48
43
|
_izContext.logger.debug("getObjectParam", getObjectParam)
|
|
49
44
|
|
|
50
|
-
const [bodyResponse] = await getObjectS3(_izContext, getObjectParam);
|
|
45
|
+
const [bodyResponse] = await s3Utils.getObjectS3(_izContext, getObjectParam);
|
|
51
46
|
|
|
52
47
|
if (!bodyResponse) {
|
|
53
48
|
return null;
|
|
@@ -82,15 +77,15 @@ const getServiceNameWithCache = inMemoryCacheLib(
|
|
|
82
77
|
async function getGraphServiceTag(
|
|
83
78
|
_izContext,
|
|
84
79
|
graphServerTag,
|
|
85
|
-
bucketName = process.env.iz_serviceSchemaBucketName || OBJECT_SCHEMA_BUCKET_NAME
|
|
80
|
+
bucketName = process.env.iz_serviceSchemaBucketName || consts.OBJECT_SCHEMA_BUCKET_NAME
|
|
86
81
|
) {
|
|
87
82
|
|
|
88
83
|
// get all graph serverTag
|
|
89
|
-
let [serverTags] = await getObjectS3(
|
|
84
|
+
let [serverTags] = await s3Utils.getObjectS3(
|
|
90
85
|
_izContext,
|
|
91
86
|
{
|
|
92
87
|
Bucket: bucketName,
|
|
93
|
-
Key: UPLOAD_PATH_S3.graphServerTagsConfig
|
|
88
|
+
Key: consts.UPLOAD_PATH_S3.graphServerTagsConfig
|
|
94
89
|
}
|
|
95
90
|
);
|
|
96
91
|
|
|
@@ -170,7 +165,7 @@ const getGraphServiceNameFromGraphServerTagWithCache = inMemoryCacheLib(
|
|
|
170
165
|
|
|
171
166
|
|
|
172
167
|
|
|
173
|
-
|
|
168
|
+
export default {
|
|
174
169
|
getServiceName,
|
|
175
170
|
getServiceNameWithCache,
|
|
176
171
|
|
package/src/SharedUtils.js
CHANGED
|
@@ -17,20 +17,14 @@ along with this program.If not, see < http://www.gnu.org/licenses/>.
|
|
|
17
17
|
|
|
18
18
|
'use strict';
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
import { objectHash as hash } from '@izara_project/izara-shared-core';
|
|
21
|
+
import sharedUtilsLibs from './libs/SharedUtilsLibs.js'
|
|
22
|
+
import s3Utils from "./libs/s3Utils.js";
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
validateObjectLinksInput
|
|
27
|
-
} = require('./libs/SharedUtilsLibs');
|
|
28
|
-
const { getObjectS3 } = require("./libs/s3Utils");
|
|
29
|
-
|
|
30
|
-
const { getObjSchemaS3WithCache } = require("./GetObjectSchema");
|
|
31
|
-
const { createLinkTypeId } = require('./Utils');
|
|
32
|
-
const { uploadObjectToS3 } = require('./UploadObjSchema');
|
|
33
|
-
const { OBJECT_SCHEMA_BUCKET_NAME, UPLOAD_PATH_S3 } = require('./Consts');
|
|
24
|
+
import getObjectSchema from './GetObjectSchema.js';
|
|
25
|
+
import utils from './Utils.js';
|
|
26
|
+
import uploadObjectToS3 from './UploadObjSchema.js';
|
|
27
|
+
import consts from './Consts.js'
|
|
34
28
|
|
|
35
29
|
/**
|
|
36
30
|
* Function to add links between objects
|
|
@@ -44,7 +38,7 @@ async function addLinks(_izContext, relationshipTag, objectLinks) {
|
|
|
44
38
|
// objectLinks = { relType, firstNode, secondNode, graphServerTags, direction }
|
|
45
39
|
try {
|
|
46
40
|
// ** == validate input ==
|
|
47
|
-
validateObjectLinksInput(objectLinks);
|
|
41
|
+
sharedUtilsLibs.validateObjectLinksInput(objectLinks);
|
|
48
42
|
|
|
49
43
|
// ** == process each group of objectLinks ==
|
|
50
44
|
const results = await _processObjectLinksGroup(
|
|
@@ -87,12 +81,12 @@ async function _processNodeRelationships(
|
|
|
87
81
|
|
|
88
82
|
// Get object relationships from S3
|
|
89
83
|
const getObjRelPathParam = {
|
|
90
|
-
Bucket: bucketName ? bucketName : OBJECT_SCHEMA_BUCKET_NAME,
|
|
91
|
-
Key: UPLOAD_PATH_S3.objectRelationship(_izContext, node.objType)
|
|
84
|
+
Bucket: bucketName ? bucketName : consts.OBJECT_SCHEMA_BUCKET_NAME,
|
|
85
|
+
Key: consts.UPLOAD_PATH_S3.objectRelationship(_izContext, node.objType)
|
|
92
86
|
};
|
|
93
87
|
_izContext.logger.debug('==> getObjRelPathParam:', getObjRelPathParam);
|
|
94
88
|
|
|
95
|
-
const [objectRelationshipsArray] = await getObjectS3(_izContext, getObjRelPathParam);
|
|
89
|
+
const [objectRelationshipsArray] = await s3Utils.getObjectS3(_izContext, getObjRelPathParam);
|
|
96
90
|
_izContext.logger.debug(`Object relationships for ${isBase ? 'base' : 'other'} node:`,
|
|
97
91
|
JSON.stringify(objectRelationshipsArray, null, 2));
|
|
98
92
|
|
|
@@ -148,7 +142,7 @@ async function _processNodeRelationships(
|
|
|
148
142
|
|
|
149
143
|
// Merge storage resources if available
|
|
150
144
|
if (newLinkRelSchema.storageResources) {
|
|
151
|
-
updatedObjRel.storageResources = mergeStorageResources(
|
|
145
|
+
updatedObjRel.storageResources = sharedUtilsLibs.mergeStorageResources(
|
|
152
146
|
existingObjRel.storageResources || {},
|
|
153
147
|
newLinkRelSchema.storageResources
|
|
154
148
|
);
|
|
@@ -163,7 +157,7 @@ async function _processNodeRelationships(
|
|
|
163
157
|
_izContext.logger.debug('=> CASE: No existing relationship found - create new one');
|
|
164
158
|
|
|
165
159
|
// Create storage resources data
|
|
166
|
-
const storageResourcesData = getStorageResources(relationshipSchema, storageResourceTags);
|
|
160
|
+
const storageResourcesData = sharedUtilsLibs.getStorageResources(relationshipSchema, storageResourceTags);
|
|
167
161
|
|
|
168
162
|
// Create new relationship
|
|
169
163
|
const newRelationship = {
|
|
@@ -238,11 +232,11 @@ async function _processObjectLinksGroup(_izContext, relationshipTag, objectLinks
|
|
|
238
232
|
relationshipTag: relationshipTag,
|
|
239
233
|
serviceTag: process.env.iz_serviceTag
|
|
240
234
|
};
|
|
241
|
-
const [relationshipSchema, rawRelationshipSchema] = await getObjectS3(
|
|
235
|
+
const [relationshipSchema, rawRelationshipSchema] = await s3Utils.getObjectS3(
|
|
242
236
|
_izContext,
|
|
243
237
|
{
|
|
244
238
|
Bucket: process.env.iz_serviceSchemaBucketName,
|
|
245
|
-
Key: UPLOAD_PATH_S3.relationshipTag(_izContext, relType)
|
|
239
|
+
Key: consts.UPLOAD_PATH_S3.relationshipTag(_izContext, relType)
|
|
246
240
|
}
|
|
247
241
|
);
|
|
248
242
|
const ETagRelSchema = rawRelationshipSchema.ETag;
|
|
@@ -283,8 +277,8 @@ async function _processObjectLinksGroup(_izContext, relationshipTag, objectLinks
|
|
|
283
277
|
_izContext.logger.debug('createObjectRelationshipConfig:', createObjectRelationshipConfig);
|
|
284
278
|
|
|
285
279
|
// ** get object schema for firstNode and secondNode
|
|
286
|
-
let firstNodeObjSchema = await getObjSchemaS3WithCache(_izContext, firstNode.objType);
|
|
287
|
-
let secondNodeObjSchema = await getObjSchemaS3WithCache(_izContext, secondNode.objType);
|
|
280
|
+
let firstNodeObjSchema = await getObjectSchema.getObjSchemaS3WithCache(_izContext, firstNode.objType);
|
|
281
|
+
let secondNodeObjSchema = await getObjectSchema.getObjSchemaS3WithCache(_izContext, secondNode.objType);
|
|
288
282
|
_izContext.logger.debug(`
|
|
289
283
|
firstNodeObjSchema: ${JSON.stringify(firstNodeObjSchema, null, 2)}
|
|
290
284
|
, secondNodeObjSchema: ${JSON.stringify(secondNodeObjSchema, null, 2)}`);
|
|
@@ -292,7 +286,7 @@ async function _processObjectLinksGroup(_izContext, relationshipTag, objectLinks
|
|
|
292
286
|
// ? Validate the graph server tags
|
|
293
287
|
// returns an array of error messages if validation fails
|
|
294
288
|
// example: ['relationship schema missing tags: tag1, tag2', 'firstNode schema missing tags: tag3']
|
|
295
|
-
const storageResourceTags = validateGraphServerTags(
|
|
289
|
+
const storageResourceTags = sharedUtilsLibs.validateGraphServerTags(
|
|
296
290
|
graphServerTags,
|
|
297
291
|
relationshipSchema,
|
|
298
292
|
firstNodeObjSchema,
|
|
@@ -428,7 +422,7 @@ async function _processObjectLinksGroup(_izContext, relationshipTag, objectLinks
|
|
|
428
422
|
|
|
429
423
|
// TODO-Part: Create LinkTypeId
|
|
430
424
|
// Create linkTypeId for the relationship
|
|
431
|
-
const linkTypeId = createLinkTypeId(
|
|
425
|
+
const linkTypeId = utils.createLinkTypeId(
|
|
432
426
|
_izContext,
|
|
433
427
|
firstNode.objType,
|
|
434
428
|
secondNode.objType,
|
|
@@ -536,9 +530,9 @@ async function _processObjectLinksGroup(_izContext, relationshipTag, objectLinks
|
|
|
536
530
|
try {
|
|
537
531
|
_izContext.logger.debug('Uploading new relationship schema...');
|
|
538
532
|
await Promise.all([
|
|
539
|
-
uploadObjectToS3(
|
|
533
|
+
uploadObjectToS3.uploadObjectToS3(
|
|
540
534
|
_izContext,
|
|
541
|
-
UPLOAD_PATH_S3.relationshipTag(
|
|
535
|
+
consts.UPLOAD_PATH_S3.relationshipTag(
|
|
542
536
|
_izContext,
|
|
543
537
|
relType
|
|
544
538
|
),
|
|
@@ -598,9 +592,9 @@ async function _processObjectLinksGroup(_izContext, relationshipTag, objectLinks
|
|
|
598
592
|
|
|
599
593
|
|
|
600
594
|
const objectRelationshipPromises = Object.values(newObjectRelationships).map(({ objType, relationships }) =>
|
|
601
|
-
uploadObjectToS3(
|
|
595
|
+
uploadObjectToS3.uploadObjectToS3(
|
|
602
596
|
_izContext,
|
|
603
|
-
UPLOAD_PATH_S3.objectRelationship(_izContext, objType),
|
|
597
|
+
consts.UPLOAD_PATH_S3.objectRelationship(_izContext, objType),
|
|
604
598
|
relationships,
|
|
605
599
|
)
|
|
606
600
|
);
|
|
@@ -612,9 +606,9 @@ async function _processObjectLinksGroup(_izContext, relationshipTag, objectLinks
|
|
|
612
606
|
|
|
613
607
|
const uploadPromises = [
|
|
614
608
|
...linkByLinkTypeIds.map(({ linkTypeId, link }) =>
|
|
615
|
-
uploadObjectToS3(
|
|
609
|
+
uploadObjectToS3.uploadObjectToS3(
|
|
616
610
|
_izContext,
|
|
617
|
-
UPLOAD_PATH_S3.linkByLinkTypeId(
|
|
611
|
+
consts.UPLOAD_PATH_S3.linkByLinkTypeId(
|
|
618
612
|
_izContext,
|
|
619
613
|
process.env.iz_serviceTag,
|
|
620
614
|
linkTypeId
|
|
@@ -647,6 +641,4 @@ async function _processObjectLinksGroup(_izContext, relationshipTag, objectLinks
|
|
|
647
641
|
}
|
|
648
642
|
}
|
|
649
643
|
|
|
650
|
-
|
|
651
|
-
addLinks,
|
|
652
|
-
};
|
|
644
|
+
export default { addLinks };
|
package/src/UploadObjSchema.js
CHANGED
|
@@ -17,62 +17,14 @@ along with this program.If not, see < http://www.gnu.org/licenses/>.
|
|
|
17
17
|
|
|
18
18
|
'use strict';
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
PREFIX_PATH_S3,
|
|
29
|
-
UPLOAD_PATH_S3,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
LOCAL_FILENAME,
|
|
33
|
-
STORAGE_TYPES
|
|
34
|
-
} = require("./Consts")
|
|
35
|
-
|
|
36
|
-
const {
|
|
37
|
-
getLocalObjectSchemas,
|
|
38
|
-
getAllLocalObjectSchemasWithoutHierarchy,
|
|
39
|
-
getDataFromPath,
|
|
40
|
-
getAllLocalFlowSchemas,
|
|
41
|
-
getAllLocalRelationshipSchema,
|
|
42
|
-
getAllLocalRefObjectRelationshipSchema,
|
|
43
|
-
getLambdaFunctionNames,
|
|
44
|
-
|
|
45
|
-
} = require("./GetObjectSchema");
|
|
46
|
-
|
|
47
|
-
const {
|
|
48
|
-
validateObjectSchema,
|
|
49
|
-
validateRelationshipSchema,
|
|
50
|
-
validateRefRelationshipSchema,
|
|
51
|
-
validateBasicFlowSchema,
|
|
52
|
-
getApiLinksV2
|
|
53
|
-
} = require('./Utils')
|
|
54
|
-
|
|
55
|
-
const {
|
|
56
|
-
DEFAULT_REL_ID_SETTING,
|
|
57
|
-
// ORIGIN_TIMESTAMP_FIELDNAME,
|
|
58
|
-
generateObjectSchemaForCreate,
|
|
59
|
-
generateObjectSchemaForUpdate,
|
|
60
|
-
generateObjectSchemaForCombineFieldNames,
|
|
61
|
-
|
|
62
|
-
groupLinksPerObjectType,
|
|
63
|
-
generateLinksDataPerLinkTypeId,
|
|
64
|
-
groupRefObjectRelPerObjectType,
|
|
65
|
-
|
|
66
|
-
refRelationshipPerObjectSchema
|
|
67
|
-
} = require('./libs/UploadUseCase');
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const {
|
|
71
|
-
putObjectS3,
|
|
72
|
-
listObjectsV2,
|
|
73
|
-
deleteObjects
|
|
74
|
-
} = require('./libs/s3Utils');
|
|
75
|
-
|
|
20
|
+
import { NoRetryError } from '@izara_project/izara-core-library-core';
|
|
21
|
+
import { lambda } from '@izara_project/izara-core-library-external-request';
|
|
22
|
+
import lambdaSharedLib from '@izara_project/izara-core-library-lambda';
|
|
23
|
+
import consts from './Consts.js';
|
|
24
|
+
import getObjectSchema from './GetObjectSchema.js';
|
|
25
|
+
import utils from './Utils.js';
|
|
26
|
+
import uploadUseCase from './libs/UploadUseCase.js';
|
|
27
|
+
import s3Utils from './libs/s3Utils.js';
|
|
76
28
|
|
|
77
29
|
/**
|
|
78
30
|
* upload javascripts object to s3
|
|
@@ -93,7 +45,7 @@ async function uploadObjectToS3(
|
|
|
93
45
|
const Key = pathToUpload
|
|
94
46
|
|
|
95
47
|
let data = {
|
|
96
|
-
Bucket: process.env.iz_serviceSchemaBucketName || OBJECT_SCHEMA_BUCKET_NAME,
|
|
48
|
+
Bucket: process.env.iz_serviceSchemaBucketName || consts.OBJECT_SCHEMA_BUCKET_NAME,
|
|
97
49
|
Key,
|
|
98
50
|
Body: buffer,
|
|
99
51
|
ContentEncoding: 'base64',
|
|
@@ -103,7 +55,7 @@ async function uploadObjectToS3(
|
|
|
103
55
|
|
|
104
56
|
try {
|
|
105
57
|
// await s3.putObject(data).promise();
|
|
106
|
-
await putObjectS3(_izContext, data);
|
|
58
|
+
await s3Utils.putObjectS3(_izContext, data);
|
|
107
59
|
} catch (error) {
|
|
108
60
|
throw Error(error);
|
|
109
61
|
}
|
|
@@ -132,8 +84,8 @@ async function emptyS3Path(
|
|
|
132
84
|
Prefix: bucketPath
|
|
133
85
|
};
|
|
134
86
|
|
|
135
|
-
// const listedObjects = await s3.listObjectsV2(listParams).promise();
|
|
136
|
-
const listedObjects = await listObjectsV2(_izContext, listParams);
|
|
87
|
+
// const listedObjects = await s3.s3Utils.listObjectsV2(listParams).promise();
|
|
88
|
+
const listedObjects = await s3Utils.listObjectsV2(_izContext, listParams);
|
|
137
89
|
|
|
138
90
|
_izContext.logger.debug("listedObjects: ", listedObjects);
|
|
139
91
|
|
|
@@ -148,8 +100,8 @@ async function emptyS3Path(
|
|
|
148
100
|
deleteParams.Delete.Objects.push({ Key });
|
|
149
101
|
});
|
|
150
102
|
|
|
151
|
-
// await s3.deleteObjects(deleteParams).promise();
|
|
152
|
-
await deleteObjects(_izContext, deleteParams);
|
|
103
|
+
// await s3.s3Utils.deleteObjects(deleteParams).promise();
|
|
104
|
+
await s3Utils.deleteObjects(_izContext, deleteParams);
|
|
153
105
|
|
|
154
106
|
// if path not empty yet will start delete again
|
|
155
107
|
if (listedObjects.IsTruncated) {
|
|
@@ -168,20 +120,20 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
168
120
|
|
|
169
121
|
const objectTypesForCreate = [];
|
|
170
122
|
|
|
171
|
-
const allObjectSchemasResult = await getAllLocalObjectSchemasWithoutHierarchy(_izContext);
|
|
123
|
+
const allObjectSchemasResult = await getObjectSchema.getAllLocalObjectSchemasWithoutHierarchy(_izContext);
|
|
172
124
|
// console.log("allObjectSchemasResult: ", allObjectSchemasResult);
|
|
173
125
|
const allObjectSchema = await allObjectSchemasResult.records;
|
|
174
|
-
// const allObjectRelationships = getDataFromPath(_izContext, LOCAL_FILENAME.OBJECT_RELATIONSHIPS, LOCAL_OBJECT_SCHEMA_PATH, { fileLimit: 1 })[0] || [];
|
|
175
|
-
// const allReferenceObjectRelationships = getDataFromPath(_izContext, LOCAL_FILENAME.REFERENCE_OBJECT_RELATIONSHIPS, LOCAL_OBJECT_SCHEMA_PATH, { fileLimit: 1 })[0] || [];
|
|
176
|
-
const allFlowSchemas = await getAllLocalFlowSchemas(_izContext).then(res => res.records);
|
|
126
|
+
// const allObjectRelationships = getDataFromPath(_izContext, consts.LOCAL_FILENAME.OBJECT_RELATIONSHIPS, consts.LOCAL_OBJECT_SCHEMA_PATH, { fileLimit: 1 })[0] || [];
|
|
127
|
+
// const allReferenceObjectRelationships = getDataFromPath(_izContext, consts.LOCAL_FILENAME.REFERENCE_OBJECT_RELATIONSHIPS, consts.LOCAL_OBJECT_SCHEMA_PATH, { fileLimit: 1 })[0] || [];
|
|
128
|
+
const allFlowSchemas = await getObjectSchema.getAllLocalFlowSchemas(_izContext).then(res => res.records);
|
|
177
129
|
|
|
178
|
-
const allObjectRelationships = getAllLocalRelationshipSchema(_izContext)
|
|
179
|
-
const allReferenceObjectRelationships = getAllLocalRefObjectRelationshipSchema(_izContext)
|
|
180
|
-
let refRelationshipPerObjectType = groupRefObjectRelPerObjectType(_izContext, allReferenceObjectRelationships);
|
|
130
|
+
const allObjectRelationships = getObjectSchema.getAllLocalRelationshipSchema(_izContext)
|
|
131
|
+
const allReferenceObjectRelationships = getObjectSchema.getAllLocalRefObjectRelationshipSchema(_izContext)
|
|
132
|
+
let refRelationshipPerObjectType = uploadUseCase.groupRefObjectRelPerObjectType(_izContext, allReferenceObjectRelationships);
|
|
181
133
|
_izContext.logger.debug("refRelationshipPerObjectType: ", refRelationshipPerObjectType);
|
|
182
134
|
|
|
183
135
|
|
|
184
|
-
const lambdaFunctions = await getLambdaFunctionNames(_izContext);
|
|
136
|
+
const lambdaFunctions = await getObjectSchema.getLambdaFunctionNames(_izContext);
|
|
185
137
|
_izContext.logger.debug("lambdaFunctions: ", lambdaFunctions);
|
|
186
138
|
|
|
187
139
|
const foundedObjectTypes = allObjectSchema.map(objectSchema => objectSchema.objectType);
|
|
@@ -190,7 +142,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
190
142
|
// validate all schema
|
|
191
143
|
let validateErrors = [];
|
|
192
144
|
for (let objSchema of allObjectSchema) {
|
|
193
|
-
let [status, errors] = validateObjectSchema(_izContext, objSchema);
|
|
145
|
+
let [status, errors] = utils.validateObjectSchema(_izContext, objSchema);
|
|
194
146
|
|
|
195
147
|
if (!status) {
|
|
196
148
|
validateErrors.push(errors);
|
|
@@ -198,29 +150,29 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
198
150
|
}
|
|
199
151
|
|
|
200
152
|
for (let relSchema of allObjectRelationships) {
|
|
201
|
-
let [status, errors] = validateRelationshipSchema(_izContext, relSchema);
|
|
153
|
+
let [status, errors] = utils.validateRelationshipSchema(_izContext, relSchema);
|
|
202
154
|
if (!status) {
|
|
203
155
|
validateErrors.push(errors);
|
|
204
156
|
} else {
|
|
205
157
|
let relSchemaData = Object.values(relSchema)[0];
|
|
206
158
|
_izContext.logger.debug("each rel: ", relSchemaData);
|
|
207
159
|
_izContext.logger.debug("relSchemaData.fieldNames: ", relSchemaData.fieldNames);
|
|
208
|
-
_izContext.logger.debug("DEFAULT_REL_ID_SETTING: ", DEFAULT_REL_ID_SETTING);
|
|
160
|
+
_izContext.logger.debug("DEFAULT_REL_ID_SETTING: ", uploadUseCase.DEFAULT_REL_ID_SETTING);
|
|
209
161
|
|
|
210
|
-
Object.assign(relSchemaData.fieldNames, DEFAULT_REL_ID_SETTING);
|
|
211
|
-
// Object.assign(relSchemaData.fieldNames, DEFAULT_REL_ID_SETTING, ORIGIN_TIMESTAMP_FIELDNAME);
|
|
162
|
+
Object.assign(relSchemaData.fieldNames, uploadUseCase.DEFAULT_REL_ID_SETTING);
|
|
163
|
+
// Object.assign(relSchemaData.fieldNames, uploadUseCase.DEFAULT_REL_ID_SETTING, ORIGIN_TIMESTAMP_FIELDNAME);
|
|
212
164
|
}
|
|
213
165
|
}
|
|
214
166
|
|
|
215
167
|
for (let refRelSchema of allReferenceObjectRelationships) {
|
|
216
|
-
let [status, errors] = validateRefRelationshipSchema(_izContext, refRelSchema);
|
|
168
|
+
let [status, errors] = utils.validateRefRelationshipSchema(_izContext, refRelSchema);
|
|
217
169
|
if (!status) {
|
|
218
170
|
validateErrors.push(errors);
|
|
219
171
|
}
|
|
220
172
|
}
|
|
221
173
|
|
|
222
174
|
for (let flowSchema of allFlowSchemas) {
|
|
223
|
-
let [status, errors] = validateBasicFlowSchema(_izContext, flowSchema);
|
|
175
|
+
let [status, errors] = utils.validateBasicFlowSchema(_izContext, flowSchema);
|
|
224
176
|
|
|
225
177
|
if (!status) {
|
|
226
178
|
validateErrors.push(errors)
|
|
@@ -234,14 +186,14 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
234
186
|
// end validate all schema
|
|
235
187
|
|
|
236
188
|
// delete all file in servicePath before upload
|
|
237
|
-
await emptyS3Path(_izContext, process.env.iz_serviceSchemaBucketName, `${PREFIX_PATH_S3.perServiceSchemas}/${process.env.iz_serviceTag}/`);
|
|
189
|
+
await emptyS3Path(_izContext, process.env.iz_serviceSchemaBucketName, `${consts.PREFIX_PATH_S3.perServiceSchemas}/${process.env.iz_serviceTag}/`);
|
|
238
190
|
|
|
239
191
|
|
|
240
192
|
if (lambdaFunctions) {
|
|
241
193
|
uploadList.push(
|
|
242
194
|
uploadObjectToS3(
|
|
243
195
|
_izContext,
|
|
244
|
-
UPLOAD_PATH_S3.lambdaFunctions(_izContext, process.env.iz_serviceTag),
|
|
196
|
+
consts.UPLOAD_PATH_S3.lambdaFunctions(_izContext, process.env.iz_serviceTag),
|
|
245
197
|
lambdaFunctions
|
|
246
198
|
)
|
|
247
199
|
);
|
|
@@ -251,7 +203,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
251
203
|
uploadList.push(
|
|
252
204
|
uploadObjectToS3(
|
|
253
205
|
_izContext,
|
|
254
|
-
UPLOAD_PATH_S3.serviceName(_izContext, process.env.iz_serviceTag),
|
|
206
|
+
consts.UPLOAD_PATH_S3.serviceName(_izContext, process.env.iz_serviceTag),
|
|
255
207
|
{ serviceName: process.env.iz_serviceName }
|
|
256
208
|
)
|
|
257
209
|
);
|
|
@@ -263,7 +215,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
263
215
|
uploadList.push(
|
|
264
216
|
uploadObjectToS3(
|
|
265
217
|
_izContext,
|
|
266
|
-
UPLOAD_PATH_S3.objectSchemaAll(
|
|
218
|
+
consts.UPLOAD_PATH_S3.objectSchemaAll(
|
|
267
219
|
_izContext,
|
|
268
220
|
{
|
|
269
221
|
serviceTag: process.env.iz_serviceTag,
|
|
@@ -280,7 +232,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
280
232
|
// uploadList.push(
|
|
281
233
|
// uploadObjectToS3(
|
|
282
234
|
// _izContext,
|
|
283
|
-
// UPLOAD_PATH_S3.objectSchemaCreate(
|
|
235
|
+
// consts.UPLOAD_PATH_S3.objectSchemaCreate(
|
|
284
236
|
// _izContext,
|
|
285
237
|
// {
|
|
286
238
|
// serviceTag: process.env.iz_serviceTag,
|
|
@@ -299,7 +251,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
299
251
|
// uploadList.push(
|
|
300
252
|
// uploadObjectToS3(
|
|
301
253
|
// _izContext,
|
|
302
|
-
// UPLOAD_PATH_S3.objectSchemaDisplay(
|
|
254
|
+
// consts.UPLOAD_PATH_S3.objectSchemaDisplay(
|
|
303
255
|
// _izContext,
|
|
304
256
|
// {
|
|
305
257
|
// serviceTag: process.env.iz_serviceTag,
|
|
@@ -317,7 +269,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
317
269
|
// uploadList.push(
|
|
318
270
|
// uploadObjectToS3(
|
|
319
271
|
// _izContext,
|
|
320
|
-
// UPLOAD_PATH_S3.objectSchemaCombineFieldNames(
|
|
272
|
+
// consts.UPLOAD_PATH_S3.objectSchemaCombineFieldNames(
|
|
321
273
|
// _izContext,
|
|
322
274
|
// {
|
|
323
275
|
// serviceTag: process.env.iz_serviceTag,
|
|
@@ -331,12 +283,12 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
331
283
|
// upload to refObjectRelationships for each objectType that have createBy at UserAccount Service and belongTo
|
|
332
284
|
let existsRefObjectRel = refRelationshipPerObjectType[objSchema.objectType];
|
|
333
285
|
if (existsRefObjectRel) {
|
|
334
|
-
Object.assign(existsRefObjectRel, await refRelationshipPerObjectSchema(_izContext, objSchema));
|
|
286
|
+
Object.assign(existsRefObjectRel, await uploadUseCase.refRelationshipPerObjectSchema(_izContext, objSchema));
|
|
335
287
|
|
|
336
288
|
uploadList.push(
|
|
337
289
|
uploadObjectToS3(
|
|
338
290
|
_izContext,
|
|
339
|
-
UPLOAD_PATH_S3.refObjectRelationship(_izContext,
|
|
291
|
+
consts.UPLOAD_PATH_S3.refObjectRelationship(_izContext,
|
|
340
292
|
{
|
|
341
293
|
objectType: objSchema.objectType,
|
|
342
294
|
serviceTag: process.env.iz_serviceTag
|
|
@@ -348,20 +300,20 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
348
300
|
} else {
|
|
349
301
|
// add new rule if objectType is not have storageType graph not upload to refObjectRelationships
|
|
350
302
|
if (!objSchema.storageResources || !Object.values(objSchema.storageResources)
|
|
351
|
-
.some(storageResource => storageResource.storageType === STORAGE_TYPES.graph)) {
|
|
303
|
+
.some(storageResource => storageResource.storageType === consts.STORAGE_TYPES.graph)) {
|
|
352
304
|
continue;
|
|
353
305
|
}
|
|
354
306
|
|
|
355
307
|
uploadList.push(
|
|
356
308
|
uploadObjectToS3(
|
|
357
309
|
_izContext,
|
|
358
|
-
UPLOAD_PATH_S3.refObjectRelationship(_izContext,
|
|
310
|
+
consts.UPLOAD_PATH_S3.refObjectRelationship(_izContext,
|
|
359
311
|
{
|
|
360
312
|
objectType: objSchema.objectType,
|
|
361
313
|
serviceTag: process.env.iz_serviceTag
|
|
362
314
|
}
|
|
363
315
|
),
|
|
364
|
-
await refRelationshipPerObjectSchema(_izContext, objSchema)
|
|
316
|
+
await uploadUseCase.refRelationshipPerObjectSchema(_izContext, objSchema)
|
|
365
317
|
)
|
|
366
318
|
)
|
|
367
319
|
}
|
|
@@ -373,16 +325,16 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
373
325
|
uploadList.push(
|
|
374
326
|
uploadObjectToS3(
|
|
375
327
|
_izContext,
|
|
376
|
-
UPLOAD_PATH_S3.objectListAll(_izContext, process.env.iz_serviceTag),
|
|
328
|
+
consts.UPLOAD_PATH_S3.objectListAll(_izContext, process.env.iz_serviceTag),
|
|
377
329
|
foundedObjectTypes
|
|
378
330
|
)
|
|
379
331
|
);
|
|
380
332
|
|
|
381
|
-
let apiLinks = await getApiLinksV2(foundedObjectTypes);
|
|
333
|
+
let apiLinks = await utils.getApiLinksV2(foundedObjectTypes);
|
|
382
334
|
uploadList.push(
|
|
383
335
|
uploadObjectToS3(
|
|
384
336
|
_izContext,
|
|
385
|
-
UPLOAD_PATH_S3.getEndpointPerService(_izContext, process.env.iz_serviceTag),
|
|
337
|
+
consts.UPLOAD_PATH_S3.getEndpointPerService(_izContext, process.env.iz_serviceTag),
|
|
386
338
|
apiLinks
|
|
387
339
|
)
|
|
388
340
|
)
|
|
@@ -397,7 +349,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
397
349
|
let graphServerTags = new Set();
|
|
398
350
|
|
|
399
351
|
for (const storageResources of Object.values(objectSchema.storageResources)) {
|
|
400
|
-
if (storageResources.storageType === STORAGE_TYPES.graph) {
|
|
352
|
+
if (storageResources.storageType === consts.STORAGE_TYPES.graph) {
|
|
401
353
|
graphServerTags.add(storageResources.graphServerTag);
|
|
402
354
|
}
|
|
403
355
|
}
|
|
@@ -483,7 +435,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
483
435
|
uploadList.push(
|
|
484
436
|
uploadObjectToS3(
|
|
485
437
|
_izContext,
|
|
486
|
-
UPLOAD_PATH_S3.relationshipTag(
|
|
438
|
+
consts.UPLOAD_PATH_S3.relationshipTag(
|
|
487
439
|
_izContext,
|
|
488
440
|
{
|
|
489
441
|
serviceTag: process.env.iz_serviceTag,
|
|
@@ -498,13 +450,13 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
498
450
|
);
|
|
499
451
|
|
|
500
452
|
// upload per linkTypeId
|
|
501
|
-
const linksData = generateLinksDataPerLinkTypeId(_izContext, relationshipTag, relTagDetail[relationshipTag]);
|
|
453
|
+
const linksData = uploadUseCase.generateLinksDataPerLinkTypeId(_izContext, relationshipTag, relTagDetail[relationshipTag]);
|
|
502
454
|
|
|
503
455
|
for (const [linkTypeId, link] of Object.entries(linksData)) {
|
|
504
456
|
uploadList.push(
|
|
505
457
|
uploadObjectToS3(
|
|
506
458
|
_izContext,
|
|
507
|
-
UPLOAD_PATH_S3.linkByLinkTypeId(_izContext, process.env.iz_serviceTag, linkTypeId),
|
|
459
|
+
consts.UPLOAD_PATH_S3.linkByLinkTypeId(_izContext, process.env.iz_serviceTag, linkTypeId),
|
|
508
460
|
link
|
|
509
461
|
)
|
|
510
462
|
);
|
|
@@ -512,7 +464,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
512
464
|
|
|
513
465
|
// send params to translateIds to create permission fpr query dynamoDB
|
|
514
466
|
for (const [storageResourceTag, storageResource] of Object.entries(relTagDetail[relationshipTag].storageResources)) {
|
|
515
|
-
if (storageResource.storageType === STORAGE_TYPES.dynamoDB) {
|
|
467
|
+
if (storageResource.storageType === consts.STORAGE_TYPES.dynamoDB) {
|
|
516
468
|
for (const link of relTagDetail[relationshipTag].links) {
|
|
517
469
|
if (link.storageResourceTags.includes(storageResourceTag)) {
|
|
518
470
|
setRelationships.add(
|
|
@@ -537,13 +489,13 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
537
489
|
)
|
|
538
490
|
}
|
|
539
491
|
|
|
540
|
-
const linksPerObjectType = groupLinksPerObjectType(_izContext, allObjectRelationships, foundedObjectTypes)
|
|
492
|
+
const linksPerObjectType = uploadUseCase.groupLinksPerObjectType(_izContext, allObjectRelationships, foundedObjectTypes)
|
|
541
493
|
|
|
542
494
|
for (const [relObjectType, relTagsData] of Object.entries(linksPerObjectType)) {
|
|
543
495
|
uploadList.push(
|
|
544
496
|
uploadObjectToS3(
|
|
545
497
|
_izContext,
|
|
546
|
-
UPLOAD_PATH_S3.objectRelationship(_izContext, { serviceTag: process.env.iz_serviceTag, objectType: relObjectType }),
|
|
498
|
+
consts.UPLOAD_PATH_S3.objectRelationship(_izContext, { serviceTag: process.env.iz_serviceTag, objectType: relObjectType }),
|
|
547
499
|
relTagsData
|
|
548
500
|
)
|
|
549
501
|
);
|
|
@@ -555,12 +507,12 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
555
507
|
|
|
556
508
|
// // upload refObjectRelationships
|
|
557
509
|
// if (allReferenceObjectRelationships) {
|
|
558
|
-
// const refPerObjectType = groupRefObjectRelPerObjectType(_izContext, allReferenceObjectRelationships)
|
|
510
|
+
// const refPerObjectType = uploadUseCase.groupRefObjectRelPerObjectType(_izContext, allReferenceObjectRelationships)
|
|
559
511
|
// for (const [refObjectType, refRelsData] of Object.entries(refPerObjectType)) {
|
|
560
512
|
// uploadList.push(
|
|
561
513
|
// uploadObjectToS3(
|
|
562
514
|
// _izContext,
|
|
563
|
-
// UPLOAD_PATH_S3.refObjectRelationship(_izContext, { serviceTag: process.env.iz_serviceTag, objectType: refObjectType }),
|
|
515
|
+
// consts.UPLOAD_PATH_S3.refObjectRelationship(_izContext, { serviceTag: process.env.iz_serviceTag, objectType: refObjectType }),
|
|
564
516
|
// refRelsData
|
|
565
517
|
// )
|
|
566
518
|
// );
|
|
@@ -573,7 +525,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
573
525
|
uploadList.push(
|
|
574
526
|
uploadObjectToS3(
|
|
575
527
|
_izContext,
|
|
576
|
-
UPLOAD_PATH_S3.flowSchema(_izContext,
|
|
528
|
+
consts.UPLOAD_PATH_S3.flowSchema(_izContext,
|
|
577
529
|
{
|
|
578
530
|
serviceTag: process.env.iz_serviceTag,
|
|
579
531
|
flowTag: flowSchema.flowTag
|
|
@@ -589,7 +541,7 @@ async function uploadObjectSchemaByUseCase(_izContext, bucketName) {
|
|
|
589
541
|
}
|
|
590
542
|
|
|
591
543
|
|
|
592
|
-
|
|
544
|
+
export default {
|
|
593
545
|
uploadObjectSchemaByUseCase,
|
|
594
546
|
uploadObjectToS3,
|
|
595
547
|
emptyS3Path
|