@izara_project/izara-market-library-service-schemas 1.0.5 → 1.0.6
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/GenerateCodeLibs/index.js +2 -1
- package/src/GenerateCodeLibs/src/Consts.js +12 -3
- package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +232 -7
- package/src/GenerateCodeLibs/src/TranslateIdsLibs.js +89 -0
- package/src/MainLibs/src/Utils.js +10 -0
- package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrApi/data.js +10 -2
- package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrDsq/data.js +5 -4
- package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrInv/data.js +11 -1
- package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrSqs/data.js +4 -3
- package/src/TemplateManager/src/CreateRelationship/createRelationship/mainFunction/template.ejs +24 -22
- package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrDsq/data.js +0 -1
- package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrSqs/data.js +1 -1
- package/src/TemplateManager/src/CreateRelationship/createRelationship/sns-in-sqs/data.js +0 -2
- package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/functionYaml/data.js +2 -2
- package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/handler/HdrSqs/data.js +0 -1
- package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/sns-out/data.js +1 -1
- package/src/TemplateManager/src/FindData/FindDataYaml/data.js +188 -0
- package/src/TemplateManager/src/FindData/FindDataYaml/template.ejs +27 -0
- package/src/TemplateManager/src/FindData/GetByStorage/getByDynamo.ejs +53 -0
- package/src/TemplateManager/src/FindData/GetByStorage/getByGraph.ejs +99 -0
- package/src/TemplateManager/src/FindData/Handler/data.js +48 -0
- package/src/TemplateManager/src/FindData/Handler/template.ejs +140 -0
- package/src/TemplateManager/src/FindData/mainFunction/data.js +279 -0
- package/src/TemplateManager/src/FindData/mainFunction/template.ejs +155 -0
- package/src/TemplateManager/src/GenerateCode(Old).js +1 -1
- package/src/TemplateManager/src/GenerateCode.js +147 -32
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/data.js +98 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/template.ejs +33 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/data.js +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/template.ejs +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/createObjectComplete_main.js +172 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/data.js +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/template.ejs +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/data.js +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/template.ejs +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/data.js +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/template.ejs +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/data.js +98 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/template.ejs +33 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/handler/data.js +59 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/handler/template.ejs +129 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/data.js +53 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/template.ejs +126 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sns-out/data.js +62 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sqs-in-sns/data.js +58 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sqs-in-sns/template.ejs +47 -0
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrApi/data.js +21 -1
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrApi/template.ejs +2 -2
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrDsq/data.js +24 -1
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrInv/data.js +51 -2
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrSqs/data.js +25 -3
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/data.js +4 -6
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/getTemplate.ejs +76 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/updateTemplate.ejs +67 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/data.js +47 -23
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/getTemplate.ejs +105 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/updateTemplate.ejs +109 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/createTemplate.ejs +75 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/data.js +69 -21
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/getTemplate.ejs +82 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/updateTemplate.ejs +75 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/data.js +46 -17
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/getTemplate.ejs +124 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/updateTemplate.ejs +133 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/CreateObject_main.js +760 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/data.js +67 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/request.json +0 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/template.ejs +581 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/data.js +0 -6
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/template.ejs +17 -12
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/data.js +61 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/request.json +0 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/template.ejs +267 -0
- package/src/TemplateManager/src/ProcessLogical/Handler/data.js +49 -0
- package/src/TemplateManager/src/ProcessLogical/Handler/template.ejs +129 -0
- package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/data.js +175 -0
- package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/template.ejs +25 -0
- package/src/TemplateManager/src/ProcessLogical/mainFunction/data.js +47 -0
- package/src/TemplateManager/src/ProcessLogical/mainFunction/template.ejs +421 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/DsqYaml/data.js +50 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/DsqYaml/template.ejs +32 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrDsq/data.js +167 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrDsq/template.ejs +25 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrSqs/data.js +169 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrSqs/template.ejs +25 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrDsq/data.js +48 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrDsq/template.ejs +163 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrSqs/data.js +48 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrSqs/template.ejs +146 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/mainFunction/data.js +48 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/mainFunction/template.ejs +212 -0
- package/src/TemplateManager/src/ResourceYaml/CreateSourceData.js +2 -2
- package/src/TemplateManager/src/ResourceYaml/dynamodb/processLogicalAndFindData.js +2 -2
- package/src/TemplateManager/src/ResourceYaml/sns-in-sqs/defaultSnsInSqsForFindDataAndProcessLogical.js +27 -12
- package/src/TemplateManager/src/ResourceYaml/sns-out/data.js +1 -1
- package/src/TemplateManager/src/ResourceYaml/sns-out/defaultSnsOutForFindDataAndProcessLogical.js +75 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml/data.js +95 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml/template.ejs +30 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/dataHdrDsq.js +52 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/template.ejs +194 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/mainFunction/data.js +48 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/mainFunction/template.ejs +330 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sns-out/data.js +47 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sqs-sns/data.js +58 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sqs-sns/template.ejs +43 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrDsq/data.js +116 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrSqs/data.js +116 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq/data.js +60 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq/template.ejs +157 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs/data.js +59 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs/template.ejs +175 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/mainFunction/data.js +61 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/mainFunction/template.ejs +155 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/resourceYaml/dynamoDb/data.js +120 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/resourceYaml/sns-sqs/data.js +75 -0
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/functionYaml/data.js +2 -2
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/sns-out/data.js +1 -1
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrApi/data.js +10 -3
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrDsq/data.js +6 -4
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrInv/data.js +11 -1
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrSqs/data.js +7 -5
- package/src/TemplateManager/src/externalService/LambdaRole/data.js +149 -28
- package/src/TemplateManager/src/externalService/LambdaRole/template.ejs +16 -15
- package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/data.js +35 -6
- package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/template.ejs +3 -4
- package/src/TemplateManager/src/libs/Consts.js +122 -11
- package/src/TemplateManager/src/PerActionEndpoint/Handler/testRequest.json +0 -5
|
@@ -23,11 +23,16 @@ const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-l
|
|
|
23
23
|
const { getGraphServiceNameFromGraphServerTagWithCache } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig')
|
|
24
24
|
|
|
25
25
|
const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../MainLibs/src/Utils")
|
|
26
|
-
const {
|
|
26
|
+
const {
|
|
27
|
+
DEFAULT_HANDLER_PER_ACTION, createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SOURCE_PATH, externalResourceName, externalResourceSns, FUNCTION_NAME, getGraphServiceNameFromAllRelSchema, SAVE_FILE_NAME, getComplexFilterServiceTag,
|
|
28
|
+
LAMBDA_RESOURCE, SNS_RESOURCE, DYNAMO_RESOURCE, getGraphServiceNameFromObjectSchema } = require("../../libs/Consts");
|
|
29
|
+
// const templatePath = path.join(__dirname, "./template.ejs");
|
|
27
30
|
const templatePath = path.join(__dirname, "./template.ejs");
|
|
28
|
-
|
|
31
|
+
const { getAllLocalRelationshipSchemas } = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema')
|
|
29
32
|
|
|
30
33
|
const createExternalLambdaRole = async (_izContext, allObjSchemas, allRelSchemas, srcPath) => {
|
|
34
|
+
const allRelationshipSchemas = getAllLocalRelationshipSchemas(_izContext, srcPath)
|
|
35
|
+
// console.log("allRelationshipSchemas", allRelationshipSchemas);
|
|
31
36
|
const externalLambdaIamRoleArray = [];
|
|
32
37
|
for (const objectSchema of allObjSchemas) {
|
|
33
38
|
|
|
@@ -49,31 +54,43 @@ const createExternalLambdaRole = async (_izContext, allObjSchemas, allRelSchemas
|
|
|
49
54
|
|
|
50
55
|
}
|
|
51
56
|
|
|
57
|
+
// validate relationship in ObjectRelationship
|
|
58
|
+
if (allRelationshipSchemas.length) {
|
|
59
|
+
|
|
60
|
+
// updateRelationship external lambda role
|
|
61
|
+
for (const handler of Object.values(HANDLER)) {
|
|
62
|
+
if (handler !== HANDLER.hdrApi) {
|
|
63
|
+
const externalLambdaIamRoleUpdateRelationship = await externalLambdaIamRoleDataUpdateRelationshipSchema(_izContext, allRelSchemas, handler);
|
|
64
|
+
externalLambdaIamRoleUpdateRelationship && externalLambdaIamRoleArray.push(externalLambdaIamRoleUpdateRelationship)
|
|
52
65
|
|
|
53
|
-
|
|
54
|
-
for (const handler of Object.values(HANDLER)) {
|
|
55
|
-
if (handler !== HANDLER.hdrApi) {
|
|
56
|
-
const externalLambdaIamRoleUpdateRelationship = await externalLambdaIamRoleDataUpdateRelationshipSchema(_izContext, allRelSchemas, handler);
|
|
57
|
-
externalLambdaIamRoleUpdateRelationship && externalLambdaIamRoleArray.push(externalLambdaIamRoleUpdateRelationship)
|
|
66
|
+
}
|
|
58
67
|
}
|
|
59
|
-
}
|
|
60
68
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
// CreateRelationship external lambda role
|
|
70
|
+
for (const handler of Object.values(HANDLER)) {
|
|
71
|
+
if (handler !== HANDLER.hdrApi) {
|
|
72
|
+
const externalLambdaIamRoleCreateRelationship = await externalLambdaIamRoleDataCreateRelationshipSchema(_izContext, allRelSchemas, handler);
|
|
73
|
+
externalLambdaIamRoleCreateRelationship && externalLambdaIamRoleArray.push(externalLambdaIamRoleCreateRelationship)
|
|
74
|
+
}
|
|
66
75
|
}
|
|
67
|
-
}
|
|
68
76
|
|
|
69
|
-
|
|
77
|
+
// findData external lambda role
|
|
78
|
+
const externalLambdaIamRoleFindData = await externalLambdaIamRoleDataFindData(_izContext, allObjSchemas);
|
|
79
|
+
externalLambdaIamRoleFindData && externalLambdaIamRoleArray.push(externalLambdaIamRoleFindData)
|
|
80
|
+
// processLogical
|
|
70
81
|
|
|
71
|
-
// processLogical
|
|
72
82
|
|
|
83
|
+
// updateRelationshipComplete external lambda role
|
|
73
84
|
|
|
74
|
-
|
|
85
|
+
// ... another external lambda role data
|
|
75
86
|
|
|
76
|
-
|
|
87
|
+
// processTranslateId Request
|
|
88
|
+
const externalLambdaIamRoleTranslateId = await externalLambdaIamRoleDataTranslateId(_izContext, allRelSchemas, allObjSchemas)
|
|
89
|
+
externalLambdaIamRoleTranslateId && externalLambdaIamRoleArray.push(externalLambdaIamRoleTranslateId)
|
|
90
|
+
|
|
91
|
+
const externalLambdaIamRoleProcessLogical = await externalLambdaIamRoleDataProcessLogical(_izContext, allObjSchemas);
|
|
92
|
+
externalLambdaIamRoleProcessLogical && externalLambdaIamRoleArray.push(externalLambdaIamRoleProcessLogical)
|
|
93
|
+
}
|
|
77
94
|
|
|
78
95
|
|
|
79
96
|
console.log("createSourceArrayIamRole", JSON.stringify(externalLambdaIamRoleArray))
|
|
@@ -112,22 +129,38 @@ async function externalLambdaIamRoleDataPerAction(_izContext, objectSchema, acti
|
|
|
112
129
|
// create additionalResourcePermission
|
|
113
130
|
additionalResourcePermission.push(
|
|
114
131
|
createIamRole(
|
|
115
|
-
{ [RESOURCE_CLASSES.lambda]: [
|
|
132
|
+
{ [RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction] },
|
|
116
133
|
graphServiceNames.map(graphServiceName =>
|
|
117
134
|
externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeV2HdrInv", graphServiceName),
|
|
118
135
|
)
|
|
119
136
|
)
|
|
120
137
|
)
|
|
121
138
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
139
|
+
} else if (action === ACTIONS.update) {
|
|
140
|
+
additionalResourcePermission.push(
|
|
141
|
+
createIamRole(
|
|
142
|
+
{
|
|
143
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
144
|
+
},
|
|
145
|
+
graphServiceNames.map(graphServiceName =>
|
|
146
|
+
externalResourceSns("InUpdateNode", graphServiceName)
|
|
147
|
+
)
|
|
148
|
+
)
|
|
149
|
+
)
|
|
128
150
|
// } else if (action === ACTIONS.delete) {
|
|
129
151
|
|
|
130
|
-
} else {
|
|
152
|
+
} else if (action === ACTIONS.create) {
|
|
153
|
+
additionalResourcePermission.push(
|
|
154
|
+
createIamRole(
|
|
155
|
+
{
|
|
156
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
157
|
+
},
|
|
158
|
+
graphServiceNames.map(graphServiceName =>
|
|
159
|
+
externalResourceSns("InCreateNodeV2", graphServiceName)
|
|
160
|
+
)
|
|
161
|
+
)
|
|
162
|
+
)
|
|
163
|
+
|
|
131
164
|
return
|
|
132
165
|
// throw Error("invalid action")
|
|
133
166
|
}
|
|
@@ -151,7 +184,7 @@ async function externalLambdaIamRoleDataUpdateRelationshipSchema(_izContext, all
|
|
|
151
184
|
additionalResourcePermission.push(
|
|
152
185
|
createIamRole(
|
|
153
186
|
{
|
|
154
|
-
[RESOURCE_CLASSES.sns]: [
|
|
187
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
155
188
|
},
|
|
156
189
|
graphServiceNamesFromAllRelSchemas.map(graphServiceName =>
|
|
157
190
|
externalResourceSns("InUpdateRelationship", graphServiceName)
|
|
@@ -176,7 +209,7 @@ async function externalLambdaIamRoleDataCreateRelationshipSchema(_izContext, all
|
|
|
176
209
|
additionalResourcePermission.push(
|
|
177
210
|
createIamRole(
|
|
178
211
|
{
|
|
179
|
-
[RESOURCE_CLASSES.sns]: [
|
|
212
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
180
213
|
},
|
|
181
214
|
graphServiceNamesFromAllRelSchemas.map(graphServiceName =>
|
|
182
215
|
externalResourceSns("InCreateRelationshipV2", graphServiceName)
|
|
@@ -189,6 +222,94 @@ async function externalLambdaIamRoleDataCreateRelationshipSchema(_izContext, all
|
|
|
189
222
|
}
|
|
190
223
|
}
|
|
191
224
|
|
|
225
|
+
// Process TranslateIds Request
|
|
226
|
+
async function externalLambdaIamRoleDataTranslateId(_izContext, allRelSchemas, allObjSchemas) {
|
|
227
|
+
let functionName = upperCase(FUNCTION_NAME.translateIdsProcess) + upperCase(HANDLER.hdrDsq);
|
|
228
|
+
const additionalResourcePermission = [];
|
|
229
|
+
const graphServiceNamesFromAllRelSchemas = await getGraphServiceNameFromAllRelSchema(_izContext, allRelSchemas);
|
|
230
|
+
let complexFilterServiceTags = getComplexFilterServiceTag(allObjSchemas);
|
|
231
|
+
|
|
232
|
+
additionalResourcePermission.push(
|
|
233
|
+
createIamRole(
|
|
234
|
+
{
|
|
235
|
+
[RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction]
|
|
236
|
+
},
|
|
237
|
+
graphServiceNamesFromAllRelSchemas.map(graphServiceName => (
|
|
238
|
+
externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeAndRelationshipsV2HdrInv", graphServiceName)
|
|
239
|
+
)
|
|
240
|
+
)
|
|
241
|
+
)
|
|
242
|
+
)
|
|
243
|
+
additionalResourcePermission.push(
|
|
244
|
+
createIamRole(
|
|
245
|
+
{
|
|
246
|
+
[RESOURCE_CLASSES.dynamoDbTable]: [DYNAMO_RESOURCE.query]
|
|
247
|
+
},
|
|
248
|
+
complexFilterServiceTags.map(complexFilterServiceTag => (
|
|
249
|
+
externalResourceName(RESOURCE_CLASSES.dynamoDbTable, "FilterData", complexFilterServiceTag)
|
|
250
|
+
)
|
|
251
|
+
)
|
|
252
|
+
)
|
|
253
|
+
)
|
|
254
|
+
return {
|
|
255
|
+
functionName,
|
|
256
|
+
additionalResourcePermission
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
async function externalLambdaIamRoleDataFindData(_izContext, allObjSchemas) {
|
|
261
|
+
let functionName = upperCase(FUNCTION_NAME.findData) + upperCase(HANDLER.hdrSqs);
|
|
262
|
+
let additionalResourcePermission = [];
|
|
263
|
+
let graphServiceNames = []
|
|
264
|
+
for (const objectSchema of allObjSchemas) {
|
|
265
|
+
for (const storgaeResource of Object.values(objectSchema.storageResources)) {
|
|
266
|
+
if (storgaeResource.storageType === STORAGE_TYPES.graph) {
|
|
267
|
+
let getGraphServiceName = await getGraphServiceNameFromGraphServerTagWithCache(_izContext, storgaeResource.graphServerTag)
|
|
268
|
+
if (!graphServiceNames.includes(getGraphServiceName)) {
|
|
269
|
+
graphServiceNames.push(getGraphServiceName)
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
192
274
|
|
|
193
275
|
|
|
276
|
+
additionalResourcePermission.push(
|
|
277
|
+
createIamRole(
|
|
278
|
+
{
|
|
279
|
+
[RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction]
|
|
280
|
+
},
|
|
281
|
+
graphServiceNames.map(graphServiceName => (
|
|
282
|
+
externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeV2HdrInv", graphServiceName)
|
|
283
|
+
)
|
|
284
|
+
)
|
|
285
|
+
)
|
|
286
|
+
)
|
|
287
|
+
return {
|
|
288
|
+
functionName,
|
|
289
|
+
additionalResourcePermission
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
async function externalLambdaIamRoleDataProcessLogical(_izContext, allObjectSchemas) {
|
|
295
|
+
let functionName = upperCase(FUNCTION_NAME.processLogical) + upperCase(HANDLER.hdrSqs);
|
|
296
|
+
let additionalResourcePermission = [];
|
|
297
|
+
let graphServiceNames = await getGraphServiceNameFromObjectSchema(_izContext, allObjectSchemas)
|
|
298
|
+
// console.log("graphServiceNameFromProcessLogical::", graphServiceNames)
|
|
299
|
+
additionalResourcePermission.push(
|
|
300
|
+
createIamRole(
|
|
301
|
+
{
|
|
302
|
+
[RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction]
|
|
303
|
+
},
|
|
304
|
+
graphServiceNames.map(graphServiceName => (
|
|
305
|
+
externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeV2HdrInv", graphServiceName)
|
|
306
|
+
))
|
|
307
|
+
)
|
|
308
|
+
)
|
|
309
|
+
return {
|
|
310
|
+
functionName,
|
|
311
|
+
additionalResourcePermission
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
194
315
|
module.exports = createExternalLambdaRole;
|
|
@@ -31,27 +31,28 @@ module.exports.generatedLambdaRole = async () => {
|
|
|
31
31
|
{
|
|
32
32
|
functionName: "<%- data.functionName %>",
|
|
33
33
|
statement: [
|
|
34
|
+
<%_ data.additionalResourcePermission.forEach((resourcePermission, resourceIdx) => { _%>
|
|
34
35
|
{
|
|
35
|
-
"Sid": "<%- data.functionName %>Test<%-
|
|
36
|
-
"Effect":
|
|
37
|
-
"<%- resourcePermission.effect %>",
|
|
36
|
+
"Sid": "<%- data.functionName %>Test<%- resourceIdx %>",
|
|
37
|
+
"Effect": "<%- resourcePermission.effect %>",
|
|
38
38
|
"Action":
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"Resource":
|
|
39
|
+
[
|
|
40
|
+
<%_ Object.keys(resourcePermission.action).forEach(resourcePerAction => { _%>
|
|
41
|
+
<%_ resourcePermission.action[resourcePerAction].forEach(permission => { _%>
|
|
42
|
+
"<%- resourcePerAction %>:<%- permission %>",
|
|
43
|
+
],
|
|
44
|
+
"Resource":
|
|
45
45
|
<%_ resourcePermission.resource.forEach(resource => { _%>
|
|
46
|
-
|
|
46
|
+
[
|
|
47
|
+
`<%- resource _%>`,
|
|
48
|
+
],
|
|
47
49
|
<%_ }) _%>
|
|
48
|
-
]
|
|
49
50
|
<%_ }) _%>
|
|
50
51
|
<%_ }) _%>
|
|
51
|
-
<%_ }
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
}<% if(resourceIdx < data.additionalResourcePermission.length-1) {_%>, <%_} %>
|
|
53
|
+
<%_ }) _%>
|
|
54
|
+
]
|
|
55
|
+
}, <%_ }) %>
|
|
55
56
|
]
|
|
56
57
|
return externalLambdaRole
|
|
57
58
|
}
|
|
@@ -22,7 +22,7 @@ const fs = require('fs');
|
|
|
22
22
|
const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
|
|
23
23
|
const { getGraphServiceNameFromGraphServerTagWithCache, getServiceNameWithCache } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig')
|
|
24
24
|
const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../MainLibs/src/Utils")
|
|
25
|
-
const { DEFAULT_HANDLER_PER_ACTION, createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SOURCE_PATH, externalResourceName, getGraphServiceNameFromAllRelSchema, FUNCTION_NAME, SAVE_FILE_NAME } = require("../../libs/Consts");
|
|
25
|
+
const { DEFAULT_HANDLER_PER_ACTION, createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SOURCE_PATH, externalResourceName, getGraphServiceNameFromAllRelSchema, FUNCTION_NAME, SAVE_FILE_NAME, getGraphServiceNameFromObjectSchema } = require("../../libs/Consts");
|
|
26
26
|
const {
|
|
27
27
|
TOPIC_NAME_GRAPH_HANDLER,
|
|
28
28
|
TOPIC_NAME_GENERATE_CODE
|
|
@@ -30,14 +30,21 @@ const {
|
|
|
30
30
|
const templatePath = path.join(__dirname, "./template.ejs");
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
const createExternalSnsSubscriptions = async (_izContext, allRelSchemas, srcPath) => {
|
|
33
|
+
const createExternalSnsSubscriptions = async (_izContext, allRelSchemas, allObjSchemas, srcPath) => {
|
|
34
34
|
const snsServiceConfigArray = [];
|
|
35
|
+
|
|
35
36
|
const snsServiceConfigUpdateRelationshipComplete = await snsSubScriptionUpdateRelationshipComplete(_izContext, allRelSchemas)
|
|
36
37
|
snsServiceConfigUpdateRelationshipComplete && snsServiceConfigArray.push(snsServiceConfigUpdateRelationshipComplete)
|
|
37
38
|
|
|
38
39
|
const snsServiceConfigCreateRelationshipComplete = await snsSubscriptionCreateRelationshipComplete(_izContext, allRelSchemas)
|
|
39
40
|
snsServiceConfigCreateRelationshipComplete && snsServiceConfigArray.push(snsServiceConfigCreateRelationshipComplete)
|
|
40
41
|
|
|
42
|
+
const snsServiceConfigUpdateNodeComplete = await snsSubscriptionOutUpdateNodeComplete(_izContext, allObjSchemas)
|
|
43
|
+
snsServiceConfigUpdateNodeComplete && snsServiceConfigArray.push(snsServiceConfigUpdateNodeComplete)
|
|
44
|
+
|
|
45
|
+
const snsServiceConfigCreateNodeComplete = await snsSubscriptionCreateNodeComplete(_izContext, allObjSchemas)
|
|
46
|
+
snsServiceConfigCreateNodeComplete && snsServiceConfigArray.push(snsServiceConfigCreateNodeComplete);
|
|
47
|
+
|
|
41
48
|
return {
|
|
42
49
|
templatePath: templatePath,
|
|
43
50
|
templateData: { datas: snsServiceConfigArray },
|
|
@@ -45,7 +52,7 @@ const createExternalSnsSubscriptions = async (_izContext, allRelSchemas, srcPath
|
|
|
45
52
|
savePath: path.join(srcPath, SOURCE_PATH.externalService),
|
|
46
53
|
saveFileName: SAVE_FILE_NAME.snsSubscription,
|
|
47
54
|
fileExtension: ".js",
|
|
48
|
-
isAppend:
|
|
55
|
+
isAppend: true
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
}
|
|
@@ -64,16 +71,38 @@ async function snsSubScriptionUpdateRelationshipComplete(_izContext, allRelSchem
|
|
|
64
71
|
|
|
65
72
|
// create Relationship
|
|
66
73
|
async function snsSubscriptionCreateRelationshipComplete(_izContext, allRelSchemas) {
|
|
67
|
-
let
|
|
74
|
+
let serviceNames = await getGraphServiceNameFromAllRelSchema(_izContext, allRelSchemas)
|
|
68
75
|
|
|
69
76
|
return {
|
|
70
|
-
serviceNames:
|
|
77
|
+
serviceNames: serviceNames,
|
|
71
78
|
topicName: TOPIC_NAME_GRAPH_HANDLER.outCreateRel,
|
|
72
79
|
sqsEndpoint: TOPIC_NAME_GENERATE_CODE.createRelComplete
|
|
73
80
|
}
|
|
74
81
|
}
|
|
75
|
-
// not done yet wait for comfirmation
|
|
76
82
|
|
|
83
|
+
// topic not create yet will return error when initialSetup
|
|
84
|
+
// create topic for OutUpdateNodeComplete
|
|
85
|
+
async function snsSubscriptionOutUpdateNodeComplete(_izContext, allObjSchemas) {
|
|
86
|
+
let serviceNames = await getGraphServiceNameFromObjectSchema(_izContext, allObjSchemas)
|
|
87
|
+
|
|
88
|
+
return {
|
|
89
|
+
serviceNames: serviceNames,
|
|
90
|
+
topicName: TOPIC_NAME_GRAPH_HANDLER.outUpdateNode,
|
|
91
|
+
sqsEndpoint: TOPIC_NAME_GENERATE_CODE.updateNodeComplete
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async function snsSubscriptionCreateNodeComplete(_izContext, allObjectSchemas) {
|
|
96
|
+
let serviceNames = await getGraphServiceNameFromObjectSchema(_izContext, allObjectSchemas)
|
|
97
|
+
|
|
98
|
+
return {
|
|
99
|
+
serviceNames: serviceNames,
|
|
100
|
+
topicName: TOPIC_NAME_GRAPH_HANDLER.outCreateNode,
|
|
101
|
+
sqsEndpoint: TOPIC_NAME_GENERATE_CODE.createNodeComplete
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// not done yet wait for comfirmation
|
|
77
106
|
|
|
78
107
|
|
|
79
108
|
module.exports = createExternalSnsSubscriptions;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
module.exports.generatedSnsTopicSubscription = [ <% datas.forEach(data => { -%>
|
|
2
|
-
<% data.serviceNames.forEach(serviceName => {
|
|
2
|
+
<% data.serviceNames.forEach(serviceName => { -%>
|
|
3
3
|
{
|
|
4
4
|
serviceName: "<%- serviceName %>",
|
|
5
5
|
topicName: "<%- data.topicName %>",
|
|
6
6
|
sqsEndpoint: "<%- data.sqsEndpoint %>"
|
|
7
|
-
|
|
7
|
+
},
|
|
8
8
|
<% }) _%>
|
|
9
|
-
<% }) _%>
|
|
10
|
-
]
|
|
9
|
+
<% }) _%>]
|
|
@@ -36,11 +36,17 @@ const RESOURCE_CLASSES = {
|
|
|
36
36
|
sqs: 'sqs',
|
|
37
37
|
s3: 's3',
|
|
38
38
|
dynamoDbTable: 'dynamodb',
|
|
39
|
+
dynamoDbAcrossService: 'dynamodb',
|
|
39
40
|
sns: "SNS",
|
|
40
41
|
lambda: "lambda"
|
|
41
42
|
};
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* @param {string} resourceClass
|
|
47
|
+
* @param {string} resourceName
|
|
48
|
+
* @returns {string}
|
|
49
|
+
*/
|
|
44
50
|
function resourceNames(resourceClass, resourceName) {
|
|
45
51
|
return {
|
|
46
52
|
[RESOURCE_CLASSES.sqs]: "arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}" + resourceName,
|
|
@@ -51,7 +57,13 @@ function resourceNames(resourceClass, resourceName) {
|
|
|
51
57
|
}[resourceClass];
|
|
52
58
|
}
|
|
53
59
|
|
|
54
|
-
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
* @param {string} action
|
|
63
|
+
* @param {string} resource
|
|
64
|
+
* @param {string} effect - optional default Allow
|
|
65
|
+
* @returns {{ effect, action, resource}}
|
|
66
|
+
*/
|
|
55
67
|
function createIamRole(action, resource = [], effect = "Allow") {
|
|
56
68
|
for (const resourceAction in action) {
|
|
57
69
|
if (typeof (action[resourceAction]) === 'string') {
|
|
@@ -75,13 +87,17 @@ function createIamRole(action, resource = [], effect = "Allow") {
|
|
|
75
87
|
const SOURCE_PATH = {
|
|
76
88
|
appYaml: `../sls_yaml/generatedCode/source/`,
|
|
77
89
|
resourceYaml: `../../resource/sls_yaml/generatedCode/source/`,
|
|
78
|
-
lambdaPerObjectTypePath: `/generatedCode/lambdaPerObjectType/source/`, // test
|
|
79
|
-
lamdaPerCombindActionPath: `/generatedCode/lamdaPerCombindAction/source/`, // test
|
|
80
90
|
externalService: '../initial_setup/generatedCode/source/',
|
|
81
91
|
lambdaPerAction: '../src/generatedCode/ObjectTypePerActionEndpoint/source/',
|
|
82
92
|
relationshipPerAction: '../src/generatedCode/RelationshipPerAction/source/',
|
|
93
|
+
findData: '../src/generatedCode/FindData/source/',
|
|
94
|
+
translateIdsRequestFile: '../src/generatedCode/TranslateId/source/',
|
|
95
|
+
processLogical: "../src/generatedCode/ProcessLogical/source/",
|
|
83
96
|
resourceLocationPerAction: 'src/generatedCode/ObjectTypePerActionEndpoint/source/',
|
|
97
|
+
resourceLocationFindData: 'src/generatedCode/FindData/source',
|
|
84
98
|
resourceLocationRelationshipPerAction: 'src/generatedCode/RelationshipPerAction/source/',
|
|
99
|
+
resourceLocationTranslateId: 'src/generatedCode/TranslateId/source/',
|
|
100
|
+
resourceLocationProcessLogical: "src/generatedCode/ProcessLogical/source/"
|
|
85
101
|
};
|
|
86
102
|
|
|
87
103
|
|
|
@@ -113,16 +129,35 @@ const SQS_RESOURCE = {
|
|
|
113
129
|
getQueueUrl: "GetQueueUrl"
|
|
114
130
|
}
|
|
115
131
|
|
|
116
|
-
|
|
132
|
+
const SNS_RESOURCE = {
|
|
133
|
+
publish: "Publish",
|
|
134
|
+
subscription: "Subscription"
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const DYNAMO_RESOURCE = {
|
|
138
|
+
putItem: "PutItem",
|
|
139
|
+
getItem: "GetItem",
|
|
140
|
+
query: "Query",
|
|
141
|
+
updateItem: "UpdateItem",
|
|
142
|
+
deleteItem: "DeleteItem"
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const LAMBDA_RESOURCE = {
|
|
146
|
+
invokeFunction: "InvokeFunction"
|
|
147
|
+
}
|
|
148
|
+
function externalResourceName(resourceClass, resourceName, serviceTag) {
|
|
117
149
|
return {
|
|
118
|
-
[RESOURCE_CLASSES.dynamoDbTable]: "arn:aws:dynamodb:${process.env.iz_region}:${process.env.iz_accountId}:table/${await dynamoSharedLib.tableName(_izContext, " + `"${
|
|
119
|
-
[RESOURCE_CLASSES.
|
|
150
|
+
[RESOURCE_CLASSES.dynamoDbTable]: "arn:aws:dynamodb:${process.env.iz_region}:${process.env.iz_accountId}:table/${await dynamoSharedLib.tableName(_izContext, " + `"${resourceName}" ,"${serviceTag}")}`,
|
|
151
|
+
// [RESOURCE_CLASSES.dynamoDbAcrossService]: "arn:aws:dynamodb:${process.env.iz_region}:${process.env.iz_accountId}:table/*/" + `${resourceName}`,
|
|
152
|
+
[RESOURCE_CLASSES.dynamoDbAcrossService]: "arn:aws:dynamodb:${process.env.iz_region}:${process.env.iz_accountId}:table/*" + `${resourceName}`,
|
|
153
|
+
[RESOURCE_CLASSES.lambda]: "arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${await lambdaSharedLib.lambdaFunctionName(_izContext, " + `"${resourceName}" ,"${serviceTag}")}`,
|
|
120
154
|
}[resourceClass]
|
|
121
155
|
}
|
|
122
156
|
|
|
123
|
-
function externalResourceSns(
|
|
124
|
-
return "arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${await snsSharedLib.snsTopicName(_izContext, " + `"${
|
|
157
|
+
function externalResourceSns(resourceName, serviceTag) {
|
|
158
|
+
return "arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${await snsSharedLib.snsTopicName(_izContext, " + `"${resourceName}", "${serviceTag}")}`
|
|
125
159
|
}
|
|
160
|
+
|
|
126
161
|
const SAVE_FILE_NAME = {
|
|
127
162
|
dynamoDbYaml: "generated-dynamoDB-table",
|
|
128
163
|
snsInSqsYaml: "generated-sns-in-sqs",
|
|
@@ -131,13 +166,24 @@ const SAVE_FILE_NAME = {
|
|
|
131
166
|
functionPerActionYaml: "per-action-function",
|
|
132
167
|
externalLambdaRole: "generatedLambdaRoleServiceConfig",
|
|
133
168
|
snsSubscription: "generatedSnsServiceConfig",
|
|
169
|
+
translateId: "TranslateIdsRequest",
|
|
170
|
+
findData: "findData",
|
|
171
|
+
processLogicalYaml: "processLogical"
|
|
134
172
|
}
|
|
135
173
|
|
|
136
174
|
const FUNCTION_NAME = {
|
|
137
175
|
updateRel: "updateRelationship",
|
|
138
176
|
createRel: "createRelationship",
|
|
139
177
|
updateRelComplete: "updateRelationshipComplete",
|
|
140
|
-
createRelComplete: "createRelationshipComplete"
|
|
178
|
+
createRelComplete: "createRelationshipComplete",
|
|
179
|
+
translateId: "translateIdsRequest",
|
|
180
|
+
translateIdsProcess: "processTranslateIds",
|
|
181
|
+
outTranslateIds: "processTranslateIdsComplete",
|
|
182
|
+
findData: "findData",
|
|
183
|
+
processLogical: "processLogical",
|
|
184
|
+
updateNodeComplete: "updateNodeComplete",
|
|
185
|
+
createNodeComplete: "createNodeComplete",
|
|
186
|
+
paginateProcessLogical: "paginateProcessLogical"
|
|
141
187
|
}
|
|
142
188
|
|
|
143
189
|
const getGraphServiceNameFromAllRelSchema = async (_izContext, allRelSchemas) => {
|
|
@@ -157,6 +203,65 @@ const getGraphServiceNameFromAllRelSchema = async (_izContext, allRelSchemas) =>
|
|
|
157
203
|
return graphServiceName
|
|
158
204
|
}
|
|
159
205
|
|
|
206
|
+
const TRANSLATEIDS_HANDLER = {
|
|
207
|
+
sqs: "HdrSqs",
|
|
208
|
+
dsq: "HdrDsq"
|
|
209
|
+
}
|
|
210
|
+
function defaultIamRolePerAction() {
|
|
211
|
+
|
|
212
|
+
let defaultIamRole = [];
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
defaultIamRole.push(
|
|
216
|
+
createIamRole(
|
|
217
|
+
{
|
|
218
|
+
[RESOURCE_CLASSES.s3]: ["GetObject", "GetObjectVersion"],
|
|
219
|
+
},
|
|
220
|
+
[
|
|
221
|
+
resourceNames(RESOURCE_CLASSES.s3, "object-schema/perServiceSchemas/*"),
|
|
222
|
+
resourceNames(RESOURCE_CLASSES.s3, "object-schema/serviceConfig/ServiceNameConfig.json"),
|
|
223
|
+
resourceNames(RESOURCE_CLASSES.s3, "object-schema/serviceConfig/GraphServerTags.json"),
|
|
224
|
+
]
|
|
225
|
+
)
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
defaultIamRole.push(
|
|
229
|
+
createIamRole(
|
|
230
|
+
{ [RESOURCE_CLASSES.s3]: ["ListBucket"] },
|
|
231
|
+
[
|
|
232
|
+
resourceNames(RESOURCE_CLASSES.s3, "object-schema"),
|
|
233
|
+
]
|
|
234
|
+
)
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
return defaultIamRole
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
function getComplexFilterServiceTag(allObjectSchemas) {
|
|
241
|
+
const complexFilterServiceTagSet = new Set();
|
|
242
|
+
for (let objectSchema of allObjectSchemas) {
|
|
243
|
+
complexFilterServiceTagSet.add(objectSchema.complexFilterServiceTag)
|
|
244
|
+
}
|
|
245
|
+
let complexFilterServiceTags = [...complexFilterServiceTagSet];
|
|
246
|
+
return complexFilterServiceTags
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
async function getGraphServiceNameFromObjectSchema(_izContext, allObjSchemas) {
|
|
250
|
+
const graphServiceName = new Set();
|
|
251
|
+
for (const objectSchema of allObjSchemas) {
|
|
252
|
+
for (let storageResource of Object.values(objectSchema.storageResources)) {
|
|
253
|
+
if (storageResource.storageType === STORAGE_TYPES.graph) {
|
|
254
|
+
let getGraphServiceName = await getGraphServiceNameFromGraphServerTagWithCache(_izContext, storageResource.graphServerTag)
|
|
255
|
+
graphServiceName.add(getGraphServiceName)
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
let graphServiceNames = [...graphServiceName]
|
|
260
|
+
console.log("graphServiceName", graphServiceNames)
|
|
261
|
+
return graphServiceNames
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
|
|
160
265
|
module.exports = {
|
|
161
266
|
ACTIONS,
|
|
162
267
|
DEFAULT_HANDLER_PER_ACTION,
|
|
@@ -166,10 +271,16 @@ module.exports = {
|
|
|
166
271
|
SOURCE_PATH,
|
|
167
272
|
DEFAULT_LAMBDA_ROLE_PER_ACTION,
|
|
168
273
|
SQS_RESOURCE,
|
|
274
|
+
SNS_RESOURCE,
|
|
275
|
+
DYNAMO_RESOURCE,
|
|
276
|
+
LAMBDA_RESOURCE,
|
|
169
277
|
HANDLER,
|
|
170
278
|
externalResourceName,
|
|
171
279
|
externalResourceSns,
|
|
172
280
|
SAVE_FILE_NAME,
|
|
173
281
|
FUNCTION_NAME,
|
|
174
|
-
getGraphServiceNameFromAllRelSchema
|
|
282
|
+
getGraphServiceNameFromAllRelSchema,
|
|
283
|
+
defaultIamRolePerAction,
|
|
284
|
+
getComplexFilterServiceTag,
|
|
285
|
+
getGraphServiceNameFromObjectSchema
|
|
175
286
|
}
|