cdk-factory 0.15.6__tar.gz → 0.15.8__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.
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/PKG-INFO +1 -1
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/pyproject.toml +1 -1
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +33 -23
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/websites/static_website_stack.py +12 -0
- cdk_factory-0.15.8/src/cdk_factory/version.py +1 -0
- cdk_factory-0.15.6/src/cdk_factory/version.py +0 -1
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/.gitignore +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/.windsurfrules +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/LICENSE +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/README.md +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/archive/README.md +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/archive/migrate_to_enhanced_ssm.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/examples/json-imports/README.md +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/examples/separate-api-gateway/README.md +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/examples/separate-api-gateway/config.json +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/examples/separate-api-gateway/lambda-stack.json +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/mypy.ini +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/publish_to_pypi.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/publish_to_pypi.sh +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/pysetup.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/pysetup.sh +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/requirements.dev.txt +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/requirements.tests.txt +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/requirements.txt +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/run-checks.sh +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/run-tests-clean-venv.sh +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/run-tests.sh +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/scripts/cloudfront-cleanup.sh +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/app.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/builds/README.md +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/cdk.json +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/cli.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/commands/command_loader.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/base_config.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/cdk_config.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/deployment.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/deployment_wave.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/devops.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/management.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/pipeline.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/_resources.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/cognito.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/docker.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/ecr.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/rds.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/route53.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/rum.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/s3.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/security_group.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/sqs.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/vpc.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/workload.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/interfaces/istack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/lambdas/health_handler.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/pipeline/path_utils.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/pipeline/security/policies.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/pipeline/security/roles.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/pipeline/stage.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack/istack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack/stack_factory.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack/stack_module_loader.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack/stack_module_registry.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack/stack_modules.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/buckets/README.md +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/ecr/README.md +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/stack_base.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/templates/README.md +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/templates/app.py.template +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/templates/cdk.json.template +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/commandline_args.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/configuration_loader.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/docker_utilities.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/environment_services.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/file_operations.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/git_utilities.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/os_execute.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/workload/workload_factory.py +0 -0
- {cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/handlers/test/handler.py +0 -0
|
@@ -15,7 +15,7 @@ from functools import lru_cache
|
|
|
15
15
|
ssm = None
|
|
16
16
|
|
|
17
17
|
@lru_cache(maxsize=128)
|
|
18
|
-
def get_ssm_parameter(parameter_name: str, region: str = 'us-east-1') -> str:
|
|
18
|
+
def get_ssm_parameter(parameter_name: str, region: str = 'us-east-1', default: str = None) -> str:
|
|
19
19
|
"""
|
|
20
20
|
Fetch SSM parameter with caching.
|
|
21
21
|
Lambda@Edge cannot use environment variables, so we fetch from SSM.
|
|
@@ -25,9 +25,10 @@ def get_ssm_parameter(parameter_name: str, region: str = 'us-east-1') -> str:
|
|
|
25
25
|
Args:
|
|
26
26
|
parameter_name: Name of the SSM parameter
|
|
27
27
|
region: AWS region (default us-east-1)
|
|
28
|
+
default: Default value to return if parameter not found (optional)
|
|
28
29
|
|
|
29
30
|
Returns:
|
|
30
|
-
Parameter value, or empty string if value is 'NONE'
|
|
31
|
+
Parameter value, default value if parameter not found, or empty string if value is 'NONE'
|
|
31
32
|
"""
|
|
32
33
|
global ssm
|
|
33
34
|
if ssm is None:
|
|
@@ -43,8 +44,17 @@ def get_ssm_parameter(parameter_name: str, region: str = 'us-east-1') -> str:
|
|
|
43
44
|
return ''
|
|
44
45
|
|
|
45
46
|
return value
|
|
47
|
+
except ssm.exceptions.ParameterNotFound:
|
|
48
|
+
if default is not None:
|
|
49
|
+
print(f"SSM parameter {parameter_name} not found, using default: {default}")
|
|
50
|
+
return default
|
|
51
|
+
print(f"SSM parameter {parameter_name} not found and no default provided")
|
|
52
|
+
raise
|
|
46
53
|
except Exception as e:
|
|
47
54
|
print(f"Error fetching SSM parameter {parameter_name}: {str(e)}")
|
|
55
|
+
if default is not None:
|
|
56
|
+
print(f"Returning default value due to error: {default}")
|
|
57
|
+
return default
|
|
48
58
|
raise
|
|
49
59
|
|
|
50
60
|
|
|
@@ -103,7 +113,7 @@ def lambda_handler(event, context):
|
|
|
103
113
|
Configuration (fetched from SSM Parameter Store):
|
|
104
114
|
- GATE_ENABLED: Whether IP gating is enabled (true/false)
|
|
105
115
|
- ALLOW_CIDRS: Comma-separated list of allowed CIDR ranges
|
|
106
|
-
-
|
|
116
|
+
- DNS_ALIAS: CloudFront domain for backup/lockout page
|
|
107
117
|
|
|
108
118
|
Runtime configuration is bundled in runtime_config.json by CDK.
|
|
109
119
|
SSM parameter paths are auto-generated by CDK as:
|
|
@@ -162,9 +172,9 @@ def lambda_handler(event, context):
|
|
|
162
172
|
print(f"IP gating is disabled (GATE_ENABLED={gate_enabled or 'NONE'})")
|
|
163
173
|
return request
|
|
164
174
|
|
|
165
|
-
# Get allowed CIDRs and
|
|
175
|
+
# Get allowed CIDRs and backup host
|
|
166
176
|
allow_cidrs_str = get_ssm_parameter(f'/{env}/{function_name}/allow-cidrs', 'us-east-1')
|
|
167
|
-
|
|
177
|
+
dns_alias = get_ssm_parameter(f'/{env}/{function_name}/dns-alias', 'us-east-1')
|
|
168
178
|
|
|
169
179
|
# Parse allowed CIDRs (empty string results in empty list)
|
|
170
180
|
allowed_cidrs = [cidr.strip() for cidr in allow_cidrs_str.split(',') if cidr.strip()]
|
|
@@ -178,35 +188,35 @@ def lambda_handler(event, context):
|
|
|
178
188
|
print(f"IP {client_ip} is allowed")
|
|
179
189
|
return request
|
|
180
190
|
|
|
181
|
-
# IP not allowed - either redirect or proxy
|
|
191
|
+
# IP not allowed - either redirect or proxy backup page
|
|
182
192
|
# Check response mode from SSM (default: redirect for backward compatibility)
|
|
183
|
-
response_mode_param = f"/{function_name}/response-mode"
|
|
184
|
-
response_mode = get_ssm_parameter(response_mode_param, default='redirect')
|
|
193
|
+
response_mode_param = f"/{env}/{function_name}/response-mode"
|
|
194
|
+
response_mode = get_ssm_parameter(response_mode_param, 'us-east-1', default='redirect')
|
|
185
195
|
|
|
186
196
|
if response_mode == 'proxy':
|
|
187
|
-
# Proxy mode: Fetch and return
|
|
188
|
-
print(f"IP {client_ip} is NOT allowed, proxying content from {
|
|
197
|
+
# Proxy mode: Fetch and return backup content (keeps URL the same)
|
|
198
|
+
print(f"IP {client_ip} is NOT allowed, proxying content from {dns_alias}")
|
|
189
199
|
|
|
190
200
|
try:
|
|
191
201
|
import urllib3
|
|
192
202
|
http = urllib3.PoolManager()
|
|
193
203
|
|
|
194
|
-
# Fetch the
|
|
195
|
-
|
|
204
|
+
# Fetch the backup page - always request /index.html
|
|
205
|
+
alias_response = http.request(
|
|
196
206
|
'GET',
|
|
197
|
-
f'https://{
|
|
207
|
+
f'https://{dns_alias}/index.html',
|
|
198
208
|
headers={'User-Agent': 'CloudFront-IP-Gate-Proxy'},
|
|
199
209
|
timeout=3.0
|
|
200
210
|
)
|
|
201
211
|
|
|
202
|
-
# Return the
|
|
212
|
+
# Return the backup content
|
|
203
213
|
response = {
|
|
204
|
-
'status': str(
|
|
205
|
-
'statusDescription': 'OK' if
|
|
214
|
+
'status': str(alias_response.status),
|
|
215
|
+
'statusDescription': 'OK' if alias_response.status == 200 else 'Service Unavailable',
|
|
206
216
|
'headers': {
|
|
207
217
|
'content-type': [{
|
|
208
218
|
'key': 'Content-Type',
|
|
209
|
-
'value':
|
|
219
|
+
'value': alias_response.headers.get('Content-Type', 'text/html')
|
|
210
220
|
}],
|
|
211
221
|
'cache-control': [{
|
|
212
222
|
'key': 'Cache-Control',
|
|
@@ -217,20 +227,20 @@ def lambda_handler(event, context):
|
|
|
217
227
|
'value': 'proxy'
|
|
218
228
|
}]
|
|
219
229
|
},
|
|
220
|
-
'body':
|
|
230
|
+
'body': alias_response.data.decode('utf-8')
|
|
221
231
|
}
|
|
222
232
|
|
|
223
|
-
print(f"Successfully proxied
|
|
233
|
+
print(f"Successfully proxied backup page (status {alias_response.status})")
|
|
224
234
|
return response
|
|
225
235
|
|
|
226
236
|
except Exception as proxy_error:
|
|
227
|
-
print(f"Error proxying
|
|
237
|
+
print(f"Error proxying backup content: {str(proxy_error)}")
|
|
228
238
|
# Fall back to redirect if proxy fails
|
|
229
239
|
print(f"Falling back to redirect mode")
|
|
230
240
|
response_mode = 'redirect'
|
|
231
241
|
|
|
232
|
-
# Redirect mode (default): HTTP 302 redirect to
|
|
233
|
-
print(f"IP {client_ip} is NOT allowed, redirecting to {
|
|
242
|
+
# Redirect mode (default): HTTP 302 redirect to backup site
|
|
243
|
+
print(f"IP {client_ip} is NOT allowed, redirecting to {dns_alias}")
|
|
234
244
|
|
|
235
245
|
response = {
|
|
236
246
|
'status': '302',
|
|
@@ -238,7 +248,7 @@ def lambda_handler(event, context):
|
|
|
238
248
|
'headers': {
|
|
239
249
|
'location': [{
|
|
240
250
|
'key': 'Location',
|
|
241
|
-
'value': f'https://{
|
|
251
|
+
'value': f'https://{dns_alias}'
|
|
242
252
|
}],
|
|
243
253
|
'cache-control': [{
|
|
244
254
|
'key': 'Cache-Control',
|
|
@@ -261,6 +261,18 @@ class StaticWebSiteStack(IStack):
|
|
|
261
261
|
description=f"CloudFront distribution ID for {stack_config.name}",
|
|
262
262
|
)
|
|
263
263
|
|
|
264
|
+
# Export DNS alias (first alias) if configured
|
|
265
|
+
if "dns_alias" in ssm_exports and cloudfront_distribution.aliases:
|
|
266
|
+
# Export the first alias (primary domain)
|
|
267
|
+
primary_alias = cloudfront_distribution.aliases[0] if isinstance(cloudfront_distribution.aliases, list) else cloudfront_distribution.aliases
|
|
268
|
+
self.export_ssm_parameter(
|
|
269
|
+
scope=self,
|
|
270
|
+
id="SsmExportDnsAlias",
|
|
271
|
+
value=primary_alias,
|
|
272
|
+
parameter_name=ssm_exports["dns_alias"],
|
|
273
|
+
description=f"Primary DNS alias for {stack_config.name}",
|
|
274
|
+
)
|
|
275
|
+
|
|
264
276
|
logger.info(f"Exported {len(ssm_exports)} SSM parameters for stack {stack_config.name}")
|
|
265
277
|
|
|
266
278
|
def __get_version_number(self, assets_path: str) -> str:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.15.8"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.15.6"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/examples/separate-api-gateway/api-gateway-stack.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/enhanced_base_config.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/enhanced_ssm_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/_resources.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/api_gateway.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/auto_scaling.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/cloudfront.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/code_artifact.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/cognito.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/docker.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/dynamodb.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/ecs_service.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/exisiting.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/lambda_edge.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/lambda_layers.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/load_balancer.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/monitoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/resource_types.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/route53.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/configurations/resources/security_group.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/auto_scaling/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/buckets/bucket_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/cloudfront/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/cognito/cognito_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/lambda_edge/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/load_balancer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/monitoring/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/route53/route53_stack.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stack_library/security_group/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/stages/websites/static_website_stage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.15.6 → cdk_factory-0.15.8}/src/cdk_factory/utilities/lambda_function_utilities.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|