@aws/nx-plugin 0.121.0 → 1.0.0-rc.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.
- package/generators.json +47 -6
- package/package.json +1 -1
- package/src/connection/generator.js +2 -2
- package/src/connection/generator.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +11 -11
- package/src/infra/app/files/app/src/main.ts.template +2 -2
- package/src/infra/app/generator.js +9 -9
- package/src/infra/app/generator.js.map +1 -1
- package/src/infra/app/schema.d.ts +1 -1
- package/src/infra/app/schema.json +1 -1
- package/src/mcp-server/guide-pipeline.js +8 -10
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.js +1 -1
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.js +2 -2
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +6 -8
- package/src/preset/generator.d.ts +1 -1
- package/src/preset/generator.js +4 -6
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.ts +5 -5
- package/src/preset/schema.json +4 -4
- package/src/py/agent/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/agent/a2a-connection/generator.js +4 -3
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/files/deploy/Dockerfile.template +3 -3
- package/src/py/agent/generator.js +23 -23
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/generator.js +1 -1
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/agent/react-connection/generator.js +4 -4
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/schema.d.ts +8 -8
- package/src/py/agent/schema.json +18 -18
- package/src/py/api/generator.d.ts +10 -0
- package/src/py/api/generator.js +25 -0
- package/src/py/api/generator.js.map +1 -0
- package/src/py/api/schema.d.ts +17 -0
- package/src/py/api/schema.json +100 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/py/fast-api/generator.js +10 -10
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/generator.js +1 -1
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/schema.d.ts +4 -6
- package/src/py/fast-api/schema.json +15 -15
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/lambda-function/files/handler/__lambdaFunctionSnakeCase__.py.template +6 -6
- package/src/py/lambda-function/generator.js +9 -9
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/lambda-function/schema.d.ts +4 -4
- package/src/py/lambda-function/schema.json +7 -7
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/mcp-server/generator.js +11 -11
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.ts +5 -9
- package/src/py/mcp-server/schema.json +15 -15
- package/src/py/project/generator.js +1 -1
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.d.ts +1 -1
- package/src/py/project/schema.json +2 -2
- package/src/smithy/project/generator.js +2 -2
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/react-connection/generator.js +1 -1
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/smithy/ts/api/generator.js +8 -8
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.ts +4 -6
- package/src/smithy/ts/api/schema.json +15 -15
- package/src/terraform/project/generator.js +1 -1
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/trpc/backend/files/src/client/index.ts.template +5 -5
- package/src/trpc/backend/files/src/handler.ts.template +2 -2
- package/src/trpc/backend/generator.js +22 -22
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +4 -4
- package/src/trpc/backend/schema.json +15 -15
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +14 -14
- package/src/trpc/react/generator.js +6 -5
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/a2a-connection/generator.js +4 -3
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/files/deploy/Dockerfile.template +1 -1
- package/src/ts/agent/generator.js +22 -22
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/generator.js +1 -1
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +8 -8
- package/src/ts/agent/react-connection/generator.js +6 -6
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/serve-local.js +2 -2
- package/src/ts/agent/schema.d.ts +8 -8
- package/src/ts/agent/schema.json +18 -18
- package/src/ts/api/generator.d.ts +10 -0
- package/src/ts/api/generator.js +36 -0
- package/src/ts/api/generator.js.map +1 -0
- package/src/ts/api/schema.d.ts +18 -0
- package/src/ts/api/schema.json +105 -0
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +1 -0
- package/src/ts/astro-docs/generator.js +1 -0
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/docs/generator.d.ts +10 -0
- package/src/ts/docs/generator.js +13 -0
- package/src/ts/docs/generator.js.map +1 -0
- package/src/ts/docs/schema.d.ts +34 -0
- package/src/ts/docs/schema.json +70 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +10 -10
- package/src/ts/lambda-function/generator.js +12 -12
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lambda-function/schema.d.ts +4 -4
- package/src/ts/lambda-function/schema.json +7 -7
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/mcp-server/generator.js +12 -12
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.ts +5 -9
- package/src/ts/mcp-server/schema.json +15 -15
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.spec.ts.template +1 -1
- package/src/ts/nx-plugin/generator.js +2 -2
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/rdb/files/prisma.config.ts.template +1 -1
- package/src/ts/rdb/files/scripts/docker-pull.ts.template +1 -1
- package/src/ts/rdb/files/scripts/docker-start.ts.template +3 -3
- package/src/ts/rdb/files/scripts/wait-for-db.ts.template +3 -3
- package/src/ts/rdb/files/src/create-db-user-handler.ts.template +2 -2
- package/src/ts/rdb/files/src/migration-handler.ts.template +2 -2
- package/src/ts/rdb/files/src/prisma.ts.template +2 -2
- package/src/ts/rdb/generator.js +18 -18
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/schema.d.ts +5 -5
- package/src/ts/rdb/schema.json +13 -13
- package/src/ts/rdb/trpc-connection/files/src/middleware/__rdbNameKebab__.ts.template +1 -1
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +9 -9
- package/src/ts/react-website/agui/generator.d.ts +2 -2
- package/src/ts/react-website/agui/generator.js +9 -9
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +25 -23
- package/src/ts/react-website/app/files/app/cloudscape/src/components/AppLayout/index.tsx.template +5 -5
- package/src/ts/react-website/app/files/app/cloudscape/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/files/app/cloudscape/src/styles.css.template +1 -1
- package/src/ts/react-website/app/files/app/none/src/components/AppLayout/index.tsx.template +5 -5
- package/src/ts/react-website/app/files/app/none/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/files/app/none/src/styles.css.template +2 -2
- package/src/ts/react-website/app/files/app/shadcn/src/components/AppLayout/index.tsx.template +6 -6
- package/src/ts/react-website/app/files/app/shadcn/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/generator.d.ts +3 -3
- package/src/ts/react-website/app/generator.js +28 -27
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.ts +6 -6
- package/src/ts/react-website/app/schema.json +13 -13
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +3 -3
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +3 -3
- package/src/ts/react-website/cognito-auth/generator.js +9 -9
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/schema.d.ts +2 -2
- package/src/ts/react-website/cognito-auth/schema.json +4 -4
- package/src/ts/website/app/generator.d.ts +10 -0
- package/src/ts/website/app/generator.js +13 -0
- package/src/ts/website/app/generator.js.map +1 -0
- package/src/ts/website/app/schema.d.ts +20 -0
- package/src/ts/website/app/schema.json +97 -0
- package/src/ts/website/auth/generator.d.ts +10 -0
- package/src/ts/website/auth/generator.js +17 -0
- package/src/ts/website/auth/generator.js.map +1 -0
- package/src/ts/website/auth/schema.d.ts +12 -0
- package/src/ts/website/auth/schema.json +46 -0
- package/src/utils/agent-connection/agent-connection.js +1 -1
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +9 -9
- package/src/utils/agent-core-constructs/agent-core-constructs.js +11 -13
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +13 -13
- package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +5 -5
- package/src/utils/api-constructs/api-constructs.d.ts +3 -3
- package/src/utils/api-constructs/api-constructs.js +4 -6
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +12 -12
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +12 -12
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +7 -7
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +10 -10
- package/src/utils/api-constructs/open-api-metadata.d.ts +3 -3
- package/src/utils/api-constructs/open-api-metadata.js +2 -2
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/commands.d.ts +1 -1
- package/src/utils/commands.js +2 -2
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/__snapshots__/utils.spec.ts.snap +6 -6
- package/src/utils/config/index.d.ts +2 -2
- package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +7 -7
- package/src/utils/connection/open-api/react.d.ts +1 -1
- package/src/utils/connection/open-api/react.js +3 -3
- package/src/utils/containers.d.ts +5 -5
- package/src/utils/containers.js +6 -6
- package/src/utils/containers.js.map +1 -1
- package/src/utils/function-constructs/files/cdk/app/lambda-functions/{__functionNameKebabCase__.ts.template → __nameKebabCase__.ts.template} +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/{__functionNameKebabCase__/__functionNameKebabCase__.tf.template → __nameKebabCase__/__nameKebabCase__.tf.template} +7 -7
- package/src/utils/function-constructs/function-constructs.d.ts +4 -4
- package/src/utils/function-constructs/function-constructs.js +5 -7
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/iac-providers.d.ts +3 -3
- package/src/utils/iac-providers.js +1 -1
- package/src/utils/iac.d.ts +2 -2
- package/src/utils/iac.js +6 -6
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
- package/src/utils/identity-constructs/identity-constructs.js +3 -3
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/rdb-constructs/rdb-constructs.d.ts +4 -4
- package/src/utils/rdb-constructs/rdb-constructs.js +4 -6
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +2 -2
- package/src/utils/shared-constructs.js +3 -3
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/website-constructs/website-constructs.d.ts +2 -2
- package/src/utils/website-constructs/website-constructs.js +4 -6
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "py#api",
|
|
4
|
+
"title": "py#api",
|
|
5
|
+
"description": "Create a Python API",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"name": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Name of the API project to generate",
|
|
11
|
+
"x-priority": "important",
|
|
12
|
+
"$default": {
|
|
13
|
+
"$source": "argv",
|
|
14
|
+
"index": 0
|
|
15
|
+
},
|
|
16
|
+
"x-prompt": "What name would you like your API to have? i.e: MyApi"
|
|
17
|
+
},
|
|
18
|
+
"framework": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The API framework to use.",
|
|
21
|
+
"default": "fastapi",
|
|
22
|
+
"enum": ["fastapi"],
|
|
23
|
+
"x-prompt": {
|
|
24
|
+
"message": "Which API framework would you like to use?",
|
|
25
|
+
"type": "list",
|
|
26
|
+
"items": [
|
|
27
|
+
{
|
|
28
|
+
"value": "fastapi",
|
|
29
|
+
"label": "FastAPI (modern Python web framework)"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"default": "fastapi"
|
|
33
|
+
},
|
|
34
|
+
"x-priority": "important"
|
|
35
|
+
},
|
|
36
|
+
"integrationPattern": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "How API Gateway integrations are generated for the API. Choose between isolated (default) and shared.",
|
|
39
|
+
"default": "isolated",
|
|
40
|
+
"enum": ["isolated", "shared"],
|
|
41
|
+
"x-priority": "important",
|
|
42
|
+
"x-prompt": {
|
|
43
|
+
"message": "How would you like to map integrations to your API operations?",
|
|
44
|
+
"type": "list",
|
|
45
|
+
"items": [
|
|
46
|
+
{
|
|
47
|
+
"value": "isolated",
|
|
48
|
+
"label": "isolated (one integration per operation)"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"value": "shared",
|
|
52
|
+
"label": "shared (single default integration with optional overrides)"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"default": "isolated"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"auth": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"description": "The method used to authenticate with your API. Choose between iam (default), cognito or custom.",
|
|
61
|
+
"default": "iam",
|
|
62
|
+
"enum": ["iam", "cognito", "custom"],
|
|
63
|
+
"x-prompt": "How would you like users to authenticate with your API?",
|
|
64
|
+
"x-priority": "important"
|
|
65
|
+
},
|
|
66
|
+
"directory": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"description": "The directory to store the application in.",
|
|
69
|
+
"default": "packages",
|
|
70
|
+
"x-prompt": "Which directory do you want to create the project in?",
|
|
71
|
+
"x-priority": "important"
|
|
72
|
+
},
|
|
73
|
+
"subDirectory": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"description": "The sub directory the project is placed in. By default this is the project name.",
|
|
76
|
+
"x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
|
|
77
|
+
},
|
|
78
|
+
"iac": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
81
|
+
"enum": ["inherit", "cdk", "terraform"],
|
|
82
|
+
"x-priority": "important",
|
|
83
|
+
"default": "inherit",
|
|
84
|
+
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
85
|
+
},
|
|
86
|
+
"moduleName": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"description": "Python module name"
|
|
89
|
+
},
|
|
90
|
+
"infra": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"description": "The type of infrastructure to use to deploy this API. Choose between rest-lambda (default) or http-lambda.",
|
|
93
|
+
"default": "rest-lambda",
|
|
94
|
+
"enum": ["rest-lambda", "http-lambda"],
|
|
95
|
+
"x-prompt": "What infrastructure would you like to deploy your API with?",
|
|
96
|
+
"x-priority": "important"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"required": ["name"]
|
|
100
|
+
}
|
|
@@ -1915,7 +1915,7 @@ export class IntegrationBuilder<
|
|
|
1915
1915
|
"
|
|
1916
1916
|
`;
|
|
1917
1917
|
|
|
1918
|
-
exports[`fastapi project generator > terraform
|
|
1918
|
+
exports[`fastapi project generator > terraform iac > should generate terraform files for HTTP API with Cognito auth and snapshot them > terraform-http-cognito-files 1`] = `
|
|
1919
1919
|
{
|
|
1920
1920
|
"http-api.tf": "# Core HTTP API Gateway module
|
|
1921
1921
|
# This module creates the API Gateway HTTP API, stage, and logging resources
|
|
@@ -2586,7 +2586,7 @@ output "api_log_group_arn" {
|
|
|
2586
2586
|
}
|
|
2587
2587
|
`;
|
|
2588
2588
|
|
|
2589
|
-
exports[`fastapi project generator > terraform
|
|
2589
|
+
exports[`fastapi project generator > terraform iac > should generate terraform files for HTTP API with Custom auth and snapshot them > terraform-http-custom-files 1`] = `
|
|
2590
2590
|
{
|
|
2591
2591
|
"http-api.tf": "# Core HTTP API Gateway module
|
|
2592
2592
|
# This module creates the API Gateway HTTP API, stage, and logging resources
|
|
@@ -3329,7 +3329,7 @@ output "api_log_group_arn" {
|
|
|
3329
3329
|
}
|
|
3330
3330
|
`;
|
|
3331
3331
|
|
|
3332
|
-
exports[`fastapi project generator > terraform
|
|
3332
|
+
exports[`fastapi project generator > terraform iac > should generate terraform files for HTTP API with IAM auth and snapshot them > terraform-http-iam-files 1`] = `
|
|
3333
3333
|
{
|
|
3334
3334
|
"http-api.tf": "# Core HTTP API Gateway module
|
|
3335
3335
|
# This module creates the API Gateway HTTP API, stage, and logging resources
|
|
@@ -3977,7 +3977,7 @@ output "api_log_group_arn" {
|
|
|
3977
3977
|
}
|
|
3978
3978
|
`;
|
|
3979
3979
|
|
|
3980
|
-
exports[`fastapi project generator > terraform
|
|
3980
|
+
exports[`fastapi project generator > terraform iac > should generate terraform files for REST API with Cognito auth and snapshot them > terraform-rest-cognito-files 1`] = `
|
|
3981
3981
|
{
|
|
3982
3982
|
"rest-api.tf": "# Core REST API Gateway module
|
|
3983
3983
|
# This module creates the API Gateway REST API, deployment, stage, and logging resources
|
|
@@ -4803,7 +4803,7 @@ output "lambda_log_group_arn" {
|
|
|
4803
4803
|
}
|
|
4804
4804
|
`;
|
|
4805
4805
|
|
|
4806
|
-
exports[`fastapi project generator > terraform
|
|
4806
|
+
exports[`fastapi project generator > terraform iac > should generate terraform files for REST API with IAM auth and snapshot them > terraform-rest-iam-files 1`] = `
|
|
4807
4807
|
{
|
|
4808
4808
|
"rest-api.tf": "# Core REST API Gateway module
|
|
4809
4809
|
# This module creates the API Gateway REST API, deployment, stage, and logging resources
|
|
@@ -5621,7 +5621,7 @@ output "lambda_log_group_arn" {
|
|
|
5621
5621
|
}
|
|
5622
5622
|
`;
|
|
5623
5623
|
|
|
5624
|
-
exports[`fastapi project generator > terraform
|
|
5624
|
+
exports[`fastapi project generator > terraform iac > should generate terraform files for REST API with None auth and snapshot them > terraform-rest-none-files 1`] = `
|
|
5625
5625
|
{
|
|
5626
5626
|
"rest-api.tf": "# Core REST API Gateway module
|
|
5627
5627
|
# This module creates the API Gateway REST API, deployment, stage, and logging resources
|
|
@@ -29,9 +29,9 @@ exports.FAST_API_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
|
29
29
|
*/
|
|
30
30
|
const pyFastApiProjectGenerator = async (tree, schema) => {
|
|
31
31
|
const integrationPattern = getIntegrationPattern(schema);
|
|
32
|
-
const
|
|
32
|
+
const iac = await (0, iac_1.resolveIac)(tree, schema.iac);
|
|
33
33
|
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
|
|
34
|
-
|
|
34
|
+
iac,
|
|
35
35
|
});
|
|
36
36
|
const { dir, normalizedModuleName, fullyQualifiedName } = (0, generator_1.getPyProjectDetails)(tree, {
|
|
37
37
|
name: schema.name,
|
|
@@ -46,7 +46,7 @@ const pyFastApiProjectGenerator = async (tree, schema) => {
|
|
|
46
46
|
directory: schema.directory,
|
|
47
47
|
subDirectory: schema.subDirectory,
|
|
48
48
|
moduleName: normalizedModuleName,
|
|
49
|
-
|
|
49
|
+
type: 'application',
|
|
50
50
|
});
|
|
51
51
|
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, fullyQualifiedName);
|
|
52
52
|
const port = (0, port_1.assignPort)(tree, projectConfig, 8000);
|
|
@@ -95,12 +95,12 @@ const pyFastApiProjectGenerator = async (tree, schema) => {
|
|
|
95
95
|
{
|
|
96
96
|
name: normalizedModuleName,
|
|
97
97
|
apiNameClassName,
|
|
98
|
-
|
|
98
|
+
infra: schema.infra,
|
|
99
99
|
}, {
|
|
100
100
|
overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
|
|
101
101
|
});
|
|
102
|
-
if (schema.auth === '
|
|
103
|
-
const authorizerType = schema.
|
|
102
|
+
if (schema.auth === 'custom') {
|
|
103
|
+
const authorizerType = schema.infra === 'http-lambda' ? 'http' : 'rest';
|
|
104
104
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', '..', 'utils', 'api-constructs', 'files', 'py-authorizer', authorizerType), (0, devkit_1.joinPathFragments)(dir, normalizedModuleName), {}, {
|
|
105
105
|
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
106
106
|
});
|
|
@@ -110,7 +110,7 @@ const pyFastApiProjectGenerator = async (tree, schema) => {
|
|
|
110
110
|
apiProjectName: projectConfig.name,
|
|
111
111
|
apiNameClassName,
|
|
112
112
|
apiNameKebabCase,
|
|
113
|
-
constructType: schema.
|
|
113
|
+
constructType: schema.infra === 'http-lambda' ? 'http' : 'rest',
|
|
114
114
|
backend: {
|
|
115
115
|
type: 'fastapi',
|
|
116
116
|
moduleName: normalizedModuleName,
|
|
@@ -118,10 +118,10 @@ const pyFastApiProjectGenerator = async (tree, schema) => {
|
|
|
118
118
|
integrationPattern,
|
|
119
119
|
},
|
|
120
120
|
auth: schema.auth,
|
|
121
|
-
|
|
121
|
+
iac,
|
|
122
122
|
});
|
|
123
123
|
(0, open_api_metadata_1.addSharedConstructsOpenApiMetadataGenerateTarget)(tree, {
|
|
124
|
-
|
|
124
|
+
iac,
|
|
125
125
|
apiNameKebabCase,
|
|
126
126
|
specPath,
|
|
127
127
|
specBuildTargetName: `${projectConfig.name}:openapi`,
|
|
@@ -131,7 +131,7 @@ const pyFastApiProjectGenerator = async (tree, schema) => {
|
|
|
131
131
|
'uvicorn',
|
|
132
132
|
'aws-lambda-powertools',
|
|
133
133
|
'aws-lambda-powertools[tracer]',
|
|
134
|
-
...(schema.auth === '
|
|
134
|
+
...(schema.auth === 'custom'
|
|
135
135
|
? ['aws-lambda-powertools[parser]']
|
|
136
136
|
: []),
|
|
137
137
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/fast-api/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAUoB;AAEpB,yDAA6D;AAC7D,0EAA+E;AAC/E,qEAA0E;AAC1E,6CAA6D;AAC7D,+CAA0D;AAC1D,+CAAoD;AACpD,uCAIwB;AACxB,iDAAsE;AACtE,8EAA+E;AAC/E,uCAA4C;AAC5C,+CAAwD;AACxD,2CAA8C;AAC9C,sDAAkE;AAClE,uCAGwB;AACxB,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/fast-api/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ const fastApiReactGenerator = async (tree, options) => {
|
|
|
21
21
|
});
|
|
22
22
|
const metadata = fastApiProjectConfig.metadata;
|
|
23
23
|
const apiName = metadata?.apiName;
|
|
24
|
-
const auth = metadata?.auth ?? '
|
|
24
|
+
const auth = (metadata?.auth ?? 'iam').toLowerCase();
|
|
25
25
|
const port = metadata?.port ?? metadata?.ports?.[0] ?? 8000;
|
|
26
26
|
await (0, react_1.addOpenApiReactClient)(tree, {
|
|
27
27
|
apiName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/fast-api/react/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAAuD;AAEvD,kDAA6D;AAC7D,0CAI2B;AAC3B,oDAAyE;AACzE,yCAAkD;AAClD,oEAAiF;AAEpE,QAAA,6BAA6B,GACxC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,qBAAqB,GAAG,KAAK,EACxC,IAAU,EACV,OAAoC,EACpC,EAAE;IACF,MAAM,qBAAqB,GAAG,IAAA,wCAAmC,EAC/D,IAAI,EACJ,OAAO,CAAC,mBAAmB,CAC5B,CAAC;IACF,MAAM,oBAAoB,GAAG,IAAA,wCAAmC,EAC9D,IAAI,EACJ,OAAO,CAAC,kBAAkB,CAC3B,CAAC;IAEF,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,+BAAoB,EAAC,IAAI,EAAE;QAC9C,OAAO,EAAE,oBAAoB;KAC9B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAe,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/fast-api/react/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAAuD;AAEvD,kDAA6D;AAC7D,0CAI2B;AAC3B,oDAAyE;AACzE,yCAAkD;AAClD,oEAAiF;AAEpE,QAAA,6BAA6B,GACxC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,qBAAqB,GAAG,KAAK,EACxC,IAAU,EACV,OAAoC,EACpC,EAAE;IACF,MAAM,qBAAqB,GAAG,IAAA,wCAAmC,EAC/D,IAAI,EACJ,OAAO,CAAC,mBAAmB,CAC5B,CAAC;IACF,MAAM,oBAAoB,GAAG,IAAA,wCAAmC,EAC9D,IAAI,EACJ,OAAO,CAAC,kBAAkB,CAC3B,CAAC;IAEF,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,+BAAoB,EAAC,IAAI,EAAE;QAC9C,OAAO,EAAE,oBAAoB;KAC9B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAe,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE5D,MAAM,IAAA,6BAAqB,EAAC,IAAI,EAAE;QAChC,OAAO;QACP,qBAAqB;QACrB,oBAAoB,EAAE,oBAAoB;QAC1C,gBAAgB,EAAE,oBAAoB;QACtC,QAAQ;QACR,mBAAmB,EAAE,GAAG,oBAAoB,CAAC,IAAI,UAAU;QAC3D,IAAI;QACJ,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE,CAAC,qCAA6B,CAAC,CAAC,CAAC;IAE7E,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE;QACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC,CAAC;AAxCW,QAAA,qBAAqB,yBAwChC;AAEF,kBAAe,6BAAqB,CAAC"}
|
|
@@ -3,17 +3,15 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { IacOption } from '../../utils/iac';
|
|
7
7
|
|
|
8
8
|
export interface PyFastApiProjectGeneratorSchema {
|
|
9
9
|
readonly name: string;
|
|
10
|
-
readonly
|
|
11
|
-
| 'ServerlessApiGatewayRestApi'
|
|
12
|
-
| 'ServerlessApiGatewayHttpApi';
|
|
10
|
+
readonly infra: 'rest-lambda' | 'http-lambda';
|
|
13
11
|
readonly integrationPattern?: 'isolated' | 'shared';
|
|
14
|
-
readonly auth: '
|
|
12
|
+
readonly auth: 'iam' | 'cognito' | 'custom';
|
|
15
13
|
readonly directory?: string;
|
|
16
14
|
readonly subDirectory?: string;
|
|
17
15
|
readonly moduleName?: string;
|
|
18
|
-
readonly
|
|
16
|
+
readonly iac: IacOption;
|
|
19
17
|
}
|
|
@@ -15,14 +15,6 @@
|
|
|
15
15
|
},
|
|
16
16
|
"x-prompt": "What name would you like your API to have? i.e: MyApi"
|
|
17
17
|
},
|
|
18
|
-
"computeType": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"description": "The type of compute to use to deploy this API. Choose between ServerlessApiGatewayRestApi (default) or ServerlessApiGatewayHttpApi.",
|
|
21
|
-
"default": "ServerlessApiGatewayRestApi",
|
|
22
|
-
"enum": ["ServerlessApiGatewayRestApi", "ServerlessApiGatewayHttpApi"],
|
|
23
|
-
"x-prompt": "What compute type would you like to deploy your API with?",
|
|
24
|
-
"x-priority": "important"
|
|
25
|
-
},
|
|
26
18
|
"integrationPattern": {
|
|
27
19
|
"type": "string",
|
|
28
20
|
"description": "How API Gateway integrations are generated for the API. Choose between isolated (default) and shared.",
|
|
@@ -47,9 +39,9 @@
|
|
|
47
39
|
},
|
|
48
40
|
"auth": {
|
|
49
41
|
"type": "string",
|
|
50
|
-
"description": "The method used to authenticate with your API. Choose between
|
|
51
|
-
"default": "
|
|
52
|
-
"enum": ["
|
|
42
|
+
"description": "The method used to authenticate with your API. Choose between iam (default), cognito or custom.",
|
|
43
|
+
"default": "iam",
|
|
44
|
+
"enum": ["iam", "cognito", "custom"],
|
|
53
45
|
"x-prompt": "How would you like users to authenticate with your API?",
|
|
54
46
|
"x-priority": "important"
|
|
55
47
|
},
|
|
@@ -65,17 +57,25 @@
|
|
|
65
57
|
"description": "The sub directory the project is placed in. By default this is the project name.",
|
|
66
58
|
"x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
|
|
67
59
|
},
|
|
68
|
-
"
|
|
60
|
+
"iac": {
|
|
69
61
|
"type": "string",
|
|
70
62
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
71
|
-
"enum": ["
|
|
63
|
+
"enum": ["inherit", "cdk", "terraform"],
|
|
72
64
|
"x-priority": "important",
|
|
73
|
-
"default": "
|
|
74
|
-
"x-prompt": "Which provider would you like to manage your infrastructure? (default:
|
|
65
|
+
"default": "inherit",
|
|
66
|
+
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
75
67
|
},
|
|
76
68
|
"moduleName": {
|
|
77
69
|
"type": "string",
|
|
78
70
|
"description": "Python module name"
|
|
71
|
+
},
|
|
72
|
+
"infra": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "The type of infrastructure to use to deploy this API. Choose between rest-lambda (default) or http-lambda.",
|
|
75
|
+
"default": "rest-lambda",
|
|
76
|
+
"enum": ["rest-lambda", "http-lambda"],
|
|
77
|
+
"x-prompt": "What infrastructure would you like to deploy your API with?",
|
|
78
|
+
"x-priority": "important"
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
"required": ["name"]
|
|
@@ -64,7 +64,7 @@ export class TestProjectTestFunction extends Function {
|
|
|
64
64
|
}
|
|
65
65
|
`;
|
|
66
66
|
|
|
67
|
-
exports[`lambda-handler project generator > terraform
|
|
67
|
+
exports[`lambda-handler project generator > terraform iac > should generate terraform files for python lambda function and snapshot them > terraform-python-lambda-files 1`] = `
|
|
68
68
|
{
|
|
69
69
|
"test-project-test-function.tf": "terraform {
|
|
70
70
|
required_providers {
|
|
@@ -246,7 +246,7 @@ output "role_name" {
|
|
|
246
246
|
}
|
|
247
247
|
`;
|
|
248
248
|
|
|
249
|
-
exports[`lambda-handler project generator > terraform
|
|
249
|
+
exports[`lambda-handler project generator > terraform iac > should match snapshot for terraform generated files with different configurations > terraform-python-lambda-snapshot-function.tf 1`] = `
|
|
250
250
|
"terraform {
|
|
251
251
|
required_providers {
|
|
252
252
|
aws = {
|
|
@@ -2,9 +2,9 @@ import os
|
|
|
2
2
|
|
|
3
3
|
from aws_lambda_powertools import Logger, Metrics, Tracer
|
|
4
4
|
from aws_lambda_powertools.metrics import MetricUnit
|
|
5
|
-
<%_ if (
|
|
5
|
+
<%_ if (event !== 'Any') { _%>
|
|
6
6
|
from aws_lambda_powertools.utilities.parser import event_parser
|
|
7
|
-
from aws_lambda_powertools.utilities.parser.models import <%=
|
|
7
|
+
from aws_lambda_powertools.utilities.parser.models import <%= event %>
|
|
8
8
|
<%_ } _%>
|
|
9
9
|
from aws_lambda_powertools.utilities.typing import LambdaContext
|
|
10
10
|
|
|
@@ -17,11 +17,11 @@ tracer: Tracer = Tracer()
|
|
|
17
17
|
|
|
18
18
|
@tracer.capture_lambda_handler
|
|
19
19
|
@metrics.log_metrics
|
|
20
|
-
<%_ if (
|
|
21
|
-
@event_parser(model=<%=
|
|
20
|
+
<%_ if (event !== 'Any') { _%>
|
|
21
|
+
@event_parser(model=<%= event %>)
|
|
22
22
|
<%_ } _%>
|
|
23
|
-
def lambda_handler(event: <%=
|
|
24
|
-
logger.info("Received event", extra={"event": event<%=
|
|
23
|
+
def lambda_handler(event: <%= event === 'Any' ? 'dict' : event %>, context: LambdaContext):
|
|
24
|
+
logger.info("Received event", extra={"event": event<%= event === 'Any' ? '' : '.model_dump()' %> })
|
|
25
25
|
metrics.add_metric(name="InvocationCount", unit=MetricUnit.Count, value=1)
|
|
26
26
|
|
|
27
27
|
try:
|
|
@@ -22,7 +22,7 @@ const iac_1 = require("../../utils/iac");
|
|
|
22
22
|
exports.LAMBDA_FUNCTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
23
23
|
const getLambdaFunctionDetails = (tree, schema) => {
|
|
24
24
|
const scope = (0, names_1.toSnakeCase)((0, npm_scope_1.getNpmScope)(tree));
|
|
25
|
-
const normalizedFunctionName = (0, names_1.toSnakeCase)(schema.
|
|
25
|
+
const normalizedFunctionName = (0, names_1.toSnakeCase)(schema.name);
|
|
26
26
|
const fullyQualifiedFunctionName = `${scope}.${normalizedFunctionName}`;
|
|
27
27
|
const normalizedFunctionPath = `${schema.moduleName}.${schema.functionPath ? `${(0, names_1.toDotNotation)(schema.functionPath)}.` : ''}${normalizedFunctionName}.lambda_handler`;
|
|
28
28
|
return {
|
|
@@ -52,33 +52,33 @@ const pyLambdaFunctionGenerator = async (tree, schema) => {
|
|
|
52
52
|
const moduleName = sourceParts[sourceParts.length - 1];
|
|
53
53
|
const { normalizedFunctionName, normalizedFunctionPath } = getLambdaFunctionDetails(tree, {
|
|
54
54
|
moduleName,
|
|
55
|
-
|
|
55
|
+
name: schema.name,
|
|
56
56
|
functionPath: schema.functionPath,
|
|
57
57
|
});
|
|
58
58
|
const constructFunctionName = `${normalizedProjectName}_${normalizedFunctionName}`;
|
|
59
59
|
const constructFunctionClassName = (0, names_1.toClassName)(constructFunctionName);
|
|
60
60
|
const constructFunctionKebabCase = (0, names_1.toKebabCase)(constructFunctionName);
|
|
61
|
-
const lambdaFunctionClassName = (0, names_1.toClassName)(schema.
|
|
62
|
-
const lambdaFunctionKebabCase = (0, names_1.toKebabCase)(schema.
|
|
61
|
+
const lambdaFunctionClassName = (0, names_1.toClassName)(schema.name);
|
|
62
|
+
const lambdaFunctionKebabCase = (0, names_1.toKebabCase)(schema.name);
|
|
63
63
|
const functionPath = (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, schema.functionPath ?? '', `${normalizedFunctionName}.py`);
|
|
64
64
|
// Check that the project does not already have a lambda handler
|
|
65
65
|
if (tree.exists(functionPath)) {
|
|
66
66
|
throw new Error(`This project already has a a lambda function with the name ${normalizedFunctionName}. Please remove the lambda function before running this generator or use a different name.`);
|
|
67
67
|
}
|
|
68
|
-
const
|
|
68
|
+
const iac = await (0, iac_1.resolveIac)(tree, schema.iac);
|
|
69
69
|
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
|
|
70
|
-
|
|
70
|
+
iac,
|
|
71
71
|
});
|
|
72
72
|
// Check if the project has a bundle target and if not add it
|
|
73
73
|
const { bundleOutputDir } = (0, bundle_1.addPythonBundleTarget)(projectConfig);
|
|
74
74
|
await (0, function_constructs_1.addLambdaFunctionInfra)(tree, {
|
|
75
75
|
functionProjectName: projectConfig.name,
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
nameClassName: constructFunctionClassName,
|
|
77
|
+
nameKebabCase: constructFunctionKebabCase,
|
|
78
78
|
handler: normalizedFunctionPath,
|
|
79
79
|
bundlePathFromRoot: bundleOutputDir,
|
|
80
80
|
runtime: 'python',
|
|
81
|
-
|
|
81
|
+
iac,
|
|
82
82
|
});
|
|
83
83
|
const enhancedOptions = {
|
|
84
84
|
...schema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/lambda-function/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAQoB;AAEpB,yDAA6D;AAC7D,qEAA0E;AAC1E,6CAK2B;AAC3B,+CAA0D;AAC1D,qDAAoD;AACpD,+CAAoD;AACpD,uCAKwB;AACxB,iDAAsE;AACtE,sDAAkE;AAClE,uCAAgE;AAChE,6FAA6F;AAC7F,6CAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/lambda-function/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { IacOption } from '../../utils/iac';
|
|
7
7
|
|
|
8
8
|
type EventSource =
|
|
9
9
|
| 'Any'
|
|
@@ -49,8 +49,8 @@ type EventSource =
|
|
|
49
49
|
|
|
50
50
|
export interface PyLambdaFunctionGeneratorSchema {
|
|
51
51
|
readonly project: string;
|
|
52
|
-
readonly
|
|
52
|
+
readonly name: string;
|
|
53
53
|
readonly functionPath?: string;
|
|
54
|
-
readonly
|
|
55
|
-
readonly
|
|
54
|
+
readonly event?: EventSource;
|
|
55
|
+
readonly iac: IacOption;
|
|
56
56
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"x-prompt": "Select the project to add the lambda function to",
|
|
12
12
|
"x-dropdown": "projects"
|
|
13
13
|
},
|
|
14
|
-
"
|
|
14
|
+
"name": {
|
|
15
15
|
"type": "string",
|
|
16
16
|
"description": "The name of the function to add",
|
|
17
17
|
"x-priority": "important",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"description": "The path within the project source directory to add the function to",
|
|
27
27
|
"x-prompt": "Enter the path within the project source directory to add the function to (e.g. 'lambda_functions/')"
|
|
28
28
|
},
|
|
29
|
-
"
|
|
29
|
+
"event": {
|
|
30
30
|
"type": "string",
|
|
31
31
|
"description": "Optional event source model to use for the lambda function",
|
|
32
32
|
"x-priority": "important",
|
|
@@ -75,14 +75,14 @@
|
|
|
75
75
|
"default": "Any",
|
|
76
76
|
"x-prompt": "Enter the event source model to use for the lambda function"
|
|
77
77
|
},
|
|
78
|
-
"
|
|
78
|
+
"iac": {
|
|
79
79
|
"type": "string",
|
|
80
80
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
81
|
-
"enum": ["
|
|
81
|
+
"enum": ["inherit", "cdk", "terraform"],
|
|
82
82
|
"x-priority": "important",
|
|
83
|
-
"default": "
|
|
84
|
-
"x-prompt": "Which provider would you like to manage your infrastructure? (default:
|
|
83
|
+
"default": "inherit",
|
|
84
|
+
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
85
85
|
}
|
|
86
86
|
},
|
|
87
|
-
"required": ["project", "
|
|
87
|
+
"required": ["project", "name"]
|
|
88
88
|
}
|
|
@@ -162,7 +162,7 @@ variable "server_protocol" {
|
|
|
162
162
|
default = "HTTP"
|
|
163
163
|
validation {
|
|
164
164
|
condition = contains(["MCP", "HTTP", "A2A"], var.server_protocol)
|
|
165
|
-
error_message = "Protocol type must be either '
|
|
165
|
+
error_message = "Protocol type must be either 'mcp', 'http', or 'a2a'."
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
|
|
@@ -41,11 +41,11 @@ const pyMcpServerGenerator = async (tree, options) => {
|
|
|
41
41
|
const mcpServerNameSnakeCase = (0, names_1.toSnakeCase)(options.name || 'mcp-server');
|
|
42
42
|
const mcpServerNameClassName = (0, names_1.toClassName)(name);
|
|
43
43
|
const targetSourceDir = (0, devkit_1.joinPathFragments)(project.sourceRoot, mcpServerNameSnakeCase);
|
|
44
|
-
const
|
|
45
|
-
if (
|
|
46
|
-
console.warn('Warning: auth is ignored when no
|
|
44
|
+
const infra = options.infra ?? 'agentcore';
|
|
45
|
+
if (infra === 'none' && options.auth && options.auth !== 'iam') {
|
|
46
|
+
console.warn('Warning: auth is ignored when no infrastructure is configured (no infrastructure is generated)');
|
|
47
47
|
}
|
|
48
|
-
const auth = options.auth ?? '
|
|
48
|
+
const auth = options.auth ?? 'iam';
|
|
49
49
|
// Generate example server
|
|
50
50
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'app'), targetSourceDir, {
|
|
51
51
|
name,
|
|
@@ -60,8 +60,8 @@ const pyMcpServerGenerator = async (tree, options) => {
|
|
|
60
60
|
'boto3',
|
|
61
61
|
'aws-opentelemetry-distro',
|
|
62
62
|
]);
|
|
63
|
-
if (
|
|
64
|
-
const
|
|
63
|
+
if (infra === 'agentcore') {
|
|
64
|
+
const containers = await (0, containers_1.resolveContainers)(tree, 'inherit');
|
|
65
65
|
const dockerImageTag = `${(0, npm_scope_1.getNpmScope)(tree)}-${name}:latest`;
|
|
66
66
|
// Add bundle target
|
|
67
67
|
const { bundleTargetName, bundleOutputDir } = (0, bundle_1.addPythonBundleTarget)(project, {
|
|
@@ -85,7 +85,7 @@ const pyMcpServerGenerator = async (tree, options) => {
|
|
|
85
85
|
fs.mkdir(dockerOutputDir),
|
|
86
86
|
fs.cp(bundleOutputDir, dockerOutputDir),
|
|
87
87
|
fs.cp(`${targetSourceDir}/Dockerfile`, `${dockerOutputDir}/Dockerfile`),
|
|
88
|
-
`${
|
|
88
|
+
`${containers} build --platform linux/arm64 -t ${dockerImageTag} ${dockerOutputDir}`,
|
|
89
89
|
],
|
|
90
90
|
parallel: false,
|
|
91
91
|
},
|
|
@@ -106,8 +106,8 @@ const pyMcpServerGenerator = async (tree, options) => {
|
|
|
106
106
|
],
|
|
107
107
|
};
|
|
108
108
|
// Add shared constructs
|
|
109
|
-
const
|
|
110
|
-
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
|
|
109
|
+
const iac = await (0, iac_1.resolveIac)(tree, options.iac);
|
|
110
|
+
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, { iac });
|
|
111
111
|
// Add the construct to deploy the mcp server
|
|
112
112
|
await (0, agent_core_constructs_1.addMcpServerInfra)(tree, {
|
|
113
113
|
mcpServerNameKebabCase: name,
|
|
@@ -115,9 +115,9 @@ const pyMcpServerGenerator = async (tree, options) => {
|
|
|
115
115
|
projectName: project.name,
|
|
116
116
|
dockerImageTag,
|
|
117
117
|
dockerOutputDir,
|
|
118
|
-
|
|
118
|
+
iac,
|
|
119
119
|
auth,
|
|
120
|
-
|
|
120
|
+
containers,
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
123
|
const localDevPort = (0, port_1.assignPort)(tree, project, 8000);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/mcp-server/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCASoB;AAEpB,uCAKwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,6CAAwE;AACxE,uCAAgE;AAChE,qDAAoD;AACpD,mGAA4F;AAE5F,qEAA0E;AAC1E,sDAAkE;AAClE,uCAA4C;AAC5C,mDAAoD;AACpD,yDAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/mcp-server/generator.ts"],"names":[],"mappings":"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"}
|