@aws/nx-plugin 1.0.0-rc.82 → 1.0.0-rc.84

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 (94) hide show
  1. package/migrations.json +41 -1
  2. package/package.json +1 -1
  3. package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +51 -2
  4. package/src/agentcore-gateway/generator.d.ts +7 -6
  5. package/src/agentcore-gateway/generator.js +2 -12
  6. package/src/agentcore-gateway/generator.js.map +1 -1
  7. package/src/agentcore-harness/__snapshots__/generator.spec.ts.snap +4 -5
  8. package/src/agentcore-harness/files/project/README.md.template +4 -5
  9. package/src/migrations/latest/agentcore-harness-no-tools-by-default/__snapshots__/migration.spec.ts.snap +79 -0
  10. package/src/migrations/latest/agentcore-harness-no-tools-by-default/metadata.json +3 -0
  11. package/src/migrations/latest/agentcore-harness-no-tools-by-default/migration.d.ts +6 -0
  12. package/src/migrations/latest/agentcore-harness-no-tools-by-default/migration.js +87 -0
  13. package/src/migrations/latest/agentcore-harness-no-tools-by-default/migration.js.map +1 -0
  14. package/src/migrations/latest/dynamodb-terraform-app-module-outputs/metadata.json +3 -0
  15. package/src/migrations/latest/dynamodb-terraform-app-module-outputs/migration.d.ts +6 -0
  16. package/src/migrations/latest/dynamodb-terraform-app-module-outputs/migration.js +69 -0
  17. package/src/migrations/latest/dynamodb-terraform-app-module-outputs/migration.js.map +1 -0
  18. package/src/migrations/latest/rdb-terraform-aurora-app-module-defaults/__snapshots__/migration.spec.ts.snap +54 -0
  19. package/src/migrations/latest/rdb-terraform-aurora-app-module-defaults/metadata.json +3 -0
  20. package/src/migrations/latest/rdb-terraform-aurora-app-module-defaults/migration.d.ts +6 -0
  21. package/src/migrations/latest/rdb-terraform-aurora-app-module-defaults/migration.js +86 -0
  22. package/src/migrations/latest/rdb-terraform-aurora-app-module-defaults/migration.js.map +1 -0
  23. package/src/migrations/latest/terraform-data-resource-destroy-protection/__snapshots__/migration.spec.ts.snap +75 -0
  24. package/src/migrations/latest/terraform-data-resource-destroy-protection/metadata.json +3 -0
  25. package/src/migrations/latest/terraform-data-resource-destroy-protection/migration.d.ts +6 -0
  26. package/src/migrations/latest/terraform-data-resource-destroy-protection/migration.js +78 -0
  27. package/src/migrations/latest/terraform-data-resource-destroy-protection/migration.js.map +1 -0
  28. package/src/migrations/latest/terraform-declare-used-providers/metadata.json +3 -0
  29. package/src/migrations/latest/terraform-declare-used-providers/migration.d.ts +6 -0
  30. package/src/migrations/latest/terraform-declare-used-providers/migration.js +147 -0
  31. package/src/migrations/latest/terraform-declare-used-providers/migration.js.map +1 -0
  32. package/src/migrations/latest/terraform-gateway-cedar-render-root-ejs/metadata.json +3 -0
  33. package/src/migrations/latest/terraform-gateway-cedar-render-root-ejs/migration.d.ts +6 -0
  34. package/src/migrations/latest/terraform-gateway-cedar-render-root-ejs/migration.js +38 -0
  35. package/src/migrations/latest/terraform-gateway-cedar-render-root-ejs/migration.js.map +1 -0
  36. package/src/migrations/latest/terraform-harness-vpc-role-and-memory-grant/__snapshots__/migration.spec.ts.snap +521 -0
  37. package/src/migrations/latest/terraform-harness-vpc-role-and-memory-grant/metadata.json +3 -0
  38. package/src/migrations/latest/terraform-harness-vpc-role-and-memory-grant/migration.d.ts +6 -0
  39. package/src/migrations/latest/terraform-harness-vpc-role-and-memory-grant/migration.js +504 -0
  40. package/src/migrations/latest/terraform-harness-vpc-role-and-memory-grant/migration.js.map +1 -0
  41. package/src/migrations/latest/waf-log-group-cmk-encryption/__snapshots__/migration.spec.ts.snap +286 -0
  42. package/src/migrations/latest/waf-log-group-cmk-encryption/metadata.json +3 -0
  43. package/src/migrations/latest/waf-log-group-cmk-encryption/migration.d.ts +6 -0
  44. package/src/migrations/latest/waf-log-group-cmk-encryption/migration.js +238 -0
  45. package/src/migrations/latest/waf-log-group-cmk-encryption/migration.js.map +1 -0
  46. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +12 -0
  47. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +21 -0
  48. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +231 -24
  49. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +8 -0
  50. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +4 -0
  51. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +31 -2
  52. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +216 -25
  53. package/src/terraform/project/files/application/bootstrap/providers.tf.template +9 -0
  54. package/src/terraform/project/files/application/src/providers.tf.template +4 -0
  55. package/src/terraform/project/files/library/src/main.tf.template +9 -0
  56. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +231 -24
  57. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +8 -0
  58. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +4 -0
  59. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +21 -0
  60. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +8 -0
  61. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +4 -0
  62. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +74 -4
  63. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +4 -0
  64. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +35 -8
  65. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +4 -0
  66. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +9 -2
  67. package/src/utils/agent-core-constructs/agent-core-constructs.js +22 -8
  68. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  69. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.ts.template +39 -1
  70. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +8 -1
  71. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +57 -2
  72. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.tf.template +258 -24
  73. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +4 -0
  74. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +8 -0
  75. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +9 -1
  76. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +60 -7
  77. package/src/utils/dcr-proxy-constructs/files/terraform/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.tf.template +4 -0
  78. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +15 -0
  79. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +6 -0
  80. package/src/utils/files/terraform/src/metrics/providers.tf.template +12 -0
  81. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +4 -0
  82. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +33 -8
  83. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +4 -0
  84. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +51 -2
  85. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +18 -0
  86. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +15 -4
  87. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +8 -2
  88. package/src/utils/rdb-constructs/rdb-constructs.d.ts +12 -0
  89. package/src/utils/rdb-constructs/rdb-constructs.js +24 -3
  90. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  91. package/src/utils/shared-constructs-constants.d.ts +5 -0
  92. package/src/utils/shared-constructs-constants.js +4 -0
  93. package/src/utils/shared-constructs-constants.js.map +1 -1
  94. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +4 -0
@@ -606,22 +606,75 @@ resource "aws_wafv2_web_acl" "api_waf" {
606
606
  }
607
607
  }
608
608
 
609
+ resource "random_id" "waf_log_suffix" {
610
+ count = var.enable_waf ? 1 : 0
611
+ byte_length = 4
612
+ }
613
+
614
+ locals {
615
+ waf_log_group_name = var.enable_waf ? "aws-waf-logs-\${var.api_name}-\${random_id.waf_log_suffix[0].hex}" : null
616
+ }
617
+
618
+ # KMS key for encrypting WAF request logs at rest
619
+ resource "aws_kms_key" "waf_logs" {
620
+ count = var.enable_waf ? 1 : 0
621
+
622
+ description = "\${var.api_name} API WAF log encryption"
623
+ deletion_window_in_days = 7
624
+ enable_key_rotation = true
625
+
626
+ policy = jsonencode({
627
+ Version = "2012-10-17"
628
+ Statement = [
629
+ {
630
+ Sid = "Enable IAM User Permissions"
631
+ Effect = "Allow"
632
+ Principal = { AWS = "arn:aws:iam::\${data.aws_caller_identity.current.account_id}:root" }
633
+ Action = "kms:*"
634
+ Resource = "*"
635
+ },
636
+ {
637
+ Sid = "Allow CloudWatch Logs"
638
+ Effect = "Allow"
639
+ Principal = { Service = "logs.\${data.aws_region.current.region}.amazonaws.com" }
640
+ Action = [
641
+ "kms:Encrypt",
642
+ "kms:Decrypt",
643
+ "kms:ReEncrypt*",
644
+ "kms:GenerateDataKey*",
645
+ "kms:DescribeKey"
646
+ ]
647
+ Resource = "*"
648
+ Condition = {
649
+ ArnEquals = {
650
+ "kms:EncryptionContext:aws:logs:arn" = "arn:aws:logs:\${data.aws_region.current.region}:\${data.aws_caller_identity.current.account_id}:log-group:\${local.waf_log_group_name}"
651
+ }
652
+ }
653
+ }
654
+ ]
655
+ })
656
+
657
+ tags = var.tags
658
+ }
659
+
660
+ resource "aws_kms_alias" "waf_logs" {
661
+ count = var.enable_waf ? 1 : 0
662
+
663
+ name = "alias/\${var.api_name}-\${random_id.waf_log_suffix[0].hex}-waf-logs"
664
+ target_key_id = aws_kms_key.waf_logs[0].key_id
665
+ }
666
+
609
667
  # CloudWatch Log Group for WAF request logs. Name must start with \`aws-waf-logs-\`.
610
668
  resource "aws_cloudwatch_log_group" "api_waf_logs" {
611
- #checkov:skip=CKV_AWS_158:Using default CloudWatch log encryption
612
669
  #checkov:skip=CKV_AWS_338:Log retention set to one month which is sufficient for WAF logs
613
670
  count = var.enable_waf ? 1 : 0
614
671
 
615
- name = "aws-waf-logs-\${var.api_name}-\${random_id.waf_log_suffix[0].hex}"
672
+ name = local.waf_log_group_name
616
673
  retention_in_days = 30
674
+ kms_key_id = aws_kms_key.waf_logs[0].arn
617
675
  tags = var.tags
618
676
  }
619
677
 
620
- resource "random_id" "waf_log_suffix" {
621
- count = var.enable_waf ? 1 : 0
622
- byte_length = 4
623
- }
624
-
625
678
  resource "aws_wafv2_web_acl_logging_configuration" "api_waf_logging" {
626
679
  count = var.enable_waf ? 1 : 0
627
680
 
@@ -670,10 +723,18 @@ exports[`tsSmithyApiGenerator > should generate smithy ts api with Terraform pro
670
723
  required_version = ">= 1.0"
671
724
 
672
725
  required_providers {
726
+ archive = {
727
+ source = "hashicorp/archive"
728
+ version = "2.8.0"
729
+ }
673
730
  aws = {
674
731
  source = "hashicorp/aws"
675
732
  version = "6.61.0"
676
733
  }
734
+ random = {
735
+ source = "hashicorp/random"
736
+ version = "3.9.0"
737
+ }
677
738
  }
678
739
  }
679
740
 
@@ -1317,7 +1378,7 @@ module "add_url_to_runtime_config" {
1317
1378
 
1318
1379
  namespace = "connection"
1319
1380
  key = "apis"
1320
- value = { "TestApi" = aws_api_gateway_stage.api_stage.invoke_url }
1381
+ value = { "TestApi" = "\${aws_api_gateway_stage.api_stage.invoke_url}/" }
1321
1382
 
1322
1383
  depends_on = [aws_api_gateway_stage.api_stage]
1323
1384
  }
@@ -2097,22 +2158,75 @@ resource "aws_wafv2_web_acl" "api_waf" {
2097
2158
  }
2098
2159
  }
2099
2160
 
2161
+ resource "random_id" "waf_log_suffix" {
2162
+ count = var.enable_waf ? 1 : 0
2163
+ byte_length = 4
2164
+ }
2165
+
2166
+ locals {
2167
+ waf_log_group_name = var.enable_waf ? "aws-waf-logs-\${var.api_name}-\${random_id.waf_log_suffix[0].hex}" : null
2168
+ }
2169
+
2170
+ # KMS key for encrypting WAF request logs at rest
2171
+ resource "aws_kms_key" "waf_logs" {
2172
+ count = var.enable_waf ? 1 : 0
2173
+
2174
+ description = "\${var.api_name} API WAF log encryption"
2175
+ deletion_window_in_days = 7
2176
+ enable_key_rotation = true
2177
+
2178
+ policy = jsonencode({
2179
+ Version = "2012-10-17"
2180
+ Statement = [
2181
+ {
2182
+ Sid = "Enable IAM User Permissions"
2183
+ Effect = "Allow"
2184
+ Principal = { AWS = "arn:aws:iam::\${data.aws_caller_identity.current.account_id}:root" }
2185
+ Action = "kms:*"
2186
+ Resource = "*"
2187
+ },
2188
+ {
2189
+ Sid = "Allow CloudWatch Logs"
2190
+ Effect = "Allow"
2191
+ Principal = { Service = "logs.\${data.aws_region.current.region}.amazonaws.com" }
2192
+ Action = [
2193
+ "kms:Encrypt",
2194
+ "kms:Decrypt",
2195
+ "kms:ReEncrypt*",
2196
+ "kms:GenerateDataKey*",
2197
+ "kms:DescribeKey"
2198
+ ]
2199
+ Resource = "*"
2200
+ Condition = {
2201
+ ArnEquals = {
2202
+ "kms:EncryptionContext:aws:logs:arn" = "arn:aws:logs:\${data.aws_region.current.region}:\${data.aws_caller_identity.current.account_id}:log-group:\${local.waf_log_group_name}"
2203
+ }
2204
+ }
2205
+ }
2206
+ ]
2207
+ })
2208
+
2209
+ tags = var.tags
2210
+ }
2211
+
2212
+ resource "aws_kms_alias" "waf_logs" {
2213
+ count = var.enable_waf ? 1 : 0
2214
+
2215
+ name = "alias/\${var.api_name}-\${random_id.waf_log_suffix[0].hex}-waf-logs"
2216
+ target_key_id = aws_kms_key.waf_logs[0].key_id
2217
+ }
2218
+
2100
2219
  # CloudWatch Log Group for WAF request logs. Name must start with \`aws-waf-logs-\`.
2101
2220
  resource "aws_cloudwatch_log_group" "api_waf_logs" {
2102
- #checkov:skip=CKV_AWS_158:Using default CloudWatch log encryption
2103
2221
  #checkov:skip=CKV_AWS_338:Log retention set to one month which is sufficient for WAF logs
2104
2222
  count = var.enable_waf ? 1 : 0
2105
2223
 
2106
- name = "aws-waf-logs-\${var.api_name}-\${random_id.waf_log_suffix[0].hex}"
2224
+ name = local.waf_log_group_name
2107
2225
  retention_in_days = 30
2226
+ kms_key_id = aws_kms_key.waf_logs[0].arn
2108
2227
  tags = var.tags
2109
2228
  }
2110
2229
 
2111
- resource "random_id" "waf_log_suffix" {
2112
- count = var.enable_waf ? 1 : 0
2113
- byte_length = 4
2114
- }
2115
-
2116
2230
  resource "aws_wafv2_web_acl_logging_configuration" "api_waf_logging" {
2117
2231
  count = var.enable_waf ? 1 : 0
2118
2232
 
@@ -2158,10 +2272,18 @@ output "waf_web_acl_arn" {
2158
2272
  required_version = ">= 1.0"
2159
2273
 
2160
2274
  required_providers {
2275
+ archive = {
2276
+ source = "hashicorp/archive"
2277
+ version = "2.8.0"
2278
+ }
2161
2279
  aws = {
2162
2280
  source = "hashicorp/aws"
2163
2281
  version = "6.61.0"
2164
2282
  }
2283
+ random = {
2284
+ source = "hashicorp/random"
2285
+ version = "3.9.0"
2286
+ }
2165
2287
  }
2166
2288
  }
2167
2289
 
@@ -2733,7 +2855,7 @@ module "add_url_to_runtime_config" {
2733
2855
 
2734
2856
  namespace = "connection"
2735
2857
  key = "apis"
2736
- value = { "TestApi" = aws_api_gateway_stage.api_stage.invoke_url }
2858
+ value = { "TestApi" = "\${aws_api_gateway_stage.api_stage.invoke_url}/" }
2737
2859
 
2738
2860
  depends_on = [aws_api_gateway_stage.api_stage]
2739
2861
  }
@@ -3072,22 +3194,75 @@ resource "aws_wafv2_web_acl" "api_waf" {
3072
3194
  }
3073
3195
  }
3074
3196
 
3197
+ resource "random_id" "waf_log_suffix" {
3198
+ count = var.enable_waf ? 1 : 0
3199
+ byte_length = 4
3200
+ }
3201
+
3202
+ locals {
3203
+ waf_log_group_name = var.enable_waf ? "aws-waf-logs-\${var.api_name}-\${random_id.waf_log_suffix[0].hex}" : null
3204
+ }
3205
+
3206
+ # KMS key for encrypting WAF request logs at rest
3207
+ resource "aws_kms_key" "waf_logs" {
3208
+ count = var.enable_waf ? 1 : 0
3209
+
3210
+ description = "\${var.api_name} API WAF log encryption"
3211
+ deletion_window_in_days = 7
3212
+ enable_key_rotation = true
3213
+
3214
+ policy = jsonencode({
3215
+ Version = "2012-10-17"
3216
+ Statement = [
3217
+ {
3218
+ Sid = "Enable IAM User Permissions"
3219
+ Effect = "Allow"
3220
+ Principal = { AWS = "arn:aws:iam::\${data.aws_caller_identity.current.account_id}:root" }
3221
+ Action = "kms:*"
3222
+ Resource = "*"
3223
+ },
3224
+ {
3225
+ Sid = "Allow CloudWatch Logs"
3226
+ Effect = "Allow"
3227
+ Principal = { Service = "logs.\${data.aws_region.current.region}.amazonaws.com" }
3228
+ Action = [
3229
+ "kms:Encrypt",
3230
+ "kms:Decrypt",
3231
+ "kms:ReEncrypt*",
3232
+ "kms:GenerateDataKey*",
3233
+ "kms:DescribeKey"
3234
+ ]
3235
+ Resource = "*"
3236
+ Condition = {
3237
+ ArnEquals = {
3238
+ "kms:EncryptionContext:aws:logs:arn" = "arn:aws:logs:\${data.aws_region.current.region}:\${data.aws_caller_identity.current.account_id}:log-group:\${local.waf_log_group_name}"
3239
+ }
3240
+ }
3241
+ }
3242
+ ]
3243
+ })
3244
+
3245
+ tags = var.tags
3246
+ }
3247
+
3248
+ resource "aws_kms_alias" "waf_logs" {
3249
+ count = var.enable_waf ? 1 : 0
3250
+
3251
+ name = "alias/\${var.api_name}-\${random_id.waf_log_suffix[0].hex}-waf-logs"
3252
+ target_key_id = aws_kms_key.waf_logs[0].key_id
3253
+ }
3254
+
3075
3255
  # CloudWatch Log Group for WAF request logs. Name must start with \`aws-waf-logs-\`.
3076
3256
  resource "aws_cloudwatch_log_group" "api_waf_logs" {
3077
- #checkov:skip=CKV_AWS_158:Using default CloudWatch log encryption
3078
3257
  #checkov:skip=CKV_AWS_338:Log retention set to one month which is sufficient for WAF logs
3079
3258
  count = var.enable_waf ? 1 : 0
3080
3259
 
3081
- name = "aws-waf-logs-\${var.api_name}-\${random_id.waf_log_suffix[0].hex}"
3260
+ name = local.waf_log_group_name
3082
3261
  retention_in_days = 30
3262
+ kms_key_id = aws_kms_key.waf_logs[0].arn
3083
3263
  tags = var.tags
3084
3264
  }
3085
3265
 
3086
- resource "random_id" "waf_log_suffix" {
3087
- count = var.enable_waf ? 1 : 0
3088
- byte_length = 4
3089
- }
3090
-
3091
3266
  resource "aws_wafv2_web_acl_logging_configuration" "api_waf_logging" {
3092
3267
  count = var.enable_waf ? 1 : 0
3093
3268
 
@@ -3133,10 +3308,18 @@ output "waf_web_acl_arn" {
3133
3308
  required_version = ">= 1.0"
3134
3309
 
3135
3310
  required_providers {
3311
+ archive = {
3312
+ source = "hashicorp/archive"
3313
+ version = "2.8.0"
3314
+ }
3136
3315
  aws = {
3137
3316
  source = "hashicorp/aws"
3138
3317
  version = "6.61.0"
3139
3318
  }
3319
+ random = {
3320
+ source = "hashicorp/random"
3321
+ version = "3.9.0"
3322
+ }
3140
3323
  }
3141
3324
  }
3142
3325
 
@@ -3697,7 +3880,7 @@ module "add_url_to_runtime_config" {
3697
3880
 
3698
3881
  namespace = "connection"
3699
3882
  key = "apis"
3700
- value = { "TestApi" = aws_api_gateway_stage.api_stage.invoke_url }
3883
+ value = { "TestApi" = "\${aws_api_gateway_stage.api_stage.invoke_url}/" }
3701
3884
 
3702
3885
  depends_on = [aws_api_gateway_stage.api_stage]
3703
3886
  }
@@ -3837,10 +4020,18 @@ exports[`tsSmithyApiGenerator > terraform iac > should generate terraform with c
3837
4020
  required_version = ">= 1.0"
3838
4021
 
3839
4022
  required_providers {
4023
+ archive = {
4024
+ source = "hashicorp/archive"
4025
+ version = "2.8.0"
4026
+ }
3840
4027
  aws = {
3841
4028
  source = "hashicorp/aws"
3842
4029
  version = "6.61.0"
3843
4030
  }
4031
+ random = {
4032
+ source = "hashicorp/random"
4033
+ version = "3.9.0"
4034
+ }
3844
4035
  }
3845
4036
  }
3846
4037
 
@@ -4484,7 +4675,7 @@ module "add_url_to_runtime_config" {
4484
4675
 
4485
4676
  namespace = "connection"
4486
4677
  key = "apis"
4487
- value = { "CustomApi" = aws_api_gateway_stage.api_stage.invoke_url }
4678
+ value = { "CustomApi" = "\${aws_api_gateway_stage.api_stage.invoke_url}/" }
4488
4679
 
4489
4680
  depends_on = [aws_api_gateway_stage.api_stage]
4490
4681
  }
@@ -1,3 +1,12 @@
1
+ terraform {
2
+ required_providers {
3
+ aws = {
4
+ source = "hashicorp/aws"
5
+ version = "<%- awsProviderVersion %>"
6
+ }
7
+ }
8
+ }
9
+
1
10
  provider "aws" {
2
11
  region = var.aws_region
3
12
  }
@@ -4,6 +4,10 @@ terraform {
4
4
  source = "hashicorp/aws"
5
5
  version = "<%- awsProviderVersion %>"
6
6
  }
7
+ null = {
8
+ source = "hashicorp/null"
9
+ version = "<%- nullProviderVersion %>"
10
+ }
7
11
  }
8
12
 
9
13
  backend "s3" {
@@ -1,3 +1,12 @@
1
+ terraform {
2
+ required_providers {
3
+ null = {
4
+ source = "hashicorp/null"
5
+ version = "<%- nullProviderVersion %>"
6
+ }
7
+ }
8
+ }
9
+
1
10
  resource "null_resource" "hello_world" {
2
11
  provisioner "local-exec" {
3
12
  command = "echo 'TODO'"