cdk-factory 0.13.4__py3-none-any.whl → 0.13.5__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.
- cdk_factory/lambdas/edge/ip_gate/handler.py +15 -5
- cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +12 -1
- cdk_factory/version.py +1 -1
- {cdk_factory-0.13.4.dist-info → cdk_factory-0.13.5.dist-info}/METADATA +1 -1
- {cdk_factory-0.13.4.dist-info → cdk_factory-0.13.5.dist-info}/RECORD +8 -8
- {cdk_factory-0.13.4.dist-info → cdk_factory-0.13.5.dist-info}/WHEEL +0 -0
- {cdk_factory-0.13.4.dist-info → cdk_factory-0.13.5.dist-info}/entry_points.txt +0 -0
- {cdk_factory-0.13.4.dist-info → cdk_factory-0.13.5.dist-info}/licenses/LICENSE +0 -0
|
@@ -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
|
-
|
|
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
|
-
|
|
144
|
-
|
|
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
|
-
|
|
385
|
+
env_value,
|
|
375
386
|
ssm_path,
|
|
376
387
|
description=f"Configuration for Lambda@Edge: {env_key}"
|
|
377
388
|
)
|
cdk_factory/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.13.
|
|
1
|
+
__version__ = "0.13.5"
|
|
@@ -2,7 +2,7 @@ cdk_factory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
2
2
|
cdk_factory/app.py,sha256=RnX0-pwdTAPAdKJK_j13Zl8anf9zYKBwboR0KA8K8xM,10346
|
|
3
3
|
cdk_factory/cdk.json,sha256=SKZKhJ2PBpFH78j-F8S3VDYW-lf76--Q2I3ON-ZIQfw,3106
|
|
4
4
|
cdk_factory/cli.py,sha256=FGbCTS5dYCNsfp-etshzvFlGDCjC28r6rtzYbe7KoHI,6407
|
|
5
|
-
cdk_factory/version.py,sha256=
|
|
5
|
+
cdk_factory/version.py,sha256=SPNxRvWdZ_wlG_AeFzA45_LV_z5u-nzgOJwVcknxEJ8,23
|
|
6
6
|
cdk_factory/builds/README.md,sha256=9BBWd7bXpyKdMU_g2UljhQwrC9i5O_Tvkb6oPvndoZk,90
|
|
7
7
|
cdk_factory/commands/command_loader.py,sha256=QbLquuP_AdxtlxlDy-2IWCQ6D-7qa58aphnDPtp_uTs,3744
|
|
8
8
|
cdk_factory/configurations/base_config.py,sha256=JKjhNsy0RCUZy1s8n5D_aXXI-upR9izaLtCTfKYiV9k,9624
|
|
@@ -66,7 +66,7 @@ cdk_factory/interfaces/istack.py,sha256=bhTBs-o9FgKwvJMSuwxjUV6D3nUlvZHVzfm27jP9
|
|
|
66
66
|
cdk_factory/interfaces/live_ssm_resolver.py,sha256=3FIr9a02SXqZmbFs3RT0WxczWEQR_CF7QSt7kWbDrVE,8163
|
|
67
67
|
cdk_factory/interfaces/ssm_parameter_mixin.py,sha256=uA2j8HmAOpuEA9ynRj51s0WjUHMVLsbLQN-QS9NKyHA,12089
|
|
68
68
|
cdk_factory/lambdas/health_handler.py,sha256=dd40ykKMxWCFEIyp2ZdQvAGNjw_ylI9CSm1N24Hp2ME,196
|
|
69
|
-
cdk_factory/lambdas/edge/ip_gate/handler.py,sha256=
|
|
69
|
+
cdk_factory/lambdas/edge/ip_gate/handler.py,sha256=4ijbIMdMId-9XQzerejWhizd8r-gm6cKlsnDIwftXow,6879
|
|
70
70
|
cdk_factory/pipeline/path_utils.py,sha256=fvWdrcb4onmpIu1APkHLhXg8zWfK74HcW3Ra2ynxfXM,2586
|
|
71
71
|
cdk_factory/pipeline/pipeline_factory.py,sha256=rvtkdlTPJG477nTVRN8S2ksWt4bwpd9eVLFd9WO02pM,17248
|
|
72
72
|
cdk_factory/pipeline/stage.py,sha256=Be7ExMB9A-linRM18IQDOzQ-cP_I2_ThRNzlT4FIrUg,437
|
|
@@ -95,7 +95,7 @@ cdk_factory/stack_library/ecr/ecr_stack.py,sha256=1xA68sxFVyqreYjXrP_7U9I8RF9RtF
|
|
|
95
95
|
cdk_factory/stack_library/ecs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
96
96
|
cdk_factory/stack_library/ecs/ecs_service_stack.py,sha256=zuGdZEP5KmeVDTJb-H47LYhvs-85-Fi4Xb78nsA-lF4,24685
|
|
97
97
|
cdk_factory/stack_library/lambda_edge/__init__.py,sha256=ByBJ_CWdc4UtTmFBZH-6pzBMNkjkdtE65AmnB0Fs6lM,156
|
|
98
|
-
cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py,sha256=
|
|
98
|
+
cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py,sha256=CdId_1kcZmYr1lLI9AD3-KqtE6voC3641PIloJmWiNI,16414
|
|
99
99
|
cdk_factory/stack_library/load_balancer/__init__.py,sha256=wZpKw2OecLJGdF5mPayCYAEhu2H3c2gJFFIxwXftGDU,52
|
|
100
100
|
cdk_factory/stack_library/load_balancer/load_balancer_stack.py,sha256=t5JUe5lMUbQCRFZR08k8nO-g-53yWY8gKB9v8ZnedBs,24391
|
|
101
101
|
cdk_factory/stack_library/monitoring/__init__.py,sha256=k1G_KDx47Aw0UugaL99PN_TKlyLK4nkJVApCaAK7GJg,153
|
|
@@ -129,8 +129,8 @@ cdk_factory/utilities/lambda_function_utilities.py,sha256=S1GvBsY_q2cyUiaud3HORJ
|
|
|
129
129
|
cdk_factory/utilities/os_execute.py,sha256=5Op0LY_8Y-pUm04y1k8MTpNrmQvcLmQHPQITEP7EuSU,1019
|
|
130
130
|
cdk_factory/utils/api_gateway_utilities.py,sha256=If7Xu5s_UxmuV-kL3JkXxPLBdSVUKoLtohm0IUFoiV8,4378
|
|
131
131
|
cdk_factory/workload/workload_factory.py,sha256=mM8GU_5mKq_0OyK060T3JrUSUiGAcKf0eqNlT9mfaws,6028
|
|
132
|
-
cdk_factory-0.13.
|
|
133
|
-
cdk_factory-0.13.
|
|
134
|
-
cdk_factory-0.13.
|
|
135
|
-
cdk_factory-0.13.
|
|
136
|
-
cdk_factory-0.13.
|
|
132
|
+
cdk_factory-0.13.5.dist-info/METADATA,sha256=nSjC-eYm9AeWwM3ICwdPTJl46PuprLmxIDHsxleN9T0,2451
|
|
133
|
+
cdk_factory-0.13.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
134
|
+
cdk_factory-0.13.5.dist-info/entry_points.txt,sha256=S1DPe0ORcdiwEALMN_WIo3UQrW_g4YdQCLEsc_b0Swg,53
|
|
135
|
+
cdk_factory-0.13.5.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
|
|
136
|
+
cdk_factory-0.13.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|