cdk-factory 0.13.2__tar.gz → 0.13.4__tar.gz

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 (157) hide show
  1. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/PKG-INFO +1 -1
  2. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/pyproject.toml +1 -1
  3. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +43 -2
  4. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +6 -2
  5. cdk_factory-0.13.4/src/cdk_factory/version.py +1 -0
  6. cdk_factory-0.13.2/src/cdk_factory/version.py +0 -1
  7. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/.gitignore +0 -0
  8. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/.windsurfrules +0 -0
  9. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/LICENSE +0 -0
  10. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/README.md +0 -0
  11. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/archive/README.md +0 -0
  12. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/archive/migrate_to_enhanced_ssm.py +0 -0
  13. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/examples/json-imports/README.md +0 -0
  14. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/examples/separate-api-gateway/README.md +0 -0
  15. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  16. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/examples/separate-api-gateway/config.json +0 -0
  17. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/examples/separate-api-gateway/lambda-stack.json +0 -0
  18. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/mypy.ini +0 -0
  19. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/publish_to_pypi.py +0 -0
  20. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/publish_to_pypi.sh +0 -0
  21. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/pysetup.py +0 -0
  22. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/pysetup.sh +0 -0
  23. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/requirements.dev.txt +0 -0
  24. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/requirements.tests.txt +0 -0
  25. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/requirements.txt +0 -0
  26. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/run-checks.sh +0 -0
  27. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/run-tests-clean-venv.sh +0 -0
  28. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/run-tests.sh +0 -0
  29. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/__init__.py +0 -0
  30. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/app.py +0 -0
  31. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/builds/README.md +0 -0
  32. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/cdk.json +0 -0
  33. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/cli.py +0 -0
  34. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/commands/command_loader.py +0 -0
  35. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/base_config.py +0 -0
  36. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/cdk_config.py +0 -0
  37. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/deployment.py +0 -0
  38. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  39. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/devops.py +0 -0
  40. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  41. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  42. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/management.py +0 -0
  43. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/pipeline.py +0 -0
  44. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  45. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  46. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  47. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  48. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
  49. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  50. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  51. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  52. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  53. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  54. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  55. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/docker.py +0 -0
  56. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  57. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  58. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  59. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  60. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
  61. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  62. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  63. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  64. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  65. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
  66. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/rds.py +0 -0
  67. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  68. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  69. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  70. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/route53.py +0 -0
  71. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  72. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/rum.py +0 -0
  73. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/s3.py +0 -0
  74. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  75. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
  76. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  77. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  78. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/stack.py +0 -0
  79. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/configurations/workload.py +0 -0
  80. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  81. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  82. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  83. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  84. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  85. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  86. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  87. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  88. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  89. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  90. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
  91. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/istack.py +0 -0
  92. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  93. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
  94. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
  95. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/lambdas/health_handler.py +0 -0
  96. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/path_utils.py +0 -0
  97. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  98. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/security/policies.py +0 -0
  99. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/security/roles.py +0 -0
  100. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/stage.py +0 -0
  101. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack/istack.py +0 -0
  102. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack/stack_factory.py +0 -0
  103. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  104. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  105. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack/stack_modules.py +0 -0
  106. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/__init__.py +0 -0
  107. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  108. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  109. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
  110. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  111. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  112. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  113. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
  114. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
  115. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  116. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  117. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  118. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  119. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  120. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  121. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  122. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
  123. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  124. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
  125. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
  126. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
  127. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  128. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  129. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  130. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  131. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  132. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  133. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  134. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
  135. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  136. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  137. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/stack_base.py +0 -0
  138. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  139. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
  140. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  141. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  142. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/templates/README.md +0 -0
  143. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/templates/app.py.template +0 -0
  144. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/templates/cdk.json.template +0 -0
  145. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
  146. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/commandline_args.py +0 -0
  147. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  148. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  149. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/environment_services.py +0 -0
  150. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/file_operations.py +0 -0
  151. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/git_utilities.py +0 -0
  152. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  153. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  154. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utilities/os_execute.py +0 -0
  155. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  156. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/cdk_factory/workload/workload_factory.py +0 -0
  157. {cdk_factory-0.13.2 → cdk_factory-0.13.4}/src/handlers/test/handler.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdk_factory
3
- Version: 0.13.2
3
+ Version: 0.13.4
4
4
  Summary: CDK Factory. A QuickStarter and best practices setup for CDK projects
5
5
  Author-email: Eric Wilson <eric.wilson@geekcafe.com>
6
6
  License: MIT License
@@ -33,7 +33,7 @@ markers = [
33
33
  [project]
34
34
 
35
35
  name = "cdk_factory"
36
- version = "0.13.2"
36
+ version = "0.13.4"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -118,11 +118,17 @@ class CloudFrontDistributionConstruct(Construct):
118
118
  origin_access_identity=self.oai,
119
119
  )
120
120
 
121
+ # Get comment from config, or use default
122
+ comment = "CloudFront Distribution generated via the CDK Factory"
123
+ if self.stack_config and isinstance(self.stack_config, StackConfig):
124
+ cloudfront_config = self.stack_config.dictionary.get("cloudfront", {})
125
+ comment = cloudfront_config.get("comment", comment)
126
+
121
127
  distribution = cloudfront.Distribution(
122
128
  self,
123
129
  "cloudfront-dist",
124
130
  domain_names=self.aliases,
125
- comment="CloudFront Distribution generated via the CDK Factory",
131
+ comment=comment,
126
132
  certificate=self.certificate,
127
133
  default_behavior=cloudfront.BehaviorOptions(
128
134
  origin=origin,
@@ -228,6 +234,15 @@ class CloudFrontDistributionConstruct(Construct):
228
234
  """
229
235
  Get the Lambda@Edge associations for the distribution from config.
230
236
 
237
+ Supports two configuration methods:
238
+ 1. Convenience flag: "enable_ip_gating": true
239
+ - Automatically adds Lambda@Edge IP gating function
240
+ - Uses auto-derived SSM parameter path: /{env}/{workload}/lambda-edge/version-arn
241
+
242
+ 2. Manual configuration: "lambda_edge_associations": [...]
243
+ - Full control over Lambda@Edge associations
244
+ - Can specify custom ARNs, event types, etc.
245
+
231
246
  Returns:
232
247
  List[cloudfront.EdgeLambda] or None: list of Lambda@Edge associations
233
248
  """
@@ -235,7 +250,33 @@ class CloudFrontDistributionConstruct(Construct):
235
250
 
236
251
  if self.stack_config and isinstance(self.stack_config, StackConfig):
237
252
  cloudfront_config = self.stack_config.dictionary.get("cloudfront", {})
238
- lambda_edge_associations = cloudfront_config.get("lambda_edge_associations", [])
253
+
254
+ # Check for convenience IP gating flag
255
+ enable_ip_gating = cloudfront_config.get("enable_ip_gating", False)
256
+ if enable_ip_gating:
257
+ logger.info("IP gating enabled via convenience flag - adding Lambda@Edge association")
258
+
259
+ # Extract environment and workload name from config
260
+ # These come from the workload/deployment configuration
261
+ workload_dict = self.stack_config.workload
262
+ environment = workload_dict.get("deployment", {}).get("environment", "dev")
263
+ workload_name = workload_dict.get("name", "workload")
264
+
265
+ # Auto-derive SSM parameter path or use override
266
+ default_ssm_path = f"/{environment}/{workload_name}/lambda-edge/version-arn"
267
+ ip_gate_ssm_path = cloudfront_config.get("ip_gate_function_ssm_path", default_ssm_path)
268
+
269
+ logger.info(f"Using IP gate Lambda ARN from SSM: {ip_gate_ssm_path}")
270
+
271
+ # Add the IP gating Lambda@Edge association
272
+ lambda_edge_associations = [{
273
+ "event_type": "origin-request",
274
+ "lambda_arn": f"{{{{ssm:{ip_gate_ssm_path}}}}}",
275
+ "include_body": False
276
+ }]
277
+ else:
278
+ # Use manual configuration
279
+ lambda_edge_associations = cloudfront_config.get("lambda_edge_associations", [])
239
280
 
240
281
  for association in lambda_edge_associations:
241
282
  event_type_str = association.get("event_type", "origin-request")
@@ -87,7 +87,10 @@ class LambdaEdgeStack(IStack, EnhancedSsmParameterMixin):
87
87
  deployment
88
88
  )
89
89
 
90
- function_name = deployment.build_resource_name(self.edge_config.name)
90
+ # Use the Lambda function name from config (supports template variables)
91
+ # e.g., "{{WORKLOAD_NAME}}-{{ENVIRONMENT}}-ip-gate" becomes "tech-talk-dev-ip-gate"
92
+ function_name = self.edge_config.name
93
+ logger.info(f"Lambda function name: '{function_name}'")
91
94
 
92
95
  # Create Lambda function
93
96
  self._create_lambda_function(function_name)
@@ -181,9 +184,10 @@ class LambdaEdgeStack(IStack, EnhancedSsmParameterMixin):
181
184
 
182
185
  # Create runtime configuration file for Lambda@Edge
183
186
  # Since Lambda@Edge doesn't support environment variables, we bundle a config file
187
+ # Use the full function_name (e.g., "tech-talk-dev-ip-gate") not just the base name
184
188
  runtime_config = {
185
189
  'environment': self.deployment.environment,
186
- 'function_name': self.edge_config.name,
190
+ 'function_name': function_name,
187
191
  'region': self.deployment.region
188
192
  }
189
193
 
@@ -0,0 +1 @@
1
+ __version__ = "0.13.4"
@@ -1 +0,0 @@
1
- __version__ = "0.13.2"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes