@izara_project/izara-core-library-service-schemas 1.0.89 → 1.0.91
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/package.json +2 -2
- package/src/ValidatorSchema.js +75 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@izara_project/izara-core-library-service-schemas",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.91",
|
|
4
4
|
"description": "Schemas for the service and objects it controls",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@izara_project/izara-core-library-lambda": "^1.0.4",
|
|
31
31
|
"@izara_project/izara-core-library-logger": "^1.0.7",
|
|
32
32
|
"@izara_project/izara-shared-core": "^1.0.2",
|
|
33
|
-
"@izara_project/izara-shared-service-schemas": "^1.0.
|
|
33
|
+
"@izara_project/izara-shared-service-schemas": "^1.0.30",
|
|
34
34
|
"glob": "^11.0.3",
|
|
35
35
|
"lodash": "^4.17.21",
|
|
36
36
|
"object-hash": "^3.0.0",
|
package/src/ValidatorSchema.js
CHANGED
|
@@ -25,7 +25,7 @@ const Logger = require('@izara_project/izara-core-library-logger');
|
|
|
25
25
|
const uploadUseCase = require('./libs/UploadUseCase')
|
|
26
26
|
|
|
27
27
|
const { getGraphServiceTag, getServiceName } = require('./ServiceConfig')
|
|
28
|
-
const { createLinkTypeId } = require('./Utils');
|
|
28
|
+
const { createLinkTypeId, createFlowTypeConcat } = require('./Utils');
|
|
29
29
|
const hash = require('@izara_project/izara-shared-core').objectHash;
|
|
30
30
|
const {
|
|
31
31
|
validateObjectSchema,
|
|
@@ -67,6 +67,35 @@ const {
|
|
|
67
67
|
} = require("./Consts");
|
|
68
68
|
const { validateObjType } = require('@izara_project/izara-shared-service-schemas').validateObjType;
|
|
69
69
|
|
|
70
|
+
// module.exports.createFieldNameUniqueRequestId = (prefix = 'cache') => {
|
|
71
|
+
// return prefix + "UniqueRequestId";
|
|
72
|
+
// }
|
|
73
|
+
|
|
74
|
+
// module.exports.createFieldNameStatus = (prefix = 'cache') => {
|
|
75
|
+
// return prefix + 'Status';
|
|
76
|
+
// }
|
|
77
|
+
|
|
78
|
+
// module.exports.createFieldNameErrorsFound = (prefix = 'cache') => {
|
|
79
|
+
// return prefix + 'ErrorsFound';
|
|
80
|
+
// }
|
|
81
|
+
|
|
82
|
+
// module.exports.createFieldNameCacheComplete = (prefix = 'cache') => { // timeStamp
|
|
83
|
+
// return prefix + 'CacheComplete';
|
|
84
|
+
// }
|
|
85
|
+
|
|
86
|
+
// module.exports.createFlowParamsFieldName = (prefix = 'cache') => {
|
|
87
|
+
// return prefix + 'FlowParams';
|
|
88
|
+
// }
|
|
89
|
+
|
|
90
|
+
function createSpecificFieldNameForCacheTable(prefix = 'cache') {
|
|
91
|
+
return {
|
|
92
|
+
uniqueRequestId: prefix + "UniqueRequestId",
|
|
93
|
+
fieldNameStatus: prefix + "Status",
|
|
94
|
+
errorsFound: prefix + 'ErrorsFound',
|
|
95
|
+
cacheComplete: prefix + 'CacheComplete',
|
|
96
|
+
flowParams: prefix + 'FlowParams'
|
|
97
|
+
}
|
|
98
|
+
}
|
|
70
99
|
|
|
71
100
|
/**
|
|
72
101
|
* helper function: generate validatorSchemaTree of fieldName
|
|
@@ -680,7 +709,7 @@ async function generateValidatorSchemaForIdentifier(_izContext, objType, setting
|
|
|
680
709
|
additionalProperties: false,
|
|
681
710
|
properties: generatedIdentifiersValidatorSchema
|
|
682
711
|
},
|
|
683
|
-
|
|
712
|
+
additionalParams: {
|
|
684
713
|
type: "object",
|
|
685
714
|
}
|
|
686
715
|
}
|
|
@@ -1221,7 +1250,7 @@ async function validateLocalSchema(_izContext, schemasPath, serviceConfigPath) {
|
|
|
1221
1250
|
for (const flowSchema of allFlowSchemas) {
|
|
1222
1251
|
const [status, errors] = validateBasicFlowSchema(_izContext, flowSchema)
|
|
1223
1252
|
|
|
1224
|
-
if (flowSchema.statusType === "storedCache" || flowSchema.statusType === "
|
|
1253
|
+
if (flowSchema.statusType === "storedCache" || flowSchema.statusType === "triggerCache") { // validate triggerCache
|
|
1225
1254
|
if (!flowSchema.hasOwnProperty("objType")) {
|
|
1226
1255
|
validateStatus.status = false;
|
|
1227
1256
|
validateStatus.validateErrors.push(`flowSchema ${flowSchema.flowTag} must have objType`)
|
|
@@ -1233,13 +1262,53 @@ async function validateLocalSchema(_izContext, schemasPath, serviceConfigPath) {
|
|
|
1233
1262
|
|
|
1234
1263
|
if (!objSchema) {
|
|
1235
1264
|
validateStatus.status = false;
|
|
1236
|
-
validateStatus.validateErrors.push(`${flowSchema}.objType is invalid`)
|
|
1265
|
+
validateStatus.validateErrors.push(`${flowSchema.flowTag}.objType is invalid`)
|
|
1266
|
+
} else {
|
|
1267
|
+
if (Object.keys(objSchema.storageResources).length > 1) { // check for objectSchema must have 1 storageResource
|
|
1268
|
+
validateStatus.status = false;
|
|
1269
|
+
validateStatus.validateErrors.push(`storageResource of objectType:${objSchema.objectType} serviceTag:${flowSchema.objType.serviceTag} is not single storageResource`)
|
|
1270
|
+
} else if (Object.keys(objSchema.storageResources).length = 1) {
|
|
1271
|
+
for (const storageResource of Object.values(objSchema.storageResources)) {
|
|
1272
|
+
if (storageResource.storageType === STORAGE_TYPES.dynamoDB) { // check for dynamoDB storageResource
|
|
1273
|
+
let specificFieldNames = Object.values(createSpecificFieldNameForCacheTable(createFlowTypeConcat(_izContext, { flowTag: flowSchema.flowTag, serviceTag: iz_serviceTag })))
|
|
1274
|
+
const fieldNames = Object.keys(objSchema.fieldNames)
|
|
1275
|
+
for (const specificFieldName of specificFieldNames) { // check for specific fieldName
|
|
1276
|
+
if (!fieldNames.includes(specificFieldName)) {
|
|
1277
|
+
validateStatus.status = false;
|
|
1278
|
+
validateStatus.validateErrors.push(`objectType: ${objSchema.objectType} not have fieldNames: ${specificFieldName} in objectSchema.fieldNames`)
|
|
1279
|
+
}
|
|
1280
|
+
}
|
|
1281
|
+
} else {
|
|
1282
|
+
validateStatus.status = false;
|
|
1283
|
+
validateStatus.validateErrors.push(`storageResource of objectType:${objSchema.objectType} serviceTag:${flowSchema.objType.serviceTag} must be dynamoDb`)
|
|
1284
|
+
}
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
if (!status) {
|
|
1292
|
+
validateStatus.status = false;
|
|
1293
|
+
validateStatus.validateErrors.push(errors);
|
|
1237
1294
|
}
|
|
1238
1295
|
}
|
|
1296
|
+
}
|
|
1239
1297
|
|
|
1240
|
-
|
|
1298
|
+
if (flowSchema.statusType === "statusField") {
|
|
1299
|
+
if (!flowSchema.hasOwnProperty("objType")) {
|
|
1241
1300
|
validateStatus.status = false;
|
|
1242
|
-
validateStatus.validateErrors.push(
|
|
1301
|
+
validateStatus.validateErrors.push(`flowSchema ${flowSchema.flowTag} must have objType`)
|
|
1302
|
+
} else {
|
|
1303
|
+
let objSchema = await getObjSchemaS3WithHierarchy(_izContext, {
|
|
1304
|
+
objectType: flowSchema.objType.objectType,
|
|
1305
|
+
serviceTag: flowSchema.objType.serviceTag
|
|
1306
|
+
})
|
|
1307
|
+
|
|
1308
|
+
if (!objSchema) {
|
|
1309
|
+
validateStatus.status = false;
|
|
1310
|
+
validateStatus.validateErrors.push(`${flowSchema.flowTag}.objType is invalid`)
|
|
1311
|
+
}
|
|
1243
1312
|
}
|
|
1244
1313
|
}
|
|
1245
1314
|
}
|