cdk-factory 0.8.4__py3-none-any.whl → 0.8.6__py3-none-any.whl

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.

@@ -137,7 +137,14 @@ class EnhancedSsmConfig:
137
137
  if self.ssm_imports:
138
138
  if isinstance(self.ssm_imports, dict):
139
139
  # Handle dict format: {"attribute": "auto" or path}
140
+ # Skip metadata fields that are not actual imports
141
+ metadata_fields = {"workload", "environment", "organization"}
142
+
140
143
  for attribute, import_value in self.ssm_imports.items():
144
+ # Skip metadata fields - they specify context, not what to import
145
+ if attribute in metadata_fields:
146
+ continue
147
+
141
148
  if import_value == "auto":
142
149
  # Use auto-discovery with source mapping
143
150
  imports_config = RESOURCE_AUTO_IMPORTS.get(self.resource_type, {})
@@ -365,6 +365,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
365
365
  This is the NEW PATTERN for separating Lambda and API Gateway stacks.
366
366
  """
367
367
  route_path = route["path"]
368
+ method = route.get("method", "GET").upper()
368
369
  suffix = self._get_route_suffix(route) # Use shared method for consistent suffix calculation
369
370
 
370
371
  # Get Lambda ARN from SSM Parameter Store
@@ -376,15 +377,30 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
376
377
  f"Ensure Lambda stack has deployed and exported ARN to SSM."
377
378
  )
378
379
 
379
- # Import Lambda function from ARN
380
- lambda_fn = _lambda.Function.from_function_arn(
380
+ # Import Lambda function from ARN using fromFunctionAttributes
381
+ # This allows us to add permissions even for imported functions
382
+ lambda_fn = _lambda.Function.from_function_attributes(
381
383
  self,
382
384
  f"{api_id}-imported-lambda-{suffix}",
383
- lambda_arn
385
+ function_arn=lambda_arn,
386
+ same_environment=True # Allow permission grants for same-account imports
384
387
  )
385
388
 
386
389
  logger.info(f"Imported Lambda for route {route_path}: {lambda_arn}")
387
390
 
391
+ # Add explicit resource-based permission for this specific API Gateway
392
+ # This is CRITICAL for cross-stack Lambda integrations
393
+ _lambda.CfnPermission(
394
+ self,
395
+ f"lambda-permission-{suffix}",
396
+ action="lambda:InvokeFunction",
397
+ function_name=lambda_fn.function_arn,
398
+ principal="apigateway.amazonaws.com",
399
+ source_arn=f"arn:aws:execute-api:{self.region}:{self.account}:{api_gateway.rest_api_id}/*/{method}{route_path}"
400
+ )
401
+
402
+ logger.info(f"Granted API Gateway invoke permissions for Lambda: {lambda_arn}")
403
+
388
404
  # Setup API Gateway resource
389
405
  resource = (
390
406
  api_gateway.root.resource_for_path(route_path)
cdk_factory/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.8.4"
1
+ __version__ = "0.8.6"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdk_factory
3
- Version: 0.8.4
3
+ Version: 0.8.6
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
@@ -1,7 +1,7 @@
1
1
  cdk_factory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cdk_factory/app.py,sha256=xv863N7O6HPKznB68_t7O4la9JacrkG87t9TjoDUk7s,2827
3
3
  cdk_factory/cdk.json,sha256=SKZKhJ2PBpFH78j-F8S3VDYW-lf76--Q2I3ON-ZIQfw,3106
4
- cdk_factory/version.py,sha256=jhHEJFZWhkQDemoZMomBYq-RNrKXknYzUaeIU9A6XsI,22
4
+ cdk_factory/version.py,sha256=VpASnrti7EGWxUfSWGgERUfe7NLJltfVXYosOzHbpPg,22
5
5
  cdk_factory/builds/README.md,sha256=9BBWd7bXpyKdMU_g2UljhQwrC9i5O_Tvkb6oPvndoZk,90
6
6
  cdk_factory/commands/command_loader.py,sha256=QbLquuP_AdxtlxlDy-2IWCQ6D-7qa58aphnDPtp_uTs,3744
7
7
  cdk_factory/configurations/base_config.py,sha256=JKjhNsy0RCUZy1s8n5D_aXXI-upR9izaLtCTfKYiV9k,9624
@@ -10,7 +10,7 @@ cdk_factory/configurations/deployment.py,sha256=LO2gd1yv1nqlX_2MIjRXptylFybWiTKs
10
10
  cdk_factory/configurations/deployment_wave.py,sha256=TFX7CYgr5SmLyziEb-R_OTteFWtlMHB4pT53ekV3d1Y,233
11
11
  cdk_factory/configurations/devops.py,sha256=PG-s2ldZmMULheWdKf2lf2LSugLoKiOKyLELTZJJxu8,2506
12
12
  cdk_factory/configurations/enhanced_base_config.py,sha256=Y1gcGZxyf_O2KFnVpCBORSGHWHqHxw0vNx_ijMad_QA,6654
13
- cdk_factory/configurations/enhanced_ssm_config.py,sha256=VDmIUSrj8nYS6fE9DdOp5yi9jUfMfitz5A7kCuPS-kI,12895
13
+ cdk_factory/configurations/enhanced_ssm_config.py,sha256=KXRYMHztlqZAAnKNt1pfMvctLZJw6TvR1BrHNejLA6I,13254
14
14
  cdk_factory/configurations/management.py,sha256=TSOIyxO9hGNxbgiTsS8a3pz03ungXiNqPPtZtfOpr8M,1373
15
15
  cdk_factory/configurations/pipeline.py,sha256=3RmRP1GIk42rjYZ-A9H3357RcO13IA47N-2IQcBkySQ,4939
16
16
  cdk_factory/configurations/pipeline_stage.py,sha256=eAT-FoIepIuv5tObk4TXlCN47FaatQO2rrFchgbMdXU,3415
@@ -73,7 +73,7 @@ cdk_factory/stack/stack_module_registry.py,sha256=J14-A75VZESzRQa8p-Fepdap7Z8T7m
73
73
  cdk_factory/stack/stack_modules.py,sha256=kgEK-j0smZPozVwTCfM1g1V17EyTBT0TXAQZq4vZz0o,784
74
74
  cdk_factory/stack_library/__init__.py,sha256=5Y9TpIe8ZK1688G60PGcuP-hM0RvYEY_3Hl2qJCJJrw,581
75
75
  cdk_factory/stack_library/stack_base.py,sha256=tTleSFmlf26DuKVF_ytftf8P7IVWb5iex8cYfYupfvQ,4940
76
- cdk_factory/stack_library/api_gateway/api_gateway_stack.py,sha256=BWhawbwGHggKQN3QLolZhdECoeTTnTBTrRo2hTJC570,38469
76
+ cdk_factory/stack_library/api_gateway/api_gateway_stack.py,sha256=l6J5uurBQqbhj9JuvQitV9PiIHS5kqa-dFWifCeA3GM,39347
77
77
  cdk_factory/stack_library/auto_scaling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py,sha256=UsFqUb_3XPJAlmZ6F75nXna3elOggD1KuFmmdmhi0Lg,19070
79
79
  cdk_factory/stack_library/aws_lambdas/lambda_stack.py,sha256=SFbBPvvCopbyiuYtq-O5sQkFCf94Wzua6aDUXiFDSB4,26161
@@ -112,7 +112,7 @@ cdk_factory/utilities/lambda_function_utilities.py,sha256=S1GvBsY_q2cyUiaud3HORJ
112
112
  cdk_factory/utilities/os_execute.py,sha256=5Op0LY_8Y-pUm04y1k8MTpNrmQvcLmQHPQITEP7EuSU,1019
113
113
  cdk_factory/utils/api_gateway_utilities.py,sha256=If7Xu5s_UxmuV-kL3JkXxPLBdSVUKoLtohm0IUFoiV8,4378
114
114
  cdk_factory/workload/workload_factory.py,sha256=yBUDGIuB8-5p_mGcVFxsD2ZoZIziak3yh3LL3JvS0M4,5903
115
- cdk_factory-0.8.4.dist-info/METADATA,sha256=572maX0Tw7QqvxXl2uv9m9eL3sFTGU8ecVlQS5SdfLY,2450
116
- cdk_factory-0.8.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
117
- cdk_factory-0.8.4.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
118
- cdk_factory-0.8.4.dist-info/RECORD,,
115
+ cdk_factory-0.8.6.dist-info/METADATA,sha256=mUv6yefoPl6Uh9Gx3Y3TmjIJd2YuzRAmBKpKqpeNitE,2450
116
+ cdk_factory-0.8.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
117
+ cdk_factory-0.8.6.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
118
+ cdk_factory-0.8.6.dist-info/RECORD,,