@izara_project/izara-market-library-service-schemas 1.0.37 → 1.0.38

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.
Files changed (107) hide show
  1. package/package.json +1 -1
  2. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +35 -5
  3. package/src/MainLibs/src/Consts.js +5 -2
  4. package/src/MainLibs/src/GenerateCodeUtils.js +2 -0
  5. package/src/MainLibs/src/Utils.js +12 -0
  6. package/src/reStructure/GenerateCode.js +2 -2
  7. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/create/template.ejs +36 -11
  8. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/delete/template.ejs +24 -1
  9. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/get/template.ejs +26 -0
  10. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/update/template.ejs +22 -0
  11. package/src/reStructure/TemplateData/EndpointPerService/yaml/data.js +37 -7
  12. package/src/reStructure/TemplateData/findData/handler/template.ejs +2 -2
  13. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/mainFunction/template.ejs +2 -0
  14. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/mainFunction/template.ejs +5 -1
  15. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/sns-sqs/data.js +1 -1
  16. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/sqs/data.js +3 -3
  17. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/sqs/template.ejs +1 -1
  18. package/src/reStructure/TemplateData/flowSchema/components/upload/relate/libs/template.ejs +1 -1
  19. package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/functionYaml/data.js +1 -1
  20. package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/handler/data.js +1 -1
  21. package/src/reStructure/TemplateData/flowSchema/externalTopic/functionYaml/data.js +127 -0
  22. package/src/reStructure/TemplateData/flowSchema/externalTopic/handler/data.js +121 -0
  23. package/src/reStructure/TemplateData/flowSchema/externalTopic/{sqs/handler → handler}/template.ejs +16 -61
  24. package/src/reStructure/TemplateData/flowSchema/externalTopic/mainFunction/data.js +74 -0
  25. package/src/reStructure/TemplateData/flowSchema/externalTopic/mainFunction/template.ejs +131 -0
  26. package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-in-sqs/data.js +61 -34
  27. package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-in-sqs/template.ejs +1 -1
  28. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/functionYaml/data.js +3 -7
  29. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/handler/data.js +2 -5
  30. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/mainFunction/data.js +13 -4
  31. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/mainFunction/template.ejs +15 -23
  32. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/functionYaml/data.js +2 -4
  33. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/mainFunction/data.js +2 -5
  34. package/src/reStructure/TemplateData/flowSchema/{externalTopic/sqs → flowSchemaOwnTopic/flowStep}/functionYaml/data.js +43 -38
  35. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/flowStep/functionYaml/template.ejs +20 -0
  36. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/flowStep/handler/data.js +80 -0
  37. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/flowStep/handler/template.ejs +85 -0
  38. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/flowStep/mainFunction/data.js +92 -0
  39. package/src/reStructure/TemplateData/flowSchema/{externalTopic/websocket → flowSchemaOwnTopic/flowStep}/mainFunction/template.ejs +11 -13
  40. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/sns-in/data.js +46 -37
  41. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/sns-out/data.js +14 -19
  42. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/functionYaml/data.js +5 -21
  43. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/webSocketComplete/functionYaml/template.ejs +20 -0
  44. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/handler/data.js +2 -2
  45. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/mainFunction/data.js +2 -2
  46. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/mainFunction/template.ejs +24 -10
  47. package/src/reStructure/TemplateData/flowSchema/generateTemplateData.js +23 -25
  48. package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/handler/template.ejs +1 -1
  49. package/src/reStructure/TemplateData/flowSchema/register/complete/mainFunction/template.ejs +172 -0
  50. package/src/reStructure/TemplateData/flowSchema/register/wbs/mainFunction/template.ejs +165 -0
  51. package/src/reStructure/TemplateData/flowSchema/templateBystatusType/storedCacheTemplate.ejs +38 -0
  52. package/src/reStructure/TemplateData/flowSchema/templateBystatusType/triggerCacheTemplate.ejs +39 -0
  53. package/src/reStructure/TemplateData/perActionComplete/get/mainFunction/template.ejs +3 -0
  54. package/src/reStructure/TemplateData/perActionComplete/update/mainFunction/template.ejs +3 -0
  55. package/src/reStructure/TemplateData/propertyValueSchema/relationshipPropertyValueSchema/data.js +2 -7
  56. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/api/data.js +22 -3
  57. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/dsq/data.js +14 -9
  58. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/inv/data.js +26 -6
  59. package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/sqs/data.js +11 -7
  60. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/functionYaml/data.js +17 -7
  61. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/api/data.js +23 -4
  62. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/dsq/data.js +14 -9
  63. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/inv/data.js +26 -6
  64. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/sqs/data.js +10 -7
  65. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/functionYaml/data.js +11 -7
  66. package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/api/data.js +23 -4
  67. package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/dsq/data.js +14 -9
  68. package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/inv/data.js +26 -7
  69. package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/sqs/data.js +10 -7
  70. package/src/reStructure/TemplateData/relationshipPerAction/get/complete/functionYaml/data.js +12 -7
  71. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/api/data.js +22 -3
  72. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/dsq/data.js +14 -6
  73. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/inv/data.js +20 -3
  74. package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/sqs/data.js +9 -3
  75. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/functionYaml/data.js +12 -6
  76. package/src/reStructure/TemplateData/resourceYaml/dynamodb/mainResourcePerObjectSchemaData.js +6 -2
  77. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/complete/mainFunction/template.ejs +0 -184
  78. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/storedCacheTemplate.ejs +0 -11
  79. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/wbs/mainFunction/template.ejs +0 -210
  80. package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-out/data.js +0 -77
  81. package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-out/template.ejs +0 -8
  82. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/functionYaml/template.ejs +0 -17
  83. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/handler/data.js +0 -64
  84. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/mainFunction/data.js +0 -61
  85. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/mainFunction/template.ejs +0 -74
  86. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/functionYaml/data.js +0 -110
  87. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/functionYaml/template.ejs +0 -18
  88. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/handler/data.js +0 -57
  89. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/handler/template.ejs +0 -85
  90. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/mainFunction/data.js +0 -67
  91. /package/src/reStructure/TemplateData/flowSchema/{flowSchemaOwnTopic/FlowSchemaCompleteComponent → externalTopic}/functionYaml/template.ejs +0 -0
  92. /package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/handler/template.ejs +0 -0
  93. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/functionYaml/data.js +0 -0
  94. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/functionYaml/template.ejs +0 -0
  95. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/handler/data.js +0 -0
  96. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/mainFunction/data.js +0 -0
  97. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/dynamoDB/register.js +0 -0
  98. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/sns-in/data.js +0 -0
  99. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/sns-in/template.ejs +0 -0
  100. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/subscriptionOutAll/data.js +0 -0
  101. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/subscriptionOutAll/template.ejs +0 -0
  102. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/functionYaml/data.js +0 -0
  103. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/functionYaml/template.ejs +0 -0
  104. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/handler/data.js +0 -0
  105. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/handler/template.ejs +0 -0
  106. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/mainFunction/data.js +0 -0
  107. /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → templateBystatusType}/statusFieldTemplate.ejs +0 -0
@@ -66,9 +66,6 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
66
66
  let additionalResourcePermission = defaultIamRolePerAction();
67
67
 
68
68
  additionalResourcePermission.push(
69
- // createIamRole(
70
- // { [RESOURCE_CLASSES.lambda]: ["InvokeFunction"] },
71
- // [resourceNames(RESOURCE_CLASSES.lambda, "*GetNodeHdrInv")]),
72
69
  createIamRole(
73
70
  {
74
71
  [RESOURCE_CLASSES.sqs]: [
@@ -78,17 +75,23 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
78
75
  SQS_RESOURCE.sendMessage,
79
76
  SQS_RESOURCE.getQueueUrl,
80
77
  SQS_RESOURCE.deleteMessageBatch
81
- ], [RESOURCE_CLASSES.sns]:
82
- [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
78
+ ],
83
79
  },
84
80
  [
85
81
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
86
82
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
83
+ ]
84
+ ),
85
+ createIamRole(
86
+ {
87
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
88
+ },
89
+ [
90
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.deleteRelComplete) + "_Out"),
87
91
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
88
92
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
89
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.createRelComplete) + "_Out")
90
93
  ]
91
- ),
94
+ )
92
95
  )
93
96
  additionalResourcePermission.push(awaitingMultipleStepsRole())
94
97
 
@@ -71,18 +71,22 @@ function createParamForCreateSource(srcPath) {
71
71
  SQS_RESOURCE.sendMessage,
72
72
  SQS_RESOURCE.deleteMessageBatch,
73
73
  SQS_RESOURCE.getQueueUrl,
74
- ],
75
- [RESOURCE_CLASSES.sns]:
76
- [
77
- SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
78
- ]
74
+ ]
79
75
  },
80
76
  [
81
77
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName)),
82
78
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + "DLQ"),
83
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
84
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
85
79
  ],
80
+ ),
81
+ createIamRole(
82
+ {
83
+ [RESOURCE_CLASSES.sns]:
84
+ [
85
+ SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
86
+ ]
87
+ },
88
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
89
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
86
90
  ))
87
91
  additionalResourcePermission.push(awaitingMultipleStepsRole())
88
92
 
@@ -36,8 +36,9 @@ const {
36
36
  SOURCE_GENERATE_IAM_ROLE,
37
37
  checkDynamoTypeRelationship,
38
38
  createDynamoDbComponentByLinks,
39
- DYNAMO_RESOURCE
40
- } = require("../../../../../../../MainLibs").consts;
39
+ DYNAMO_RESOURCE,
40
+ SQS_RESOURCE
41
+ } = require("../../../../../../../MainLibs/src/Consts.js");
41
42
 
42
43
  const templatePath = path.join(__dirname, "./template.ejs")
43
44
 
@@ -70,10 +71,28 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
70
71
  additionalResourcePermission.push(
71
72
  createIamRole(
72
73
  {
73
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
74
+ [RESOURCE_CLASSES.sqs]: [
75
+ SQS_RESOURCE.deleteMessage,
76
+ SQS_RESOURCE.getQueueAttributes,
77
+ SQS_RESOURCE.receiveMessage,
78
+ SQS_RESOURCE.sendMessage,
79
+ SQS_RESOURCE.getQueueUrl,
80
+ SQS_RESOURCE.deleteMessageBatch
81
+ ],
74
82
  },
75
83
  [
76
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out")
84
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
85
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
86
+ ]
87
+ ),
88
+ createIamRole(
89
+ {
90
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
91
+ },
92
+ [
93
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
94
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
95
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
77
96
  ]
78
97
  )
79
98
  )
@@ -67,9 +67,6 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
67
67
  let additionalResourcePermission = defaultIamRolePerAction();
68
68
 
69
69
  additionalResourcePermission.push(
70
- // createIamRole(
71
- // { [RESOURCE_CLASSES.lambda]: ["InvokeFunction"] },
72
- // [resourceNames(RESOURCE_CLASSES.lambda, "*GetNodeHdrInv")]),
73
70
  createIamRole(
74
71
  {
75
72
  [RESOURCE_CLASSES.sqs]: [
@@ -77,15 +74,23 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
77
74
  SQS_RESOURCE.getQueueAttributes,
78
75
  SQS_RESOURCE.receiveMessage,
79
76
  SQS_RESOURCE.sendMessage,
80
- SQS_RESOURCE.deleteMessageBatch,
81
- SQS_RESOURCE.getQueueUrl
77
+ SQS_RESOURCE.getQueueUrl,
78
+ SQS_RESOURCE.deleteMessageBatch
82
79
  ],
83
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
84
80
  },
85
81
  [
86
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrDsq)),
87
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrDsq) + "DLQ"),
88
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out")
82
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
83
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
84
+ ]
85
+ ),
86
+ createIamRole(
87
+ {
88
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
89
+ },
90
+ [
91
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
92
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
93
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
89
94
  ]
90
95
  )
91
96
  )
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18
18
  'use strict';
19
19
  const path = require('path');
20
20
 
21
- const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
21
+ const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-library-service-schemas/src/Consts');
22
22
 
23
23
  const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../../../../MainLibs/index.js").utils;
24
24
  const {
@@ -36,7 +36,8 @@ const {
36
36
  SOURCE_GENERATE_IAM_ROLE,
37
37
  checkDynamoTypeRelationship,
38
38
  createDynamoDbComponentByLinks,
39
- DYNAMO_RESOURCE
39
+ DYNAMO_RESOURCE,
40
+ SQS_RESOURCE
40
41
  } = require("../../../../../../../MainLibs/index.js").consts;
41
42
 
42
43
  const templatePath = path.join(__dirname, './template.ejs')
@@ -66,13 +67,31 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
66
67
  let additionalResourcePermission = defaultIamRolePerAction();
67
68
 
68
69
  additionalResourcePermission.push(awaitingMultipleStepsRole())
69
-
70
70
  additionalResourcePermission.push(
71
- createIamRole({
72
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
73
- },
71
+ createIamRole(
72
+ {
73
+ [RESOURCE_CLASSES.sqs]: [
74
+ SQS_RESOURCE.deleteMessage,
75
+ SQS_RESOURCE.getQueueAttributes,
76
+ SQS_RESOURCE.receiveMessage,
77
+ SQS_RESOURCE.sendMessage,
78
+ SQS_RESOURCE.getQueueUrl,
79
+ SQS_RESOURCE.deleteMessageBatch
80
+ ],
81
+ },
82
+ [
83
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
84
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
85
+ ]
86
+ ),
87
+ createIamRole(
88
+ {
89
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
90
+ },
74
91
  [
75
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out")
92
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
93
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
94
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
76
95
  ]
77
96
  )
78
97
  )
@@ -66,9 +66,6 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
66
66
  let additionalResourcePermission = defaultIamRolePerAction();
67
67
 
68
68
  additionalResourcePermission.push(
69
- // createIamRole(
70
- // { [RESOURCE_CLASSES.lambda]: ["InvokeFunction"] },
71
- // [resourceNames(RESOURCE_CLASSES.lambda, "*GetNodeHdrInv")]),
72
69
  createIamRole(
73
70
  {
74
71
  [RESOURCE_CLASSES.sqs]: [
@@ -78,17 +75,23 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
78
75
  SQS_RESOURCE.sendMessage,
79
76
  SQS_RESOURCE.getQueueUrl,
80
77
  SQS_RESOURCE.deleteMessageBatch
81
- ], [RESOURCE_CLASSES.sns]:
82
- [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
78
+ ],
83
79
  },
84
80
  [
85
81
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
86
82
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
83
+ ]
84
+ ),
85
+ createIamRole(
86
+ {
87
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
88
+ },
89
+ [
90
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
87
91
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
88
92
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
89
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out")
90
93
  ]
91
- ),
94
+ )
92
95
  )
93
96
  additionalResourcePermission.push(awaitingMultipleStepsRole())
94
97
 
@@ -71,19 +71,24 @@ function createParamForCreateSource(srcPath) {
71
71
  SQS_RESOURCE.sendMessage,
72
72
  SQS_RESOURCE.deleteMessageBatch,
73
73
  SQS_RESOURCE.getQueueUrl,
74
- ],
75
- [RESOURCE_CLASSES.sns]:
76
- [
77
- SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
78
- ]
74
+ ]
79
75
  },
80
76
  [
81
77
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName)),
82
78
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + "DLQ"),
83
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
84
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
85
79
  ],
80
+ ),
81
+ createIamRole(
82
+ {
83
+ [RESOURCE_CLASSES.sns]:
84
+ [
85
+ SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
86
+ ]
87
+ },
88
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
89
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
86
90
  ))
91
+
87
92
  additionalResourcePermission.push(awaitingMultipleStepsRole())
88
93
 
89
94
  return {
@@ -73,13 +73,32 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
73
73
 
74
74
  additionalResourcePermission.push(
75
75
  createIamRole(
76
- { [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish] },
76
+ {
77
+ [RESOURCE_CLASSES.sqs]: [
78
+ SQS_RESOURCE.deleteMessage,
79
+ SQS_RESOURCE.getQueueAttributes,
80
+ SQS_RESOURCE.receiveMessage,
81
+ SQS_RESOURCE.sendMessage,
82
+ SQS_RESOURCE.getQueueUrl,
83
+ SQS_RESOURCE.deleteMessageBatch
84
+ ],
85
+ },
77
86
  [
78
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out")
87
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
88
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
89
+ ]
90
+ ),
91
+ createIamRole(
92
+ {
93
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
94
+ },
95
+ [
96
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out"),
97
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
98
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
79
99
  ]
80
100
  )
81
101
  )
82
-
83
102
  for (const relationship of allObjectRelationships) {
84
103
  let [storageType, relationshipTag, links] = checkDynamoTypeRelationship(relationship)
85
104
  if (storageType === STORAGE_TYPES.dynamoDB) {
@@ -95,15 +95,23 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
95
95
  SQS_RESOURCE.getQueueAttributes,
96
96
  SQS_RESOURCE.receiveMessage,
97
97
  SQS_RESOURCE.sendMessage,
98
- SQS_RESOURCE.deleteMessageBatch,
99
- SQS_RESOURCE.getQueueUrl
98
+ SQS_RESOURCE.getQueueUrl,
99
+ SQS_RESOURCE.deleteMessageBatch
100
100
  ],
101
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
102
101
  },
103
102
  [
104
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrDsq)),
105
- resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrDsq) + "DLQ"),
106
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out")
103
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
104
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
105
+ ]
106
+ ),
107
+ createIamRole(
108
+ {
109
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
110
+ },
111
+ [
112
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out"),
113
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
114
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
107
115
  ]
108
116
  )
109
117
  )
@@ -93,14 +93,31 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
93
93
  additionalResourcePermission.push(
94
94
  createIamRole(
95
95
  {
96
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
96
+ [RESOURCE_CLASSES.sqs]: [
97
+ SQS_RESOURCE.deleteMessage,
98
+ SQS_RESOURCE.getQueueAttributes,
99
+ SQS_RESOURCE.receiveMessage,
100
+ SQS_RESOURCE.sendMessage,
101
+ SQS_RESOURCE.getQueueUrl,
102
+ SQS_RESOURCE.deleteMessageBatch
103
+ ],
97
104
  },
98
105
  [
99
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out")
106
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
107
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
108
+ ]
109
+ ),
110
+ createIamRole(
111
+ {
112
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
113
+ },
114
+ [
115
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out"),
116
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
117
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
100
118
  ]
101
119
  )
102
120
  )
103
-
104
121
  for (const relationship of allObjectRelationships) {
105
122
  let [storageType, relationshipTag, links] = checkDynamoTypeRelationship(relationship)
106
123
  if (storageType === STORAGE_TYPES.dynamoDB) {
@@ -99,16 +99,22 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
99
99
  SQS_RESOURCE.getQueueUrl,
100
100
  SQS_RESOURCE.deleteMessageBatch
101
101
  ],
102
- [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
103
102
  },
104
103
  [
105
104
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
106
105
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
106
+ ]
107
+ ),
108
+ createIamRole(
109
+ {
110
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
111
+ },
112
+ [
113
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out"),
107
114
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
108
115
  resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
109
- resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out")
110
116
  ]
111
- ),
117
+ )
112
118
  )
113
119
 
114
120
  additionalResourcePermission.push(awaitingMultipleStepsRole())
@@ -62,7 +62,6 @@ function createParamForCreateSource(srcPath) {
62
62
  let additionalResourcePermission = defaultIamRolePerAction();
63
63
 
64
64
  additionalResourcePermission.push(
65
-
66
65
  createIamRole(
67
66
  {
68
67
  [RESOURCE_CLASSES.sqs]: [
@@ -72,19 +71,26 @@ function createParamForCreateSource(srcPath) {
72
71
  SQS_RESOURCE.sendMessage,
73
72
  SQS_RESOURCE.deleteMessageBatch,
74
73
  SQS_RESOURCE.getQueueUrl,
75
- ],
76
- [RESOURCE_CLASSES.sns]: [
77
- SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
78
74
  ]
79
75
  },
80
76
  [
81
77
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName)),
82
78
  resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + "DLQ"),
83
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
84
- resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
85
79
  ],
80
+ ),
81
+ createIamRole(
82
+ {
83
+ [RESOURCE_CLASSES.sns]:
84
+ [
85
+ SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
86
+ ]
87
+ },
88
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
89
+ resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
86
90
  ))
91
+
87
92
  additionalResourcePermission.push(awaitingMultipleStepsRole())
93
+
88
94
  return {
89
95
  templatePath: templatePath,
90
96
  templateData: {
@@ -33,7 +33,7 @@ const STORAGE_TYPES = {
33
33
  const { firstLetterUpperCase: upperCase } = require('../../../../MainLibs/src/Utils.js')
34
34
  const { SOURCE_PATH, SAVE_FILE_NAME } = require('../../../../MainLibs/index.js').consts
35
35
  const templatePath = path.join(__dirname, './template.ejs')
36
-
36
+ const { getLocalServiceTag } = require('../../../../MainLibs/src/Utils.js')
37
37
  // ---------- End Per Lambda Handler IamRole Data ----------
38
38
 
39
39
 
@@ -116,9 +116,13 @@ function dataForMainDynamoDbYamlFromObjectSchema(_izContext, objectSchema, srcPa
116
116
  // }
117
117
 
118
118
  for (let storageResource of Object.values(objectSchema.storageResources)) {
119
+ // if (storageResource.hasOwnProperty("serviceTag") && storageResource.serviceTag !== getLocalServiceTag(srcPath)) {
120
+ // continue; // if serviceTag of storageResource not own service will skip
121
+ // }
119
122
  if (storageResource.storageType === STORAGE_TYPES.dynamoDB) {
120
123
  let templateData = {
121
124
  tableName: storageResource.tableName,
125
+ resourceName: storageResource.tableName,
122
126
  attributes: []
123
127
  };
124
128
  if (storageResource.hasOwnProperty("groupByPartitionKeyField")) {
@@ -140,7 +144,7 @@ function dataForMainDynamoDbYamlFromObjectSchema(_izContext, objectSchema, srcPa
140
144
  )
141
145
  }
142
146
  }
143
- templateData.resourceName = upperCase(objectSchema.objectType)
147
+ // templateData.resourceName = upperCase(objectSchema.objectType)
144
148
  dynamoDbYamlTempleteData.push(templateData)
145
149
  }
146
150
  }
@@ -1,184 +0,0 @@
1
- /*
2
- Copyright (C) 2020 Sven Mason <http: //izara.io>
3
-
4
- This program is free software: you can redistribute it and/or modify
5
- it under the terms of the GNU Affero General Public License as
6
- published by the Free Software Foundation, either version 3 of the
7
- License, or (at your option) any later version.
8
-
9
- This program is distributed in the hope that it will be useful,
10
- but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- GNU Affero General Public License for more details.
13
-
14
- You should have received a copy of the GNU Affero General Public License
15
- along with this program. If not, see
16
- <http: //www.gnu.org/licenses />.
17
- */
18
-
19
- 'use strict';
20
-
21
- const hash = require('@izara_project/izara-shared-core').objectHash;
22
- const { getObjectSchema } = require('@izara_project/izara-core-library-service-schemas');
23
-
24
- const dynamodbSharedLib = require('@izara_project/izara-core-library-dynamodb');
25
- const snsSharedLib = require('@izara_project/izara-core-library-sns');
26
- const asyncFlowSharedLib = require('@izara_project/izara-core-library-asynchronous-flow');
27
- const callingFlowSharedLib = require('@izara_project/izara-core-library-calling-flow');
28
- const lambdaSharedLib = require('@izara_project/izara-core-library-lambda');
29
-
30
- const externalRequest = require('@izara_project/izara-core-library-external-request');
31
- const sns = externalRequest.sns
32
- const { postToConnection } = require("../../../libs/source/GenerateCodeLibs");
33
-
34
- const utils = require('@izara_project/izara-market-library-service-schemas/src/MainLibs/src/Utils')
35
- const { NoRetryError } = require('@izara_project/izara-core-library-core')
36
- const { v4: uuidv4 } = require('uuid')
37
- const coreConsts = require("@izara_project/izara-core-library-core/src/Consts");
38
- // const { TOPIC_NAME_GENERATE_CODE } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts')
39
- const { generateCodeLibs: { consts: TOPIC_NAME_GENERATE_CODE } } = require('@izara_project/izara-market-library-service-schemas')
40
-
41
- /**
42
- * description of function.
43
- * @param {Object} _izContext
44
- * @param {CorrelationIds} _izContext.correlationIds - property of _izContext
45
- * @param {Logger} _izContext.logger - property of _izContext
46
- * @param {Object} requestParams - request params
47
- * @param {Object} requestParams.identifiers - identifiers for get data
48
- * @param {Object} requestParams.additionalRequest - additionalRequest
49
- *
50
- * @returns {object} description of return value
51
- */
52
- module.exports.registerCompleteMain = async (
53
- _izContext,
54
- requestParams,
55
- callingFlowConfig = {},
56
- //(<additionalParams>)
57
- //(</additionalParams>)
58
- ) => {
59
- try {
60
- _izContext.logger.debug("WebSocketInvoke _izContext", _izContext)
61
- _izContext.logger.debug("WebSocketInvoke requestParams", requestParams)
62
- _izContext.logger.debug("WebSocketInvoke callingFlowConfig", callingFlowConfig)
63
-
64
- const connectionId = requestContext.connectionId;
65
- let correlationId = _izContext.correlationIds.get(consts.X_CORRELATION_ID);
66
-
67
- const getRegisterRecords = await dynamodbSharedLib.getItem(
68
- _izContext,
69
- await dynamodbSharedLib.tableName(_izContext, "RegisterRecords"),
70
- {
71
- identifierTask: correlationId,
72
- connectionId: connectionId,
73
- }
74
- );
75
- _izContext.logger.debug("getRegisterRecords", getRegisterRecords)
76
- if (!getRegisterRecords) {
77
- throw new NoRetryError(`connectionId not found ${connectionId}`)
78
- }
79
-
80
- const flowType = getRegisterRecords.flowType;
81
- const flowTag = flowType.split('_')[0];
82
- const getFlowSchema = await getObjectSchema.getFlowSchemaS3WithCache(_izContext, {
83
- flowTag: flowTag,
84
- serviceTag: process.env.iz_serviceTag
85
- })
86
- _izContext.logger.debug("getFlowSchema", getFlowSchema)
87
- if (!getFlowSchema) {
88
- throw new NoRetryError(`flowTag not found ${flowTag}`)
89
- }
90
-
91
- // get data from dynamoDB of objectType of flowSchema
92
- const getStoredCache = async (objectType) => {
93
- const objectSchema = await getObjectSchema.getObjSchemaS3WithCache(
94
- _izContext,
95
- {
96
- objectType: objectType,
97
- serviceTag: process.env.iz_serviceTag,
98
- })
99
-
100
- _izContext.logger.debug("==> objectSchema", objectSchema)
101
-
102
- // this returns the table name of the first storage resource with storageType "dynamoDB"
103
- const tableName = Object.values(objectSchema.storageResources).find(
104
- (storageResource) => storageResource.storageType === "dynamoDB"
105
- )?.tableName
106
- _izContext.logger.debug("==> tableName", tableName)
107
-
108
- let identifierPK = null
109
- let identifierSK = null
110
- objectSchema.identifiers.map((identifier) => {
111
- if (identifier.type === "partitionKey") {
112
- identifierPK = identifier.fieldName
113
- } else if (identifier.type === "sortKey") {
114
- identifierSK = identifier.fieldName
115
- }
116
- })
117
-
118
- _izContext.logger.debug("==> identifierPK", identifierPK)
119
- _izContext.logger.debug("==> identifierSK", identifierSK)
120
-
121
- const payloadGetStoredCache = {
122
- [identifierPK]: requestParams.identifiers[identifierPK],
123
- }
124
- if (identifierSK) {
125
- payloadGetStoredCache[identifierSK] = requestParams.identifiers[identifierSK]
126
- }
127
-
128
- _izContext.logger.debug("==> payloadGetStoredCache", payloadGetStoredCache)
129
-
130
- // const getStoredCache = await dynamodbSharedLib.getItem(
131
- // _izContext,
132
- // await dynamodbSharedLib.tableName(_izContext, tableName),
133
- // payloadGetStoredCache
134
- // )
135
-
136
- const getStoredCache = await dynamodbSharedLib.query(
137
- _izContext,
138
- await dynamodbSharedLib.tableName(_izContext, tableName),
139
- payloadGetStoredCache
140
- )
141
- _izContext.logger.debug("==> getStoredCache:::", getStoredCache)
142
- return ({
143
- data: getStoredCache.Items[0],
144
- identifierPK: identifierPK,
145
- })
146
- }
147
-
148
- switch (getFlowSchema.statusType) {
149
- case "statusField":
150
- let payload = {
151
- identifiers: requestParams.identifiers,
152
- objectType: getFlowSchema.objType.objectType
153
- }
154
- let result = await externalRequest.lambda.invokeSync(
155
- _izContext,
156
- await lambdaSharedLib.lambdaFunctionName(_izContext, "GetHdrInv", getFlowSchema.objType.serviceTag),
157
- payload
158
- )
159
- if (!result) {
160
- throw new NoRetryError(`statusField not found ${requestParams.identifiers}`)
161
- }
162
- await postToConnection({message:result}, connectionId)
163
- return result
164
- case "storedCache":
165
- // if statusType=storedCache then query storedCache > post message to client -> remove connectionId if status = error || complete
166
- const resultStoredCache = resultStoredCache(getFlowSchema.objType.objectType)
167
-
168
- if (!resultStoredCache) {
169
- throw new NoRetryError(`storedCache not found ${requestParams.identifiers}`)
170
- }
171
- await postToConnection({message:resultStoredCache }, connectionId)
172
- return resultStoredCache
173
- case "none":
174
- // if statusType=none -> post message to client ---- not remove connectionId when post message, can remove connectionId when cannot use connectionId only(user disconnect)
175
- break
176
- default:
177
- throw new NoRetryError(`statusType not found ${getFlowSchema.statusType}`)
178
- }
179
-
180
- } catch (err) {
181
- _izContext.logger.error('error WebSocketInvoke: ', err)
182
- throw (err)
183
- }
184
- }