@aws/nx-plugin-mcp 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/bin/aws-nx-mcp.js +63 -18
- package/docs/guides/astro-docs.mdx +5 -3
- package/docs/guides/connection/py-agent-a2a.mdx +1 -1
- package/docs/guides/connection/py-agent-mcp.mdx +1 -1
- package/docs/guides/connection/react-agui.mdx +3 -3
- package/docs/guides/connection/react-fastapi.mdx +1 -1
- package/docs/guides/connection/react-py-agent.mdx +3 -3
- package/docs/guides/connection/react-smithy.mdx +1 -1
- package/docs/guides/connection/react-trpc.mdx +2 -2
- package/docs/guides/connection/react-ts-agent.mdx +3 -3
- package/docs/guides/connection/ts-agent-a2a.mdx +1 -1
- package/docs/guides/connection/ts-agent-mcp.mdx +1 -1
- package/docs/guides/docs.mdx +21 -0
- package/docs/guides/fastapi.mdx +11 -9
- package/docs/guides/py-agent.mdx +18 -18
- package/docs/guides/py-api.mdx +22 -0
- package/docs/guides/py-mcp-server.mdx +5 -5
- package/docs/guides/python-lambda-function.mdx +4 -4
- package/docs/guides/react-website-auth.mdx +3 -3
- package/docs/guides/react-website.mdx +8 -5
- package/docs/guides/trpc.mdx +18 -16
- package/docs/guides/ts-agent.mdx +18 -18
- package/docs/guides/ts-api.mdx +28 -0
- package/docs/guides/ts-lambda-function.mdx +4 -4
- package/docs/guides/ts-mcp-server.mdx +5 -5
- package/docs/guides/ts-rdb.mdx +3 -3
- package/docs/guides/ts-smithy-api.mdx +8 -6
- package/docs/guides/website.mdx +21 -0
- package/docs/guides/workspace.mdx +2 -2
- package/docs/snippets/agent/architecture.mdx +4 -4
- package/docs/snippets/agent/bedrock-deployment.mdx +2 -2
- package/docs/snippets/api/api-architecture.mdx +2 -2
- package/docs/snippets/api/cors-configuration-cdk-note.mdx +1 -1
- package/docs/snippets/api/cors-configuration-terraform-note.mdx +1 -1
- package/docs/snippets/api/type-safe-api-integrations.mdx +2 -2
- package/docs/snippets/lambda-function/deploying-your-function.mdx +2 -2
- package/docs/snippets/mcp/architecture.mdx +4 -4
- package/docs/snippets/mcp/bedrock-deployment.mdx +2 -2
- package/generators.json +47 -6
- package/package.json +1 -1
- package/src/infra/app/schema.json +1 -1
- package/src/preset/schema.json +4 -4
- package/src/py/agent/schema.json +18 -18
- package/src/py/api/schema.json +100 -0
- package/src/py/fast-api/schema.json +15 -15
- package/src/py/lambda-function/schema.json +7 -7
- package/src/py/mcp-server/schema.json +15 -15
- package/src/py/project/schema.json +2 -2
- package/src/smithy/ts/api/schema.json +15 -15
- package/src/trpc/backend/schema.json +15 -15
- package/src/ts/agent/schema.json +18 -18
- package/src/ts/api/schema.json +105 -0
- package/src/ts/docs/schema.json +70 -0
- package/src/ts/lambda-function/schema.json +7 -7
- package/src/ts/mcp-server/schema.json +15 -15
- package/src/ts/rdb/schema.json +13 -13
- package/src/ts/react-website/app/schema.json +13 -13
- package/src/ts/react-website/cognito-auth/schema.json +4 -4
- package/src/ts/website/app/schema.json +97 -0
- package/src/ts/website/auth/schema.json +46 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Website
|
|
3
|
+
description: Reference documentation for the ts#website generator
|
|
4
|
+
generator: ts#website
|
|
5
|
+
---
|
|
6
|
+
import Astro from '@astrojs/react';
|
|
7
|
+
import { CardGrid } from '@astrojs/starlight/components';
|
|
8
|
+
import FrameworkCard from '@components/framework-card.astro';
|
|
9
|
+
|
|
10
|
+
This generator creates a website for your project. Use the `framework` option to select which frontend framework to use.
|
|
11
|
+
|
|
12
|
+
## Frameworks
|
|
13
|
+
|
|
14
|
+
<CardGrid>
|
|
15
|
+
<FrameworkCard
|
|
16
|
+
title="React"
|
|
17
|
+
description="React website with Vite, TanStack Router, and AWS CDK or Terraform infrastructure for static hosting on S3 + CloudFront."
|
|
18
|
+
href={`/nx-plugin-for-aws/${Astro.currentLocale || 'en'}/guides/react-website`}
|
|
19
|
+
logo="react"
|
|
20
|
+
/>
|
|
21
|
+
</CardGrid>
|
|
@@ -167,7 +167,7 @@ import { AwsNxPluginConfig } from '@aws/nx-plugin';
|
|
|
167
167
|
|
|
168
168
|
export default {
|
|
169
169
|
iac: {
|
|
170
|
-
provider: '
|
|
170
|
+
provider: 'cdk', // or 'terraform'
|
|
171
171
|
},
|
|
172
172
|
containers: {
|
|
173
173
|
engine: 'docker', // or 'finch'
|
|
@@ -175,7 +175,7 @@ export default {
|
|
|
175
175
|
} satisfies AwsNxPluginConfig;
|
|
176
176
|
```
|
|
177
177
|
|
|
178
|
-
- **`iac.provider`** — the default infrastructure-as-code provider (`
|
|
178
|
+
- **`iac.provider`** — the default infrastructure-as-code provider (`cdk` or `terraform`) used by generators that emit infrastructure (e.g. `ts#infra`, `ts#trpc-api`, `py#fast-api`). Generators that accept an `--iac` flag default to `inherit`, which reads this value.
|
|
179
179
|
- **`containers.engine`** — the container CLI (`docker` or `finch`) baked into generated build/push/login commands. CDK image-asset builds also pick this up via the `CDK_DOCKER` environment variable. See the <Link path="guides/docker-bundling">Docker bundling guide</Link> for details.
|
|
180
180
|
|
|
181
181
|
You can edit either setting at any time — subsequent generator runs will pick up the new value.
|
|
@@ -3,8 +3,8 @@ title: Agent Architecture
|
|
|
3
3
|
---
|
|
4
4
|
import { Tabs, TabItem } from '@astrojs/starlight/components';
|
|
5
5
|
|
|
6
|
-
<Tabs syncKey="
|
|
7
|
-
<TabItem label="Bedrock AgentCore Runtime" _filter={{
|
|
6
|
+
<Tabs syncKey="infra">
|
|
7
|
+
<TabItem label="Bedrock AgentCore Runtime" _filter={{ infra: 'agentcore' }}>
|
|
8
8
|
|
|
9
9
|
When deployed to [Bedrock AgentCore Runtime](https://aws.amazon.com/bedrock/agentcore/), the agent is built into a container image, pushed to Amazon ECR and run in AgentCore Runtime. Clients invoke the AgentCore Runtime data plane endpoint, which forwards requests to your agent. The agent calls Amazon Bedrock for model inference and may invoke tools, MCP servers, or downstream APIs.
|
|
10
10
|
|
|
@@ -44,9 +44,9 @@ agentcore -> bedrock: InvokeModel
|
|
|
44
44
|
agentcore -> cw
|
|
45
45
|
```
|
|
46
46
|
</TabItem>
|
|
47
|
-
<TabItem label="None (local only)" _filter={{
|
|
47
|
+
<TabItem label="None (local only)" _filter={{ infra: 'none' }}>
|
|
48
48
|
|
|
49
|
-
With `
|
|
49
|
+
With `infra: none`, no AWS infrastructure is generated. The agent runs as a local process and calls Amazon Bedrock for model inference.
|
|
50
50
|
|
|
51
51
|
```d2 inline=true
|
|
52
52
|
direction: right
|
|
@@ -6,7 +6,7 @@ import Infrastructure from '@components/infrastructure.astro';
|
|
|
6
6
|
|
|
7
7
|
### Infrastructure as Code
|
|
8
8
|
|
|
9
|
-
If you selected `
|
|
9
|
+
If you selected `agentcore` for `infra`, the relevant CDK or Terraform infrastructure is generated which you can use to deploy your Agent to [Amazon Bedrock AgentCore Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agents-tools-runtime.html).
|
|
10
10
|
|
|
11
11
|
<Infrastructure>
|
|
12
12
|
<Fragment slot="cdk">
|
|
@@ -144,7 +144,7 @@ export class ExampleStack extends Stack {
|
|
|
144
144
|
}
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
The `UserIdentity` construct can be generated using the <Link path="/guides/react-website-auth">`ts#
|
|
147
|
+
The `UserIdentity` construct can be generated using the <Link path="/guides/react-website-auth">`ts#website#auth` generator</Link>, or you can create your own CDK `UserPool` and `UserPoolClient`.
|
|
148
148
|
</Fragment>
|
|
149
149
|
<Fragment slot="terraform">
|
|
150
150
|
The generated module accepts `user_pool_id` and `user_pool_client_ids` variables for Cognito authentication:
|
|
@@ -6,7 +6,7 @@ import { Tabs, TabItem } from '@astrojs/starlight/components';
|
|
|
6
6
|
The deployed application has the following architecture:
|
|
7
7
|
|
|
8
8
|
<Tabs syncKey="http-rest">
|
|
9
|
-
<TabItem label="REST API" _filter={{
|
|
9
|
+
<TabItem label="REST API" _filter={{ infra: 'rest-lambda' }}>
|
|
10
10
|
```d2 inline=true
|
|
11
11
|
direction: right
|
|
12
12
|
|
|
@@ -51,7 +51,7 @@ lambda -> xray
|
|
|
51
51
|
|
|
52
52
|
REST APIs include an [AWS WAFv2](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) Web ACL in front of the API Gateway stage with the AWS managed default ruleset enabled.
|
|
53
53
|
</TabItem>
|
|
54
|
-
<TabItem label="HTTP API" _filter={{
|
|
54
|
+
<TabItem label="HTTP API" _filter={{ infra: 'http-lambda' }}>
|
|
55
55
|
```d2 inline=true
|
|
56
56
|
direction: right
|
|
57
57
|
|
|
@@ -21,5 +21,5 @@ export class ExampleStack extends Stack {
|
|
|
21
21
|
}
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
The `MyWebsite` construct can be generated using the <Link path="/guides/react-website">`ts#
|
|
24
|
+
The `MyWebsite` construct can be generated using the <Link path="/guides/react-website">`ts#website` generator</Link>
|
|
25
25
|
:::
|
|
@@ -24,5 +24,5 @@ module "my_api" {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
```
|
|
27
|
-
The `MyWebsite` construct can be generated using the <Link path="/guides/react-website">`ts#
|
|
27
|
+
The `MyWebsite` construct can be generated using the <Link path="/guides/react-website">`ts#website` generator</Link>
|
|
28
28
|
:::
|
|
@@ -306,7 +306,7 @@ Edit `packages/common/terraform/src/app/apis/my-api/my-api.tf`:
|
|
|
306
306
|
3. **Create specific integrations and routes** for each operation, reusing the same ZIP bundle:
|
|
307
307
|
|
|
308
308
|
<Tabs syncKey="http-rest">
|
|
309
|
-
<TabItem label="HTTP API" _filter={{
|
|
309
|
+
<TabItem label="HTTP API" _filter={{ infra: 'http-lambda' }}>
|
|
310
310
|
|
|
311
311
|
```diff
|
|
312
312
|
# packages/common/terraform/src/app/apis/my-api/my-api.tf
|
|
@@ -429,7 +429,7 @@ Edit `packages/common/terraform/src/app/apis/my-api/my-api.tf`:
|
|
|
429
429
|
+ }
|
|
430
430
|
```
|
|
431
431
|
</TabItem>
|
|
432
|
-
<TabItem label="REST API" _filter={{
|
|
432
|
+
<TabItem label="REST API" _filter={{ infra: 'rest-lambda' }}>
|
|
433
433
|
|
|
434
434
|
```diff
|
|
435
435
|
# packages/common/terraform/src/app/apis/my-api/my-api.tf
|
|
@@ -30,7 +30,7 @@ This sets up:
|
|
|
30
30
|
This function can then be used as a target for any lambda [event source](https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/parser/):
|
|
31
31
|
|
|
32
32
|
:::note[Event Source Matching]
|
|
33
|
-
Ensure the event source matches the selected `
|
|
33
|
+
Ensure the event source matches the selected `event` option to ensure the event is properly handled within your handler function.
|
|
34
34
|
:::
|
|
35
35
|
|
|
36
36
|
The example below demonstrates the CDK code for invoking your lambda function on a schedule using EventBridge:
|
|
@@ -112,7 +112,7 @@ resource "aws_lambda_permission" "allow_eventbridge" {
|
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
:::note[Event Source Matching]
|
|
115
|
-
Ensure the event source matches the selected `
|
|
115
|
+
Ensure the event source matches the selected `event` option to ensure the event is properly handled within your handler function.
|
|
116
116
|
:::
|
|
117
117
|
</Fragment>
|
|
118
118
|
</Infrastructure>
|
|
@@ -3,8 +3,8 @@ title: MCP Server Architecture
|
|
|
3
3
|
---
|
|
4
4
|
import { Tabs, TabItem } from '@astrojs/starlight/components';
|
|
5
5
|
|
|
6
|
-
<Tabs syncKey="
|
|
7
|
-
<TabItem label="Bedrock AgentCore Runtime" _filter={{
|
|
6
|
+
<Tabs syncKey="infra">
|
|
7
|
+
<TabItem label="Bedrock AgentCore Runtime" _filter={{ infra: 'agentcore' }}>
|
|
8
8
|
|
|
9
9
|
When deployed to [Bedrock AgentCore Runtime](https://aws.amazon.com/bedrock/agentcore/), the MCP server is built into a container image, pushed to Amazon ECR, and run in AgentCore Runtime. AI assistants invoke the AgentCore Runtime data plane endpoint, which forwards `tools/*` and `resources/*` calls to your server over the [streamable HTTP transport](https://modelcontextprotocol.io/specification/draft/basic/transports#streamable-http).
|
|
10
10
|
|
|
@@ -36,9 +36,9 @@ ecr -> agentcore: Container\nimage
|
|
|
36
36
|
agentcore -> cw
|
|
37
37
|
```
|
|
38
38
|
</TabItem>
|
|
39
|
-
<TabItem label="None (local only)" _filter={{
|
|
39
|
+
<TabItem label="None (local only)" _filter={{ infra: 'none' }}>
|
|
40
40
|
|
|
41
|
-
With `
|
|
41
|
+
With `infra: none`, no AWS infrastructure is generated. The MCP server is configured for local STDIO and HTTP transports only, and is consumed by AI assistants running on the same machine.
|
|
42
42
|
|
|
43
43
|
```d2 inline=true
|
|
44
44
|
direction: right
|
|
@@ -6,7 +6,7 @@ import Infrastructure from '@components/infrastructure.astro';
|
|
|
6
6
|
|
|
7
7
|
### Infrastructure as Code
|
|
8
8
|
|
|
9
|
-
If you selected `
|
|
9
|
+
If you selected `agentcore` for `infra`, the relevant CDK or Terraform infrastructure is generated which you can use to deploy your MCP server to [Amazon Bedrock AgentCore Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agents-tools-runtime.html).
|
|
10
10
|
|
|
11
11
|
<Infrastructure>
|
|
12
12
|
<Fragment slot="cdk">
|
|
@@ -139,7 +139,7 @@ export class ExampleStack extends Stack {
|
|
|
139
139
|
}
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
The `UserIdentity` construct can be generated using the <Link path="/guides/react-website-auth">`ts#
|
|
142
|
+
The `UserIdentity` construct can be generated using the <Link path="/guides/react-website-auth">`ts#website#auth` generator</Link>, or you can create your own CDK `UserPool` and `UserPoolClient`.
|
|
143
143
|
</Fragment>
|
|
144
144
|
<Fragment slot="terraform">
|
|
145
145
|
The generated module accepts `user_pool_id` and `user_pool_client_ids` variables for Cognito authentication:
|
package/generators.json
CHANGED
|
@@ -67,12 +67,20 @@
|
|
|
67
67
|
"metric": "g20",
|
|
68
68
|
"hidden": true
|
|
69
69
|
},
|
|
70
|
+
"py#api": {
|
|
71
|
+
"factory": "./src/py/api/generator",
|
|
72
|
+
"schema": "./src/py/api/schema.json",
|
|
73
|
+
"description": "Create a Python API",
|
|
74
|
+
"metric": "g45",
|
|
75
|
+
"guidePages": ["py-api", "fastapi"]
|
|
76
|
+
},
|
|
70
77
|
"py#fast-api": {
|
|
71
78
|
"factory": "./src/py/fast-api/generator",
|
|
72
79
|
"schema": "./src/py/fast-api/schema.json",
|
|
73
80
|
"description": "Generates a FastAPI Python project",
|
|
74
81
|
"metric": "g3",
|
|
75
|
-
"guidePages": ["fastapi"]
|
|
82
|
+
"guidePages": ["fastapi"],
|
|
83
|
+
"hidden": true
|
|
76
84
|
},
|
|
77
85
|
"py#fast-api#react-connection": {
|
|
78
86
|
"factory": "./src/py/fast-api/react/generator",
|
|
@@ -142,12 +150,20 @@
|
|
|
142
150
|
"metric": "g23",
|
|
143
151
|
"guidePages": ["terraform-project"]
|
|
144
152
|
},
|
|
153
|
+
"ts#docs": {
|
|
154
|
+
"factory": "./src/ts/docs/generator",
|
|
155
|
+
"schema": "./src/ts/docs/schema.json",
|
|
156
|
+
"description": "Generates a documentation site",
|
|
157
|
+
"metric": "g43",
|
|
158
|
+
"guidePages": ["docs", "astro-docs"]
|
|
159
|
+
},
|
|
145
160
|
"ts#astro-docs": {
|
|
146
161
|
"factory": "./src/ts/astro-docs/generator",
|
|
147
162
|
"schema": "./src/ts/astro-docs/schema.json",
|
|
148
163
|
"description": "Generates an Astro + Starlight documentation site with localisation, snippets, blog, and optional automated documentation translation",
|
|
149
164
|
"metric": "g37",
|
|
150
|
-
"guidePages": ["astro-docs"]
|
|
165
|
+
"guidePages": ["astro-docs"],
|
|
166
|
+
"hidden": true
|
|
151
167
|
},
|
|
152
168
|
"ts#infra": {
|
|
153
169
|
"factory": "./src/infra/app/generator",
|
|
@@ -188,19 +204,35 @@
|
|
|
188
204
|
"metric": "g1",
|
|
189
205
|
"guidePages": ["typescript-project"]
|
|
190
206
|
},
|
|
207
|
+
"ts#website": {
|
|
208
|
+
"factory": "./src/ts/website/app/generator",
|
|
209
|
+
"schema": "./src/ts/website/app/schema.json",
|
|
210
|
+
"description": "Generates a website application",
|
|
211
|
+
"metric": "g43",
|
|
212
|
+
"guidePages": ["website", "react-website"]
|
|
213
|
+
},
|
|
214
|
+
"ts#website#auth": {
|
|
215
|
+
"factory": "./src/ts/website/auth/generator",
|
|
216
|
+
"schema": "./src/ts/website/auth/schema.json",
|
|
217
|
+
"description": "Adds auth to an existing website",
|
|
218
|
+
"metric": "g44",
|
|
219
|
+
"guidePages": ["react-website-auth"]
|
|
220
|
+
},
|
|
191
221
|
"ts#react-website": {
|
|
192
222
|
"factory": "./src/ts/react-website/app/generator",
|
|
193
223
|
"schema": "./src/ts/react-website/app/schema.json",
|
|
194
224
|
"description": "Generates a React static website",
|
|
195
225
|
"metric": "g5",
|
|
196
|
-
"guidePages": ["react-website"]
|
|
226
|
+
"guidePages": ["react-website"],
|
|
227
|
+
"hidden": true
|
|
197
228
|
},
|
|
198
229
|
"ts#react-website#auth": {
|
|
199
230
|
"factory": "./src/ts/react-website/cognito-auth/generator",
|
|
200
231
|
"schema": "./src/ts/react-website/cognito-auth/schema.json",
|
|
201
232
|
"description": "Adds auth to an existing React website",
|
|
202
233
|
"metric": "g6",
|
|
203
|
-
"guidePages": ["react-website-auth"]
|
|
234
|
+
"guidePages": ["react-website-auth"],
|
|
235
|
+
"hidden": true
|
|
204
236
|
},
|
|
205
237
|
"ts#react-website#runtime-config": {
|
|
206
238
|
"factory": "./src/ts/react-website/runtime-config/generator",
|
|
@@ -213,7 +245,8 @@
|
|
|
213
245
|
"factory": "./src/smithy/ts/api/generator",
|
|
214
246
|
"schema": "./src/smithy/ts/api/schema.json",
|
|
215
247
|
"description": "Create an API using Smithy and the Smithy TypeScript Server SDK",
|
|
216
|
-
"metric": "g26"
|
|
248
|
+
"metric": "g26",
|
|
249
|
+
"hidden": true
|
|
217
250
|
},
|
|
218
251
|
"ts#agent": {
|
|
219
252
|
"factory": "./src/ts/agent/generator",
|
|
@@ -256,12 +289,20 @@
|
|
|
256
289
|
"metric": "g29",
|
|
257
290
|
"hidden": true
|
|
258
291
|
},
|
|
292
|
+
"ts#api": {
|
|
293
|
+
"factory": "./src/ts/api/generator",
|
|
294
|
+
"schema": "./src/ts/api/schema.json",
|
|
295
|
+
"description": "Create a TypeScript API",
|
|
296
|
+
"metric": "g46",
|
|
297
|
+
"guidePages": ["ts-api", "trpc", "ts-smithy-api"]
|
|
298
|
+
},
|
|
259
299
|
"ts#trpc-api": {
|
|
260
300
|
"factory": "./src/trpc/backend/generator",
|
|
261
301
|
"schema": "./src/trpc/backend/schema.json",
|
|
262
302
|
"description": "creates a trpc backend",
|
|
263
303
|
"metric": "g9",
|
|
264
|
-
"guidePages": ["trpc"]
|
|
304
|
+
"guidePages": ["trpc"],
|
|
305
|
+
"hidden": true
|
|
265
306
|
},
|
|
266
307
|
"ts#trpc-api#react-connection": {
|
|
267
308
|
"factory": "./src/trpc/react/generator",
|
package/package.json
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"description": "The sub directory the project is placed in. By default this is the project name.",
|
|
28
28
|
"x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
|
|
29
29
|
},
|
|
30
|
-
"
|
|
30
|
+
"stageConfig": {
|
|
31
31
|
"description": "Enable centralized stage configuration (credentials, account, region) for multi-environment CDK deployments.",
|
|
32
32
|
"type": "boolean",
|
|
33
33
|
"default": false,
|
package/src/preset/schema.json
CHANGED
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
"description": "Whether to add the ts plugin.",
|
|
11
11
|
"default": true
|
|
12
12
|
},
|
|
13
|
-
"
|
|
13
|
+
"iac": {
|
|
14
14
|
"type": "string",
|
|
15
15
|
"description": "The preferred IaC provider.",
|
|
16
|
-
"enum": ["
|
|
17
|
-
"default": "
|
|
16
|
+
"enum": ["cdk", "terraform"],
|
|
17
|
+
"default": "cdk",
|
|
18
18
|
"x-priority": "important",
|
|
19
19
|
"x-prompt": "Which provider would you like to manage your infrastructure?"
|
|
20
20
|
},
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"description": "Whether to configure git-secrets to prevent committing AWS credentials.",
|
|
24
24
|
"default": true
|
|
25
25
|
},
|
|
26
|
-
"
|
|
26
|
+
"containers": {
|
|
27
27
|
"type": "string",
|
|
28
28
|
"description": "The container engine to use for build/push/login. 'infer' picks docker if installed, otherwise finch (falling back to docker when neither is installed).",
|
|
29
29
|
"enum": ["infer", "docker", "finch"],
|
package/src/py/agent/schema.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"x-prompt": "Select the Python project to add the Agent to",
|
|
16
16
|
"x-dropdown": "projects"
|
|
17
17
|
},
|
|
18
|
-
"
|
|
18
|
+
"framework": {
|
|
19
19
|
"type": "string",
|
|
20
20
|
"description": "The agent SDK to use.",
|
|
21
21
|
"x-prompt": "Which agent SDK would you like to use?",
|
|
@@ -23,14 +23,6 @@
|
|
|
23
23
|
"default": "strands",
|
|
24
24
|
"x-priority": "important"
|
|
25
25
|
},
|
|
26
|
-
"computeType": {
|
|
27
|
-
"type": "string",
|
|
28
|
-
"description": "The type of compute to host your Agent.",
|
|
29
|
-
"x-prompt": "How would you like to host your Agent server?",
|
|
30
|
-
"enum": ["BedrockAgentCoreRuntime", "None"],
|
|
31
|
-
"default": "BedrockAgentCoreRuntime",
|
|
32
|
-
"x-priority": "important"
|
|
33
|
-
},
|
|
34
26
|
"name": {
|
|
35
27
|
"type": "string",
|
|
36
28
|
"description": "The name of your Agent (default: agent)",
|
|
@@ -38,9 +30,9 @@
|
|
|
38
30
|
},
|
|
39
31
|
"auth": {
|
|
40
32
|
"type": "string",
|
|
41
|
-
"description": "The method used to authenticate with your Agent. Only applicable when
|
|
42
|
-
"default": "
|
|
43
|
-
"enum": ["
|
|
33
|
+
"description": "The method used to authenticate with your Agent. Only applicable when infra is set (ignored when infra is none).",
|
|
34
|
+
"default": "iam",
|
|
35
|
+
"enum": ["iam", "cognito"],
|
|
44
36
|
"x-prompt": "How would you like to authenticate with your Agent?",
|
|
45
37
|
"x-priority": "important"
|
|
46
38
|
},
|
|
@@ -48,17 +40,25 @@
|
|
|
48
40
|
"type": "string",
|
|
49
41
|
"description": "The server protocol for your Agent. HTTP exposes a FastAPI HTTP server. A2A exposes an Agent-to-Agent protocol server. AG-UI exposes an Agent-User Interaction protocol server for direct frontend integration.",
|
|
50
42
|
"x-prompt": "Which protocol would you like to use for your Agent?",
|
|
51
|
-
"enum": ["
|
|
52
|
-
"default": "
|
|
43
|
+
"enum": ["http", "a2a", "ag-ui"],
|
|
44
|
+
"default": "http",
|
|
53
45
|
"x-priority": "important"
|
|
54
46
|
},
|
|
55
|
-
"
|
|
47
|
+
"iac": {
|
|
56
48
|
"type": "string",
|
|
57
49
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
58
|
-
"enum": ["
|
|
50
|
+
"enum": ["inherit", "cdk", "terraform"],
|
|
59
51
|
"x-priority": "important",
|
|
60
|
-
"default": "
|
|
61
|
-
"x-prompt": "Which provider would you like to manage your infrastructure? (default:
|
|
52
|
+
"default": "inherit",
|
|
53
|
+
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
54
|
+
},
|
|
55
|
+
"infra": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "The type of infrastructure to host your Agent.",
|
|
58
|
+
"x-prompt": "How would you like to host your Agent server?",
|
|
59
|
+
"enum": ["agentcore", "none"],
|
|
60
|
+
"default": "agentcore",
|
|
61
|
+
"x-priority": "important"
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
"required": ["project"]
|
|
@@ -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
|
+
}
|
|
@@ -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"]
|
|
@@ -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
|
}
|