@izara_project/izara-core-generate-service-code 1.0.71 → 1.0.73

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 (67) hide show
  1. package/package.json +4 -3
  2. package/src/compile/loadSchemas.js +69 -1
  3. package/src/emit/coreFunction/emitCoreFunctionArtifacts.js +171 -44
  4. package/src/emit/coreFunction/templates/GenerateSeedDataDynamo_HdrInv.ejs +4 -1
  5. package/src/emit/coreFunction/templates/GenerateSeedDataGraphData_HdrInv.ejs +4 -1
  6. package/src/emit/coreFunction/templates/GenerateSeedDataGraphSchema_HdrInv.ejs +4 -1
  7. package/src/emit/coreFunction/templates/GenerateSeedDataGraphSchema_Main.ejs +10 -2
  8. package/src/emit/coreFunction/templates/GeneratedGraphNodeSchemas.ejs +17 -17
  9. package/src/emit/coreFunction/templates/GeneratedGraphRelSchemas.ejs +6 -6
  10. package/src/emit/coreFunction/templates/GeneratedTableConfigs.ejs +12 -12
  11. package/src/emit/coreFunction/templates/InitialSetupConfig.ejs +195 -58
  12. package/src/emit/coreFunction/templates/InitialSetupRunner.ejs +177 -0
  13. package/src/emit/coreFunction/templates/InitialSetupRunner_initialSetup.ejs +9 -0
  14. package/src/emit/coreFunction/templates/InitialSetupRunner_seedDynamo.ejs +22 -0
  15. package/src/emit/coreFunction/templates/InitialSetupRunner_seedGraph.ejs +8 -0
  16. package/src/emit/coreFunction/templates/InitialSetupRunner_seedRemove.ejs +5 -0
  17. package/src/emit/coreFunction/templates/InitialSetupRunner_uploadSchema.ejs +33 -0
  18. package/src/emit/coreFunction/templates/InitialSetup_Main.ejs +9 -11
  19. package/src/emit/coreFunction/templates/UploadSchema_HdrInv.ejs +1 -3
  20. package/src/emit/coreFunction/templates/UploadSchema_Main.ejs +1 -1
  21. package/src/emit/crud/templates/CreateEndpoint_Main.ejs +1 -1
  22. package/src/emit/crud/templates/DeleteEndpoint_Main.ejs +1 -1
  23. package/src/emit/crud/templates/FlowMain_Wbs.ejs +1 -2
  24. package/src/emit/crud/templates/GetEndpoint_Main.ejs +1 -1
  25. package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +1 -1
  26. package/src/emit/crud/templates/UpdateEndpoint_Main.ejs +1 -1
  27. package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +26 -6
  28. package/src/emit/custom/templates/FlowEndpoint_Main.ejs +2 -2
  29. package/src/emit/custom/templates/FlowStep_Main.ejs +1 -1
  30. package/src/emit/custom/templates/s3/CreateObject_Main.ejs +1 -1
  31. package/src/emit/custom/templates/s3/ReservedLimit_Main.ejs +1 -1
  32. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +13 -9
  33. package/src/emit/relationship/templates/ChangeRelationship_Main.ejs +1 -1
  34. package/src/emit/relationship/templates/CreateRelationship_Main.ejs +1 -1
  35. package/src/emit/relationship/templates/DeleteRelationship_Main.ejs +1 -1
  36. package/src/emit/relationship/templates/GetRelationship_Main.ejs +53 -32
  37. package/src/emit/relationship/templates/MoveRelationship_Main.ejs +1 -1
  38. package/src/emit/relationship/templates/UpdateRelationship_Main.ejs +1 -1
  39. package/src/emit/resource/emitResourceArtifacts.js +58 -17
  40. package/src/emit/resource/templates/DynamoDBTable_Yaml.ejs +18 -18
  41. package/src/emit/resource/templates/FlowOut_Yaml.ejs +5 -5
  42. package/src/emit/resource/templates/GeneratedLambdaRoleServiceConfig.ejs +9 -10
  43. package/src/emit/resource/templates/ResourceBeforeLogicalYaml.ejs +44 -44
  44. package/src/emit/resource/templates/ResourceSqsYaml.ejs +36 -36
  45. package/src/emit/resource/templates/ResourceYaml.ejs +48 -48
  46. package/src/emit/resource/templates/S3Bucket_Yaml.ejs +0 -1
  47. package/src/emit/resource/templates/S3Subscription_Yaml.ejs +6 -6
  48. package/src/emit/resource/templates/SharedResource_Yaml.ejs +4 -4
  49. package/src/emit/resource/templates/SystemDynamoDB_Yaml.ejs +115 -115
  50. package/src/emit/resource/templates/WebSocketSubscription_Yaml.ejs +6 -6
  51. package/src/emit/shared/templates/FindData_HdrSqs.ejs +1 -1
  52. package/src/emit/shared/templates/FlowHandler_HdrApi.ejs +9 -7
  53. package/src/emit/shared/templates/FlowHandler_HdrDsq.ejs +19 -12
  54. package/src/emit/shared/templates/FlowHandler_HdrInv.ejs +9 -7
  55. package/src/emit/shared/templates/FlowHandler_HdrSqs.ejs +19 -12
  56. package/src/emit/shared/templates/PaginateProcessLogical_HdrDsq.ejs +1 -1
  57. package/src/emit/shared/templates/PaginateProcessLogical_HdrSqs.ejs +1 -1
  58. package/src/emit/shared/templates/PaginateProcessLogical_Main.ejs +2 -2
  59. package/src/emit/shared/templates/ProcessLogical_HdrSqs.ejs +1 -1
  60. package/src/generate.js +26 -5
  61. package/src/output/mergeHooks.js +13 -13
  62. package/src/output/validateArtifacts.js +10 -1
  63. package/test/customFlowApplicationArtifacts.test.js +71 -0
  64. package/test/publicApi.test.js +2 -2
  65. package/test/resourceArtifacts.test.js +8 -18
  66. package/docs/TriggeredCache Flow.drawio +0 -193
  67. package/docs/TriggeredCacheFlow.mmd +0 -47
@@ -25,7 +25,7 @@ const _izContext = { logger: Logger };
25
25
 
26
26
  export function generatedLambdaRole() {
27
27
  const externalLambdaRole = [
28
- <% if (crud) { -%>
28
+ <% if (crud) { -%>
29
29
  {
30
30
  roleName: 'FlowObjects',
31
31
  statement: [
@@ -34,7 +34,7 @@ export function generatedLambdaRole() {
34
34
  Effect: 'Allow',
35
35
  Action: ['lambda:InvokeFunction'],
36
36
  Resource: [
37
- `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetNodeHdrInv' ,'GraphHandler')}`
37
+ `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetNodeHdrInv', 'GraphHandler')}`
38
38
  ]
39
39
  },
40
40
 
@@ -59,7 +59,7 @@ export function generatedLambdaRole() {
59
59
  //(</createFlowObjectsRole>)
60
60
  ]
61
61
  },
62
- <% } -%>
62
+ <% } -%>
63
63
 
64
64
  {
65
65
  roleName: 'ProcFindData',
@@ -69,13 +69,13 @@ export function generatedLambdaRole() {
69
69
  Effect: 'Allow',
70
70
  Action: ['lambda:InvokeFunction'],
71
71
  Resource: [
72
- `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetNodeHdrInv' ,'GraphHandler')}`
72
+ `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetNodeHdrInv', 'GraphHandler')}`
73
73
  ]
74
74
  }
75
75
  //(<createProcFindDataRole>)
76
76
  //(</createProcFindDataRole>)
77
77
  ]
78
- }<% if (relationships) { %>,
78
+ } <% if (relationships) { %>,
79
79
 
80
80
  {
81
81
  roleName: 'FlowRelationship',
@@ -85,7 +85,7 @@ export function generatedLambdaRole() {
85
85
  Effect: 'Allow',
86
86
  Action: ['lambda:InvokeFunction'],
87
87
  Resource: [
88
- `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetRelationshipHdrInv' ,'GraphHandler')}`
88
+ `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetRelationshipHdrInv', 'GraphHandler')}`
89
89
  ]
90
90
  },
91
91
 
@@ -104,10 +104,9 @@ export function generatedLambdaRole() {
104
104
  //(<createFlowRelationshipRole>)
105
105
  //(</createFlowRelationshipRole>)
106
106
  ]
107
- }<% } -%>
108
- <% s3Flows.forEach(function(flow) { -%>,
107
+ } <% } -%>,
109
108
 
110
- {
109
+ <% s3Flows.forEach(function(flow) { -%> {
111
110
  roleName: '<%= flow.roleName %>',
112
111
  statement: [
113
112
  {
@@ -130,7 +129,7 @@ export function generatedLambdaRole() {
130
129
  //(<create<%= flow.roleName %>Role>)
131
130
  //(</create<%= flow.roleName %>Role>)
132
131
  ]
133
- }<% }); %>
132
+ } <% }); %>
134
133
  //(<additionalRole>)
135
134
  //(</additionalRole>)
136
135
  ];
@@ -1,47 +1,47 @@
1
- <%_ flowTags.forEach(flowTag => { _%>
2
- SubscriptionOut<%- flowTag.charAt(0).toUpperCase() + flowTag.slice(1) %>To<%- queueName %>:
3
- Type: AWS::SNS::Subscription
4
- Properties:
5
- TopicArn: !Ref Out<%- flowTag.charAt(0).toUpperCase() + flowTag.slice(1) %>
6
- Endpoint: "arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs"
7
- Protocol: "sqs"
8
- <%_ }) _%>
9
- ##===== [Queue]
10
- <%- queueName %>HdrSqs:
11
- Type: "AWS::SQS::Queue"
12
- Properties:
13
- QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs
14
- RedrivePolicy:
15
- deadLetterTargetArn:
16
- Fn::GetAtt:
17
- - <%- queueName %>HdrSqsDLQ
18
- - Arn
19
- maxReceiveCount: 3
20
- VisibilityTimeout: 120
1
+ <%_ flowTags.forEach(flowTag => { _%>
2
+ SubscriptionOut<%- flowTag.charAt(0).toUpperCase() + flowTag.slice(1) %>To<%- queueName %>:
3
+ Type: AWS::SNS::Subscription
4
+ Properties:
5
+ TopicArn: !Ref Out<%- flowTag.charAt(0).toUpperCase() + flowTag.slice(1) %>
6
+ Endpoint: 'arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs'
7
+ Protocol: 'sqs'
8
+ <%_ }) _%>
9
+ ##===== [Queue]
10
+ <%- queueName %>HdrSqs:
11
+ Type: 'AWS::SQS::Queue'
12
+ Properties:
13
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs
14
+ RedrivePolicy:
15
+ deadLetterTargetArn:
16
+ Fn::GetAtt:
17
+ - <%- queueName %>HdrSqsDLQ
18
+ - Arn
19
+ maxReceiveCount: 3
20
+ VisibilityTimeout: 120
21
21
 
22
- ##===== [Queue DLQ]
23
- <%- queueName %>HdrSqsDLQ:
24
- Type: AWS::SQS::Queue
25
- Properties:
26
- QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqsDLQ
22
+ ##===== [Queue DLQ]
23
+ <%- queueName %>HdrSqsDLQ:
24
+ Type: AWS::SQS::Queue
25
+ Properties:
26
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqsDLQ
27
27
 
28
- ##===== [Queue Policy]
29
- <%- queueName %>HdrSqsPolicy:
30
- Type: AWS::SQS::QueuePolicy
31
- Properties:
32
- PolicyDocument:
33
- Version: "2012-10-17"
34
- Statement:
35
- - Sid: "allow-sns-messages"
36
- Effect: Allow
37
- Principal: "*"
38
- Resource:
39
- Fn::GetAtt:
40
- - <%- queueName %>HdrSqs
41
- - Arn
42
- Action: "SQS:SendMessage"
43
- Queues:
44
- - Ref: <%- queueName %>HdrSqs
28
+ ##===== [Queue Policy]
29
+ <%- queueName %>HdrSqsPolicy:
30
+ Type: AWS::SQS::QueuePolicy
31
+ Properties:
32
+ PolicyDocument:
33
+ Version: '2012-10-17'
34
+ Statement:
35
+ - Sid: 'allow-sns-messages'
36
+ Effect: Allow
37
+ Principal: '*'
38
+ Resource:
39
+ Fn::GetAtt:
40
+ - <%- queueName %>HdrSqs
41
+ - Arn
42
+ Action: 'SQS:SendMessage'
43
+ Queues:
44
+ - Ref: <%- queueName %>HdrSqs
45
45
 
46
- #<#<%- queueName %>QueueSetting#>
47
- #<#/<%- queueName %>QueueSetting#>
46
+ #<#<%- queueName %>QueueSetting#>
47
+ #<#/<%- queueName %>QueueSetting#>
@@ -1,39 +1,39 @@
1
- ##===== [Queue]
2
- <%- resourceQueueName || queueName %>:
3
- Type: "AWS::SQS::Queue"
4
- Properties:
5
- QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>
6
- RedrivePolicy:
7
- deadLetterTargetArn:
8
- Fn::GetAtt:
9
- - <%- resourceQueueName || queueName %>DLQ
10
- - Arn
11
- maxReceiveCount: 3
12
- VisibilityTimeout: 120
1
+ ##===== [Queue]
2
+ <%- resourceQueueName || queueName %>:
3
+ Type: 'AWS::SQS::Queue'
4
+ Properties:
5
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>
6
+ RedrivePolicy:
7
+ deadLetterTargetArn:
8
+ Fn::GetAtt:
9
+ - <%- resourceQueueName || queueName %>DLQ
10
+ - Arn
11
+ maxReceiveCount: 3
12
+ VisibilityTimeout: 120
13
13
 
14
- ##===== [Queue DLQ]
15
- <%- resourceQueueName || queueName %>DLQ:
16
- Type: AWS::SQS::Queue
17
- Properties:
18
- QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>DLQ
14
+ ##===== [Queue DLQ]
15
+ <%- resourceQueueName || queueName %>DLQ:
16
+ Type: AWS::SQS::Queue
17
+ Properties:
18
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>DLQ
19
19
 
20
- ##===== [Queue Policy]
21
- <%- resourceQueueName || queueName %>Policy:
22
- Type: AWS::SQS::QueuePolicy
23
- Properties:
24
- PolicyDocument:
25
- Version: "2012-10-17"
26
- Statement:
27
- - Sid: "allow-sns-messages"
28
- Effect: Allow
29
- Principal: "*"
30
- Resource:
31
- Fn::GetAtt:
32
- - <%- resourceQueueName || queueName %>
33
- - Arn
34
- Action: "SQS:SendMessage"
35
- Queues:
36
- - Ref: <%- resourceQueueName || queueName %>
20
+ ##===== [Queue Policy]
21
+ <%- resourceQueueName || queueName %>Policy:
22
+ Type: AWS::SQS::QueuePolicy
23
+ Properties:
24
+ PolicyDocument:
25
+ Version: '2012-10-17'
26
+ Statement:
27
+ - Sid: 'allow-sns-messages'
28
+ Effect: Allow
29
+ Principal: '*'
30
+ Resource:
31
+ Fn::GetAtt:
32
+ - <%- resourceQueueName || queueName %>
33
+ - Arn
34
+ Action: 'SQS:SendMessage'
35
+ Queues:
36
+ - Ref: <%- resourceQueueName || queueName %>
37
37
 
38
- #<#<%- queueName %>QueueSetting#>
39
- #<#/<%- queueName %>QueueSetting#>
38
+ #<#<%- queueName %>QueueSetting#>
39
+ #<#/<%- queueName %>QueueSetting#>
@@ -1,54 +1,54 @@
1
1
  ##===== [Create topic in]
2
- In<%- queueName %>:
3
- Type: AWS::SNS::Topic
4
- Properties:
5
- DisplayName: "SNS Message in"
6
- TopicName: ${self:custom.iz_serviceTag}_${self:custom.iz_stage}_<%- queueName %>_In
2
+ In<%- queueName %>:
3
+ Type: AWS::SNS::Topic
4
+ Properties:
5
+ DisplayName: 'SNS Message in'
6
+ TopicName: ${self:custom.iz_serviceTag}_${self:custom.iz_stage}_<%- queueName %>_In
7
7
 
8
- ##===== [SNS Subscription - Topic In]
9
- SubscriptionIn<%- queueName %>:
10
- Type: AWS::SNS::Subscription
11
- Properties:
12
- TopicArn: !Ref In<%- queueName %>
13
- Endpoint: "arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs"
14
- Protocol: "sqs"
8
+ ##===== [SNS Subscription - Topic In]
9
+ SubscriptionIn<%- queueName %>:
10
+ Type: AWS::SNS::Subscription
11
+ Properties:
12
+ TopicArn: !Ref In<%- queueName %>
13
+ Endpoint: 'arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs'
14
+ Protocol: 'sqs'
15
15
 
16
- ##===== [Queue]
17
- <%- queueName %>HdrSqs:
18
- Type: "AWS::SQS::Queue"
19
- Properties:
20
- QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs
21
- RedrivePolicy:
22
- deadLetterTargetArn:
23
- Fn::GetAtt:
24
- - <%- queueName %>HdrSqsDLQ
25
- - Arn
26
- maxReceiveCount: 3
27
- VisibilityTimeout: 120
16
+ ##===== [Queue]
17
+ <%- queueName %>HdrSqs:
18
+ Type: 'AWS::SQS::Queue'
19
+ Properties:
20
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs
21
+ RedrivePolicy:
22
+ deadLetterTargetArn:
23
+ Fn::GetAtt:
24
+ - <%- queueName %>HdrSqsDLQ
25
+ - Arn
26
+ maxReceiveCount: 3
27
+ VisibilityTimeout: 120
28
28
 
29
- ##===== [Queue DLQ]
30
- <%- queueName %>HdrSqsDLQ:
31
- Type: AWS::SQS::Queue
32
- Properties:
33
- QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqsDLQ
29
+ ##===== [Queue DLQ]
30
+ <%- queueName %>HdrSqsDLQ:
31
+ Type: AWS::SQS::Queue
32
+ Properties:
33
+ QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqsDLQ
34
34
 
35
- ##===== [Queue Policy]
36
- <%- queueName %>HdrSqsPolicy:
37
- Type: AWS::SQS::QueuePolicy
38
- Properties:
39
- PolicyDocument:
40
- Version: "2012-10-17"
41
- Statement:
42
- - Sid: "allow-sns-messages"
43
- Effect: Allow
44
- Principal: "*"
45
- Resource:
46
- Fn::GetAtt:
47
- - <%- queueName %>HdrSqs
48
- - Arn
49
- Action: "SQS:SendMessage"
50
- Queues:
51
- - Ref: <%- queueName %>HdrSqs
35
+ ##===== [Queue Policy]
36
+ <%- queueName %>HdrSqsPolicy:
37
+ Type: AWS::SQS::QueuePolicy
38
+ Properties:
39
+ PolicyDocument:
40
+ Version: '2012-10-17'
41
+ Statement:
42
+ - Sid: 'allow-sns-messages'
43
+ Effect: Allow
44
+ Principal: '*'
45
+ Resource:
46
+ Fn::GetAtt:
47
+ - <%- queueName %>HdrSqs
48
+ - Arn
49
+ Action: 'SQS:SendMessage'
50
+ Queues:
51
+ - Ref: <%- queueName %>HdrSqs
52
52
 
53
- #<#<%- queueName %>QueueSetting#>
54
- #<#/<%- queueName %>QueueSetting#>
53
+ #<#<%- queueName %>QueueSetting#>
54
+ #<#/<%- queueName %>QueueSetting#>
@@ -16,4 +16,3 @@
16
16
  AllowedOrigins:
17
17
  - '*'
18
18
  MaxAge: 3000
19
-
@@ -1,7 +1,7 @@
1
1
  ##===== SNS Subscription
2
- <%- subscriptionName %>:
3
- Type: AWS::SNS::Subscription
4
- Properties:
5
- TopicArn: !Ref <%- topicName %>
6
- Endpoint: "arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- queueName %>"
7
- Protocol: "sqs"
2
+ <%- subscriptionName %>:
3
+ Type: AWS::SNS::Subscription
4
+ Properties:
5
+ TopicArn: !Ref <%- topicName %>
6
+ Endpoint: 'arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- queueName %>'
7
+ Protocol: 'sqs'
@@ -5,11 +5,11 @@ Resources:
5
5
  Properties:
6
6
  RoleName: ${self:custom.iz_resourcePrefix}<%- roleName %>
7
7
  AssumeRolePolicyDocument:
8
- Version: "2012-10-17"
8
+ Version: '2012-10-17'
9
9
  Statement:
10
10
  - Effect: Allow
11
11
  Principal:
12
- Service: "lambda.amazonaws.com"
12
+ Service: 'lambda.amazonaws.com'
13
13
  Action: sts:AssumeRole
14
14
  #<#<%- roleName %>AssumeRoleStatementHookCode#>
15
15
  #<#/<%- roleName %>AssumeRoleStatementHookCode#>
@@ -20,7 +20,7 @@ Resources:
20
20
  Policies:
21
21
  - PolicyName: ${self:custom.iz_resourcePrefix}<%- roleName.replace(/role$/i, '') %>Policy
22
22
  PolicyDocument:
23
- Version: "2012-10-17"
23
+ Version: '2012-10-17'
24
24
  Statement:
25
25
  <% statements.forEach((stmt) => { -%>
26
26
  - Effect: Allow
@@ -30,7 +30,7 @@ Resources:
30
30
  <% }) -%>
31
31
  Resource:
32
32
  <% stmt.resource.forEach((r) => { -%>
33
- - "<%- r %>"
33
+ - '<%- r %>'
34
34
  <% }) -%>
35
35
  <% }) -%>
36
36
  #<#<%- roleName %>StatementHookCode#>