@izara_project/izara-market-library-service-schemas 1.0.5 → 1.0.7
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 +158 -0
- package/src/TemplateManager/src/GenerateCode(Old).js +1 -1
- package/src/TemplateManager/src/GenerateCode.js +163 -42
- 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 +59 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/template.ejs +129 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/createObjectComplete_main.js +172 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/data.js +53 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/template.ejs +172 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/data.js +58 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/template.ejs +47 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/data.js +62 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/template.ejs +10 -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 +22 -3
- 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 +53 -2
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrSqs/data.js +25 -3
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/data.js +5 -8
- 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 +575 -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 +429 -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 +150 -32
- 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
|
|
81
|
+
|
|
70
82
|
|
|
71
|
-
|
|
83
|
+
// updateRelationshipComplete external lambda role
|
|
72
84
|
|
|
85
|
+
// ... another external lambda role data
|
|
73
86
|
|
|
74
|
-
|
|
87
|
+
// processTranslateId Request
|
|
88
|
+
const externalLambdaIamRoleTranslateId = await externalLambdaIamRoleDataTranslateId(_izContext, allRelSchemas, allObjSchemas)
|
|
89
|
+
externalLambdaIamRoleTranslateId && externalLambdaIamRoleArray.push(externalLambdaIamRoleTranslateId)
|
|
75
90
|
|
|
76
|
-
|
|
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))
|
|
@@ -107,29 +124,42 @@ async function externalLambdaIamRoleDataPerAction(_izContext, objectSchema, acti
|
|
|
107
124
|
let functionName = upperCase(objectType) + upperCase(action) + upperCase(handler);
|
|
108
125
|
|
|
109
126
|
if (action === ACTIONS.get) {
|
|
110
|
-
// create functionName
|
|
111
|
-
// functionNameArray.push(functionName)
|
|
112
|
-
// create additionalResourcePermission
|
|
113
127
|
additionalResourcePermission.push(
|
|
114
128
|
createIamRole(
|
|
115
|
-
{ [RESOURCE_CLASSES.lambda]: [
|
|
129
|
+
{ [RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction] },
|
|
116
130
|
graphServiceNames.map(graphServiceName =>
|
|
117
131
|
externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeV2HdrInv", graphServiceName),
|
|
118
132
|
)
|
|
119
133
|
)
|
|
120
134
|
)
|
|
121
135
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
136
|
+
} else if (action === ACTIONS.update) {
|
|
137
|
+
additionalResourcePermission.push(
|
|
138
|
+
createIamRole(
|
|
139
|
+
{
|
|
140
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
141
|
+
},
|
|
142
|
+
graphServiceNames.map(graphServiceName =>
|
|
143
|
+
externalResourceSns("InUpdateNode", graphServiceName)
|
|
144
|
+
)
|
|
145
|
+
)
|
|
146
|
+
)
|
|
127
147
|
|
|
128
|
-
|
|
148
|
+
} else if (action === ACTIONS.create) {
|
|
149
|
+
additionalResourcePermission.push(
|
|
150
|
+
createIamRole(
|
|
151
|
+
{
|
|
152
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
153
|
+
},
|
|
154
|
+
graphServiceNames.map(graphServiceName =>
|
|
155
|
+
externalResourceSns("InCreateNodeV2", graphServiceName)
|
|
156
|
+
)
|
|
157
|
+
)
|
|
158
|
+
)
|
|
159
|
+
} else if (action === ACTIONS.delete) {
|
|
129
160
|
|
|
130
161
|
} else {
|
|
131
|
-
|
|
132
|
-
// throw Error("invalid action")
|
|
162
|
+
throw new error("Invalid action")
|
|
133
163
|
}
|
|
134
164
|
|
|
135
165
|
|
|
@@ -151,7 +181,7 @@ async function externalLambdaIamRoleDataUpdateRelationshipSchema(_izContext, all
|
|
|
151
181
|
additionalResourcePermission.push(
|
|
152
182
|
createIamRole(
|
|
153
183
|
{
|
|
154
|
-
[RESOURCE_CLASSES.sns]: [
|
|
184
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
155
185
|
},
|
|
156
186
|
graphServiceNamesFromAllRelSchemas.map(graphServiceName =>
|
|
157
187
|
externalResourceSns("InUpdateRelationship", graphServiceName)
|
|
@@ -176,7 +206,7 @@ async function externalLambdaIamRoleDataCreateRelationshipSchema(_izContext, all
|
|
|
176
206
|
additionalResourcePermission.push(
|
|
177
207
|
createIamRole(
|
|
178
208
|
{
|
|
179
|
-
[RESOURCE_CLASSES.sns]: [
|
|
209
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
180
210
|
},
|
|
181
211
|
graphServiceNamesFromAllRelSchemas.map(graphServiceName =>
|
|
182
212
|
externalResourceSns("InCreateRelationshipV2", graphServiceName)
|
|
@@ -189,6 +219,94 @@ async function externalLambdaIamRoleDataCreateRelationshipSchema(_izContext, all
|
|
|
189
219
|
}
|
|
190
220
|
}
|
|
191
221
|
|
|
222
|
+
// Process TranslateIds Request
|
|
223
|
+
async function externalLambdaIamRoleDataTranslateId(_izContext, allRelSchemas, allObjSchemas) {
|
|
224
|
+
let functionName = upperCase(FUNCTION_NAME.translateIdsProcess) + upperCase(HANDLER.hdrDsq);
|
|
225
|
+
const additionalResourcePermission = [];
|
|
226
|
+
const graphServiceNamesFromAllRelSchemas = await getGraphServiceNameFromAllRelSchema(_izContext, allRelSchemas);
|
|
227
|
+
let complexFilterServiceTags = getComplexFilterServiceTag(allObjSchemas);
|
|
228
|
+
|
|
229
|
+
additionalResourcePermission.push(
|
|
230
|
+
createIamRole(
|
|
231
|
+
{
|
|
232
|
+
[RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction]
|
|
233
|
+
},
|
|
234
|
+
graphServiceNamesFromAllRelSchemas.map(graphServiceName => (
|
|
235
|
+
externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeAndRelationshipsV2HdrInv", graphServiceName)
|
|
236
|
+
)
|
|
237
|
+
)
|
|
238
|
+
)
|
|
239
|
+
)
|
|
240
|
+
additionalResourcePermission.push(
|
|
241
|
+
createIamRole(
|
|
242
|
+
{
|
|
243
|
+
[RESOURCE_CLASSES.dynamoDbTable]: [DYNAMO_RESOURCE.query]
|
|
244
|
+
},
|
|
245
|
+
complexFilterServiceTags.map(complexFilterServiceTag => (
|
|
246
|
+
externalResourceName(RESOURCE_CLASSES.dynamoDbTable, "FilterData", complexFilterServiceTag)
|
|
247
|
+
)
|
|
248
|
+
)
|
|
249
|
+
)
|
|
250
|
+
)
|
|
251
|
+
return {
|
|
252
|
+
functionName,
|
|
253
|
+
additionalResourcePermission
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
async function externalLambdaIamRoleDataFindData(_izContext, allObjSchemas) {
|
|
258
|
+
let functionName = upperCase(FUNCTION_NAME.findData) + upperCase(HANDLER.hdrSqs);
|
|
259
|
+
let additionalResourcePermission = [];
|
|
260
|
+
let graphServiceNames = []
|
|
261
|
+
for (const objectSchema of allObjSchemas) {
|
|
262
|
+
for (const storgaeResource of Object.values(objectSchema.storageResources)) {
|
|
263
|
+
if (storgaeResource.storageType === STORAGE_TYPES.graph) {
|
|
264
|
+
let getGraphServiceName = await getGraphServiceNameFromGraphServerTagWithCache(_izContext, storgaeResource.graphServerTag)
|
|
265
|
+
if (!graphServiceNames.includes(getGraphServiceName)) {
|
|
266
|
+
graphServiceNames.push(getGraphServiceName)
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
additionalResourcePermission.push(
|
|
274
|
+
createIamRole(
|
|
275
|
+
{
|
|
276
|
+
[RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction]
|
|
277
|
+
},
|
|
278
|
+
graphServiceNames.map(graphServiceName => (
|
|
279
|
+
externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeV2HdrInv", graphServiceName)
|
|
280
|
+
)
|
|
281
|
+
)
|
|
282
|
+
)
|
|
283
|
+
)
|
|
284
|
+
return {
|
|
285
|
+
functionName,
|
|
286
|
+
additionalResourcePermission
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
192
290
|
|
|
291
|
+
async function externalLambdaIamRoleDataProcessLogical(_izContext, allObjectSchemas) {
|
|
292
|
+
let functionName = upperCase(FUNCTION_NAME.processLogical) + upperCase(HANDLER.hdrSqs);
|
|
293
|
+
let additionalResourcePermission = [];
|
|
294
|
+
let graphServiceNames = await getGraphServiceNameFromObjectSchema(_izContext, allObjectSchemas)
|
|
295
|
+
// console.log("graphServiceNameFromProcessLogical::", graphServiceNames)
|
|
296
|
+
additionalResourcePermission.push(
|
|
297
|
+
createIamRole(
|
|
298
|
+
{
|
|
299
|
+
[RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction]
|
|
300
|
+
},
|
|
301
|
+
graphServiceNames.map(graphServiceName => (
|
|
302
|
+
externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeV2HdrInv", graphServiceName)
|
|
303
|
+
))
|
|
304
|
+
)
|
|
305
|
+
)
|
|
306
|
+
return {
|
|
307
|
+
functionName,
|
|
308
|
+
additionalResourcePermission
|
|
309
|
+
}
|
|
310
|
+
}
|
|
193
311
|
|
|
194
312
|
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
|
+
createObjectComplete: "createObjectComplete",
|
|
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
|
}
|