@aws/nx-plugin 0.82.2 → 0.83.1

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 (48) hide show
  1. package/LICENSE-THIRD-PARTY +34 -6
  2. package/package.json +1 -1
  3. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +82 -18
  4. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +53 -3
  5. package/src/py/mcp-server/generator.js +1 -0
  6. package/src/py/mcp-server/generator.js.map +1 -1
  7. package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +53 -3
  8. package/src/py/strands-agent/generator.js +1 -0
  9. package/src/py/strands-agent/generator.js.map +1 -1
  10. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +52 -8
  11. package/src/smithy/ts/api/generator.js +2 -0
  12. package/src/smithy/ts/api/generator.js.map +1 -1
  13. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +98 -18
  14. package/src/trpc/backend/generator.js +2 -0
  15. package/src/trpc/backend/generator.js.map +1 -1
  16. package/src/ts/lambda-function/generator.js +2 -0
  17. package/src/ts/lambda-function/generator.js.map +1 -1
  18. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +54 -3
  19. package/src/ts/mcp-server/generator.js +7 -1
  20. package/src/ts/mcp-server/generator.js.map +1 -1
  21. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +366 -20
  22. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +2 -2
  23. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +2 -0
  24. package/src/ts/strands-agent/__snapshots__/generator.spec.ts.snap +52 -3
  25. package/src/ts/strands-agent/generator.js +3 -1
  26. package/src/ts/strands-agent/generator.js.map +1 -1
  27. package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +157 -5
  28. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +14 -0
  29. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +37 -2
  30. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +1 -1
  31. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +4 -0
  32. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +4 -0
  33. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +4 -3
  34. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +4 -3
  35. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +11 -2
  36. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +11 -2
  37. package/src/utils/files/common/constructs/src/core/runtime-config.ts.template +157 -5
  38. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +100 -0
  39. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +19 -17
  40. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +12 -5
  41. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +2 -2
  42. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +2 -0
  43. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +10 -1
  44. package/src/utils/versions.d.ts +2 -0
  45. package/src/utils/versions.js +2 -0
  46. package/src/utils/versions.js.map +1 -1
  47. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +8 -3
  48. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +10 -1
@@ -3218,12 +3218,12 @@ SOFTWARE.
3218
3218
 
3219
3219
  ---
3220
3220
 
3221
- The following software may be included in this product: @esbuild/linux-x64 (0.27.3)
3221
+ The following software may be included in this product: @esbuild/darwin-arm64 (0.27.3)
3222
3222
  This software contains the following license and notice below:
3223
3223
 
3224
3224
  MIT License
3225
3225
 
3226
- Copyright (c) The maintainers of @esbuild/linux-x64 <https://github.com/evanw/esbuild#readme>
3226
+ Copyright (c) The maintainers of @esbuild/darwin-arm64 <https://github.com/evanw/esbuild#readme>
3227
3227
 
3228
3228
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
3229
3229
  associated documentation files (the "Software"), to deal in the Software without restriction, including
@@ -4415,7 +4415,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4415
4415
 
4416
4416
  ---
4417
4417
 
4418
- The following software may be included in this product: @nx/nx-linux-x64-gnu (22.5.3)
4418
+ The following software may be included in this product: @nx/nx-darwin-arm64 (22.5.3)
4419
4419
  This software contains the following license and notice below:
4420
4420
 
4421
4421
  (The MIT License)
@@ -5133,7 +5133,7 @@ THE SOFTWARE.
5133
5133
 
5134
5134
  ---
5135
5135
 
5136
- The following software may be included in this product: @rollup/rollup-linux-x64-gnu (4.50.1)
5136
+ The following software may be included in this product: @rollup/rollup-darwin-arm64 (4.50.1)
5137
5137
  This software contains the following license and notice below:
5138
5138
 
5139
5139
  MIT License
@@ -5185,7 +5185,7 @@ SOFTWARE.
5185
5185
 
5186
5186
  ---
5187
5187
 
5188
- The following software may be included in this product: @rspack/binding-linux-x64-gnu (1.6.8)
5188
+ The following software may be included in this product: @rspack/binding-darwin-arm64 (1.6.8)
5189
5189
  This software contains the following license and notice below:
5190
5190
 
5191
5191
  MIT License
@@ -12950,6 +12950,34 @@ OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHE
12950
12950
 
12951
12951
  ---
12952
12952
 
12953
+ The following software may be included in this product: fsevents (2.3.3)
12954
+ This software contains the following license and notice below:
12955
+
12956
+ MIT License
12957
+ -----------
12958
+
12959
+ Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller
12960
+
12961
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12962
+ of this software and associated documentation files (the "Software"), to deal
12963
+ in the Software without restriction, including without limitation the rights
12964
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12965
+ copies of the Software, and to permit persons to whom the Software is
12966
+ furnished to do so, subject to the following conditions:
12967
+
12968
+ The above copyright notice and this permission notice shall be included in
12969
+ all copies or substantial portions of the Software.
12970
+
12971
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12972
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12973
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
12974
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
12975
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
12976
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
12977
+ THE SOFTWARE.
12978
+
12979
+ ---
12980
+
12953
12981
  The following software may be included in this product: function-bind (1.1.2)
12954
12982
  This software contains the following license and notice below:
12955
12983
 
@@ -39785,7 +39813,7 @@ defined by the Mozilla Public License, v. 2.0.
39785
39813
 
39786
39814
  ---
39787
39815
 
39788
- The following software may be included in this product: lightningcss-linux-x64-gnu (1.31.1)
39816
+ The following software may be included in this product: lightningcss-darwin-arm64 (1.31.1)
39789
39817
  This software contains the following license and notice below:
39790
39818
 
39791
39819
  Mozilla Public License Version 2.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin",
3
- "version": "0.82.2",
3
+ "version": "0.83.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/awslabs/nx-plugin-for-aws.git",
@@ -384,10 +384,11 @@ export class HttpApi<
384
384
  });
385
385
 
386
386
  // Register the API URL in runtime configuration for client discovery
387
- RuntimeConfig.ensure(this).config.apis = {
388
- ...RuntimeConfig.ensure(this).config.apis!,
387
+ const rc = RuntimeConfig.ensure(this);
388
+ rc.set('connection', 'apis', {
389
+ ...rc.get('connection').apis,
389
390
  [apiName]: this.defaultStage.url!,
390
- };
391
+ });
391
392
  }
392
393
 
393
394
  /**
@@ -414,6 +415,7 @@ import {
414
415
  SnapStartConf,
415
416
  } from 'aws-cdk-lib/aws-lambda';
416
417
  import { Duration, Stack } from 'aws-cdk-lib';
418
+ import { RuntimeConfig } from '../../core/runtime-config.js';
417
419
  import { CorsHttpMethod, CfnApi } from 'aws-cdk-lib/aws-apigatewayv2';
418
420
  import { HttpIamAuthorizer } from 'aws-cdk-lib/aws-apigatewayv2-authorizers';
419
421
  import { HttpLambdaIntegration } from 'aws-cdk-lib/aws-apigatewayv2-integrations';
@@ -459,6 +461,7 @@ export class TestApi<
459
461
  * @returns An IntegrationBuilder with default lambda integrations
460
462
  */
461
463
  public static defaultIntegrations = (scope: Construct) => {
464
+ const rc = RuntimeConfig.ensure(scope);
462
465
  return IntegrationBuilder.http({
463
466
  pattern: 'isolated',
464
467
  operations: OPERATION_DETAILS,
@@ -478,6 +481,7 @@ export class TestApi<
478
481
  snapStart: SnapStartConf.ON_PUBLISHED_VERSIONS,
479
482
  environment: {
480
483
  AWS_CONNECTION_REUSE_ENABLED: '1',
484
+ RUNTIME_CONFIG_APP_ID: rc.appConfigApplicationId,
481
485
  PORT: '8000',
482
486
  AWS_LWA_INVOKE_MODE: 'buffered',
483
487
  AWS_LAMBDA_EXEC_WRAPPER: '/opt/bootstrap',
@@ -485,6 +489,7 @@ export class TestApi<
485
489
  },
486
490
  buildDefaultIntegration: (op, props: FunctionProps) => {
487
491
  const handler = new Function(scope, \`TestApi\${op}Handler\`, props);
492
+ rc.grantReadAppConfig(handler);
488
493
  const stack = Stack.of(scope);
489
494
  handler.addLayers(
490
495
  LayerVersion.fromLayerVersionArn(
@@ -1066,10 +1071,11 @@ export class RestApi<
1066
1071
  );
1067
1072
 
1068
1073
  // Register the API URL in runtime configuration for client discovery
1069
- RuntimeConfig.ensure(this).config.apis = {
1070
- ...RuntimeConfig.ensure(this).config.apis!,
1074
+ const rc = RuntimeConfig.ensure(this);
1075
+ rc.set('connection', 'apis', {
1076
+ ...rc.get('connection').apis,
1071
1077
  [apiName]: this.api.url!,
1072
- };
1078
+ });
1073
1079
  }
1074
1080
 
1075
1081
  /**
@@ -1122,6 +1128,7 @@ import {
1122
1128
  LayerVersion,
1123
1129
  SnapStartConf,
1124
1130
  } from 'aws-cdk-lib/aws-lambda';
1131
+ import { RuntimeConfig } from '../../core/runtime-config.js';
1125
1132
  import {
1126
1133
  AuthorizationType,
1127
1134
  LambdaIntegration,
@@ -1179,6 +1186,7 @@ export class TestApi<
1179
1186
  * @returns An IntegrationBuilder with default lambda integrations
1180
1187
  */
1181
1188
  public static defaultIntegrations = (scope: Construct) => {
1189
+ const rc = RuntimeConfig.ensure(scope);
1182
1190
  return IntegrationBuilder.rest({
1183
1191
  pattern: 'isolated',
1184
1192
  operations: OPERATION_DETAILS,
@@ -1198,6 +1206,7 @@ export class TestApi<
1198
1206
  snapStart: SnapStartConf.ON_PUBLISHED_VERSIONS,
1199
1207
  environment: {
1200
1208
  AWS_CONNECTION_REUSE_ENABLED: '1',
1209
+ RUNTIME_CONFIG_APP_ID: rc.appConfigApplicationId,
1201
1210
  PORT: '8000',
1202
1211
  AWS_LWA_INVOKE_MODE: 'response_stream',
1203
1212
  AWS_LAMBDA_EXEC_WRAPPER: '/opt/bootstrap',
@@ -1205,6 +1214,7 @@ export class TestApi<
1205
1214
  },
1206
1215
  buildDefaultIntegration: (op, props: FunctionProps) => {
1207
1216
  const handler = new Function(scope, \`TestApi\${op}Handler\`, props);
1217
+ rc.grantReadAppConfig(handler);
1208
1218
  const stack = Stack.of(scope);
1209
1219
  handler.addLayers(
1210
1220
  LayerVersion.fromLayerVersionArn(
@@ -2185,12 +2195,21 @@ resource "aws_apigatewayv2_route" "proxy_routes" {
2185
2195
  module "add_url_to_runtime_config" {
2186
2196
  source = "../../../core/runtime-config/entry"
2187
2197
 
2188
- key_path = "apis.TestApi"
2189
- value = module.http_api.stage_invoke_url
2198
+ namespace = "connection"
2199
+ key = "apis"
2200
+ value = { "TestApi" = module.http_api.stage_invoke_url }
2190
2201
 
2191
2202
  depends_on = [module.http_api]
2192
2203
  }
2193
2204
 
2205
+ module "appconfig" {
2206
+ source = "../../../core/runtime-config/appconfig"
2207
+
2208
+ application_name = "TestApi-runtime-config"
2209
+
2210
+ depends_on = [module.add_url_to_runtime_config]
2211
+ }
2212
+
2194
2213
  # Lambda permission for API Gateway to invoke the function via alias
2195
2214
  resource "aws_lambda_permission" "api_gateway_invoke" {
2196
2215
  statement_id = "AllowExecutionFromAPIGateway"
@@ -2812,12 +2831,21 @@ resource "aws_apigatewayv2_route" "proxy_routes" {
2812
2831
  module "add_url_to_runtime_config" {
2813
2832
  source = "../../../core/runtime-config/entry"
2814
2833
 
2815
- key_path = "apis.TestApi"
2816
- value = module.http_api.stage_invoke_url
2834
+ namespace = "connection"
2835
+ key = "apis"
2836
+ value = { "TestApi" = module.http_api.stage_invoke_url }
2817
2837
 
2818
2838
  depends_on = [module.http_api]
2819
2839
  }
2820
2840
 
2841
+ module "appconfig" {
2842
+ source = "../../../core/runtime-config/appconfig"
2843
+
2844
+ application_name = "TestApi-runtime-config"
2845
+
2846
+ depends_on = [module.add_url_to_runtime_config]
2847
+ }
2848
+
2821
2849
  # Lambda permission for API Gateway to invoke the function via alias
2822
2850
  resource "aws_lambda_permission" "api_gateway_invoke" {
2823
2851
  statement_id = "AllowExecutionFromAPIGateway"
@@ -3441,12 +3469,21 @@ resource "aws_apigatewayv2_route" "proxy_routes" {
3441
3469
  module "add_url_to_runtime_config" {
3442
3470
  source = "../../../core/runtime-config/entry"
3443
3471
 
3444
- key_path = "apis.TestApi"
3445
- value = module.http_api.stage_invoke_url
3472
+ namespace = "connection"
3473
+ key = "apis"
3474
+ value = { "TestApi" = module.http_api.stage_invoke_url }
3446
3475
 
3447
3476
  depends_on = [module.http_api]
3448
3477
  }
3449
3478
 
3479
+ module "appconfig" {
3480
+ source = "../../../core/runtime-config/appconfig"
3481
+
3482
+ application_name = "TestApi-runtime-config"
3483
+
3484
+ depends_on = [module.add_url_to_runtime_config]
3485
+ }
3486
+
3450
3487
  # Lambda permission for API Gateway to invoke the function via alias
3451
3488
  resource "aws_lambda_permission" "api_gateway_invoke" {
3452
3489
  statement_id = "AllowExecutionFromAPIGateway"
@@ -4112,12 +4149,21 @@ resource "aws_lambda_permission" "api_gateway_invoke_streaming" {
4112
4149
  module "add_url_to_runtime_config" {
4113
4150
  source = "../../../core/runtime-config/entry"
4114
4151
 
4115
- key_path = "apis.TestApi"
4116
- value = aws_api_gateway_stage.api_stage.invoke_url
4152
+ namespace = "connection"
4153
+ key = "apis"
4154
+ value = { "TestApi" = aws_api_gateway_stage.api_stage.invoke_url }
4117
4155
 
4118
4156
  depends_on = [aws_api_gateway_stage.api_stage]
4119
4157
  }
4120
4158
 
4159
+ module "appconfig" {
4160
+ source = "../../../core/runtime-config/appconfig"
4161
+
4162
+ application_name = "TestApi-runtime-config"
4163
+
4164
+ depends_on = [module.add_url_to_runtime_config]
4165
+ }
4166
+
4121
4167
  # Outputs
4122
4168
 
4123
4169
  # API Gateway Outputs (from core module)
@@ -4774,12 +4820,21 @@ resource "aws_lambda_permission" "api_gateway_invoke_streaming" {
4774
4820
  module "add_url_to_runtime_config" {
4775
4821
  source = "../../../core/runtime-config/entry"
4776
4822
 
4777
- key_path = "apis.TestApi"
4778
- value = aws_api_gateway_stage.api_stage.invoke_url
4823
+ namespace = "connection"
4824
+ key = "apis"
4825
+ value = { "TestApi" = aws_api_gateway_stage.api_stage.invoke_url }
4779
4826
 
4780
4827
  depends_on = [aws_api_gateway_stage.api_stage]
4781
4828
  }
4782
4829
 
4830
+ module "appconfig" {
4831
+ source = "../../../core/runtime-config/appconfig"
4832
+
4833
+ application_name = "TestApi-runtime-config"
4834
+
4835
+ depends_on = [module.add_url_to_runtime_config]
4836
+ }
4837
+
4783
4838
  # Outputs
4784
4839
 
4785
4840
  # API Gateway Outputs (from core module)
@@ -5427,12 +5482,21 @@ resource "aws_lambda_permission" "api_gateway_invoke_streaming" {
5427
5482
  module "add_url_to_runtime_config" {
5428
5483
  source = "../../../core/runtime-config/entry"
5429
5484
 
5430
- key_path = "apis.TestApi"
5431
- value = aws_api_gateway_stage.api_stage.invoke_url
5485
+ namespace = "connection"
5486
+ key = "apis"
5487
+ value = { "TestApi" = aws_api_gateway_stage.api_stage.invoke_url }
5432
5488
 
5433
5489
  depends_on = [aws_api_gateway_stage.api_stage]
5434
5490
  }
5435
5491
 
5492
+ module "appconfig" {
5493
+ source = "../../../core/runtime-config/appconfig"
5494
+
5495
+ application_name = "TestApi-runtime-config"
5496
+
5497
+ depends_on = [module.add_url_to_runtime_config]
5498
+ }
5499
+
5436
5500
  # Outputs
5437
5501
 
5438
5502
  # API Gateway Outputs (from core module)
@@ -25,6 +25,7 @@ import {
25
25
  Runtime,
26
26
  RuntimeProps,
27
27
  } from '@aws-cdk/aws-bedrock-agentcore-alpha';
28
+ import { RuntimeConfig } from '../../../core/runtime-config.js';
28
29
 
29
30
  export type SnapshotBedrockServerProps = Omit<
30
31
  RuntimeProps,
@@ -42,6 +43,8 @@ export class SnapshotBedrockServer extends Construct {
42
43
  ) {
43
44
  super(scope, id);
44
45
 
46
+ const rc = RuntimeConfig.ensure(this);
47
+
45
48
  this.dockerImage = AgentRuntimeArtifact.fromAsset(
46
49
  path.dirname(url.fileURLToPath(new URL(import.meta.url))),
47
50
  {
@@ -61,6 +64,17 @@ export class SnapshotBedrockServer extends Construct {
61
64
  protocolConfiguration: ProtocolType.MCP,
62
65
  agentRuntimeArtifact: this.dockerImage,
63
66
  ...props,
67
+ environmentVariables: {
68
+ RUNTIME_CONFIG_APP_ID: rc.appConfigApplicationId,
69
+ ...props?.environmentVariables,
70
+ },
71
+ });
72
+
73
+ rc.grantReadAppConfig(this.agentCoreRuntime);
74
+
75
+ rc.set('connection', 'agentRuntimes', {
76
+ ...rc.get('connection').agentRuntimes,
77
+ SnapshotBedrockServer: this.agentCoreRuntime.agentRuntimeArn,
64
78
  });
65
79
  }
66
80
  }
@@ -406,7 +420,7 @@ resource "aws_bedrockagentcore_agent_runtime" "agent_runtime" {
406
420
 
407
421
  depends_on = [
408
422
  null_resource.docker_publish,
409
- aws_iam_role_policy.agent_core_runtime_policy
423
+ aws_iam_role_policy_attachment.agent_core_policy
410
424
  ]
411
425
  }
412
426
 
@@ -466,6 +480,12 @@ variable "tags" {
466
480
  default = {}
467
481
  }
468
482
 
483
+ module "appconfig" {
484
+ source = "../../../core/runtime-config/appconfig"
485
+
486
+ application_name = "TerraformSnapshotServer-runtime-config"
487
+ }
488
+
469
489
  module "agent_core_runtime" {
470
490
  source = "../../../core/agent-core"
471
491
  agent_runtime_name = "TerraformSnapshotServer"
@@ -478,9 +498,33 @@ module "agent_core_runtime" {
478
498
  # }
479
499
  # }
480
500
 
481
- env = var.env
482
- additional_iam_policy_statements = var.additional_iam_policy_statements
501
+ env = merge({
502
+ RUNTIME_CONFIG_APP_ID = module.appconfig.application_id
503
+ }, var.env)
504
+ additional_iam_policy_statements = concat([
505
+ {
506
+ Effect = "Allow"
507
+ Action = [
508
+ "appconfig:StartConfigurationSession",
509
+ "appconfig:GetLatestConfiguration"
510
+ ]
511
+ Resource = ["\${module.appconfig.application_arn}/*"]
512
+ }
513
+ ], var.additional_iam_policy_statements)
483
514
  tags = var.tags
515
+
516
+ depends_on = [module.appconfig]
517
+ }
518
+
519
+ # Add agent runtime ARN to runtime config
520
+ module "add_agent_runtime_to_runtime_config" {
521
+ source = "../../../core/runtime-config/entry"
522
+
523
+ namespace = "connection"
524
+ key = "agentRuntimes"
525
+ value = { "TerraformSnapshotServer" = module.agent_core_runtime.agent_core_runtime_arn }
526
+
527
+ depends_on = [module.agent_core_runtime]
484
528
  }
485
529
 
486
530
  output "agent_core_runtime_role_arn" {
@@ -492,6 +536,11 @@ output "agent_core_runtime_arn" {
492
536
  description = "ARN of the Bedrock Agent Core runtime"
493
537
  value = module.agent_core_runtime.agent_core_runtime_arn
494
538
  }
539
+
540
+ output "appconfig_application_id" {
541
+ description = "AppConfig Application ID for runtime config"
542
+ value = module.appconfig.application_id
543
+ }
495
544
  "
496
545
  `;
497
546
 
@@ -561,6 +610,7 @@ exports[`py#mcp-server generator > should match snapshot for generated files > u
561
610
  name = "proj.test_project"
562
611
  version = "0.1.0"
563
612
  dependencies = [
613
+ "aws-lambda-powertools==3.25.0",
564
614
  "mcp==1.26.0",
565
615
  "uvicorn==0.41.0",
566
616
  "boto3==1.42.63",
@@ -50,6 +50,7 @@ const pyMcpServerGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
50
50
  moduleName,
51
51
  }, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
52
52
  (0, py_1.addDependenciesToPyProjectToml)(tree, project.root, [
53
+ 'aws-lambda-powertools',
53
54
  'mcp',
54
55
  'uvicorn',
55
56
  'boto3',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/mcp-server/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/mcp-server/generator.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ import {
31
31
  Runtime,
32
32
  RuntimeProps,
33
33
  } from '@aws-cdk/aws-bedrock-agentcore-alpha';
34
+ import { RuntimeConfig } from '../../../core/runtime-config.js';
34
35
 
35
36
  export type SnapshotBedrockAgentProps = Omit<
36
37
  RuntimeProps,
@@ -44,6 +45,8 @@ export class SnapshotBedrockAgent extends Construct {
44
45
  constructor(scope: Construct, id: string, props?: SnapshotBedrockAgentProps) {
45
46
  super(scope, id);
46
47
 
48
+ const rc = RuntimeConfig.ensure(this);
49
+
47
50
  this.dockerImage = AgentRuntimeArtifact.fromAsset(
48
51
  path.dirname(url.fileURLToPath(new URL(import.meta.url))),
49
52
  {
@@ -63,6 +66,17 @@ export class SnapshotBedrockAgent extends Construct {
63
66
  protocolConfiguration: ProtocolType.HTTP,
64
67
  agentRuntimeArtifact: this.dockerImage,
65
68
  ...props,
69
+ environmentVariables: {
70
+ RUNTIME_CONFIG_APP_ID: rc.appConfigApplicationId,
71
+ ...props?.environmentVariables,
72
+ },
73
+ });
74
+
75
+ rc.grantReadAppConfig(this.agentCoreRuntime);
76
+
77
+ rc.set('connection', 'agentRuntimes', {
78
+ ...rc.get('connection').agentRuntimes,
79
+ SnapshotBedrockAgent: this.agentCoreRuntime.agentRuntimeArn,
66
80
  });
67
81
  }
68
82
  }
@@ -109,6 +123,12 @@ variable "tags" {
109
123
  default = {}
110
124
  }
111
125
 
126
+ module "appconfig" {
127
+ source = "../../../core/runtime-config/appconfig"
128
+
129
+ application_name = "TerraformSnapshotAgent-runtime-config"
130
+ }
131
+
112
132
  module "agent_core_runtime" {
113
133
  source = "../../../core/agent-core"
114
134
  agent_runtime_name = "TerraformSnapshotAgent"
@@ -121,9 +141,33 @@ module "agent_core_runtime" {
121
141
  # }
122
142
  # }
123
143
 
124
- env = var.env
125
- additional_iam_policy_statements = var.additional_iam_policy_statements
144
+ env = merge({
145
+ RUNTIME_CONFIG_APP_ID = module.appconfig.application_id
146
+ }, var.env)
147
+ additional_iam_policy_statements = concat([
148
+ {
149
+ Effect = "Allow"
150
+ Action = [
151
+ "appconfig:StartConfigurationSession",
152
+ "appconfig:GetLatestConfiguration"
153
+ ]
154
+ Resource = ["\${module.appconfig.application_arn}/*"]
155
+ }
156
+ ], var.additional_iam_policy_statements)
126
157
  tags = var.tags
158
+
159
+ depends_on = [module.appconfig]
160
+ }
161
+
162
+ # Add agent runtime ARN to runtime config
163
+ module "add_agent_runtime_to_runtime_config" {
164
+ source = "../../../core/runtime-config/entry"
165
+
166
+ namespace = "connection"
167
+ key = "agentRuntimes"
168
+ value = { "TerraformSnapshotAgent" = module.agent_core_runtime.agent_core_runtime_arn }
169
+
170
+ depends_on = [module.agent_core_runtime]
127
171
  }
128
172
 
129
173
  output "agent_core_runtime_role_arn" {
@@ -135,6 +179,11 @@ output "agent_core_runtime_arn" {
135
179
  description = "ARN of the Bedrock Agent Core runtime"
136
180
  value = module.agent_core_runtime.agent_core_runtime_arn
137
181
  }
182
+
183
+ output "appconfig_application_id" {
184
+ description = "AppConfig Application ID for runtime config"
185
+ value = module.appconfig.application_id
186
+ }
138
187
  "
139
188
  `;
140
189
 
@@ -472,7 +521,7 @@ resource "aws_bedrockagentcore_agent_runtime" "agent_runtime" {
472
521
 
473
522
  depends_on = [
474
523
  null_resource.docker_publish,
475
- aws_iam_role_policy.agent_core_runtime_policy
524
+ aws_iam_role_policy_attachment.agent_core_policy
476
525
  ]
477
526
  }
478
527
 
@@ -594,6 +643,7 @@ exports[`py#strands-agent generator > should match snapshot for generated files
594
643
  name = "proj.test_project"
595
644
  version = "0.1.0"
596
645
  dependencies = [
646
+ "aws-lambda-powertools==3.25.0",
597
647
  "aws-opentelemetry-distro==0.15.0",
598
648
  "bedrock-agentcore==0.1.7",
599
649
  "fastapi==0.135.1",
@@ -49,6 +49,7 @@ const pyStrandsAgentGenerator = (tree, options) => tslib_1.__awaiter(void 0, voi
49
49
  moduleName,
50
50
  }, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
51
51
  (0, py_1.addDependenciesToPyProjectToml)(tree, project.root, [
52
+ 'aws-lambda-powertools',
52
53
  'aws-opentelemetry-distro',
53
54
  'bedrock-agentcore',
54
55
  'fastapi',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/strands-agent/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/strands-agent/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAQoB;AAEpB,uCAMwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,6CAAwE;AACxE,uCAGwB;AACxB,mGAAwF;AACxF,sDAAkE;AAClE,qDAAoD;AACpD,qEAA0E;AAC1E,yDAA6D;AAC7D,yCAAqD;AACrD,2CAA8C;AAC9C,6CAA0D;AAE7C,QAAA,+BAA+B,GAC1C,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,uBAAuB,GAAG,CACrC,IAAU,EACV,OAAsC,EACV,EAAE;;IAC9B,MAAM,OAAO,GAAG,IAAA,wCAAmC,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3E,MAAM,aAAa,GAAG,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAExE,iDAAiD;IACjD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,uBAAuB,OAAO,CAAC,OAAO,qDAAqD,CAC5F,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,gIAAgI,CACjI,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,IAAA,iBAAS,EACpB,OAAO,CAAC,IAAI,IAAI,GAAG,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CACpE,CAAC;IACF,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IAExD,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;IAChE,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,eAAe,GAAG,IAAA,0BAAiB,EACvC,OAAO,CAAC,UAAU,EAClB,kBAAkB,CACnB,CAAC;IAEF,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,yBAAyB,CAAC;IAErE,yBAAyB;IACzB,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAC5C,eAAe,EACf;QACE,IAAI;QACJ,kBAAkB;QAClB,kBAAkB;QAClB,UAAU;KACX,EACD,EAAE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY,EAAE,CACtD,CAAC;IAEF,IAAA,mCAA8B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QACjD,uBAAuB;QACvB,0BAA0B;QAC1B,mBAAmB;QACnB,SAAS;QACT,OAAO;QACP,KAAK;QACL,gBAAgB;QAChB,sBAAsB;QACtB,SAAS;KACV,CAAC,CAAC;IACH,IAAA,oDAA+C,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QACzE,mBAAmB;KACpB,CAAC,CAAC;IAEH,IAAI,WAAW,KAAK,yBAAyB,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,GAAG,IAAA,uBAAW,EAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;QAE7D,oBAAoB;QACpB,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,IAAA,8BAAqB,EACjE,OAAO,EACP;YACE,cAAc,EAAE,uBAAuB;SACxC,CACF,CAAC;QAEF,qBAAqB;QACrB,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAC/C,eAAe,EACf;YACE,kBAAkB;YAClB,UAAU;YACV,eAAe;SAChB,EACD,EAAE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY,EAAE,CACtD,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,iBAAiB,SAAS,CAAC;QAEvD,kDAAkD;QAClD,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG;YAClC,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE;gBACP,QAAQ,EAAE;oBACR,0CAA0C,cAAc,IAAI,eAAe,8BAA8B;iBAC1G;gBACD,QAAQ,EAAE,KAAK;aAChB;YACD,SAAS,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;QAEF,IAAA,sCAAiC,EAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACvE,IAAA,sCAAiC,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE9D,wBAAwB;QACxB,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,IAAA,6CAAyB,EAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAEvD,wCAAwC;QACxC,IAAA,qCAAa,EAAC,IAAI,EAAE;YAClB,kBAAkB,EAAE,IAAI;YACxB,kBAAkB;YAClB,cAAc;YACd,WAAW;YACX,WAAW,EAAE,OAAO,CAAC,IAAI;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,gGAAgG;IAChG,+FAA+F;IAC/F,sCAAsC;IACtC,MAAM,YAAY,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAErD,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,kCACxC,OAAO,KACV,OAAO,kCACF,OAAO,CAAC,OAAO,KAClB,CAAC,GAAG,iBAAiB,QAAQ,CAAC,EAAE;gBAC9B,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,sBAAsB,UAAU,IAAI,kBAAkB,mBAAmB,YAAY,EAAE;qBACxF;oBACD,GAAG,EAAE,eAAe;iBACrB;gBACD,UAAU,EAAE,IAAI;aACjB,OAEH,CAAC;IAEH,IAAA,kCAA6B,EAC3B,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,uCAA+B,EAC/B,IAAA,6BAAqB,EAAC,OAAO,EAAE,eAAe,CAAC,EAC/C,iBAAiB,EACjB;QACE,IAAI,EAAE,YAAY;KACnB,CACF,CAAC;IAEF,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE;QAC1C,uCAA+B;KAChC,CAAC,CAAC;IAEH,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,GAAS,EAAE;QAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,wBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,oBAAM,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC,CAAA,CAAC;AACJ,CAAC,CAAA,CAAC;AAvKW,QAAA,uBAAuB,2BAuKlC;AAEF,kBAAe,+BAAuB,CAAC"}