@aws/nx-plugin-mcp 1.0.0-rc.8 → 1.0.0-rc.80

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 (196) hide show
  1. package/bin/aws-nx-mcp.js +14210 -13550
  2. package/docs/get_started/building-with-ai.mdx +116 -0
  3. package/docs/get_started/concepts.mdx +67 -0
  4. package/docs/get_started/existing-project.mdx +180 -0
  5. package/docs/get_started/graph-builder.mdx +39 -0
  6. package/docs/get_started/quick-start.mdx +277 -0
  7. package/docs/get_started/tutorials/contribute-generator.mdx +408 -0
  8. package/docs/get_started/tutorials/dungeon-game/1.mdx +1578 -0
  9. package/docs/get_started/tutorials/dungeon-game/2.mdx +245 -0
  10. package/docs/get_started/tutorials/dungeon-game/3.mdx +66 -0
  11. package/docs/get_started/tutorials/dungeon-game/4.mdx +164 -0
  12. package/docs/get_started/tutorials/dungeon-game/overview.mdx +145 -0
  13. package/docs/get_started/tutorials/dungeon-game/wrap-up.mdx +41 -0
  14. package/docs/get_started/upgrading.mdx +147 -0
  15. package/docs/guides/agentcore-gateway.mdx +490 -0
  16. package/docs/guides/agentcore-harness.mdx +275 -0
  17. package/docs/guides/astro-docs.mdx +8 -0
  18. package/docs/guides/connection/agentcore-gateway-agent.mdx +222 -0
  19. package/docs/guides/connection/agentcore-gateway-gateway.mdx +154 -0
  20. package/docs/guides/connection/agentcore-gateway-mcp.mdx +134 -0
  21. package/docs/guides/connection/py-agent-a2a.mdx +48 -16
  22. package/docs/guides/connection/py-agent-dynamodb.mdx +116 -0
  23. package/docs/guides/connection/py-agent-gateway.mdx +182 -0
  24. package/docs/guides/connection/py-agent-mcp.mdx +43 -14
  25. package/docs/guides/connection/py-agent-rdb.mdx +178 -0
  26. package/docs/guides/connection/py-fast-api-dynamodb.mdx +56 -0
  27. package/docs/guides/connection/py-fast-api-rdb.mdx +184 -0
  28. package/docs/guides/connection/py-mcp-server-dynamodb.mdx +116 -0
  29. package/docs/guides/connection/py-mcp-server-rdb.mdx +187 -0
  30. package/docs/guides/connection/react-agentcore-gateway.mdx +112 -0
  31. package/docs/guides/connection/react-agui.mdx +33 -14
  32. package/docs/guides/connection/react-fastapi.mdx +39 -3
  33. package/docs/guides/connection/react-py-agent.mdx +10 -16
  34. package/docs/guides/connection/react-smithy.mdx +5 -5
  35. package/docs/guides/connection/react-trpc.mdx +2 -2
  36. package/docs/guides/connection/react-ts-agent.mdx +9 -9
  37. package/docs/guides/connection/smithy-dynamodb.mdx +6 -6
  38. package/docs/guides/connection/smithy-rdb.mdx +10 -10
  39. package/docs/guides/connection/trpc-dynamodb.mdx +5 -5
  40. package/docs/guides/connection/trpc-rdb.mdx +6 -6
  41. package/docs/guides/connection/ts-agent-a2a.mdx +14 -11
  42. package/docs/guides/connection/ts-agent-dynamodb.mdx +5 -5
  43. package/docs/guides/connection/ts-agent-gateway.mdx +147 -0
  44. package/docs/guides/connection/ts-agent-mcp.mdx +12 -9
  45. package/docs/guides/connection/ts-agent-rdb.mdx +70 -25
  46. package/docs/guides/connection/ts-mcp-server-dynamodb.mdx +5 -5
  47. package/docs/guides/connection/ts-mcp-server-rdb.mdx +68 -18
  48. package/docs/guides/connection.mdx +122 -5
  49. package/docs/guides/docker-bundling.mdx +81 -12
  50. package/docs/guides/fastapi.mdx +252 -15
  51. package/docs/guides/local-development.mdx +87 -0
  52. package/docs/guides/nx-generator.mdx +4 -3
  53. package/docs/guides/nx-migration.mdx +165 -0
  54. package/docs/guides/py-agent.mdx +332 -55
  55. package/docs/guides/py-dynamodb.mdx +476 -0
  56. package/docs/guides/py-mcp-server.mdx +57 -2
  57. package/docs/guides/py-rdb.mdx +265 -0
  58. package/docs/guides/python-lambda-function.mdx +1 -1
  59. package/docs/guides/react-website-auth.mdx +104 -5
  60. package/docs/guides/react-website.mdx +413 -99
  61. package/docs/guides/runtime-config.mdx +1 -1
  62. package/docs/guides/security.mdx +75 -0
  63. package/docs/guides/smithy-project.mdx +167 -0
  64. package/docs/guides/terraform-project.mdx +2 -2
  65. package/docs/guides/trpc.mdx +54 -17
  66. package/docs/guides/ts-agent.mdx +207 -23
  67. package/docs/guides/ts-dcr-proxy.mdx +569 -0
  68. package/docs/guides/ts-dynamodb.mdx +66 -242
  69. package/docs/guides/ts-lambda-function.mdx +1 -1
  70. package/docs/guides/ts-mcp-server.mdx +111 -29
  71. package/docs/guides/ts-nx-plugin.mdx +4 -4
  72. package/docs/guides/ts-rdb.mdx +114 -468
  73. package/docs/guides/ts-smithy-api.mdx +259 -19
  74. package/docs/guides/typescript-infrastructure.mdx +46 -24
  75. package/docs/guides/typescript-project.mdx +134 -27
  76. package/docs/guides/workspace.mdx +10 -3
  77. package/docs/snippets/agent/architecture.mdx +1 -1
  78. package/docs/snippets/agent/bedrock-deployment.mdx +9 -5
  79. package/docs/snippets/agent/runtime-arn.mdx +23 -2
  80. package/docs/snippets/agent/securing-your-agent.mdx +39 -0
  81. package/docs/snippets/api/access-logging.mdx +38 -0
  82. package/docs/snippets/api/cors-configuration-cdk-note.mdx +1 -1
  83. package/docs/snippets/api/cors-configuration-terraform-note.mdx +1 -1
  84. package/docs/snippets/api/type-safe-api-integrations.mdx +69 -50
  85. package/docs/snippets/api/waf-configuration.mdx +3 -3
  86. package/docs/snippets/connection/a2a-infrastructure.mdx +1 -1
  87. package/docs/snippets/connection/dynamodb-local-development.mdx +2 -2
  88. package/docs/snippets/connection/lambda-dynamodb-access.mdx +1 -1
  89. package/docs/snippets/connection/py-dynamodb-local-development.mdx +7 -0
  90. package/docs/snippets/connection/py-lambda-rdb-ssl-requirements.mdx +7 -0
  91. package/docs/snippets/connection/rdb-api-infrastructure.mdx +51 -19
  92. package/docs/snippets/dynamodb/deploying-table.mdx +145 -0
  93. package/docs/snippets/dynamodb/encryption-options.mdx +168 -0
  94. package/docs/snippets/dynamodb/gsi-config.mdx +38 -0
  95. package/docs/snippets/dynamodb/infrastructure.mdx +33 -0
  96. package/docs/snippets/dynamodb/local-dev-start.mdx +13 -0
  97. package/docs/snippets/dynamodb/local-dev-windows.mdx +15 -0
  98. package/docs/snippets/lambda-function/deploying-your-function.mdx +3 -3
  99. package/docs/snippets/mcp/architecture.mdx +1 -1
  100. package/docs/snippets/mcp/bedrock-deployment.mdx +9 -5
  101. package/docs/snippets/mcp/config.mdx +3 -2
  102. package/docs/snippets/mcp/shared-constructs.mdx +4 -5
  103. package/docs/snippets/pdk-migration/example/01-migrate-api.mdx +7 -5
  104. package/docs/snippets/pdk-migration/example/02-migrate-website.mdx +29 -10
  105. package/docs/snippets/pdk-migration/example/03-migrate-infra.mdx +4 -4
  106. package/docs/snippets/pdk-migration/faq/type-safe-api.mdx +5 -111
  107. package/docs/snippets/prerequisites.mdx +1 -4
  108. package/docs/snippets/rdb/architecture.mdx +38 -0
  109. package/docs/snippets/rdb/cluster-instances.mdx +31 -0
  110. package/docs/snippets/rdb/deletion-protection.mdx +34 -0
  111. package/docs/snippets/rdb/deploying.mdx +187 -0
  112. package/docs/snippets/rdb/encryption-key-rotation.mdx +30 -0
  113. package/docs/snippets/rdb/engine-version.mdx +63 -0
  114. package/docs/snippets/rdb/infrastructure.mdx +35 -0
  115. package/docs/snippets/rdb/logging-mysql.mdx +5 -0
  116. package/docs/snippets/rdb/logging-postgres.mdx +5 -0
  117. package/docs/snippets/rdb/performance-insights.mdx +34 -0
  118. package/docs/snippets/rdb/rds-proxy.mdx +50 -0
  119. package/docs/snippets/rdb/removal-policy.mdx +57 -0
  120. package/docs/snippets/rdb/serverless-capacity.mdx +32 -0
  121. package/docs/snippets/recommended-prerequisites.mdx +10 -0
  122. package/docs/snippets/required-prerequisites.mdx +1 -4
  123. package/docs/snippets/runtime-config-app-id-note.mdx +8 -0
  124. package/docs/snippets/shared-constructs.mdx +1 -1
  125. package/docs/snippets/trivy-image-scan.mdx +37 -0
  126. package/generators.json +162 -10
  127. package/package.json +1 -1
  128. package/src/agentcore-gateway/agent-connection/schema.json +31 -0
  129. package/src/agentcore-gateway/gateway-connection/schema.json +31 -0
  130. package/src/agentcore-gateway/mcp-connection/schema.json +31 -0
  131. package/src/agentcore-gateway/react-connection/schema.json +31 -0
  132. package/src/agentcore-gateway/schema.json +72 -0
  133. package/src/agentcore-harness/schema.json +53 -0
  134. package/src/connection/schema.json +5 -0
  135. package/src/infra/app/schema.json +5 -0
  136. package/src/init/schema.json +35 -0
  137. package/src/internal/test-matrix/schema.json +21 -0
  138. package/src/license/schema.json +5 -0
  139. package/src/preset/schema.json +16 -5
  140. package/src/py/agent/a2a-connection/schema.json +5 -0
  141. package/src/py/agent/gateway-connection/schema.json +31 -0
  142. package/src/py/agent/mcp-connection/schema.json +5 -0
  143. package/src/py/agent/react-connection/schema.json +5 -0
  144. package/src/py/agent/schema.json +15 -1
  145. package/src/py/api/schema.json +5 -0
  146. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  147. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  148. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  149. package/src/py/dynamodb/schema.json +76 -0
  150. package/src/py/fast-api/react/schema.json +5 -0
  151. package/src/py/fast-api/schema.json +6 -0
  152. package/src/py/lambda-function/schema.json +6 -1
  153. package/src/py/mcp-server/schema.json +6 -0
  154. package/src/py/project/schema.json +6 -0
  155. package/src/py/rdb/agent-connection/schema.json +27 -0
  156. package/src/py/rdb/fast-api-connection/schema.json +23 -0
  157. package/src/py/rdb/mcp-server-connection/schema.json +27 -0
  158. package/src/py/rdb/schema.json +78 -0
  159. package/src/smithy/project/schema.json +28 -1
  160. package/src/smithy/react-connection/schema.json +5 -0
  161. package/src/smithy/ts/api/schema.json +6 -0
  162. package/src/terraform/project/schema.json +5 -0
  163. package/src/trpc/backend/schema.json +6 -0
  164. package/src/trpc/react/schema.json +5 -0
  165. package/src/ts/agent/a2a-connection/schema.json +5 -0
  166. package/src/ts/agent/gateway-connection/schema.json +31 -0
  167. package/src/ts/agent/mcp-connection/schema.json +5 -0
  168. package/src/ts/agent/react-connection/schema.json +5 -0
  169. package/src/ts/agent/schema.json +14 -0
  170. package/src/ts/api/schema.json +5 -0
  171. package/src/ts/astro-docs/schema.json +3 -3
  172. package/src/ts/dcr-proxy/schema.json +44 -0
  173. package/src/ts/docs/schema.json +3 -3
  174. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  175. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  176. package/src/ts/dynamodb/schema.json +26 -2
  177. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  178. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  179. package/src/ts/lambda-function/schema.json +5 -0
  180. package/src/ts/lib/schema.json +5 -0
  181. package/src/ts/mcp-server/schema.json +6 -0
  182. package/src/ts/nx-generator/schema.json +5 -0
  183. package/src/ts/nx-migration/schema.json +63 -0
  184. package/src/ts/nx-plugin/schema.json +5 -0
  185. package/src/ts/rdb/agent-connection/schema.json +5 -0
  186. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  187. package/src/ts/rdb/schema.json +7 -1
  188. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  189. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  190. package/src/ts/react-website/app/schema.json +12 -6
  191. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  192. package/src/ts/react-website/runtime-config/schema.json +5 -0
  193. package/src/ts/website/app/schema.json +11 -6
  194. package/src/ts/website/auth/schema.json +5 -0
  195. /package/docs/snippets/connection/{lambda-rdb-ssl-requirements.mdx → ts-lambda-rdb-ssl-requirements.mdx} +0 -0
  196. /package/docs/snippets/connection/{mcp-server-rdb-ssl-requirements.mdx → ts-mcp-server-rdb-ssl-requirements.mdx} +0 -0
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: Removal Policy
3
+ ---
4
+ import Infrastructure from '@components/infrastructure.astro';
5
+
6
+ The CDK construct retains the Aurora cluster by default (`removalPolicy: RemovalPolicy.RETAIN`). Change this when you want CDK stack deletion to snapshot or destroy the cluster instead.
7
+
8
+ When using `RemovalPolicy.DESTROY`, deletion protection must also be disabled before the cluster can be deleted.
9
+
10
+ <Infrastructure>
11
+ <Fragment slot="cdk">
12
+
13
+ ```ts title="packages/infra/src/stacks/application-stack.ts"
14
+ import { RemovalPolicy } from 'aws-cdk-lib';
15
+ import { MyDatabase } from '@my-scope/common-constructs';
16
+
17
+ const db = new MyDatabase(this, 'Db', {
18
+ ...
19
+ removalPolicy: RemovalPolicy.SNAPSHOT,
20
+ });
21
+ ```
22
+
23
+ For an ephemeral environment where the database should be deleted with the stack:
24
+
25
+ ```ts title="packages/infra/src/stacks/application-stack.ts"
26
+ import { RemovalPolicy } from 'aws-cdk-lib';
27
+ import { MyDatabase } from '@my-scope/common-constructs';
28
+
29
+ const db = new MyDatabase(this, 'Db', {
30
+ ...
31
+ deletionProtection: false,
32
+ removalPolicy: RemovalPolicy.DESTROY,
33
+ });
34
+ ```
35
+
36
+ ::::caution[Data Loss]
37
+ `RemovalPolicy.DESTROY` will permanently erase all data when the stack is deleted. Use only in ephemeral environments (such as automated tests). Use `RETAIN` or `SNAPSHOT` for all persistent and production stacks to prevent data loss.
38
+ ::::
39
+ </Fragment>
40
+ <Fragment slot="terraform">
41
+
42
+ Terraform does not use CDK removal policies. By default, the module creates a final snapshot on deletion (`skip_final_snapshot = false`). To skip the final snapshot for an ephemeral environment:
43
+
44
+ ```hcl title="packages/infra/src/main.tf"
45
+ module "my_database" {
46
+ source = "../../common/terraform/src/app/dbs/my-database"
47
+ ...
48
+ deletion_protection = false
49
+ skip_final_snapshot = true
50
+ }
51
+ ```
52
+
53
+ ::::caution[Data Loss]
54
+ `skip_final_snapshot = true` will permanently erase all data when the cluster is deleted. Use only in ephemeral environments (such as automated tests). Keep `skip_final_snapshot = false` for all persistent and production stacks to prevent data loss.
55
+ ::::
56
+ </Fragment>
57
+ </Infrastructure>
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: Serverless Capacity
3
+ ---
4
+ import Infrastructure from '@components/infrastructure.astro';
5
+
6
+ Control Aurora Serverless v2 scaling limits to match your workload.
7
+
8
+ <Infrastructure>
9
+ <Fragment slot="cdk">
10
+
11
+ ```ts title="packages/infra/src/stacks/application-stack.ts"
12
+ import { MyDatabase } from '@my-scope/common-constructs';
13
+
14
+ const db = new MyDatabase(this, 'Db', {
15
+ ...
16
+ serverlessV2MinCapacity: 0.5,
17
+ serverlessV2MaxCapacity: 8,
18
+ });
19
+ ```
20
+ </Fragment>
21
+ <Fragment slot="terraform">
22
+
23
+ ```hcl title="packages/infra/src/main.tf"
24
+ module "my_database" {
25
+ source = "../../common/terraform/src/app/dbs/my-database"
26
+ ...
27
+ serverless_min_capacity = 0.5
28
+ serverless_max_capacity = 8
29
+ }
30
+ ```
31
+ </Fragment>
32
+ </Infrastructure>
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: Recommended Prerequisites
3
+ ---
4
+ - [PNPM >= 11](https://pnpm.io/installation#using-npm) (you can also use [Yarn >= 4](https://yarnpkg.com/getting-started/install), [Bun >= 1](https://bun.sh/docs/installation), or [NPM >= 10](https://nodejs.org/en/learn/getting-started/an-introduction-to-the-npm-package-manager) if you prefer)
5
+ - verify by running `pnpm --version`, `yarn --version`, `bun --version` or `npm --version`
6
+ - [AWS Credentials](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) configured to your target AWS account are required to deploy your application (as well as for some local development workflows).
7
+ - [Docker](https://www.docker.com/) or [Finch >= 1.6.0](https://runfinch.com/) is required for some generators. For Docker, [multi-platform builds](https://docs.docker.com/build/building/multi-platform/) must be set up; Finch supports [multi-platform builds](https://runfinch.com/docs/getting-started/building-images/#building-a-multi-architecture-container-image) out of the box.
8
+ - [Terraform >= 1.12](https://developer.hashicorp.com/terraform/install) is required if you choose to use this for infrastructure as code instead of CDK
9
+ - verify by running `terraform --version`
10
+ - If you are using [VSCode](https://code.visualstudio.com/), we recommend installing the [Nx Console VSCode Plugin](https://marketplace.visualstudio.com/items?itemName=nrwl.angular-console).
@@ -4,9 +4,6 @@ title: Required Prerequisites
4
4
  - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
5
5
  - [Node >= 22](https://nodejs.org/en/download) (We recommend using something like [NVM](https://github.com/nvm-sh/nvm) to manage your node versions)
6
6
  - verify by running `node --version`
7
- - [PNPM >= 11](https://pnpm.io/installation#using-npm) (you can also use [Yarn >= 4](https://yarnpkg.com/getting-started/install), [Bun >= 1](https://bun.sh/docs/installation), or [NPM >= 10](https://nodejs.org/en/learn/getting-started/an-introduction-to-the-npm-package-manager) if you prefer)
8
- - verify by running `pnpm --version`, `yarn --version`, `bun --version` or `npm --version`
9
7
  - [UV >= 0.5.29](https://docs.astral.sh/uv/getting-started/installation/)
10
8
  1. install Python 3.14 by running: `uv python install 3.14.0`
11
- 2. verify with `uv python list --only-installed`
12
- - [AWS Credentials](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) configured to your target AWS account (where your application will be deployed)
9
+ 2. verify with `uv python list --only-installed`
@@ -0,0 +1,8 @@
1
+ ---
2
+ title: Runtime Config App ID Note
3
+ ---
4
+ import Link from '@components/link.astro';
5
+
6
+ :::note[Runtime config]
7
+ This relies on the `RUNTIME_CONFIG_APP_ID` environment variable to fetch configuration from AWS AppConfig at runtime. Projects built with this plugin (APIs, Agents, MCP servers) already have this variable configured automatically. For other projects, ensure `RUNTIME_CONFIG_APP_ID` is set in the runtime environment with the AppConfig application ID provisioned by your infrastructure. For more information, see the <Link path="guides/runtime-config">Runtime Configuration guide</Link>.
8
+ :::
@@ -5,7 +5,7 @@ import { FileTree } from '@astrojs/starlight/components';
5
5
  import Infrastructure from '@components/infrastructure.astro';
6
6
  import Link from '@components/link.astro';
7
7
 
8
- Since this generator vends infrastructure as code based on your chosen `iacProvider`, it will create a project in `packages/common` which includes the relevant CDK constructs or Terraform modules.
8
+ Since this generator vends infrastructure as code based on your chosen `iac`, it will create a project in `packages/common` which includes the relevant CDK constructs or Terraform modules.
9
9
 
10
10
  The common infrastructure as code project is structured as follows:
11
11
 
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: Container Image Scanning
3
+ ---
4
+
5
+ import PackageManagerShortCommand from '@components/package-manager-short-command.astro';
6
+
7
+ The Docker image built for this project can be scanned for vulnerabilities using [Trivy](https://trivy.dev/), running from the [ECR-hosted Trivy image](https://gallery.ecr.aws/aquasecurity/trivy).
8
+
9
+ A `trivy` target is added to your project which scans the built image and **exits non-zero** if any `HIGH` or `CRITICAL` severity vulnerability is found. The generated `Dockerfile` uses a base image with no known fixable vulnerabilities of these severities at time of generation, and upgrades bundled tooling (such as `npm`) to keep it that way.
10
+
11
+ The scan uses the same container engine as your image build (`docker` or `finch`), so no additional tooling is required. Since the scan is only re-run when the image changes, an unchanged image is not re-scanned. The vended `trivy` root script scans every image in the workspace:
12
+
13
+ <PackageManagerShortCommand commands={['trivy']} />
14
+
15
+ :::tip[Run Trivy in CI]
16
+ The scan is intentionally not wired into `build` since this can introduce unnecessary friction when iterating during development, as Trivy's vulnerabilty database is continually updated with new CVEs.
17
+
18
+ Instead we recommend running the above command as a dedicated step in your CI pipeline prior to deployment to production stages.
19
+ :::
20
+
21
+ :::caution[Unfixable vulnerabilities are ignored]
22
+ The scan runs with `--ignore-unfixed`, so vulnerabilities without an available fix do not fail the build, since they cannot be actioned by upgrading tooling in your `Dockerfile` — they are not reported in the build's scan output. As new vulnerabilities are disclosed the result of scans may change over time, so review the image periodically by running `trivy image <your-image>` without the flag, and rebuild against a newer base image (or add container steps to apply available patches) once a fix is published.
23
+ :::
24
+
25
+ #### Suppressing Trivy Findings
26
+
27
+ There may be instances where you want to suppress a specific vulnerability, for example when no fix is yet available and you have assessed the risk as acceptable.
28
+
29
+ Add the vulnerability ID (one per line) to the `.trivyignore` file in the root of your project (i.e. next to your `project.json`):
30
+
31
+ ```gitignore
32
+ # .trivyignore
33
+ # node-tar arbitrary file write - not exploitable in our usage
34
+ CVE-2024-XXXXX
35
+ ```
36
+
37
+ For more details on filtering findings, refer to the [Trivy filtering documentation](https://trivy.dev/latest/docs/configuration/filtering/#by-finding-ids).
package/generators.json CHANGED
@@ -3,6 +3,54 @@
3
3
  "name": "@aws/nx-plugin",
4
4
  "version": "0.0.1",
5
5
  "generators": {
6
+ "init": {
7
+ "factory": "./src/init/generator",
8
+ "schema": "./src/init/schema.json",
9
+ "description": "Configure an existing Nx workspace to use the @aws/nx-plugin",
10
+ "metric": "g66",
11
+ "guidePages": ["existing-project"]
12
+ },
13
+ "agentcore-gateway": {
14
+ "factory": "./src/agentcore-gateway/generator",
15
+ "schema": "./src/agentcore-gateway/schema.json",
16
+ "description": "Generate an AgentCore Gateway project",
17
+ "metric": "g48"
18
+ },
19
+ "agentcore-gateway#mcp-connection": {
20
+ "factory": "./src/agentcore-gateway/mcp-connection/generator",
21
+ "schema": "./src/agentcore-gateway/mcp-connection/schema.json",
22
+ "description": "Connect an AgentCore Gateway to an MCP server",
23
+ "metric": "g49",
24
+ "hidden": true
25
+ },
26
+ "agentcore-gateway#gateway-connection": {
27
+ "factory": "./src/agentcore-gateway/gateway-connection/generator",
28
+ "schema": "./src/agentcore-gateway/gateway-connection/schema.json",
29
+ "description": "Connect an AgentCore Gateway to another AgentCore Gateway",
30
+ "metric": "g65",
31
+ "hidden": true
32
+ },
33
+ "agentcore-gateway#agent-connection": {
34
+ "factory": "./src/agentcore-gateway/agent-connection/generator",
35
+ "schema": "./src/agentcore-gateway/agent-connection/schema.json",
36
+ "description": "Connect an AgentCore Gateway to an agent, adding the agent as a gateway target",
37
+ "metric": "g69",
38
+ "hidden": true
39
+ },
40
+ "agentcore-gateway#react-connection": {
41
+ "factory": "./src/agentcore-gateway/react-connection/generator",
42
+ "schema": "./src/agentcore-gateway/react-connection/schema.json",
43
+ "description": "Connect a React website to an AgentCore Gateway fronting agents",
44
+ "metric": "g70",
45
+ "hidden": true
46
+ },
47
+ "agentcore-harness": {
48
+ "factory": "./src/agentcore-harness/generator",
49
+ "schema": "./src/agentcore-harness/schema.json",
50
+ "description": "Generate an AgentCore Harness project",
51
+ "metric": "g71",
52
+ "guidePages": ["agentcore-harness"]
53
+ },
6
54
  "connection": {
7
55
  "factory": "./src/connection/generator",
8
56
  "schema": "./src/connection/schema.json",
@@ -23,7 +71,23 @@
23
71
  "connection/trpc-rdb",
24
72
  "connection/smithy-rdb",
25
73
  "connection/ts-mcp-server-rdb",
26
- "connection/ts-agent-rdb"
74
+ "connection/ts-agent-rdb",
75
+ "connection/trpc-dynamodb",
76
+ "connection/smithy-dynamodb",
77
+ "connection/ts-mcp-server-dynamodb",
78
+ "connection/ts-agent-dynamodb",
79
+ "connection/py-fast-api-rdb",
80
+ "connection/py-agent-rdb",
81
+ "connection/py-mcp-server-rdb",
82
+ "connection/py-fast-api-dynamodb",
83
+ "connection/py-agent-dynamodb",
84
+ "connection/py-mcp-server-dynamodb",
85
+ "connection/ts-agent-gateway",
86
+ "connection/py-agent-gateway",
87
+ "connection/agentcore-gateway-mcp",
88
+ "connection/agentcore-gateway-gateway",
89
+ "connection/agentcore-gateway-agent",
90
+ "connection/react-agentcore-gateway"
27
91
  ]
28
92
  },
29
93
  "license": {
@@ -134,9 +198,9 @@
134
198
  "smithy#project": {
135
199
  "factory": "./src/smithy/project/generator",
136
200
  "schema": "./src/smithy/project/schema.json",
137
- "description": "Generate a Smithy model project",
201
+ "description": "Generate a Smithy model project, either defining a service or a library of reusable shapes",
138
202
  "metric": "g27",
139
- "hidden": true
203
+ "guidePages": ["smithy-project"]
140
204
  },
141
205
  "smithy#react-connection": {
142
206
  "factory": "./src/smithy/react-connection/generator",
@@ -180,6 +244,12 @@
180
244
  "description": "Generate a TypeScript lambda function",
181
245
  "metric": "g21"
182
246
  },
247
+ "ts#dcr-proxy": {
248
+ "factory": "./src/ts/dcr-proxy/generator",
249
+ "schema": "./src/ts/dcr-proxy/schema.json",
250
+ "description": "Generate an OAuth Dynamic Client Registration (DCR) proxy construct for Cognito-authenticated MCP servers",
251
+ "metric": "g67"
252
+ },
183
253
  "ts#mcp-server": {
184
254
  "factory": "./src/ts/mcp-server/generator",
185
255
  "schema": "./src/ts/mcp-server/schema.json",
@@ -194,6 +264,13 @@
194
264
  "metric": "g17",
195
265
  "guidePages": ["nx-generator"]
196
266
  },
267
+ "ts#nx-migration": {
268
+ "factory": "./src/ts/nx-migration/generator",
269
+ "schema": "./src/ts/nx-migration/schema.json",
270
+ "description": "Generator for adding an Nx Migration to an Nx Plugin, applied by nx migrate when users upgrade",
271
+ "metric": "g68",
272
+ "guidePages": ["nx-migration"]
273
+ },
197
274
  "ts#nx-plugin": {
198
275
  "factory": "./src/ts/nx-plugin/generator",
199
276
  "schema": "./src/ts/nx-plugin/schema.json",
@@ -211,7 +288,7 @@
211
288
  "factory": "./src/ts/website/app/generator",
212
289
  "schema": "./src/ts/website/app/schema.json",
213
290
  "description": "Generates a website application",
214
- "metric": "g43",
291
+ "metric": "g60",
215
292
  "guidePages": ["website", "react-website"]
216
293
  },
217
294
  "ts#website#auth": {
@@ -279,6 +356,13 @@
279
356
  "metric": "g35",
280
357
  "hidden": true
281
358
  },
359
+ "ts#agent#gateway-connection": {
360
+ "factory": "./src/ts/agent/gateway-connection/generator",
361
+ "schema": "./src/ts/agent/gateway-connection/schema.json",
362
+ "description": "Connect a TypeScript Agent to an AgentCore Gateway",
363
+ "metric": "g50",
364
+ "hidden": true
365
+ },
282
366
  "py#agent#a2a-connection": {
283
367
  "factory": "./src/py/agent/a2a-connection/generator",
284
368
  "schema": "./src/py/agent/a2a-connection/schema.json",
@@ -286,10 +370,17 @@
286
370
  "metric": "g36",
287
371
  "hidden": true
288
372
  },
373
+ "py#agent#gateway-connection": {
374
+ "factory": "./src/py/agent/gateway-connection/generator",
375
+ "schema": "./src/py/agent/gateway-connection/schema.json",
376
+ "description": "Connect a Python Agent to an AgentCore Gateway",
377
+ "metric": "g51",
378
+ "hidden": true
379
+ },
289
380
  "ts#sync": {
290
381
  "factory": "./src/ts/sync/generator",
291
382
  "schema": "./src/ts/sync/schema.json",
292
- "description": "TypeScript path alias sync generator",
383
+ "description": "TypeScript path alias and local workspace dependency sync generator",
293
384
  "metric": "g29",
294
385
  "hidden": true
295
386
  },
@@ -353,28 +444,28 @@
353
444
  "ts#dynamodb": {
354
445
  "factory": "./src/ts/dynamodb/generator",
355
446
  "schema": "./src/ts/dynamodb/schema.json",
356
- "description": "Create a DynamoDB project",
357
- "metric": "g43"
447
+ "description": "Create a TypeScript DynamoDB project",
448
+ "metric": "g61"
358
449
  },
359
450
  "ts#dynamodb#trpc-connection": {
360
451
  "factory": "./src/ts/dynamodb/trpc-connection/generator",
361
452
  "schema": "./src/ts/dynamodb/trpc-connection/schema.json",
362
453
  "description": "Connect a ts#trpc-api project to a ts#dynamodb project",
363
- "metric": "g44",
454
+ "metric": "g62",
364
455
  "hidden": true
365
456
  },
366
457
  "ts#dynamodb#smithy-connection": {
367
458
  "factory": "./src/ts/dynamodb/smithy-connection/generator",
368
459
  "schema": "./src/ts/dynamodb/smithy-connection/schema.json",
369
460
  "description": "Connect a Smithy backend to a ts#dynamodb project",
370
- "metric": "g45",
461
+ "metric": "g63",
371
462
  "hidden": true
372
463
  },
373
464
  "ts#dynamodb#agent-connection": {
374
465
  "factory": "./src/ts/dynamodb/agent-connection/generator",
375
466
  "schema": "./src/ts/dynamodb/agent-connection/schema.json",
376
467
  "description": "Connect a ts#agent to a ts#dynamodb project",
377
- "metric": "g46",
468
+ "metric": "g64",
378
469
  "hidden": true
379
470
  },
380
471
  "ts#dynamodb#mcp-server-connection": {
@@ -383,6 +474,67 @@
383
474
  "description": "Connect a ts#mcp-server to a ts#dynamodb project",
384
475
  "metric": "g47",
385
476
  "hidden": true
477
+ },
478
+ "py#dynamodb": {
479
+ "factory": "./src/py/dynamodb/generator",
480
+ "schema": "./src/py/dynamodb/schema.json",
481
+ "description": "Create a Python DynamoDB project",
482
+ "metric": "g52"
483
+ },
484
+ "py#dynamodb#fast-api-connection": {
485
+ "factory": "./src/py/dynamodb/fast-api-connection/generator",
486
+ "schema": "./src/py/dynamodb/fast-api-connection/schema.json",
487
+ "description": "Connect a py#fast-api project to a py#dynamodb project",
488
+ "metric": "g53",
489
+ "hidden": true
490
+ },
491
+ "py#dynamodb#agent-connection": {
492
+ "factory": "./src/py/dynamodb/agent-connection/generator",
493
+ "schema": "./src/py/dynamodb/agent-connection/schema.json",
494
+ "description": "Connect a py#agent to a py#dynamodb project",
495
+ "metric": "g54",
496
+ "hidden": true
497
+ },
498
+ "py#dynamodb#mcp-server-connection": {
499
+ "factory": "./src/py/dynamodb/mcp-server-connection/generator",
500
+ "schema": "./src/py/dynamodb/mcp-server-connection/schema.json",
501
+ "description": "Connect a py#mcp-server to a py#dynamodb project",
502
+ "metric": "g55",
503
+ "hidden": true
504
+ },
505
+ "py#rdb": {
506
+ "factory": "./src/py/rdb/generator",
507
+ "schema": "./src/py/rdb/schema.json",
508
+ "description": "Create a Python relational database project",
509
+ "metric": "g56"
510
+ },
511
+ "py#rdb#fast-api-connection": {
512
+ "factory": "./src/py/rdb/fast-api-connection/generator",
513
+ "schema": "./src/py/rdb/fast-api-connection/schema.json",
514
+ "description": "Connect a py#fast-api project to a py#rdb project",
515
+ "metric": "g57",
516
+ "hidden": true
517
+ },
518
+ "py#rdb#agent-connection": {
519
+ "factory": "./src/py/rdb/agent-connection/generator",
520
+ "schema": "./src/py/rdb/agent-connection/schema.json",
521
+ "description": "Connect a py#agent to a py#rdb project",
522
+ "metric": "g58",
523
+ "hidden": true
524
+ },
525
+ "py#rdb#mcp-server-connection": {
526
+ "factory": "./src/py/rdb/mcp-server-connection/generator",
527
+ "schema": "./src/py/rdb/mcp-server-connection/schema.json",
528
+ "description": "Connect a py#mcp-server to a py#rdb project",
529
+ "metric": "g59",
530
+ "hidden": true
531
+ },
532
+ "internal#test-matrix": {
533
+ "factory": "./src/internal/test-matrix/generator",
534
+ "schema": "./src/internal/test-matrix/schema.json",
535
+ "description": "Scaffold every generator permutation for end to end tests",
536
+ "metric": "t1",
537
+ "hidden": true
386
538
  }
387
539
  }
388
540
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin-mcp",
3
- "version": "1.0.0-rc.8",
3
+ "version": "1.0.0-rc.80",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/awslabs/nx-plugin-for-aws.git",
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "agentcore-gateway#agent-connection",
4
+ "title": "agentcore-gateway#agent-connection",
5
+ "description": "Connect an AgentCore Gateway to an agent, adding the agent as a gateway target",
6
+ "type": "object",
7
+ "properties": {
8
+ "sourceProject": {
9
+ "type": "string",
10
+ "description": "The gateway project"
11
+ },
12
+ "targetProject": {
13
+ "type": "string",
14
+ "description": "The agent project"
15
+ },
16
+ "sourceComponent": {
17
+ "type": "string",
18
+ "description": "The gateway component in the source project"
19
+ },
20
+ "targetComponent": {
21
+ "type": "string",
22
+ "description": "The agent component in the target project"
23
+ },
24
+ "preferInstallDependencies": {
25
+ "type": "boolean",
26
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
27
+ "default": true
28
+ }
29
+ },
30
+ "required": ["sourceProject", "targetProject"]
31
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "agentcore-gateway#gateway-connection",
4
+ "title": "agentcore-gateway#gateway-connection",
5
+ "description": "Connect an AgentCore Gateway to another AgentCore Gateway",
6
+ "type": "object",
7
+ "properties": {
8
+ "sourceProject": {
9
+ "type": "string",
10
+ "description": "The gateway project to add the target gateway to"
11
+ },
12
+ "targetProject": {
13
+ "type": "string",
14
+ "description": "The gateway project to register as a target"
15
+ },
16
+ "sourceComponent": {
17
+ "type": "string",
18
+ "description": "The gateway component in the source project"
19
+ },
20
+ "targetComponent": {
21
+ "type": "string",
22
+ "description": "The gateway component in the target project"
23
+ },
24
+ "preferInstallDependencies": {
25
+ "type": "boolean",
26
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
27
+ "default": true
28
+ }
29
+ },
30
+ "required": ["sourceProject", "targetProject"]
31
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "agentcore-gateway#mcp-connection",
4
+ "title": "agentcore-gateway#mcp-connection",
5
+ "description": "Connect an AgentCore Gateway to an MCP server",
6
+ "type": "object",
7
+ "properties": {
8
+ "sourceProject": {
9
+ "type": "string",
10
+ "description": "The gateway project"
11
+ },
12
+ "targetProject": {
13
+ "type": "string",
14
+ "description": "The MCP server project"
15
+ },
16
+ "sourceComponent": {
17
+ "type": "string",
18
+ "description": "The gateway component in the source project"
19
+ },
20
+ "targetComponent": {
21
+ "type": "string",
22
+ "description": "The MCP server component in the target project"
23
+ },
24
+ "preferInstallDependencies": {
25
+ "type": "boolean",
26
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
27
+ "default": true
28
+ }
29
+ },
30
+ "required": ["sourceProject", "targetProject"]
31
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "agentcore-gateway#react-connection",
4
+ "title": "agentcore-gateway#react-connection",
5
+ "description": "Connect a React website to an AgentCore Gateway fronting agents",
6
+ "type": "object",
7
+ "properties": {
8
+ "sourceProject": {
9
+ "type": "string",
10
+ "description": "The React website project"
11
+ },
12
+ "targetProject": {
13
+ "type": "string",
14
+ "description": "The gateway project"
15
+ },
16
+ "sourceComponent": {
17
+ "type": "string",
18
+ "description": "The website component in the source project"
19
+ },
20
+ "targetComponent": {
21
+ "type": "string",
22
+ "description": "The gateway component in the target project"
23
+ },
24
+ "preferInstallDependencies": {
25
+ "type": "boolean",
26
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
27
+ "default": true
28
+ }
29
+ },
30
+ "required": ["sourceProject", "targetProject"]
31
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "agentcore-gateway",
4
+ "title": "agentcore-gateway",
5
+ "x-label": "AgentCore Gateway",
6
+ "description": "Generate an AgentCore Gateway project",
7
+ "type": "object",
8
+ "properties": {
9
+ "name": {
10
+ "type": "string",
11
+ "description": "The name of your AgentCore Gateway project",
12
+ "$default": {
13
+ "$source": "argv",
14
+ "index": 0
15
+ },
16
+ "x-prompt": "What would you like to call your AgentCore Gateway?",
17
+ "x-priority": "important"
18
+ },
19
+ "directory": {
20
+ "type": "string",
21
+ "description": "Parent directory where the gateway project is placed.",
22
+ "default": "packages"
23
+ },
24
+ "subDirectory": {
25
+ "type": "string",
26
+ "description": "The sub directory the project is placed in. By default this is the project name."
27
+ },
28
+ "protocol": {
29
+ "type": "string",
30
+ "description": "The inbound protocol exposed by your gateway. An mcp gateway aggregates MCP server targets into a single MCP endpoint. An http gateway proxies requests to agent runtime targets via path-based routing, so callers (e.g. a website) can reach agents through the gateway.",
31
+ "enum": ["mcp", "http"],
32
+ "default": "mcp",
33
+ "x-priority": "important"
34
+ },
35
+ "auth": {
36
+ "type": "string",
37
+ "description": "The method used to authenticate inbound requests to your gateway. Only applicable when infra is set (ignored when infra is none).",
38
+ "enum": ["iam", "cognito"],
39
+ "default": "iam",
40
+ "x-prompt": "How would you like to authenticate inbound requests to your gateway?",
41
+ "x-priority": "important"
42
+ },
43
+ "cedarPolicy": {
44
+ "type": "boolean",
45
+ "description": "Whether to include a Cedar policy engine enforcing fine-grained authorization on the gateway.",
46
+ "default": true,
47
+ "x-priority": "important"
48
+ },
49
+ "infra": {
50
+ "type": "string",
51
+ "description": "The type of infrastructure to host your gateway. Select none for no hosting.",
52
+ "x-prompt": "How would you like to host your gateway?",
53
+ "enum": ["agentcore", "none"],
54
+ "default": "agentcore",
55
+ "x-priority": "important"
56
+ },
57
+ "iac": {
58
+ "type": "string",
59
+ "description": "The preferred IaC provider. By default this is inherited from your initial selection.",
60
+ "enum": ["inherit", "cdk", "terraform"],
61
+ "x-priority": "important",
62
+ "default": "inherit",
63
+ "x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
64
+ },
65
+ "preferInstallDependencies": {
66
+ "type": "boolean",
67
+ "description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
68
+ "default": true
69
+ }
70
+ },
71
+ "required": ["name"]
72
+ }