@aws/nx-plugin-mcp 1.0.0-rc.7 → 1.0.0-rc.71

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 (195) hide show
  1. package/bin/aws-nx-mcp.js +12317 -10933
  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 +1301 -0
  9. package/docs/get_started/tutorials/dungeon-game/2.mdx +237 -0
  10. package/docs/get_started/tutorials/dungeon-game/3.mdx +76 -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/tutorials/existing-project.mdx +4 -0
  15. package/docs/get_started/upgrading.mdx +147 -0
  16. package/docs/guides/agentcore-gateway.mdx +490 -0
  17. package/docs/guides/agentcore-harness.mdx +275 -0
  18. package/docs/guides/astro-docs.mdx +8 -0
  19. package/docs/guides/connection/agentcore-gateway-agent.mdx +222 -0
  20. package/docs/guides/connection/agentcore-gateway-gateway.mdx +154 -0
  21. package/docs/guides/connection/agentcore-gateway-mcp.mdx +134 -0
  22. package/docs/guides/connection/py-agent-a2a.mdx +48 -16
  23. package/docs/guides/connection/py-agent-dynamodb.mdx +116 -0
  24. package/docs/guides/connection/py-agent-gateway.mdx +178 -0
  25. package/docs/guides/connection/py-agent-mcp.mdx +43 -14
  26. package/docs/guides/connection/py-agent-rdb.mdx +178 -0
  27. package/docs/guides/connection/py-fast-api-dynamodb.mdx +56 -0
  28. package/docs/guides/connection/py-fast-api-rdb.mdx +184 -0
  29. package/docs/guides/connection/py-mcp-server-dynamodb.mdx +116 -0
  30. package/docs/guides/connection/py-mcp-server-rdb.mdx +187 -0
  31. package/docs/guides/connection/react-agentcore-gateway.mdx +112 -0
  32. package/docs/guides/connection/react-agui.mdx +13 -13
  33. package/docs/guides/connection/react-fastapi.mdx +38 -2
  34. package/docs/guides/connection/react-py-agent.mdx +9 -15
  35. package/docs/guides/connection/react-smithy.mdx +3 -3
  36. package/docs/guides/connection/react-trpc.mdx +1 -1
  37. package/docs/guides/connection/react-ts-agent.mdx +8 -8
  38. package/docs/guides/connection/smithy-dynamodb.mdx +5 -5
  39. package/docs/guides/connection/smithy-rdb.mdx +9 -9
  40. package/docs/guides/connection/trpc-dynamodb.mdx +5 -5
  41. package/docs/guides/connection/trpc-rdb.mdx +6 -6
  42. package/docs/guides/connection/ts-agent-a2a.mdx +14 -11
  43. package/docs/guides/connection/ts-agent-dynamodb.mdx +5 -5
  44. package/docs/guides/connection/ts-agent-gateway.mdx +143 -0
  45. package/docs/guides/connection/ts-agent-mcp.mdx +12 -9
  46. package/docs/guides/connection/ts-agent-rdb.mdx +70 -25
  47. package/docs/guides/connection/ts-mcp-server-dynamodb.mdx +5 -5
  48. package/docs/guides/connection/ts-mcp-server-rdb.mdx +68 -18
  49. package/docs/guides/connection.mdx +122 -5
  50. package/docs/guides/docker-bundling.mdx +69 -12
  51. package/docs/guides/fastapi.mdx +249 -9
  52. package/docs/guides/local-development.mdx +87 -0
  53. package/docs/guides/nx-generator.mdx +4 -3
  54. package/docs/guides/nx-migration.mdx +165 -0
  55. package/docs/guides/py-agent.mdx +264 -49
  56. package/docs/guides/py-dynamodb.mdx +476 -0
  57. package/docs/guides/py-mcp-server.mdx +61 -2
  58. package/docs/guides/py-rdb.mdx +265 -0
  59. package/docs/guides/python-lambda-function.mdx +1 -1
  60. package/docs/guides/react-website-auth.mdx +65 -4
  61. package/docs/guides/react-website.mdx +149 -30
  62. package/docs/guides/runtime-config.mdx +1 -1
  63. package/docs/guides/security.mdx +75 -0
  64. package/docs/guides/smithy-project.mdx +167 -0
  65. package/docs/guides/terraform-project.mdx +2 -2
  66. package/docs/guides/trpc.mdx +53 -16
  67. package/docs/guides/ts-agent.mdx +183 -10
  68. package/docs/guides/ts-dcr-proxy.mdx +569 -0
  69. package/docs/guides/ts-dynamodb.mdx +66 -242
  70. package/docs/guides/ts-lambda-function.mdx +1 -1
  71. package/docs/guides/ts-mcp-server.mdx +109 -29
  72. package/docs/guides/ts-nx-plugin.mdx +3 -3
  73. package/docs/guides/ts-rdb.mdx +113 -467
  74. package/docs/guides/ts-smithy-api.mdx +258 -18
  75. package/docs/guides/typescript-infrastructure.mdx +46 -24
  76. package/docs/guides/typescript-project.mdx +134 -27
  77. package/docs/guides/workspace.mdx +10 -3
  78. package/docs/snippets/agent/architecture.mdx +1 -1
  79. package/docs/snippets/agent/bedrock-deployment.mdx +9 -5
  80. package/docs/snippets/agent/runtime-arn.mdx +23 -2
  81. package/docs/snippets/agent/securing-your-agent.mdx +39 -0
  82. package/docs/snippets/api/access-logging.mdx +33 -0
  83. package/docs/snippets/api/cors-configuration-cdk-note.mdx +1 -1
  84. package/docs/snippets/api/cors-configuration-terraform-note.mdx +1 -1
  85. package/docs/snippets/api/type-safe-api-integrations.mdx +33 -2
  86. package/docs/snippets/api/waf-configuration.mdx +3 -3
  87. package/docs/snippets/connection/a2a-infrastructure.mdx +1 -1
  88. package/docs/snippets/connection/dynamodb-local-development.mdx +2 -2
  89. package/docs/snippets/connection/lambda-dynamodb-access.mdx +1 -1
  90. package/docs/snippets/connection/py-dynamodb-local-development.mdx +7 -0
  91. package/docs/snippets/connection/py-lambda-rdb-ssl-requirements.mdx +7 -0
  92. package/docs/snippets/connection/rdb-api-infrastructure.mdx +51 -19
  93. package/docs/snippets/dynamodb/deploying-table.mdx +166 -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/pdk-migration/example/01-migrate-api.mdx +7 -5
  103. package/docs/snippets/pdk-migration/example/02-migrate-website.mdx +29 -10
  104. package/docs/snippets/pdk-migration/example/03-migrate-infra.mdx +4 -4
  105. package/docs/snippets/pdk-migration/faq/type-safe-api.mdx +5 -111
  106. package/docs/snippets/prerequisites.mdx +1 -4
  107. package/docs/snippets/rdb/architecture.mdx +38 -0
  108. package/docs/snippets/rdb/cluster-instances.mdx +31 -0
  109. package/docs/snippets/rdb/deletion-protection.mdx +34 -0
  110. package/docs/snippets/rdb/deploying.mdx +187 -0
  111. package/docs/snippets/rdb/encryption-key-rotation.mdx +30 -0
  112. package/docs/snippets/rdb/engine-version.mdx +63 -0
  113. package/docs/snippets/rdb/infrastructure.mdx +35 -0
  114. package/docs/snippets/rdb/logging-mysql.mdx +5 -0
  115. package/docs/snippets/rdb/logging-postgres.mdx +5 -0
  116. package/docs/snippets/rdb/performance-insights.mdx +34 -0
  117. package/docs/snippets/rdb/rds-proxy.mdx +50 -0
  118. package/docs/snippets/rdb/removal-policy.mdx +57 -0
  119. package/docs/snippets/rdb/serverless-capacity.mdx +32 -0
  120. package/docs/snippets/recommended-prerequisites.mdx +10 -0
  121. package/docs/snippets/required-prerequisites.mdx +1 -4
  122. package/docs/snippets/runtime-config-app-id-note.mdx +8 -0
  123. package/docs/snippets/shared-constructs.mdx +1 -1
  124. package/docs/snippets/trivy-image-scan.mdx +37 -0
  125. package/generators.json +152 -10
  126. package/package.json +1 -1
  127. package/src/agentcore-gateway/agent-connection/schema.json +31 -0
  128. package/src/agentcore-gateway/gateway-connection/schema.json +31 -0
  129. package/src/agentcore-gateway/mcp-connection/schema.json +31 -0
  130. package/src/agentcore-gateway/react-connection/schema.json +31 -0
  131. package/src/agentcore-gateway/schema.json +72 -0
  132. package/src/agentcore-harness/schema.json +53 -0
  133. package/src/connection/schema.json +5 -0
  134. package/src/infra/app/schema.json +5 -0
  135. package/src/init/schema.json +35 -0
  136. package/src/internal/test-matrix/schema.json +21 -0
  137. package/src/license/schema.json +5 -0
  138. package/src/preset/schema.json +16 -5
  139. package/src/py/agent/a2a-connection/schema.json +5 -0
  140. package/src/py/agent/gateway-connection/schema.json +31 -0
  141. package/src/py/agent/mcp-connection/schema.json +5 -0
  142. package/src/py/agent/react-connection/schema.json +5 -0
  143. package/src/py/agent/schema.json +15 -1
  144. package/src/py/api/schema.json +5 -0
  145. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  146. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  147. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  148. package/src/py/dynamodb/schema.json +76 -0
  149. package/src/py/fast-api/react/schema.json +5 -0
  150. package/src/py/fast-api/schema.json +6 -0
  151. package/src/py/lambda-function/schema.json +5 -0
  152. package/src/py/mcp-server/schema.json +6 -0
  153. package/src/py/project/schema.json +5 -0
  154. package/src/py/rdb/agent-connection/schema.json +27 -0
  155. package/src/py/rdb/fast-api-connection/schema.json +23 -0
  156. package/src/py/rdb/mcp-server-connection/schema.json +27 -0
  157. package/src/py/rdb/schema.json +78 -0
  158. package/src/smithy/project/schema.json +28 -1
  159. package/src/smithy/react-connection/schema.json +5 -0
  160. package/src/smithy/ts/api/schema.json +6 -0
  161. package/src/terraform/project/schema.json +5 -0
  162. package/src/trpc/backend/schema.json +6 -0
  163. package/src/trpc/react/schema.json +5 -0
  164. package/src/ts/agent/a2a-connection/schema.json +5 -0
  165. package/src/ts/agent/gateway-connection/schema.json +31 -0
  166. package/src/ts/agent/mcp-connection/schema.json +5 -0
  167. package/src/ts/agent/react-connection/schema.json +5 -0
  168. package/src/ts/agent/schema.json +14 -0
  169. package/src/ts/api/schema.json +5 -0
  170. package/src/ts/astro-docs/schema.json +3 -3
  171. package/src/ts/dcr-proxy/schema.json +44 -0
  172. package/src/ts/docs/schema.json +3 -3
  173. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  174. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  175. package/src/ts/dynamodb/schema.json +26 -2
  176. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  177. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  178. package/src/ts/lambda-function/schema.json +5 -0
  179. package/src/ts/lib/schema.json +5 -0
  180. package/src/ts/mcp-server/schema.json +6 -0
  181. package/src/ts/nx-generator/schema.json +5 -0
  182. package/src/ts/nx-migration/schema.json +63 -0
  183. package/src/ts/nx-plugin/schema.json +5 -0
  184. package/src/ts/rdb/agent-connection/schema.json +5 -0
  185. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  186. package/src/ts/rdb/schema.json +7 -1
  187. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  188. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  189. package/src/ts/react-website/app/schema.json +12 -6
  190. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  191. package/src/ts/react-website/runtime-config/schema.json +5 -0
  192. package/src/ts/website/app/schema.json +11 -6
  193. package/src/ts/website/auth/schema.json +5 -0
  194. /package/docs/snippets/connection/{lambda-rdb-ssl-requirements.mdx → ts-lambda-rdb-ssl-requirements.mdx} +0 -0
  195. /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,13 @@
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/ts-agent-gateway",
76
+ "connection/py-agent-gateway",
77
+ "connection/agentcore-gateway-mcp",
78
+ "connection/agentcore-gateway-gateway",
79
+ "connection/agentcore-gateway-agent",
80
+ "connection/react-agentcore-gateway"
27
81
  ]
28
82
  },
29
83
  "license": {
@@ -134,9 +188,9 @@
134
188
  "smithy#project": {
135
189
  "factory": "./src/smithy/project/generator",
136
190
  "schema": "./src/smithy/project/schema.json",
137
- "description": "Generate a Smithy model project",
191
+ "description": "Generate a Smithy model project, either defining a service or a library of reusable shapes",
138
192
  "metric": "g27",
139
- "hidden": true
193
+ "guidePages": ["smithy-project"]
140
194
  },
141
195
  "smithy#react-connection": {
142
196
  "factory": "./src/smithy/react-connection/generator",
@@ -180,6 +234,12 @@
180
234
  "description": "Generate a TypeScript lambda function",
181
235
  "metric": "g21"
182
236
  },
237
+ "ts#dcr-proxy": {
238
+ "factory": "./src/ts/dcr-proxy/generator",
239
+ "schema": "./src/ts/dcr-proxy/schema.json",
240
+ "description": "Generate an OAuth Dynamic Client Registration (DCR) proxy construct for Cognito-authenticated MCP servers",
241
+ "metric": "g67"
242
+ },
183
243
  "ts#mcp-server": {
184
244
  "factory": "./src/ts/mcp-server/generator",
185
245
  "schema": "./src/ts/mcp-server/schema.json",
@@ -194,6 +254,13 @@
194
254
  "metric": "g17",
195
255
  "guidePages": ["nx-generator"]
196
256
  },
257
+ "ts#nx-migration": {
258
+ "factory": "./src/ts/nx-migration/generator",
259
+ "schema": "./src/ts/nx-migration/schema.json",
260
+ "description": "Generator for adding an Nx Migration to an Nx Plugin, applied by nx migrate when users upgrade",
261
+ "metric": "g68",
262
+ "guidePages": ["nx-migration"]
263
+ },
197
264
  "ts#nx-plugin": {
198
265
  "factory": "./src/ts/nx-plugin/generator",
199
266
  "schema": "./src/ts/nx-plugin/schema.json",
@@ -211,7 +278,7 @@
211
278
  "factory": "./src/ts/website/app/generator",
212
279
  "schema": "./src/ts/website/app/schema.json",
213
280
  "description": "Generates a website application",
214
- "metric": "g43",
281
+ "metric": "g60",
215
282
  "guidePages": ["website", "react-website"]
216
283
  },
217
284
  "ts#website#auth": {
@@ -279,6 +346,13 @@
279
346
  "metric": "g35",
280
347
  "hidden": true
281
348
  },
349
+ "ts#agent#gateway-connection": {
350
+ "factory": "./src/ts/agent/gateway-connection/generator",
351
+ "schema": "./src/ts/agent/gateway-connection/schema.json",
352
+ "description": "Connect a TypeScript Agent to an AgentCore Gateway",
353
+ "metric": "g50",
354
+ "hidden": true
355
+ },
282
356
  "py#agent#a2a-connection": {
283
357
  "factory": "./src/py/agent/a2a-connection/generator",
284
358
  "schema": "./src/py/agent/a2a-connection/schema.json",
@@ -286,10 +360,17 @@
286
360
  "metric": "g36",
287
361
  "hidden": true
288
362
  },
363
+ "py#agent#gateway-connection": {
364
+ "factory": "./src/py/agent/gateway-connection/generator",
365
+ "schema": "./src/py/agent/gateway-connection/schema.json",
366
+ "description": "Connect a Python Agent to an AgentCore Gateway",
367
+ "metric": "g51",
368
+ "hidden": true
369
+ },
289
370
  "ts#sync": {
290
371
  "factory": "./src/ts/sync/generator",
291
372
  "schema": "./src/ts/sync/schema.json",
292
- "description": "TypeScript path alias sync generator",
373
+ "description": "TypeScript path alias and local workspace dependency sync generator",
293
374
  "metric": "g29",
294
375
  "hidden": true
295
376
  },
@@ -353,28 +434,28 @@
353
434
  "ts#dynamodb": {
354
435
  "factory": "./src/ts/dynamodb/generator",
355
436
  "schema": "./src/ts/dynamodb/schema.json",
356
- "description": "Create a DynamoDB project",
357
- "metric": "g43"
437
+ "description": "Create a TypeScript DynamoDB project",
438
+ "metric": "g61"
358
439
  },
359
440
  "ts#dynamodb#trpc-connection": {
360
441
  "factory": "./src/ts/dynamodb/trpc-connection/generator",
361
442
  "schema": "./src/ts/dynamodb/trpc-connection/schema.json",
362
443
  "description": "Connect a ts#trpc-api project to a ts#dynamodb project",
363
- "metric": "g44",
444
+ "metric": "g62",
364
445
  "hidden": true
365
446
  },
366
447
  "ts#dynamodb#smithy-connection": {
367
448
  "factory": "./src/ts/dynamodb/smithy-connection/generator",
368
449
  "schema": "./src/ts/dynamodb/smithy-connection/schema.json",
369
450
  "description": "Connect a Smithy backend to a ts#dynamodb project",
370
- "metric": "g45",
451
+ "metric": "g63",
371
452
  "hidden": true
372
453
  },
373
454
  "ts#dynamodb#agent-connection": {
374
455
  "factory": "./src/ts/dynamodb/agent-connection/generator",
375
456
  "schema": "./src/ts/dynamodb/agent-connection/schema.json",
376
457
  "description": "Connect a ts#agent to a ts#dynamodb project",
377
- "metric": "g46",
458
+ "metric": "g64",
378
459
  "hidden": true
379
460
  },
380
461
  "ts#dynamodb#mcp-server-connection": {
@@ -383,6 +464,67 @@
383
464
  "description": "Connect a ts#mcp-server to a ts#dynamodb project",
384
465
  "metric": "g47",
385
466
  "hidden": true
467
+ },
468
+ "py#dynamodb": {
469
+ "factory": "./src/py/dynamodb/generator",
470
+ "schema": "./src/py/dynamodb/schema.json",
471
+ "description": "Create a Python DynamoDB project",
472
+ "metric": "g52"
473
+ },
474
+ "py#dynamodb#fast-api-connection": {
475
+ "factory": "./src/py/dynamodb/fast-api-connection/generator",
476
+ "schema": "./src/py/dynamodb/fast-api-connection/schema.json",
477
+ "description": "Connect a py#fast-api project to a py#dynamodb project",
478
+ "metric": "g53",
479
+ "hidden": true
480
+ },
481
+ "py#dynamodb#agent-connection": {
482
+ "factory": "./src/py/dynamodb/agent-connection/generator",
483
+ "schema": "./src/py/dynamodb/agent-connection/schema.json",
484
+ "description": "Connect a py#agent to a py#dynamodb project",
485
+ "metric": "g54",
486
+ "hidden": true
487
+ },
488
+ "py#dynamodb#mcp-server-connection": {
489
+ "factory": "./src/py/dynamodb/mcp-server-connection/generator",
490
+ "schema": "./src/py/dynamodb/mcp-server-connection/schema.json",
491
+ "description": "Connect a py#mcp-server to a py#dynamodb project",
492
+ "metric": "g55",
493
+ "hidden": true
494
+ },
495
+ "py#rdb": {
496
+ "factory": "./src/py/rdb/generator",
497
+ "schema": "./src/py/rdb/schema.json",
498
+ "description": "Create a Python relational database project",
499
+ "metric": "g56"
500
+ },
501
+ "py#rdb#fast-api-connection": {
502
+ "factory": "./src/py/rdb/fast-api-connection/generator",
503
+ "schema": "./src/py/rdb/fast-api-connection/schema.json",
504
+ "description": "Connect a py#fast-api project to a py#rdb project",
505
+ "metric": "g57",
506
+ "hidden": true
507
+ },
508
+ "py#rdb#agent-connection": {
509
+ "factory": "./src/py/rdb/agent-connection/generator",
510
+ "schema": "./src/py/rdb/agent-connection/schema.json",
511
+ "description": "Connect a py#agent to a py#rdb project",
512
+ "metric": "g58",
513
+ "hidden": true
514
+ },
515
+ "py#rdb#mcp-server-connection": {
516
+ "factory": "./src/py/rdb/mcp-server-connection/generator",
517
+ "schema": "./src/py/rdb/mcp-server-connection/schema.json",
518
+ "description": "Connect a py#mcp-server to a py#rdb project",
519
+ "metric": "g59",
520
+ "hidden": true
521
+ },
522
+ "internal#test-matrix": {
523
+ "factory": "./src/internal/test-matrix/generator",
524
+ "schema": "./src/internal/test-matrix/schema.json",
525
+ "description": "Scaffold every generator permutation for end to end tests",
526
+ "metric": "t1",
527
+ "hidden": true
386
528
  }
387
529
  }
388
530
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin-mcp",
3
- "version": "1.0.0-rc.7",
3
+ "version": "1.0.0-rc.71",
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
+ }