cdk-factory 0.13.4__tar.gz → 0.13.5__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.

Potentially problematic release.


This version of cdk-factory might be problematic. Click here for more details.

Files changed (157) hide show
  1. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/PKG-INFO +1 -1
  2. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/pyproject.toml +1 -1
  3. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +15 -5
  4. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +12 -1
  5. cdk_factory-0.13.5/src/cdk_factory/version.py +1 -0
  6. cdk_factory-0.13.4/src/cdk_factory/version.py +0 -1
  7. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/.gitignore +0 -0
  8. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/.windsurfrules +0 -0
  9. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/LICENSE +0 -0
  10. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/README.md +0 -0
  11. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/archive/README.md +0 -0
  12. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/archive/migrate_to_enhanced_ssm.py +0 -0
  13. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/examples/json-imports/README.md +0 -0
  14. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/examples/separate-api-gateway/README.md +0 -0
  15. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  16. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/examples/separate-api-gateway/config.json +0 -0
  17. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/examples/separate-api-gateway/lambda-stack.json +0 -0
  18. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/mypy.ini +0 -0
  19. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/publish_to_pypi.py +0 -0
  20. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/publish_to_pypi.sh +0 -0
  21. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/pysetup.py +0 -0
  22. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/pysetup.sh +0 -0
  23. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/requirements.dev.txt +0 -0
  24. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/requirements.tests.txt +0 -0
  25. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/requirements.txt +0 -0
  26. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/run-checks.sh +0 -0
  27. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/run-tests-clean-venv.sh +0 -0
  28. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/run-tests.sh +0 -0
  29. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/__init__.py +0 -0
  30. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/app.py +0 -0
  31. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/builds/README.md +0 -0
  32. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/cdk.json +0 -0
  33. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/cli.py +0 -0
  34. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/commands/command_loader.py +0 -0
  35. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/base_config.py +0 -0
  36. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/cdk_config.py +0 -0
  37. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/deployment.py +0 -0
  38. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  39. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/devops.py +0 -0
  40. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  41. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  42. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/management.py +0 -0
  43. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/pipeline.py +0 -0
  44. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  45. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  46. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  47. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  48. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
  49. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  50. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  51. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  52. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  53. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  54. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  55. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/docker.py +0 -0
  56. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  57. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  58. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  59. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  60. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
  61. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  62. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  63. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  64. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  65. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
  66. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/rds.py +0 -0
  67. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  68. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  69. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  70. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/route53.py +0 -0
  71. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  72. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/rum.py +0 -0
  73. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/s3.py +0 -0
  74. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  75. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
  76. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  77. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  78. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/stack.py +0 -0
  79. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/configurations/workload.py +0 -0
  80. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
  81. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  82. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  83. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  84. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  85. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  86. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  87. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  88. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  89. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  90. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  91. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
  92. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/interfaces/istack.py +0 -0
  93. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  94. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
  95. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/lambdas/health_handler.py +0 -0
  96. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/pipeline/path_utils.py +0 -0
  97. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  98. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/pipeline/security/policies.py +0 -0
  99. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/pipeline/security/roles.py +0 -0
  100. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/pipeline/stage.py +0 -0
  101. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack/istack.py +0 -0
  102. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack/stack_factory.py +0 -0
  103. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  104. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  105. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack/stack_modules.py +0 -0
  106. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/__init__.py +0 -0
  107. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  108. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  109. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
  110. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  111. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  112. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  113. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
  114. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
  115. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  116. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  117. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  118. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  119. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  120. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  121. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  122. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
  123. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  124. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
  125. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
  126. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
  127. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  128. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  129. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  130. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  131. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  132. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  133. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  134. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
  135. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  136. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  137. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/stack_base.py +0 -0
  138. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  139. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
  140. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  141. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  142. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/templates/README.md +0 -0
  143. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/templates/app.py.template +0 -0
  144. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/templates/cdk.json.template +0 -0
  145. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
  146. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/commandline_args.py +0 -0
  147. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  148. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  149. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/environment_services.py +0 -0
  150. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/file_operations.py +0 -0
  151. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/git_utilities.py +0 -0
  152. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  153. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  154. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utilities/os_execute.py +0 -0
  155. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  156. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/src/cdk_factory/workload/workload_factory.py +0 -0
  157. {cdk_factory-0.13.4 → cdk_factory-0.13.5}/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.4
3
+ Version: 0.13.5
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.4"
36
+ version = "0.13.5"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -20,12 +20,14 @@ def get_ssm_parameter(parameter_name: str, region: str = 'us-east-1') -> str:
20
20
  Fetch SSM parameter with caching.
21
21
  Lambda@Edge cannot use environment variables, so we fetch from SSM.
22
22
 
23
+ The sentinel value 'NONE' indicates an explicitly unset/disabled parameter.
24
+
23
25
  Args:
24
26
  parameter_name: Name of the SSM parameter
25
27
  region: AWS region (default us-east-1)
26
28
 
27
29
  Returns:
28
- Parameter value
30
+ Parameter value, or empty string if value is 'NONE'
29
31
  """
30
32
  global ssm
31
33
  if ssm is None:
@@ -33,7 +35,14 @@ def get_ssm_parameter(parameter_name: str, region: str = 'us-east-1') -> str:
33
35
 
34
36
  try:
35
37
  response = ssm.get_parameter(Name=parameter_name, WithDecryption=False)
36
- return response['Parameter']['Value']
38
+ value = response['Parameter']['Value']
39
+
40
+ # Treat 'NONE' sentinel as empty/unset
41
+ if value == 'NONE':
42
+ print(f"SSM parameter {parameter_name} is set to 'NONE' (explicitly disabled)")
43
+ return ''
44
+
45
+ return value
37
46
  except Exception as e:
38
47
  print(f"Error fetching SSM parameter {parameter_name}: {str(e)}")
39
48
  raise
@@ -140,15 +149,16 @@ def lambda_handler(event, context):
140
149
  gate_enabled = get_ssm_parameter(f'/{env}/{function_name}/gate-enabled', 'us-east-1')
141
150
 
142
151
  # If gating is disabled, allow all traffic
143
- if gate_enabled.lower() not in ('true', '1', 'yes'):
144
- print(f"IP gating is disabled (GATE_ENABLED={gate_enabled})")
152
+ # Empty string (from 'NONE' sentinel) is treated as disabled
153
+ if not gate_enabled or gate_enabled.lower() not in ('true', '1', 'yes'):
154
+ print(f"IP gating is disabled (GATE_ENABLED={gate_enabled or 'NONE'})")
145
155
  return request
146
156
 
147
157
  # Get allowed CIDRs and maintenance host
148
158
  allow_cidrs_str = get_ssm_parameter(f'/{env}/{function_name}/allow-cidrs', 'us-east-1')
149
159
  maint_cf_host = get_ssm_parameter(f'/{env}/{function_name}/maint-cf-host', 'us-east-1')
150
160
 
151
- # Parse allowed CIDRs
161
+ # Parse allowed CIDRs (empty string results in empty list)
152
162
  allowed_cidrs = [cidr.strip() for cidr in allow_cidrs_str.split(',') if cidr.strip()]
153
163
 
154
164
  # Get client IP
@@ -368,10 +368,21 @@ class LambdaEdgeStack(IStack, EnhancedSsmParameterMixin):
368
368
  resolved_env = self._resolve_environment_variables()
369
369
  for env_key, ssm_path in env_ssm_exports.items():
370
370
  if env_key in resolved_env:
371
+ env_value = resolved_env[env_key]
372
+
373
+ # Handle empty values - SSM doesn't allow empty strings
374
+ # Use sentinel value "NONE" to indicate explicitly unset
375
+ if not env_value or (isinstance(env_value, str) and env_value.strip() == ""):
376
+ env_value = "NONE"
377
+ logger.info(
378
+ f"Environment variable {env_key} is empty - setting SSM parameter to 'NONE'. "
379
+ f"Lambda function should treat 'NONE' as unset/disabled."
380
+ )
381
+
371
382
  self.export_ssm_parameter(
372
383
  self,
373
384
  f"env-{env_key}-param",
374
- resolved_env[env_key],
385
+ env_value,
375
386
  ssm_path,
376
387
  description=f"Configuration for Lambda@Edge: {env_key}"
377
388
  )
@@ -0,0 +1 @@
1
+ __version__ = "0.13.5"
@@ -1 +0,0 @@
1
- __version__ = "0.13.4"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes