@aws/nx-plugin 0.46.0 → 0.48.0

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 (104) hide show
  1. package/package.json +1 -1
  2. package/src/infra/app/generator.js +4 -1
  3. package/src/infra/app/generator.js.map +1 -1
  4. package/src/mcp-server/tools/create-workspace-command.js +4 -0
  5. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  6. package/src/mcp-server/tools/general-guidance.js +3 -1
  7. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  8. package/src/preset/__snapshots__/generator.spec.ts.snap +9 -0
  9. package/src/preset/generator.d.ts +1 -1
  10. package/src/preset/generator.js +4 -1
  11. package/src/preset/generator.js.map +1 -1
  12. package/src/preset/schema.d.ts +3 -0
  13. package/src/preset/schema.json +9 -1
  14. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +60 -0
  15. package/src/py/fast-api/generator.js +5 -3
  16. package/src/py/fast-api/generator.js.map +1 -1
  17. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +1 -0
  18. package/src/py/fast-api/schema.d.ts +3 -1
  19. package/src/py/fast-api/schema.json +4 -4
  20. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +310 -0
  21. package/src/py/lambda-function/generator.js +17 -25
  22. package/src/py/lambda-function/generator.js.map +1 -1
  23. package/src/py/lambda-function/schema.d.ts +3 -0
  24. package/src/py/lambda-function/schema.json +8 -0
  25. package/src/py/mcp-server/generator.js +4 -2
  26. package/src/py/mcp-server/generator.js.map +1 -1
  27. package/src/py/mcp-server/schema.d.ts +4 -1
  28. package/src/py/mcp-server/schema.json +4 -4
  29. package/src/py/strands-agent/generator.js +4 -2
  30. package/src/py/strands-agent/generator.js.map +1 -1
  31. package/src/py/strands-agent/schema.d.ts +3 -1
  32. package/src/py/strands-agent/schema.json +4 -4
  33. package/src/terraform/project/generator.js +2 -1
  34. package/src/terraform/project/generator.js.map +1 -1
  35. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +60 -0
  36. package/src/trpc/backend/generator.js +4 -2
  37. package/src/trpc/backend/generator.js.map +1 -1
  38. package/src/trpc/backend/schema.d.ts +2 -1
  39. package/src/trpc/backend/schema.json +4 -4
  40. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -0
  41. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +310 -0
  42. package/src/ts/lambda-function/generator.js +17 -27
  43. package/src/ts/lambda-function/generator.js.map +1 -1
  44. package/src/ts/lambda-function/schema.d.ts +3 -0
  45. package/src/ts/lambda-function/schema.json +8 -0
  46. package/src/ts/mcp-server/generator.js +4 -2
  47. package/src/ts/mcp-server/generator.js.map +1 -1
  48. package/src/ts/mcp-server/schema.d.ts +3 -1
  49. package/src/ts/mcp-server/schema.json +4 -4
  50. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +27 -1
  51. package/src/ts/nx-generator/files/nx-plugin-for-aws/docs/__nameKebabCase__.mdx.template +31 -0
  52. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.spec.ts.template +1 -1
  53. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +756 -0
  54. package/src/ts/react-website/app/generator.js +44 -43
  55. package/src/ts/react-website/app/generator.js.map +1 -1
  56. package/src/ts/react-website/app/schema.d.ts +2 -0
  57. package/src/ts/react-website/app/schema.json +8 -0
  58. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +259 -0
  59. package/src/ts/react-website/cognito-auth/generator.js +12 -13
  60. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  61. package/src/ts/react-website/cognito-auth/schema.d.ts +4 -0
  62. package/src/ts/react-website/cognito-auth/schema.json +8 -0
  63. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +0 -40
  64. package/src/ts/react-website/runtime-config/generator.js +0 -2
  65. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  66. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +4 -2
  67. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  68. package/src/utils/api-constructs/api-constructs.d.ts +2 -1
  69. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  70. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +10 -0
  71. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +10 -0
  72. package/src/utils/config/index.d.ts +6 -0
  73. package/src/utils/config/index.js.map +1 -1
  74. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +119 -0
  75. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +28 -0
  76. package/src/utils/files/terraform/src/metrics/metrics.tf.template +7 -1
  77. package/src/{py/lambda-function/files/common/constructs/src/app/lambda-functions/__constructFunctionKebabCase__.ts.template → utils/function-constructs/files/cdk/app/lambda-functions/__functionNameKebabCase__.ts.template} +5 -5
  78. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__functionNameKebabCase__/__functionNameKebabCase__.tf.template +150 -0
  79. package/src/utils/function-constructs/function-constructs.d.ts +20 -0
  80. package/src/utils/function-constructs/function-constructs.js +57 -0
  81. package/src/utils/function-constructs/function-constructs.js.map +1 -0
  82. package/src/utils/iac.d.ts +21 -0
  83. package/src/utils/iac.js +25 -0
  84. package/src/utils/iac.js.map +1 -0
  85. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +123 -0
  86. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +421 -0
  87. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +47 -0
  88. package/src/utils/identity-constructs/identity-constructs.d.ts +16 -0
  89. package/src/utils/identity-constructs/identity-constructs.js +84 -0
  90. package/src/utils/identity-constructs/identity-constructs.js.map +1 -0
  91. package/src/utils/metrics.js +1 -1
  92. package/src/utils/metrics.js.map +1 -1
  93. package/src/utils/shared-constructs.d.ts +3 -2
  94. package/src/utils/shared-constructs.js +27 -3
  95. package/src/utils/shared-constructs.js.map +1 -1
  96. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +42 -0
  97. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +709 -0
  98. package/src/utils/website-constructs/website-constructs.d.ts +19 -0
  99. package/src/utils/website-constructs/website-constructs.js +61 -0
  100. package/src/utils/website-constructs/website-constructs.js.map +1 -0
  101. package/src/ts/lambda-function/files/common/constructs/src/app/lambda-functions/__constructFunctionNameKebabCase__.ts.template +0 -24
  102. /package/src/{ts/react-website/cognito-auth/files/common/constructs/src → utils/identity-constructs/files/cdk}/core/user-identity.ts.template +0 -0
  103. /package/src/{ts/react-website/app/files/common/constructs/src → utils/website-constructs/files/cdk}/app/static-websites/__websiteNameKebabCase__.ts.template +0 -0
  104. /package/src/{ts/react-website/app/files/common/constructs/src → utils/website-constructs/files/cdk}/core/static-website.ts.template +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/runtime-config/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/runtime-config/generator.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { Tree } from '@nx/devkit';
6
- export type IACProvider = {
7
- iacProvider: 'CDK' | 'Terraform';
6
+ import { IacProvider } from '../iac';
7
+ type IACProvider = {
8
+ iacProvider: IacProvider;
8
9
  };
9
10
  export interface AddAgentCoreInfraProps {
10
11
  nameClassName: string;
@@ -34,3 +35,4 @@ export interface AddAgentInfraProps {
34
35
  * Add an MCP server CDK construct
35
36
  */
36
37
  export declare const addAgentInfra: (tree: Tree, options: AddAgentInfraProps & IACProvider) => void;
38
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"agent-core-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-core-constructs/agent-core-constructs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-core-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-core-constructs/agent-core-constructs.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { Tree } from '@nx/devkit';
6
+ import { IacProvider } from '../iac';
6
7
  interface BackendOptions {
7
8
  type: 'trpc' | 'fastapi';
8
9
  }
@@ -25,6 +26,6 @@ export interface AddApiGatewayConstructOptions {
25
26
  auth: 'IAM' | 'Cognito' | 'None';
26
27
  }
27
28
  export declare const addApiGatewayInfra: (tree: Tree, options: AddApiGatewayConstructOptions & {
28
- iacProvider: "CDK" | "Terraform";
29
+ iacProvider: IacProvider;
29
30
  }) => void;
30
31
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"api-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/api-constructs/api-constructs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/api-constructs/api-constructs.ts"],"names":[],"mappings":"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"}
@@ -258,6 +258,16 @@ resource "aws_apigatewayv2_route" "proxy_routes" {
258
258
  depends_on = [aws_apigatewayv2_integration.lambda_integration<% if (auth === 'Cognito') { %>, aws_apigatewayv2_authorizer.cognito_authorizer<% } %>]
259
259
  }
260
260
 
261
+ # Add API url to runtime config
262
+ module "add_url_to_runtime_config" {
263
+ source = "../../../core/runtime-config/entry"
264
+
265
+ key_path = "apis.<%- apiNameClassName %>"
266
+ value = module.http_api.stage_invoke_url
267
+
268
+ depends_on = [module.http_api]
269
+ }
270
+
261
271
  # Lambda permission for API Gateway to invoke the function
262
272
  resource "aws_lambda_permission" "api_gateway_invoke" {
263
273
  statement_id = "AllowExecutionFromAPIGateway"
@@ -385,6 +385,16 @@ resource "aws_lambda_permission" "api_gateway_invoke" {
385
385
  depends_on = [module.rest_api, aws_lambda_function.api_lambda]
386
386
  }
387
387
 
388
+ # Add API url to runtime config
389
+ module "add_url_to_runtime_config" {
390
+ source = "../../../core/runtime-config/entry"
391
+
392
+ key_path = "apis.<%- apiNameClassName %>"
393
+ value = aws_api_gateway_stage.api_stage.invoke_url
394
+
395
+ depends_on = [aws_api_gateway_stage.api_stage]
396
+ }
397
+
388
398
  # Outputs
389
399
 
390
400
  # API Gateway Outputs (from core module)
@@ -3,7 +3,9 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { LicenseConfig } from '../../license/config-types';
6
+ import { IacConfig } from '../iac';
6
7
  export * from '../../license/config-types';
8
+ export { IacConfig, IacProvider } from '../iac';
7
9
  /**
8
10
  * Configuration for the nx plugin
9
11
  */
@@ -12,6 +14,10 @@ export interface AwsNxPluginConfig {
12
14
  * Configuration for the license sync generator
13
15
  */
14
16
  license?: LicenseConfig;
17
+ /**
18
+ * Configuration for infrastructure as code
19
+ */
20
+ iac?: IacConfig;
15
21
  /**
16
22
  * List of tags
17
23
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/config/index.ts"],"names":[],"mappings":";;;AAKA,qEAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/config/index.ts"],"names":[],"mappings":";;;AAOA,qEAA2C"}
@@ -0,0 +1,119 @@
1
+ terraform {
2
+ required_providers {
3
+ local = {
4
+ source = "hashicorp/local"
5
+ version = "~> 2.0"
6
+ }
7
+ }
8
+ }
9
+
10
+ # Variables
11
+ variable "key_path" {
12
+ description = "Dot-separated path for the configuration key (e.g., 'apis.FooApi', 'cognito.userPoolId')"
13
+ type = string
14
+ }
15
+
16
+ variable "value" {
17
+ description = "Value to set at the key path"
18
+ type = any
19
+ }
20
+
21
+ locals {
22
+ config_file_path = "${path.module}/../../../../../../../dist/packages/common/terraform/runtime-config.json"
23
+ }
24
+
25
+ # This module writes an entry to runtime-config.json which is provided to any static websites
26
+ # as a way to pass deploy-time values to the UI such as API urls
27
+
28
+ data "external" "updated_config" {
29
+ program = ["uv", "run", "python", "-c", <<-EOT
30
+ import json
31
+ import sys
32
+ import os
33
+ import time
34
+ import fcntl
35
+ from pathlib import Path
36
+
37
+ # Read input from Terraform
38
+ input_data = json.load(sys.stdin)
39
+ config_file = input_data['config_file']
40
+ key_path = input_data['key_path']
41
+ value = json.loads(input_data['value'])
42
+
43
+ # Create lock file path
44
+ lock_file = config_file + '.lock'
45
+
46
+ # Ensure directory exists
47
+ Path(config_file).parent.mkdir(parents=True, exist_ok=True)
48
+
49
+ # Acquire exclusive lock with retry mechanism
50
+ max_retries = 30
51
+ retry_delay = 1.0
52
+
53
+ for attempt in range(max_retries):
54
+ try:
55
+ # Open lock file for exclusive access
56
+ with open(lock_file, 'w') as lock_fd:
57
+ # Try to acquire exclusive lock (non-blocking)
58
+ fcntl.flock(lock_fd.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
59
+
60
+ # Critical section - file operations under lock
61
+ try:
62
+ # Create empty base config if file doesn't exist
63
+ if not os.path.exists(config_file):
64
+ base_config = {}
65
+ with open(config_file, 'w') as f:
66
+ json.dump(base_config, f, indent=2)
67
+
68
+ # Read current config
69
+ with open(config_file, 'r') as f:
70
+ config = json.load(f)
71
+
72
+ # Set the nested key using dot notation
73
+ keys = key_path.split('.')
74
+ current = config
75
+ for key in keys[:-1]:
76
+ if key not in current:
77
+ current[key] = {}
78
+ current = current[key]
79
+ current[keys[-1]] = value
80
+
81
+ # Write updated config back to file atomically
82
+ temp_file = config_file + '.tmp'
83
+ with open(temp_file, 'w') as f:
84
+ json.dump(config, f, indent=2)
85
+ os.rename(temp_file, config_file)
86
+
87
+ # Output the updated config for Terraform
88
+ print(json.dumps({"updated_json": json.dumps(config)}))
89
+
90
+ # Success - break out of retry loop
91
+ break
92
+
93
+ finally:
94
+ # Lock is automatically released when file is closed
95
+ pass
96
+
97
+ except (IOError, OSError) as e:
98
+ if attempt < max_retries - 1:
99
+ # Wait before retrying
100
+ time.sleep(retry_delay)
101
+ continue
102
+ else:
103
+ # Final attempt failed
104
+ raise Exception(f"Failed to acquire lock after {max_retries} attempts: {e}")
105
+
106
+ # Clean up lock file if it exists
107
+ try:
108
+ os.remove(lock_file)
109
+ except OSError:
110
+ pass
111
+ EOT
112
+ ]
113
+
114
+ query = {
115
+ config_file = local.config_file_path
116
+ key_path = var.key_path
117
+ value = jsonencode(var.value)
118
+ }
119
+ }
@@ -0,0 +1,28 @@
1
+ terraform {
2
+ required_providers {
3
+ local = {
4
+ source = "hashicorp/local"
5
+ version = "~> 2.0"
6
+ }
7
+ }
8
+ }
9
+
10
+ locals {
11
+ config_file_path = "${path.module}/../../../../../../../dist/packages/common/terraform/runtime-config.json"
12
+ }
13
+
14
+ # Read the runtime config file - will fail gracefully if file doesn't exist
15
+ data "local_file" "runtime_config" {
16
+ filename = local.config_file_path
17
+ }
18
+
19
+ # Outputs
20
+ output "config" {
21
+ description = "Runtime configuration object"
22
+ value = jsondecode(data.local_file.runtime_config.content)
23
+ }
24
+
25
+ output "config_json" {
26
+ description = "Runtime configuration as JSON string"
27
+ value = data.local_file.runtime_config.content
28
+ }
@@ -1,7 +1,13 @@
1
+ resource "random_string" "suffix" {
2
+ length = 8
3
+ special = false
4
+ upper = false
5
+ }
6
+
1
7
  # CloudFormation stack for metrics tracking
2
8
  resource "aws_cloudformation_stack" "metrics" {
3
9
  #checkov:skip=CKV_AWS_124:Metrics stack does not require SNS notifications
4
- name = "nx-plugin-metrics"
10
+ name = "nx-plugin-metrics-${random_string.suffix.result}"
5
11
 
6
12
  template_body = jsonencode({
7
13
  AWSTemplateFormatVersion = "2010-09-09"
@@ -3,15 +3,15 @@ import * as url from 'url';
3
3
  import { Code, Function, Runtime, Tracing } from 'aws-cdk-lib/aws-lambda';
4
4
  import { Duration } from 'aws-cdk-lib';
5
5
 
6
- export class <%= constructFunctionClassName %> extends Function {
6
+ export class <%= functionNameClassName %> extends Function {
7
7
  constructor(scope: Construct, id: string) {
8
8
  super(scope, id, {
9
9
  timeout: Duration.seconds(30),
10
- runtime: Runtime.PYTHON_3_12,
11
- handler: '<%= constructHandlerFilePath %>',
10
+ runtime: <%= runtime %>,
11
+ handler: '<%= handler %>',
12
12
  code: Code.fromAsset(url.fileURLToPath(
13
13
  new URL(
14
- '../../../../../../dist/<%= dir %>/bundle',
14
+ '../../../../../../<%- bundlePathFromRoot %>',
15
15
  import.meta.url
16
16
  )
17
17
  )),
@@ -21,4 +21,4 @@ export class <%= constructFunctionClassName %> extends Function {
21
21
  },
22
22
  });
23
23
  }
24
- }
24
+ }
@@ -0,0 +1,150 @@
1
+ variable "tags" {
2
+ description = "Tags to apply to resources"
3
+ type = map(string)
4
+ default = {}
5
+ }
6
+
7
+ variable "env" {
8
+ description = "Additional environment variables for the Lambda function"
9
+ type = map(string)
10
+ default = {}
11
+ }
12
+
13
+ variable "additional_iam_policy_statements" {
14
+ description = "Additional IAM policy statements to attach to the Lambda role"
15
+ type = list(object({
16
+ Effect = string
17
+ Action = list(string)
18
+ Resource = list(string)
19
+ }))
20
+ default = []
21
+ }
22
+
23
+ data "aws_caller_identity" "current" {}
24
+ data "aws_region" "current" {}
25
+
26
+ locals {
27
+ aws_account_id = data.aws_caller_identity.current.account_id
28
+ aws_region = data.aws_region.current.name
29
+ }
30
+
31
+ resource "random_string" "suffix" {
32
+ length = 8
33
+ special = false
34
+ upper = false
35
+ }
36
+
37
+ resource "aws_iam_role" "lambda_role" {
38
+ name = "<%- functionNameKebabCase %>-role-${random_string.suffix.result}"
39
+
40
+ assume_role_policy = jsonencode({
41
+ Version = "2012-10-17"
42
+ Statement = [
43
+ {
44
+ Sid = "LambdaAssumeRolePolicy"
45
+ Effect = "Allow"
46
+ Principal = {
47
+ Service = "lambda.amazonaws.com"
48
+ }
49
+ Action = "sts:AssumeRole"
50
+ }
51
+ ]
52
+ })
53
+
54
+ tags = var.tags
55
+ }
56
+
57
+ resource "aws_iam_policy" "lambda_policy" {
58
+ name = "<%- functionNameKebabCase %>-policy-${random_string.suffix.result}"
59
+ description = "Policy for <%- functionNameKebabCase %> Lambda function"
60
+
61
+ policy = jsonencode({
62
+ Version = "2012-10-17"
63
+ Statement = concat([
64
+ {
65
+ Sid = "CloudWatchLogsAccess"
66
+ Effect = "Allow"
67
+ Action = [
68
+ "logs:CreateLogGroup",
69
+ "logs:CreateLogStream",
70
+ "logs:PutLogEvents"
71
+ ]
72
+ Resource = [
73
+ "arn:aws:logs:${local.aws_region}:${local.aws_account_id}:log-group:/aws/lambda/<%- functionNameKebabCase %>-${random_string.suffix.result}:*"
74
+ ]
75
+ },
76
+ {
77
+ Sid = "XRayAccess"
78
+ Effect = "Allow"
79
+ Action = [
80
+ "xray:PutTraceSegments",
81
+ "xray:PutTelemetryRecords"
82
+ ]
83
+ Resource = ["*"]
84
+ }
85
+ ], var.additional_iam_policy_statements)
86
+ })
87
+
88
+ tags = var.tags
89
+ }
90
+
91
+ # Attach the policy to the role
92
+ resource "aws_iam_role_policy_attachment" "lambda_policy_attachment" {
93
+ role = aws_iam_role.lambda_role.name
94
+ policy_arn = aws_iam_policy.lambda_policy.arn
95
+ }
96
+
97
+ data "archive_file" "lambda_zip" {
98
+ type = "zip"
99
+ source_dir = "${path.module}/../../../../../../../<%- bundlePathFromRoot %>"
100
+ output_path = "${path.module}/../../../../../../../dist/packages/common/terraform/lambda-functions/<%- functionNameKebabCase %>/lambda.zip"
101
+ }
102
+
103
+ resource "aws_lambda_function" "lambda_function" {
104
+ #checkov:skip=CKV_AWS_117:Lambda function does not need to be in VPC for this use case
105
+ #checkov:skip=CKV_AWS_116:Dead Letter Queue not required for this simple use case
106
+ #checkov:skip=CKV_AWS_272:Code signing not required for this use case
107
+ #checkov:skip=CKV_AWS_115:Concurrent execution limit not required for this use case
108
+ #checkov:skip=CKV_AWS_173:Lambda environment variables encrypted by managed key
109
+ filename = data.archive_file.lambda_zip.output_path
110
+ function_name = "<%- functionNameKebabCase %>-${random_string.suffix.result}"
111
+ role = aws_iam_role.lambda_role.arn
112
+ handler = "<%- handler %>"
113
+ source_code_hash = data.archive_file.lambda_zip.output_base64sha256
114
+ runtime = "<%- runtime %>"
115
+ timeout = 30
116
+
117
+ tracing_config {
118
+ mode = "Active"
119
+ }
120
+
121
+ environment {
122
+ variables = merge({
123
+ AWS_CONNECTION_REUSE_ENABLED = "1"
124
+ }, var.env)
125
+ }
126
+
127
+ tags = var.tags
128
+
129
+ depends_on = [aws_iam_role_policy_attachment.lambda_policy_attachment]
130
+ }
131
+
132
+ output "function_name" {
133
+ description = "Name of the Lambda function"
134
+ value = aws_lambda_function.lambda_function.function_name
135
+ }
136
+
137
+ output "function_arn" {
138
+ description = "ARN of the Lambda function"
139
+ value = aws_lambda_function.lambda_function.arn
140
+ }
141
+
142
+ output "role_arn" {
143
+ description = "ARN of the Lambda execution role"
144
+ value = aws_iam_role.lambda_role.arn
145
+ }
146
+
147
+ output "role_name" {
148
+ description = "Name of the Lambda execution role"
149
+ value = aws_iam_role.lambda_role.name
150
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { Tree } from '@nx/devkit';
6
+ import { IacProvider } from '../iac';
7
+ export interface AddLambdaFunctionConstructOptions {
8
+ functionProjectName: string;
9
+ functionNameClassName: string;
10
+ functionNameKebabCase: string;
11
+ bundlePathFromRoot: string;
12
+ handler: string;
13
+ runtime: 'node' | 'python';
14
+ }
15
+ /**
16
+ * Add infrastructure for a lambda function
17
+ */
18
+ export declare const addLambdaFunctionInfra: (tree: Tree, options: AddLambdaFunctionConstructOptions & {
19
+ iacProvider: IacProvider;
20
+ }) => void;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addLambdaFunctionInfra = void 0;
4
+ /**
5
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ const devkit_1 = require("@nx/devkit");
9
+ const shared_constructs_constants_1 = require("../shared-constructs-constants");
10
+ const ast_1 = require("../ast");
11
+ /**
12
+ * Add infrastructure for a lambda function
13
+ */
14
+ const addLambdaFunctionInfra = (tree, options) => {
15
+ if (options.iacProvider === 'CDK') {
16
+ addLambdaFunctionCdkConstructs(tree, options);
17
+ }
18
+ else if (options.iacProvider === 'Terraform') {
19
+ addLambdaFunctionTerraformModules(tree, options);
20
+ }
21
+ else {
22
+ throw new Error(`Unsupported iacProvider ${options.iacProvider}`);
23
+ }
24
+ (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, options.iacProvider === 'CDK'
25
+ ? shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR
26
+ : shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'project.json'), (config) => {
27
+ var _a;
28
+ if (!config.targets) {
29
+ config.targets = {};
30
+ }
31
+ if (!config.targets.build) {
32
+ config.targets.build = {};
33
+ }
34
+ config.targets.build.dependsOn = [
35
+ ...((_a = config.targets.build.dependsOn) !== null && _a !== void 0 ? _a : []),
36
+ `${options.functionProjectName}:build`,
37
+ ];
38
+ return config;
39
+ });
40
+ };
41
+ exports.addLambdaFunctionInfra = addLambdaFunctionInfra;
42
+ const addLambdaFunctionCdkConstructs = (tree, options) => {
43
+ // Generate app specific CDK construct
44
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'cdk', 'app', 'lambda-functions'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'lambda-functions'), Object.assign(Object.assign({}, options), { runtime: `Runtime.${options.runtime === 'python' ? 'PYTHON_3_12' : 'NODEJS_LATEST'}` }), {
45
+ overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
46
+ });
47
+ // Export app specific CDK construct
48
+ (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'lambda-functions', 'index.ts'), `./${options.functionNameKebabCase}.js`);
49
+ (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), './lambda-functions/index.js');
50
+ };
51
+ const addLambdaFunctionTerraformModules = (tree, options) => {
52
+ // Generate app specific terraform module
53
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform', 'app', 'lambda-functions'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'app', 'lambda-functions'), Object.assign(Object.assign({}, options), { runtime: options.runtime === 'python' ? 'python3.12' : 'nodejs22.x' }), {
54
+ overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
55
+ });
56
+ };
57
+ //# sourceMappingURL=function-constructs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/function-constructs/function-constructs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { Tree } from '@nx/devkit';
6
+ export declare const IAC_PROVIDERS: readonly ["CDK", "Terraform"];
7
+ export type IacProvider = (typeof IAC_PROVIDERS)[number];
8
+ export type IacProviderOption = IacProvider | 'Inherit';
9
+ /**
10
+ * Configuration for infrastructure as code
11
+ */
12
+ export interface IacConfig {
13
+ /**
14
+ * Default provider for infrastructure as code
15
+ */
16
+ provider: IacProvider;
17
+ }
18
+ /**
19
+ * Given an iac provider option, resolve the actual iac provider to use
20
+ */
21
+ export declare const resolveIacProvider: (tree: Tree, iacProviderOption: IacProviderOption) => Promise<IacProvider>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveIacProvider = exports.IAC_PROVIDERS = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const utils_1 = require("./config/utils");
6
+ exports.IAC_PROVIDERS = ['CDK', 'Terraform'];
7
+ /**
8
+ * Given an iac provider option, resolve the actual iac provider to use
9
+ */
10
+ const resolveIacProvider = (tree, iacProviderOption) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
11
+ var _a;
12
+ if (iacProviderOption === 'Inherit') {
13
+ const pluginConfig = yield (0, utils_1.readAwsNxPluginConfig)(tree);
14
+ if (!((_a = pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.iac) === null || _a === void 0 ? void 0 : _a.provider)) {
15
+ throw new Error(`IaC provider "Inherit" requires iac.provider to be set in ${utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME}`);
16
+ }
17
+ if (!exports.IAC_PROVIDERS.includes(pluginConfig.iac.provider)) {
18
+ throw new Error(`iac.provider in ${utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME} must be one of ${exports.IAC_PROVIDERS.join(', ')}`);
19
+ }
20
+ return pluginConfig.iac.provider;
21
+ }
22
+ return iacProviderOption;
23
+ });
24
+ exports.resolveIacProvider = resolveIacProvider;
25
+ //# sourceMappingURL=iac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iac.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/iac.ts"],"names":[],"mappings":";;;;AAKA,0CAGwB;AAEX,QAAA,aAAa,GAAG,CAAC,KAAK,EAAE,WAAW,CAAU,CAAC;AAgB3D;;GAEG;AACI,MAAM,kBAAkB,GAAG,CAChC,IAAU,EACV,iBAAoC,EACd,EAAE;;IACxB,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,MAAM,IAAA,6BAAqB,EAAC,IAAI,CAAC,CAAC;QAEvD,IAAI,CAAC,CAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,0CAAE,QAAQ,CAAA,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,6DAA6D,sCAA8B,EAAE,CAC9F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,qBAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,mBAAmB,sCAA8B,mBAAmB,qBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnC,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAA,CAAC;AArBW,QAAA,kBAAkB,sBAqB7B"}