cdk-factory 0.15.8__tar.gz → 0.15.9__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 (158) hide show
  1. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/.gitignore +2 -1
  2. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/PKG-INFO +1 -1
  3. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/pyproject.toml +1 -1
  4. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/security_group_full_stack.py +13 -0
  5. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +73 -0
  6. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/api_gateway_integration_utility.py +3 -1
  7. cdk_factory-0.15.9/src/cdk_factory/version.py +1 -0
  8. cdk_factory-0.15.8/src/cdk_factory/version.py +0 -1
  9. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/.windsurfrules +0 -0
  10. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/LICENSE +0 -0
  11. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/README.md +0 -0
  12. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/archive/README.md +0 -0
  13. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/archive/migrate_to_enhanced_ssm.py +0 -0
  14. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/examples/json-imports/README.md +0 -0
  15. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/examples/separate-api-gateway/README.md +0 -0
  16. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  17. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/examples/separate-api-gateway/config.json +0 -0
  18. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/examples/separate-api-gateway/lambda-stack.json +0 -0
  19. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/mypy.ini +0 -0
  20. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/publish_to_pypi.py +0 -0
  21. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/publish_to_pypi.sh +0 -0
  22. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/pysetup.py +0 -0
  23. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/pysetup.sh +0 -0
  24. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/requirements.dev.txt +0 -0
  25. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/requirements.tests.txt +0 -0
  26. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/requirements.txt +0 -0
  27. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/run-checks.sh +0 -0
  28. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/run-tests-clean-venv.sh +0 -0
  29. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/run-tests.sh +0 -0
  30. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/scripts/cloudfront-cleanup.sh +0 -0
  31. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/__init__.py +0 -0
  32. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/app.py +0 -0
  33. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/builds/README.md +0 -0
  34. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/cdk.json +0 -0
  35. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/cli.py +0 -0
  36. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/commands/command_loader.py +0 -0
  37. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/base_config.py +0 -0
  38. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/cdk_config.py +0 -0
  39. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/deployment.py +0 -0
  40. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  41. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/devops.py +0 -0
  42. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  43. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  44. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/management.py +0 -0
  45. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/pipeline.py +0 -0
  46. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  47. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  48. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  49. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  50. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
  51. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  52. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  53. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  54. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  55. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  56. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  57. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/docker.py +0 -0
  58. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  59. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  60. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  61. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  62. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
  63. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  64. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  65. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  66. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  67. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
  68. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/rds.py +0 -0
  69. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  70. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  71. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  72. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/route53.py +0 -0
  73. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  74. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/rum.py +0 -0
  75. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/s3.py +0 -0
  76. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  77. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  78. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  79. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/stack.py +0 -0
  80. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/configurations/workload.py +0 -0
  81. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
  82. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  83. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  84. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  85. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  86. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  87. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  88. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  89. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  90. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  91. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  92. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
  93. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/interfaces/istack.py +0 -0
  94. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  95. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
  96. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
  97. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/lambdas/health_handler.py +0 -0
  98. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/pipeline/path_utils.py +0 -0
  99. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  100. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/pipeline/security/policies.py +0 -0
  101. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/pipeline/security/roles.py +0 -0
  102. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/pipeline/stage.py +0 -0
  103. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack/istack.py +0 -0
  104. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack/stack_factory.py +0 -0
  105. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  106. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  107. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack/stack_modules.py +0 -0
  108. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/__init__.py +0 -0
  109. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  110. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  111. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
  112. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  113. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  114. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  115. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
  116. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
  117. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  118. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  119. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  120. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  121. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  122. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  123. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  124. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
  125. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +0 -0
  126. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  127. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
  128. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
  129. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
  130. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  131. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  132. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  133. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  134. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  135. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  136. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  137. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  138. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  139. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/stack_base.py +0 -0
  140. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  141. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
  142. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  143. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  144. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/templates/README.md +0 -0
  145. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/templates/app.py.template +0 -0
  146. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/templates/cdk.json.template +0 -0
  147. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/commandline_args.py +0 -0
  148. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  149. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  150. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/environment_services.py +0 -0
  151. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/file_operations.py +0 -0
  152. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/git_utilities.py +0 -0
  153. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  154. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  155. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utilities/os_execute.py +0 -0
  156. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  157. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/cdk_factory/workload/workload_factory.py +0 -0
  158. {cdk_factory-0.15.8 → cdk_factory-0.15.9}/src/handlers/test/handler.py +0 -0
@@ -197,4 +197,5 @@ activate.sh
197
197
  .lambda_package
198
198
 
199
199
  # Lambda runtime config (generated during CDK deployment)
200
- **/runtime_config.json
200
+ **/runtime_config.json
201
+ .pip/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdk_factory
3
- Version: 0.15.8
3
+ Version: 0.15.9
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.15.8"
36
+ version = "0.15.9"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -69,3 +69,16 @@ class SecurityGroupFullStackConfig:
69
69
  if "ssm" in self.__config and "imports" in self.__config["ssm"]:
70
70
  return self.__config["ssm"]["imports"]
71
71
  return self.__config.get("ssm_imports", {})
72
+
73
+ @property
74
+ def ssm_exports(self) -> Dict[str, str]:
75
+ """SSM parameter exports for the Security Group"""
76
+ # Check both nested and flat structures for backwards compatibility
77
+ if "ssm" in self.__config and "exports" in self.__config["ssm"]:
78
+ return self.__config["ssm"]["exports"]
79
+ return self.__config.get("ssm_exports", {})
80
+
81
+ @property
82
+ def security_groups(self) -> List[Dict[str, Any]]:
83
+ """List of security groups to create"""
84
+ return self.__config.get("security_groups", [])
@@ -225,6 +225,18 @@ class SecurityGroupsStack(IStack):
225
225
  export_name=f"{self.deployment.environment}-{self.workload.name}-WebMonitoringSecurityGroup",
226
226
  )
227
227
 
228
+ # =========================================================
229
+ # SSM Parameter Store Exports
230
+ # =========================================================
231
+ self._export_ssm_parameters(
232
+ security_groups_map={
233
+ "alb": alb_sg,
234
+ "ecs": web_fleet_sg,
235
+ "rds": mysql_sg,
236
+ "monitoring": monitoring_sg,
237
+ }
238
+ )
239
+
228
240
  def _process_ssm_imports(self) -> None:
229
241
  """
230
242
  Process SSM imports from configuration.
@@ -287,3 +299,64 @@ class SecurityGroupsStack(IStack):
287
299
  raise ValueError("VPC ID is not defined in the configuration or SSM imports.")
288
300
 
289
301
  return self._vpc
302
+
303
+ def _export_ssm_parameters(self, security_groups_map: Dict[str, ec2.CfnSecurityGroup]) -> None:
304
+ """
305
+ Export security group IDs to SSM Parameter Store based on configuration.
306
+
307
+ Args:
308
+ security_groups_map: Dictionary mapping security group types to their CDK resources
309
+ """
310
+ # Get the security groups configuration list from the config
311
+ security_groups_config = self.sg_config.security_groups
312
+
313
+ if not security_groups_config:
314
+ logger.debug("No security groups configuration found for SSM exports")
315
+ return
316
+
317
+ logger.info(f"Processing SSM exports for {len(security_groups_config)} security groups")
318
+
319
+ # Process each security group configuration
320
+ for sg_config in security_groups_config:
321
+ # Get the security group name and SSM exports
322
+ sg_name = sg_config.get("name", "")
323
+ ssm_config = sg_config.get("ssm", {})
324
+ ssm_exports = ssm_config.get("exports", {})
325
+
326
+ if not ssm_exports:
327
+ logger.debug(f"No SSM exports configured for security group: {sg_name}")
328
+ continue
329
+
330
+ # Determine which security group this config refers to based on the name pattern
331
+ # The config uses patterns like "{{WORKLOAD_NAME}}-{{ENVIRONMENT}}-rds-sg"
332
+ sg_resource = None
333
+ sg_type = None
334
+
335
+ if "-rds-sg" in sg_name or "-rds" in sg_name:
336
+ sg_resource = security_groups_map.get("rds")
337
+ sg_type = "rds"
338
+ elif "-ecs-sg" in sg_name or "instances" in sg_name:
339
+ sg_resource = security_groups_map.get("ecs")
340
+ sg_type = "ecs"
341
+ elif "-alb-sg" in sg_name or "alb" in sg_name:
342
+ sg_resource = security_groups_map.get("alb")
343
+ sg_type = "alb"
344
+ elif "monitoring" in sg_name:
345
+ sg_resource = security_groups_map.get("monitoring")
346
+ sg_type = "monitoring"
347
+
348
+ if not sg_resource:
349
+ logger.warning(f"Could not map security group configuration to resource: {sg_name}")
350
+ continue
351
+
352
+ # Export the security group ID if configured
353
+ security_group_id_path = ssm_exports.get("security_group_id")
354
+ if security_group_id_path:
355
+ self.export_ssm_parameter(
356
+ scope=self,
357
+ id=f"SsmExport{sg_type.upper()}SecurityGroupId",
358
+ value=sg_resource.ref,
359
+ parameter_name=security_group_id_path,
360
+ description=f"Security Group ID for {sg_type} ({sg_name})",
361
+ )
362
+ logger.info(f"Exported SSM parameter: {security_group_id_path} for {sg_type} security group")
@@ -1425,7 +1425,9 @@ class ApiGatewayIntegrationUtility:
1425
1425
  f" 2. Add 'allow_public_override': true to explicitly allow public access\n"
1426
1426
  f" 3. Remove 'authorization_type': 'NONE' to use secure Cognito auth\n\n"
1427
1427
  f"🔒 This prevents accidental public endpoints when authentication is available.\n\n"
1428
- f"👉 ApiGatewayIntegrationUtility documentation for more details: https://github.com/your-repo/api-gateway-stack"
1428
+ f"👉 ApiGatewayIntegrationUtility documentation for more details: \n\n "
1429
+ "\t https://github.com/geekcafe/cdk-factory/blob/main/src/cdk_factory/utilities/api_gateway_integration_utility.py \n\n"
1430
+ "\t and https://github.com/geekcafe/cdk-factory/blob/main/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py"
1429
1431
  )
1430
1432
  raise ValueError(error_msg)
1431
1433
 
@@ -0,0 +1 @@
1
+ __version__ = "0.15.9"
@@ -1 +0,0 @@
1
- __version__ = "0.15.8"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes