cdk-factory 0.9.1__tar.gz → 0.9.2__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 (147) hide show
  1. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/PKG-INFO +1 -1
  2. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/pyproject.toml +1 -1
  3. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/app.py +70 -36
  4. cdk_factory-0.9.2/src/cdk_factory/version.py +1 -0
  5. cdk_factory-0.9.1/src/cdk_factory/version.py +0 -1
  6. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/.gitignore +0 -0
  7. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/.windsurfrules +0 -0
  8. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/LICENSE +0 -0
  9. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/README.md +0 -0
  10. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/archive/README.md +0 -0
  11. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/archive/migrate_to_enhanced_ssm.py +0 -0
  12. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/examples/json-imports/README.md +0 -0
  13. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/examples/separate-api-gateway/README.md +0 -0
  14. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  15. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/examples/separate-api-gateway/config.json +0 -0
  16. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/examples/separate-api-gateway/lambda-stack.json +0 -0
  17. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/mypy.ini +0 -0
  18. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/publish_to_pypi.py +0 -0
  19. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/publish_to_pypi.sh +0 -0
  20. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/pysetup.py +0 -0
  21. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/pysetup.sh +0 -0
  22. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/requirements.dev.txt +0 -0
  23. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/requirements.tests.txt +0 -0
  24. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/requirements.txt +0 -0
  25. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/run-checks.sh +0 -0
  26. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/run-tests-clean-venv.sh +0 -0
  27. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/run-tests.sh +0 -0
  28. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/__init__.py +0 -0
  29. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/builds/README.md +0 -0
  30. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/cdk.json +0 -0
  31. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/cli.py +0 -0
  32. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/commands/command_loader.py +0 -0
  33. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/base_config.py +0 -0
  34. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/cdk_config.py +0 -0
  35. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/deployment.py +0 -0
  36. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  37. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/devops.py +0 -0
  38. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  39. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  40. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/management.py +0 -0
  41. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/pipeline.py +0 -0
  42. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  43. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  44. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  45. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  46. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
  47. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  48. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  49. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  50. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  51. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  52. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  53. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/docker.py +0 -0
  54. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  55. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  56. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  57. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  58. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  59. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  60. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  61. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  62. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/rds.py +0 -0
  63. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  64. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  65. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  66. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/route53.py +0 -0
  67. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  68. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/rum.py +0 -0
  69. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/s3.py +0 -0
  70. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  71. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
  72. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  73. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  74. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/stack.py +0 -0
  75. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/configurations/workload.py +0 -0
  76. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
  77. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  78. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  79. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  80. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  81. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  82. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  83. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  84. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  85. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  86. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  87. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
  88. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/interfaces/istack.py +0 -0
  89. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  90. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
  91. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/lambdas/health_handler.py +0 -0
  92. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  93. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/pipeline/security/policies.py +0 -0
  94. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/pipeline/security/roles.py +0 -0
  95. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/pipeline/stage.py +0 -0
  96. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack/istack.py +0 -0
  97. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack/stack_factory.py +0 -0
  98. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  99. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  100. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack/stack_modules.py +0 -0
  101. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/__init__.py +0 -0
  102. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  103. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  104. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
  105. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  106. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  107. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  108. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  109. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  110. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  111. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  112. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  113. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  114. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  115. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  116. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
  117. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  118. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  119. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  120. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  121. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  122. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  123. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  124. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
  125. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  126. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  127. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/stack_base.py +0 -0
  128. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  129. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
  130. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  131. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  132. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/templates/README.md +0 -0
  133. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/templates/app.py.template +0 -0
  134. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/templates/cdk.json.template +0 -0
  135. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
  136. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/commandline_args.py +0 -0
  137. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  138. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  139. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/environment_services.py +0 -0
  140. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/file_operations.py +0 -0
  141. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/git_utilities.py +0 -0
  142. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  143. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  144. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utilities/os_execute.py +0 -0
  145. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  146. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/src/cdk_factory/workload/workload_factory.py +0 -0
  147. {cdk_factory-0.9.1 → cdk_factory-0.9.2}/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.9.1
3
+ Version: 0.9.2
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.9.1"
36
+ version = "0.9.2"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -37,14 +37,11 @@ class CdkAppFactory:
37
37
 
38
38
  # Auto-detect outdir for CodeBuild compatibility
39
39
  if outdir is None and self.args.outdir is None and auto_detect_project_root:
40
- # Check if we're in CodeBuild or building a pipeline
40
+ # Check if we're in CodeBuild
41
41
  in_codebuild = bool(os.getenv('CODEBUILD_SRC_DIR'))
42
42
 
43
- # Auto-detect if this is a pipeline deployment by checking config
44
- is_pipeline_deployment = is_pipeline or self._check_if_pipeline_deployment(config_path)
45
-
46
- if in_codebuild or is_pipeline_deployment:
47
- # For pipelines/CodeBuild: calculate relative path to project_root/cdk.out
43
+ if in_codebuild or is_pipeline:
44
+ # For CodeBuild or explicit pipeline flag: calculate relative path to project_root/cdk.out
48
45
  # This ensures cdk.out is at project root and works in CodeBuild
49
46
  project_root = self._detect_project_root()
50
47
  runtime_path = Path(self.runtime_directory).resolve()
@@ -58,13 +55,13 @@ class CdkAppFactory:
58
55
  if in_codebuild:
59
56
  print(f"📦 CodeBuild detected: using relative path '{relative_path}'")
60
57
  else:
61
- print(f"📦 Pipeline deployment detected: using relative path '{relative_path}'")
58
+ print(f"📦 Pipeline mode: using relative path '{relative_path}'")
62
59
  except ValueError:
63
60
  # If paths are on different drives (Windows), fallback to absolute
64
61
  self.outdir = str(cdk_out_path)
65
62
  else:
66
63
  # For local dev: use CDK default (./cdk.out in current directory)
67
- # This allows CDK CLI to find it when running from any directory
64
+ # This allows CDK CLI to find it when running 'cdk synth' or 'cdk deploy'
68
65
  self.outdir = None
69
66
  else:
70
67
  self.outdir = outdir or self.args.outdir
@@ -84,6 +81,16 @@ class CdkAppFactory:
84
81
  """
85
82
 
86
83
  print(f"👋 Synthesizing CDK App from the cdk-factory version: {__version__}")
84
+
85
+ # Log outdir configuration
86
+ if self.outdir:
87
+ resolved_outdir = str(Path(self.outdir).resolve()) if not os.path.isabs(self.outdir) else self.outdir
88
+ print(f"📂 CDK output directory configured: {self.outdir}")
89
+ if not os.path.isabs(self.outdir):
90
+ print(f" └─ Resolves to: {resolved_outdir}")
91
+ else:
92
+ print(f"📂 CDK output directory: using CDK default (./cdk.out in current directory)")
93
+ print(f" └─ Current directory: {os.getcwd()}")
87
94
 
88
95
  if not paths:
89
96
  paths = []
@@ -118,8 +125,63 @@ class CdkAppFactory:
118
125
  assembly: CloudAssembly = workload.synth()
119
126
 
120
127
  print("☁️ cloud assembly dir", assembly.directory)
128
+
129
+ # Validate that the assembly directory exists and has files
130
+ self._validate_synth_output(assembly)
121
131
 
122
132
  return assembly
133
+
134
+ def _validate_synth_output(self, assembly: CloudAssembly) -> None:
135
+ """
136
+ Validate that CDK synthesis actually created the expected files.
137
+
138
+ Args:
139
+ assembly: The CloudAssembly returned from synth
140
+
141
+ Raises:
142
+ RuntimeError: If the output directory doesn't exist or is empty
143
+ """
144
+ assembly_dir = Path(assembly.directory)
145
+
146
+ # Check if directory exists
147
+ if not assembly_dir.exists():
148
+ raise RuntimeError(
149
+ f"❌ CDK synthesis failed: Output directory does not exist!\n"
150
+ f" Expected: {assembly_dir}\n"
151
+ f" Configured outdir: {self.outdir}\n"
152
+ f" Current directory: {os.getcwd()}"
153
+ )
154
+
155
+ # Check if directory has files
156
+ files = list(assembly_dir.iterdir())
157
+ if not files:
158
+ raise RuntimeError(
159
+ f"❌ CDK synthesis failed: Output directory is empty!\n"
160
+ f" Directory: {assembly_dir}\n"
161
+ f" This usually means CDK failed to write files."
162
+ )
163
+
164
+ # Check for manifest.json (key CDK file)
165
+ manifest = assembly_dir / "manifest.json"
166
+ if not manifest.exists():
167
+ raise RuntimeError(
168
+ f"❌ CDK synthesis incomplete: manifest.json not found!\n"
169
+ f" Directory: {assembly_dir}\n"
170
+ f" Files found: {[f.name for f in files]}\n"
171
+ f" CDK may have failed during synthesis."
172
+ )
173
+
174
+ # Success - log details
175
+ print(f"✅ CDK synthesis successful!")
176
+ print(f" └─ Output directory: {assembly_dir}")
177
+ print(f" └─ Files created: {len(files)}")
178
+ print(f" └─ Stacks: {len(assembly.stacks)}")
179
+
180
+ # Log stack names
181
+ if assembly.stacks:
182
+ stack_names = [stack.stack_name for stack in assembly.stacks]
183
+ for stack_name in stack_names:
184
+ print(f" • {stack_name}")
123
185
 
124
186
  def _detect_project_root(self) -> str:
125
187
  """
@@ -185,34 +247,6 @@ class CdkAppFactory:
185
247
  # Priority 4: Fallback to runtime_directory
186
248
  return str(current)
187
249
 
188
- def _check_if_pipeline_deployment(self, config_path: str | None) -> bool:
189
- """
190
- Check if the configuration includes pipeline deployments with CI/CD enabled.
191
- Returns True if pipelines are detected, False otherwise.
192
- """
193
- if not config_path or not os.path.exists(config_path):
194
- return False
195
-
196
- try:
197
- import json
198
- with open(config_path, 'r') as f:
199
- config = json.load(f)
200
-
201
- # Check for workload.deployments with CI/CD enabled
202
- workload = config.get('workload', {})
203
- deployments = workload.get('deployments', [])
204
-
205
- for deployment in deployments:
206
- devops = deployment.get('devops', {})
207
- ci_cd = devops.get('ci_cd', {})
208
- if ci_cd.get('enabled', False):
209
- return True
210
-
211
- return False
212
- except:
213
- # If we can't read/parse the config, assume not a pipeline
214
- return False
215
-
216
250
 
217
251
  if __name__ == "__main__":
218
252
  # deploy_test()
@@ -0,0 +1 @@
1
+ __version__ = "0.9.2"
@@ -1 +0,0 @@
1
- __version__ = "0.9.1"
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