@izara_project/izara-core-generate-service-code 1.0.66 → 1.0.68

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 (90) hide show
  1. package/.prettierrc +11 -0
  2. package/docs/TriggeredCache Flow.drawio +193 -0
  3. package/docs/TriggeredCacheFlow.mmd +47 -0
  4. package/package.json +16 -12
  5. package/scripts/format-ejs.js +105 -0
  6. package/src/compile/compileProject.js +16 -1
  7. package/src/compile/loadSchemas.js +108 -1
  8. package/src/emit/crud/emitCrudApplicationArtifacts.js +9 -5
  9. package/src/emit/crud/emitDynamicCrudFlowSchemas.js +1 -2
  10. package/src/emit/crud/templates/CreateEndpoint_Main.ejs +300 -109
  11. package/src/emit/crud/templates/DeleteEndpoint_Main.ejs +221 -143
  12. package/src/emit/crud/templates/FlowEndpointBeforeLogical_Main.ejs +22 -6
  13. package/src/emit/crud/templates/FlowEndpointComplete_Main.ejs +150 -38
  14. package/src/emit/crud/templates/FlowEndpoint_HdrWbs.ejs +51 -31
  15. package/src/emit/crud/templates/FlowHandler_HdrApi.ejs +57 -31
  16. package/src/emit/crud/templates/FlowHandler_HdrInv.ejs +28 -26
  17. package/src/emit/crud/templates/FlowHandler_HdrSqs.ejs +15 -11
  18. package/src/emit/crud/templates/FlowMain_Wbs.ejs +53 -38
  19. package/src/emit/crud/templates/GetEndpoint_Main.ejs +6 -3
  20. package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +2 -2
  21. package/src/emit/crud/templates/UpdateEndpoint_Main.ejs +407 -252
  22. package/src/emit/custom/customFlows.js +112 -31
  23. package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +89 -77
  24. package/src/emit/custom/templates/FlowEndpoint_Main.ejs +49 -37
  25. package/src/emit/custom/templates/FlowStep_Main.ejs +7 -9
  26. package/src/emit/custom/templates/s3/ConfirmReserved_HdrSqs.ejs +59 -54
  27. package/src/emit/custom/templates/s3/ConfirmReserved_Main.ejs +33 -23
  28. package/src/emit/custom/templates/s3/CreateObject_HdrWbs.ejs +30 -23
  29. package/src/emit/custom/templates/s3/CreateObject_Main.ejs +56 -39
  30. package/src/emit/custom/templates/s3/CreatePreSignUrl_HdrSqs.ejs +56 -51
  31. package/src/emit/custom/templates/s3/CreatePreSignUrl_Main.ejs +112 -75
  32. package/src/emit/custom/templates/s3/FlowHandler_HdrS3.ejs +12 -7
  33. package/src/emit/custom/templates/s3/ProcessS3File_Main.ejs +11 -8
  34. package/src/emit/custom/templates/s3/ReservedLimit_HdrSqs.ejs +64 -55
  35. package/src/emit/custom/templates/s3/ReservedLimit_Main.ejs +74 -52
  36. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +58 -14
  37. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_Main.ejs +12 -17
  38. package/src/emit/custom/templates/triggerCache/TriggerCacheComplete_Main.ejs +20 -13
  39. package/src/emit/custom/templates/triggerCache/TriggerCache_Main.ejs +4 -1
  40. package/src/emit/function/functionYamlArtifact.js +46 -12
  41. package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +28 -15
  42. package/src/emit/rbac/emitRbacApplicationArtifacts.js +179 -66
  43. package/src/emit/rbac/templates/CreateTargetRole_HdrSqs.ejs +41 -18
  44. package/src/emit/rbac/templates/CreateTargetRole_Main.ejs +23 -3
  45. package/src/emit/rbac/templates/ListRbac_HdrApi.ejs +27 -5
  46. package/src/emit/rbac/templates/ListRbac_HdrSqs.ejs +41 -8
  47. package/src/emit/rbac/templates/ListRbac_Main.ejs +26 -6
  48. package/src/emit/rbac/templates/RbacMutation_Main.ejs +23 -3
  49. package/src/emit/rbac/templates/UserRbacFlow_HdrSqs.ejs +46 -0
  50. package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +152 -33
  51. package/src/emit/rbac/templates/UserRoleMutation_Main.ejs +24 -4
  52. package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +1 -2
  53. package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +6 -5
  54. package/src/emit/relationship/templates/ChangeRelationshipComplete_Main.ejs +64 -37
  55. package/src/emit/relationship/templates/ChangeRelationship_Main.ejs +260 -144
  56. package/src/emit/relationship/templates/CreateRelationshipComplete_Main.ejs +68 -43
  57. package/src/emit/relationship/templates/CreateRelationship_Main.ejs +315 -171
  58. package/src/emit/relationship/templates/DeleteRelationshipComplete_Main.ejs +67 -41
  59. package/src/emit/relationship/templates/DeleteRelationship_Main.ejs +226 -115
  60. package/src/emit/relationship/templates/FlowHandler_HdrApi.ejs +41 -33
  61. package/src/emit/relationship/templates/FlowHandler_HdrDsq.ejs +15 -11
  62. package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +28 -26
  63. package/src/emit/relationship/templates/FlowHandler_HdrSqs.ejs +15 -11
  64. package/src/emit/relationship/templates/GetRelationshipComplete_Main.ejs +46 -26
  65. package/src/emit/relationship/templates/GetRelationship_Main.ejs +233 -126
  66. package/src/emit/relationship/templates/MoveRelationshipComplete_Main.ejs +72 -44
  67. package/src/emit/relationship/templates/MoveRelationship_Main.ejs +266 -150
  68. package/src/emit/relationship/templates/UpdateRelationshipComplete_Main.ejs +74 -45
  69. package/src/emit/relationship/templates/UpdateRelationship_Main.ejs +285 -152
  70. package/src/emit/resource/emitResourceArtifacts.js +499 -108
  71. package/src/emit/resource/templates/DynamoDBTable_Yaml.ejs +18 -18
  72. package/src/emit/resource/templates/FlowOut_Yaml.ejs +5 -5
  73. package/src/emit/resource/templates/GeneratedLambdaRoleServiceConfig.ejs +138 -0
  74. package/src/emit/resource/templates/ResourceBeforeLogicalYaml.ejs +44 -44
  75. package/src/emit/resource/templates/ResourceSqsYaml.ejs +36 -36
  76. package/src/emit/resource/templates/ResourceYaml.ejs +48 -48
  77. package/src/emit/resource/templates/S3Bucket_Yaml.ejs +19 -0
  78. package/src/emit/resource/templates/SharedResource_Yaml.ejs +11 -11
  79. package/src/emit/resource/templates/SystemDynamoDB_Yaml.ejs +105 -105
  80. package/src/emit/system/emitSystemWebSocketArtifacts.js +2 -1
  81. package/src/generate.js +8 -4
  82. package/test/createTargetRoleHandler.test.js +63 -14
  83. package/test/crudApplicationArtifacts.test.js +1 -1
  84. package/test/customFlowApplicationArtifacts.test.js +71 -43
  85. package/test/dynamicCrudFlowSchemas.test.js +6 -6
  86. package/test/dynamicRbacFlowSchemas.test.js +8 -12
  87. package/test/dynamicRelationshipFlowSchemas.test.js +3 -3
  88. package/test/publicApi.test.js +11 -13
  89. package/test/resourceArtifacts.test.js +13 -3
  90. package/src/emit/rbac/templates/UserRbacFlow_HdrInv.ejs +0 -10
@@ -1,20 +1,20 @@
1
1
  ##===== [DynamoDB Table: <%- tableName %>]
2
- <%- tableName %>Table:
3
- Type: AWS::DynamoDB::Table
4
- Properties:
5
- TableName: ${self:custom.iz_resourcePrefix}<%- tableName %>
6
- BillingMode: PAY_PER_REQUEST
7
- AttributeDefinitions:
8
- - AttributeName: "<%- pk %>"
9
- AttributeType: "S"
10
- <% if (sk) { %>
11
- - AttributeName: "<%- sk %>"
12
- AttributeType: "S"
13
- <% } %>
14
- KeySchema:
15
- - AttributeName: "<%- pk %>"
16
- KeyType: "HASH"
17
- <% if (sk) { %>
18
- - AttributeName: "<%- sk %>"
19
- KeyType: "RANGE"
2
+ <%- tableName %>Table:
3
+ Type: AWS::DynamoDB::Table
4
+ Properties:
5
+ TableName: ${self:custom.iz_resourcePrefix}<%- tableName %>
6
+ BillingMode: PAY_PER_REQUEST
7
+ AttributeDefinitions:
8
+ - AttributeName: '<%- pk %>'
9
+ AttributeType: 'S'
10
+ <% if (sk) { %>
11
+ - AttributeName: '<%- sk %>'
12
+ AttributeType: 'S'
13
+ <% } %>
14
+ KeySchema:
15
+ - AttributeName: '<%- pk %>'
16
+ KeyType: 'HASH'
17
+ <% if (sk) { %>
18
+ - AttributeName: '<%- sk %>'
19
+ KeyType: 'RANGE'
20
20
  <% } %>
@@ -1,6 +1,6 @@
1
1
  ##===== [Topic Out]
2
- Out<%- topicName %>:
3
- Type: AWS::SNS::Topic
4
- Properties:
5
- DisplayName: "SNS Message out"
6
- TopicName: ${self:custom.iz_serviceTag}_${self:custom.iz_stage}_<%- topicName %>_Out
2
+ Out<%- topicName %>:
3
+ Type: AWS::SNS::Topic
4
+ Properties:
5
+ DisplayName: 'SNS Message out'
6
+ TopicName: ${self:custom.iz_serviceTag}_${self:custom.iz_stage}_<%- topicName %>_Out
@@ -0,0 +1,138 @@
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 <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ import Logger from '@izara_project/izara-core-library-logger';
19
+ import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
20
+ import lambdaSharedLib from '@izara_project/izara-core-library-lambda';
21
+ import snsSharedLib from '@izara_project/izara-core-library-sns';
22
+ import initialSetupConfig from '../../config/Config.js';
23
+
24
+ const _izContext = { logger: Logger };
25
+
26
+ export function generatedLambdaRole() {
27
+ const externalLambdaRole = [
28
+ <% if (crud) { -%>
29
+ {
30
+ roleName: 'FlowObjects',
31
+ statement: [
32
+ {
33
+ Sid: 'FlowObjectsRoleTest0',
34
+ Effect: 'Allow',
35
+ Action: ['lambda:InvokeFunction'],
36
+ Resource: [
37
+ `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetNodeHdrInv', 'GraphHandler')}`
38
+ ]
39
+ },
40
+
41
+ {
42
+ Sid: 'FlowObjectsRoleTest1',
43
+ Effect: 'Allow',
44
+ Action: ['sns:Publish'],
45
+ Resource: [
46
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'UpdateNode_In', 'GraphHandler')}`
47
+ ]
48
+ },
49
+
50
+ {
51
+ Sid: 'FlowObjectsRoleTest2',
52
+ Effect: 'Allow',
53
+ Action: ['sns:Publish'],
54
+ Resource: [
55
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'CreateNode_In', 'GraphHandler')}`
56
+ ]
57
+ }
58
+ //(<createFlowObjectsRole>)
59
+ //(</createFlowObjectsRole>)
60
+ ]
61
+ },
62
+ <% } -%>
63
+
64
+ {
65
+ roleName: 'ProcFindData',
66
+ statement: [
67
+ {
68
+ Sid: 'ProcFindDataRoleTest0',
69
+ Effect: 'Allow',
70
+ Action: ['lambda:InvokeFunction'],
71
+ Resource: [
72
+ `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetNodeHdrInv', 'GraphHandler')}`
73
+ ]
74
+ }
75
+ //(<createProcFindDataRole>)
76
+ //(</createProcFindDataRole>)
77
+ ]
78
+ } <% if (relationships) { %>,
79
+
80
+ {
81
+ roleName: 'FlowRelationship',
82
+ statement: [
83
+ {
84
+ Sid: 'FlowRelationshipRoleTest0',
85
+ Effect: 'Allow',
86
+ Action: ['lambda:InvokeFunction'],
87
+ Resource: [
88
+ `arn:aws:lambda:${process.env.iz_region}:${process.env.iz_accountId}:function:${lambdaSharedLib.lambdaFunctionName(_izContext, 'GetRelationshipHdrInv', 'GraphHandler')}`
89
+ ]
90
+ },
91
+
92
+ {
93
+ Sid: 'FlowRelationshipRoleTest1',
94
+ Effect: 'Allow',
95
+ Action: ['sns:Publish'],
96
+ Resource: [
97
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'CreateRelationship_In', 'GraphHandler')}`,
98
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'UpdateRelationship_In', 'GraphHandler')}`,
99
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'DeleteRelationship_In', 'GraphHandler')}`,
100
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'ChangeRelationship_In', 'GraphHandler')}`,
101
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'MoveRelationship_In', 'GraphHandler')}`
102
+ ]
103
+ }
104
+ //(<createFlowRelationshipRole>)
105
+ //(</createFlowRelationshipRole>)
106
+ ]
107
+ } <% } -%>,
108
+
109
+ <% s3Flows.forEach(function(flow) { -%> {
110
+ roleName: '<%= flow.roleName %>',
111
+ statement: [
112
+ {
113
+ Sid: '<%= flow.roleName %>RoleTest0',
114
+ Effect: 'Allow',
115
+ Action: ['sns:Publish'],
116
+ Resource: [
117
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'ReservedDynamicUsage_In', 'AccountLimits')}`
118
+ ]
119
+ },
120
+
121
+ {
122
+ Sid: '<%= flow.roleName %>RoleTest1',
123
+ Effect: 'Allow',
124
+ Action: ['sns:Publish'],
125
+ Resource: [
126
+ `arn:aws:sns:${process.env.iz_region}:${process.env.iz_accountId}:${snsSharedLib.snsTopicNameByFlowSchema(_izContext, 'ConfirmDynamicAfterUpload_In', 'AccountLimits')}`
127
+ ]
128
+ }
129
+ //(<create<%= flow.roleName %>Role>)
130
+ //(</create<%= flow.roleName %>Role>)
131
+ ]
132
+ } <% }); %>
133
+ //(<additionalRole>)
134
+ //(</additionalRole>)
135
+ ];
136
+
137
+ return externalLambdaRole;
138
+ }
@@ -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#>
@@ -0,0 +1,19 @@
1
+ ##===== [S3 Bucket: <%- bucketName %>]
2
+ <%- bucketName %>S3Bucket:
3
+ Type: AWS::S3::Bucket
4
+ Properties:
5
+ BucketName: <%- bucketName %>
6
+ CorsConfiguration:
7
+ CorsRules:
8
+ - AllowedHeaders:
9
+ - '*'
10
+ AllowedMethods:
11
+ - GET
12
+ - PUT
13
+ - POST
14
+ - DELETE
15
+ - HEAD
16
+ AllowedOrigins:
17
+ - '*'
18
+ MaxAge: 3000
19
+
@@ -1,15 +1,15 @@
1
1
  Resources:
2
- <% roles.forEach(({ roleName, statements }) => { -%>
2
+ <% roles.forEach(({ roleName, statements }) => { -%>
3
3
  <%- roleName %>:
4
4
  Type: AWS::IAM::Role
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,20 +20,20 @@ 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
- <% statements.forEach((stmt) => { -%>
25
+ <% statements.forEach((stmt) => { -%>
26
26
  - Effect: Allow
27
27
  Action:
28
- <% stmt.action.forEach((a) => { -%>
28
+ <% stmt.action.forEach((a) => { -%>
29
29
  - <%- a %>
30
- <% }) -%>
30
+ <% }) -%>
31
31
  Resource:
32
- <% stmt.resource.forEach((r) => { -%>
33
- - "<%- r %>"
32
+ <% stmt.resource.forEach((r) => { -%>
33
+ - '<%- r %>'
34
34
  <% }) -%>
35
35
  <% }) -%>
36
- #<#<%- roleName %>StatementHookCode#>
37
- #<#/<%- roleName %>StatementHookCode#>
36
+ #<#<%- roleName %>StatementHookCode#>
37
+ #<#/<%- roleName %>StatementHookCode#>
38
38
 
39
39
  <% }) -%>