@aws/nx-plugin 1.0.0-rc.2 → 1.0.0-rc.21
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/LICENSE-THIRD-PARTY +3552 -4179
- package/README.md +8 -8
- package/executors.json +9 -0
- package/generators.json +100 -1
- package/package.json +16 -12
- package/sdk/agentcore-gateway.d.ts +6 -0
- package/sdk/agentcore-gateway.js +11 -0
- package/sdk/agentcore-gateway.js.map +1 -0
- package/sdk/license.d.ts +8 -0
- package/sdk/license.js +14 -0
- package/sdk/license.js.map +1 -0
- package/sdk/py.d.ts +6 -6
- package/sdk/py.js +7 -7
- package/sdk/py.js.map +1 -1
- package/sdk/ts.d.ts +18 -14
- package/sdk/ts.js +38 -32
- package/sdk/ts.js.map +1 -1
- package/src/agentcore-gateway/attach-upstream.d.ts +33 -0
- package/src/agentcore-gateway/attach-upstream.js +41 -0
- package/src/agentcore-gateway/attach-upstream.js.map +1 -0
- package/src/agentcore-gateway/files/cedar/policies/README.md +52 -0
- package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +11 -0
- package/src/agentcore-gateway/files/project/serve-local.ts.template +134 -0
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
- package/src/agentcore-gateway/gateway-connection/generator.js +102 -0
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.ts +12 -0
- package/src/agentcore-gateway/gateway-connection/schema.json +26 -0
- package/src/agentcore-gateway/generator.d.ts +25 -0
- package/src/agentcore-gateway/generator.js +129 -0
- package/src/agentcore-gateway/generator.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
- package/src/agentcore-gateway/mcp-connection/generator.js +63 -0
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.ts +12 -0
- package/src/agentcore-gateway/mcp-connection/schema.json +26 -0
- package/src/agentcore-gateway/schema.d.ts +16 -0
- package/src/agentcore-gateway/schema.json +65 -0
- package/src/connection/agent-runtime-config.d.ts +1 -1
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/agent-serve-local.d.ts +2 -2
- package/src/connection/agent-serve-local.js +1 -1
- package/src/connection/agent-serve-local.js.map +1 -1
- package/src/connection/generator.d.ts +5 -5
- package/src/connection/generator.js +93 -37
- package/src/connection/generator.js.map +1 -1
- package/src/connection/serve-local.d.ts +1 -1
- package/src/connection/serve-local.js +1 -1
- package/src/connection/serve-local.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +47 -58
- package/src/infra/app/generator.d.ts +3 -3
- package/src/infra/app/generator.js +19 -17
- package/src/infra/app/generator.js.map +1 -1
- package/src/license/__snapshots__/config.spec.ts.snap +23 -0
- package/src/license/config-types.d.ts +18 -1
- package/src/license/config-types.js +4 -0
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +65 -7
- package/src/license/config.js +315 -7
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.d.ts +16 -0
- package/src/license/dependency-check/check.js +111 -0
- package/src/license/dependency-check/check.js.map +1 -0
- package/src/license/dependency-check/collectors/collector.d.ts +21 -0
- package/src/license/dependency-check/collectors/collector.js +76 -0
- package/src/license/dependency-check/collectors/collector.js.map +1 -0
- package/src/license/dependency-check/collectors/npm-collector.d.ts +10 -0
- package/src/license/dependency-check/collectors/npm-collector.js +75 -0
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -0
- package/src/license/dependency-check/collectors/python-collector.d.ts +23 -0
- package/src/license/dependency-check/collectors/python-collector.js +121 -0
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -0
- package/src/license/dependency-check/evaluator.d.ts +9 -0
- package/src/license/dependency-check/evaluator.js +122 -0
- package/src/license/dependency-check/evaluator.js.map +1 -0
- package/src/license/dependency-check/executor-schema.json +6 -0
- package/src/license/dependency-check/executor.d.ts +9 -0
- package/src/license/dependency-check/executor.js +43 -0
- package/src/license/dependency-check/executor.js.map +1 -0
- package/src/license/dependency-check/pre-approved.d.ts +6 -0
- package/src/license/dependency-check/pre-approved.js +1280 -0
- package/src/license/dependency-check/pre-approved.js.map +1 -0
- package/src/license/dependency-check/types.d.ts +45 -0
- package/src/license/dependency-check/types.js +7 -0
- package/src/license/dependency-check/types.js.map +1 -0
- package/src/license/generator.d.ts +3 -3
- package/src/license/generator.js +102 -14
- package/src/license/generator.js.map +1 -1
- package/src/license/index.d.ts +8 -0
- package/src/license/index.js +13 -0
- package/src/license/index.js.map +1 -0
- package/src/license/known-exceptions.d.ts +6 -0
- package/src/license/known-exceptions.js +26 -0
- package/src/license/known-exceptions.js.map +1 -0
- package/src/license/schema.d.ts +5 -0
- package/src/license/schema.json +6 -0
- package/src/license/sync/generator.d.ts +2 -2
- package/src/license/sync/generator.js +15 -15
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.d.ts +3 -3
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.d.ts +5 -1
- package/src/mcp-server/generator-info.js +7 -7
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.d.ts +1 -1
- package/src/mcp-server/guide-pipeline.js +2 -2
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/mdx-ast.js +4 -0
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/schema-registry.d.ts +9 -3
- package/src/mcp-server/schema-registry.js +22 -6
- package/src/mcp-server/schema-registry.js.map +1 -1
- package/src/mcp-server/server.js +3 -3
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.d.ts +1 -1
- package/src/mcp-server/tools/create-workspace-command.js +4 -4
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.d.ts +2 -2
- package/src/mcp-server/tools/general-guidance.js +2 -2
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.d.ts +2 -2
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.d.ts +2 -2
- package/src/mcp-server/tools/list-generators.js +1 -1
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +1 -1
- package/src/open-api/ts-client/generator.d.ts +3 -3
- package/src/open-api/ts-client/generator.js +2 -2
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.d.ts +3 -3
- package/src/open-api/ts-hooks/generator.js +2 -2
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.spec.tsx +14 -14
- package/src/open-api/ts-metadata/generator.d.ts +3 -3
- package/src/open-api/ts-metadata/generator.js +1 -1
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/utils/codegen-data/languages.d.ts +5 -1
- package/src/open-api/utils/codegen-data/languages.js +4 -4
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data.d.ts +6 -2
- package/src/open-api/utils/codegen-data.js +6 -6
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.d.ts +5 -1
- package/src/open-api/utils/normalise.js +5 -5
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.d.ts +2 -2
- package/src/open-api/utils/parse.js +4 -0
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.d.ts +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +131 -13
- package/src/preset/generator.d.ts +4 -4
- package/src/preset/generator.js +21 -14
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.ts +3 -1
- package/src/preset/schema.json +5 -0
- package/src/py/agent/__snapshots__/generator.spec.ts.snap +659 -21
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +201 -0
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +30 -0
- package/src/py/agent/a2a-connection/generator.d.ts +3 -3
- package/src/py/agent/a2a-connection/generator.js +11 -10
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/files/common/agent.py.template +2 -0
- package/src/py/agent/files/http/init.py.template +7 -25
- package/src/py/agent/files/http/main.py.template +2 -3
- package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +197 -0
- package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
- package/src/py/agent/gateway-connection/generator.d.ts +10 -0
- package/src/py/agent/gateway-connection/generator.js +106 -0
- package/src/py/agent/gateway-connection/generator.js.map +1 -0
- package/src/py/agent/gateway-connection/schema.d.ts +12 -0
- package/src/py/agent/gateway-connection/schema.json +26 -0
- package/src/py/agent/generator.d.ts +3 -3
- package/src/py/agent/generator.js +47 -38
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +167 -81
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +30 -0
- package/src/py/agent/mcp-connection/generator.d.ts +3 -3
- package/src/py/agent/mcp-connection/generator.js +11 -81
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +8 -17
- package/src/py/agent/react-connection/generator.d.ts +3 -3
- package/src/py/agent/react-connection/generator.js +4 -4
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/serve-local.d.ts +2 -2
- package/src/py/agent/react-connection/serve-local.js.map +1 -1
- package/src/py/api/generator.d.ts +3 -3
- package/src/py/api/generator.js.map +1 -1
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1486 -0
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/agent-connection/generator.js +39 -0
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
- package/src/py/dynamodb/agent-connection/schema.d.ts +14 -0
- package/src/py/dynamodb/agent-connection/schema.json +22 -0
- package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/fast-api-connection/generator.js +37 -0
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.ts +12 -0
- package/src/py/dynamodb/fast-api-connection/schema.json +18 -0
- package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
- package/src/py/dynamodb/files/__name__/client.py.template +39 -0
- package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
- package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
- package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
- package/src/py/dynamodb/files/config.json.template +24 -0
- package/src/py/dynamodb/generator.d.ts +10 -0
- package/src/py/dynamodb/generator.js +106 -0
- package/src/py/dynamodb/generator.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/mcp-server-connection/generator.js +39 -0
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.ts +14 -0
- package/src/py/dynamodb/mcp-server-connection/schema.json +22 -0
- package/src/py/dynamodb/schema.d.ts +15 -0
- package/src/py/dynamodb/schema.json +70 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +167 -39
- package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
- package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
- package/src/py/fast-api/generator.d.ts +3 -3
- package/src/py/fast-api/generator.js +23 -17
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/fast-api/react/generator.d.ts +3 -3
- package/src/py/fast-api/react/generator.js +2 -2
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.d.ts +1 -1
- package/src/py/fast-api/react/open-api.js +5 -2
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/lambda-function/generator.d.ts +3 -3
- package/src/py/lambda-function/generator.js +11 -11
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +83 -13
- package/src/py/mcp-server/generator.d.ts +3 -3
- package/src/py/mcp-server/generator.js +33 -26
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/project/generator.d.ts +3 -3
- package/src/py/project/generator.js +96 -70
- package/src/py/project/generator.js.map +1 -1
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +19 -16
- package/src/smithy/project/files/build.Dockerfile.template +1 -0
- package/src/smithy/project/files/src/operations/echo.smithy.template +1 -0
- package/src/smithy/project/generator.d.ts +3 -3
- package/src/smithy/project/generator.js +30 -28
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/smithy/react-connection/generator.d.ts +3 -3
- package/src/smithy/react-connection/generator.js +3 -3
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +14 -34
- package/src/smithy/ts/api/generator.d.ts +3 -3
- package/src/smithy/ts/api/generator.js +18 -12
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/terraform/project/files/application/src/main.tf.template +6 -1
- package/src/terraform/project/generator.d.ts +3 -3
- package/src/terraform/project/generator.js +13 -8
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +163 -18
- package/src/trpc/backend/files/src/procedures/echo.ts.template +1 -1
- package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
- package/src/trpc/backend/generator.d.ts +3 -3
- package/src/trpc/backend/generator.js +11 -10
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +2 -2
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
- package/src/trpc/react/generator.d.ts +3 -3
- package/src/trpc/react/generator.js +5 -5
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +652 -14
- package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +256 -0
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
- package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
- package/src/ts/agent/a2a-connection/generator.js +8 -8
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/files/common/agent.ts.template +6 -2
- package/src/ts/agent/files/http/router.ts.template +1 -1
- package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +220 -0
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
- package/src/ts/agent/gateway-connection/generator.d.ts +10 -0
- package/src/ts/agent/gateway-connection/generator.js +106 -0
- package/src/ts/agent/gateway-connection/generator.js.map +1 -0
- package/src/ts/agent/gateway-connection/schema.d.ts +12 -0
- package/src/ts/agent/gateway-connection/schema.json +26 -0
- package/src/ts/agent/generator.d.ts +3 -3
- package/src/ts/agent/generator.js +44 -32
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +191 -110
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +22 -0
- package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
- package/src/ts/agent/mcp-connection/generator.js +9 -21
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/generator.d.ts +3 -3
- package/src/ts/agent/react-connection/generator.js +9 -9
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/serve-local.d.ts +2 -2
- package/src/ts/api/generator.d.ts +3 -3
- package/src/ts/api/generator.js +4 -4
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.ts +2 -1
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +7 -8
- package/src/ts/astro-docs/generator.d.ts +3 -3
- package/src/ts/astro-docs/generator.js +14 -11
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/docs/generator.d.ts +3 -3
- package/src/ts/docs/generator.js.map +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +1352 -0
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/ts/dynamodb/agent-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/agent-connection/generator.js +32 -0
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/agent-connection/schema.d.ts +14 -0
- package/src/ts/dynamodb/agent-connection/schema.json +22 -0
- package/src/ts/dynamodb/files/config.json.template +24 -0
- package/src/ts/dynamodb/files/src/client.ts.template +61 -0
- package/src/ts/dynamodb/files/src/entities/example.ts.template +47 -0
- package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -0
- package/src/ts/dynamodb/files/src/index.ts.template +2 -0
- package/src/ts/dynamodb/generator.d.ts +10 -0
- package/src/ts/dynamodb/generator.js +111 -0
- package/src/ts/dynamodb/generator.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js +32 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +14 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.json +22 -0
- package/src/ts/dynamodb/schema.d.ts +15 -0
- package/src/ts/dynamodb/schema.json +70 -0
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/ts/dynamodb/smithy-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/smithy-connection/generator.js +30 -0
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.ts +12 -0
- package/src/ts/dynamodb/smithy-connection/schema.json +18 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/ts/dynamodb/trpc-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/trpc-connection/generator.js +30 -0
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.ts +12 -0
- package/src/ts/dynamodb/trpc-connection/schema.json +18 -0
- package/src/ts/lambda-function/generator.d.ts +3 -3
- package/src/ts/lambda-function/generator.js +8 -8
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +32 -65
- package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
- package/src/ts/lib/biome.d.ts +7 -0
- package/src/ts/lib/biome.js +58 -0
- package/src/ts/lib/biome.js.map +1 -0
- package/src/ts/lib/generator.d.ts +3 -3
- package/src/ts/lib/generator.js +27 -29
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
- package/src/ts/lib/ts-project-utils.d.ts +12 -2
- package/src/ts/lib/ts-project-utils.js +30 -10
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +2 -2
- package/src/ts/lib/vitest.js +1 -1
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +82 -12
- package/src/ts/mcp-server/generator.d.ts +3 -3
- package/src/ts/mcp-server/generator.js +34 -12
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +19 -14
- package/src/ts/nx-generator/generator.d.ts +2 -2
- package/src/ts/nx-generator/generator.js +52 -19
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-plugin/generator.d.ts +3 -3
- package/src/ts/nx-plugin/generator.js +10 -9
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/utils.d.ts +1 -1
- package/src/ts/nx-plugin/utils.js +10 -4
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +252 -388
- package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
- package/src/ts/rdb/agent-connection/generator.js +4 -4
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/files/config.json.template +14 -0
- package/src/ts/rdb/files/prisma.config.ts.template +5 -4
- package/src/ts/rdb/files/src/index.ts.template +0 -1
- package/src/ts/rdb/files/src/prisma.ts.template +26 -21
- package/src/ts/rdb/generator.d.ts +3 -7
- package/src/ts/rdb/generator.js +52 -41
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
- package/src/ts/rdb/mcp-server-connection/generator.js +4 -4
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
- package/src/ts/rdb/smithy-connection/generator.js +4 -4
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
- package/src/ts/rdb/trpc-connection/generator.js +3 -3
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/rdb/utils.d.ts +1 -1
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
- package/src/ts/react-website/agui/generator.d.ts +1 -1
- package/src/ts/react-website/agui/generator.js +4 -5
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +530 -367
- package/src/ts/react-website/app/generator.d.ts +3 -3
- package/src/ts/react-website/app/generator.js +21 -17
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +1 -7
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +9 -3
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
- package/src/ts/react-website/cognito-auth/generator.d.ts +3 -3
- package/src/ts/react-website/cognito-auth/generator.js +10 -13
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +8 -6
- package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
- package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
- package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
- package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
- package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
- package/src/ts/react-website/cognito-auth/utils.js +1 -1
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
- package/src/ts/react-website/runtime-config/generator.js +4 -4
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/sync/generator.d.ts +3 -3
- package/src/ts/sync/generator.js +2 -2
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.d.ts +3 -3
- package/src/ts/website/app/generator.js +1 -1
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/auth/generator.d.ts +3 -3
- package/src/ts/website/auth/generator.js +1 -1
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/utils/agent-chat/agent-chat.d.ts +31 -0
- package/src/utils/agent-chat/agent-chat.js +30 -0
- package/src/utils/agent-chat/agent-chat.js.map +1 -0
- package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
- package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
- package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
- package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
- package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
- package/src/utils/agent-connection/agent-connection.d.ts +67 -24
- package/src/utils/agent-connection/agent-connection.js +236 -44
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
- package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
- package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
- package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
- package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +22 -32
- package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
- package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
- package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +36 -0
- package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
- package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
- package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
- package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
- package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
- package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
- package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
- package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
- package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
- package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
- package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
- package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
- package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +11 -3
- package/src/utils/agent-core-constructs/agent-core-constructs.js +57 -12
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +4 -0
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +40 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +375 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +335 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +77 -9
- package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
- package/src/utils/api-constructs/api-constructs.d.ts +2 -2
- package/src/utils/api-constructs/api-constructs.js +1 -1
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +3 -0
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +9 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +23 -1
- package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +3 -0
- package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.d.ts +5 -1
- package/src/utils/ast/website.js +3 -3
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.d.ts +33 -1
- package/src/utils/ast.js +89 -4
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.d.ts +1 -1
- package/src/utils/bundle/bundle.js +2 -2
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/config/index.d.ts +5 -5
- package/src/utils/config/utils.d.ts +13 -3
- package/src/utils/config/utils.js +37 -5
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +1 -1
- package/src/utils/connection/open-api/react.d.ts +1 -1
- package/src/utils/connection/open-api/react.js +4 -4
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.d.ts +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +18 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +49 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -0
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +43 -0
- package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +105 -0
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +62 -0
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +155 -0
- package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +195 -0
- package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
- package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +91 -0
- package/src/utils/files/common/scripts/src/rdb/pull-image.ts.template +16 -0
- package/src/utils/files/common/scripts/src/rdb/start-container.ts.template +102 -0
- package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +59 -0
- package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +9 -3
- package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +7 -2
- package/src/utils/format.d.ts +45 -2
- package/src/utils/format.js +167 -46
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.d.ts +1 -1
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/function-constructs.d.ts +2 -2
- package/src/utils/function-constructs/function-constructs.js +1 -1
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.d.ts +4 -0
- package/src/utils/generators.js +4 -4
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.d.ts +1 -1
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac.d.ts +1 -1
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +1 -5
- package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +9 -3
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +2 -4
- package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
- package/src/utils/identity-constructs/identity-constructs.js +1 -1
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/js.d.ts +4 -0
- package/src/utils/js.js +4 -4
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.d.ts +25 -0
- package/src/utils/mcp.js +81 -0
- package/src/utils/mcp.js.map +1 -0
- package/src/utils/metrics.d.ts +9 -3
- package/src/utils/metrics.js +58 -28
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/npm-scope.d.ts +1 -1
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +7 -2
- package/src/utils/nx.js +46 -14
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.d.ts +1 -1
- package/src/utils/paths.d.ts +1 -1
- package/src/utils/pnpm-workspace.d.ts +1 -1
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.d.ts +31 -3
- package/src/utils/port.js +74 -4
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.d.ts +2 -2
- package/src/utils/py.js +13 -6
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +12 -2
- package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +30 -1
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +38 -16
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +28 -13
- package/src/utils/rdb-constructs/rdb-constructs.d.ts +5 -4
- package/src/utils/rdb-constructs/rdb-constructs.js +3 -11
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs-constants.d.ts +1 -0
- package/src/utils/shared-constructs-constants.js +2 -1
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +2 -2
- package/src/utils/shared-constructs.js +7 -7
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.d.ts +11 -0
- package/src/utils/shared-dynamodb-scripts.js +23 -0
- package/src/utils/shared-dynamodb-scripts.js.map +1 -0
- package/src/utils/shared-infra-config.d.ts +1 -1
- package/src/utils/shared-infra-config.js +1 -1
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-infra-scripts.d.ts +11 -0
- package/src/utils/shared-infra-scripts.js +35 -0
- package/src/utils/shared-infra-scripts.js.map +1 -0
- package/src/utils/shared-rdb-scripts.d.ts +11 -0
- package/src/utils/shared-rdb-scripts.js +20 -0
- package/src/utils/shared-rdb-scripts.js.map +1 -0
- package/src/utils/shared-scripts.d.ts +2 -5
- package/src/utils/shared-scripts.js +2 -23
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.d.ts +1 -1
- package/src/utils/shared-shadcn.js +1 -13
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +5 -1
- package/src/utils/test.js +9 -5
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.d.ts +1 -1
- package/src/utils/toml.js +4 -0
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +82 -83
- package/src/utils/versions.js +81 -82
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +72 -5
- package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +63 -15
- package/src/utils/website-constructs/website-constructs.d.ts +2 -2
- package/src/utils/website-constructs/website-constructs.js +1 -1
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
- package/src/py/agent/scripts/http/chat.ts.template +0 -38
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
- package/src/ts/agent/scripts/http/chat.ts.template +0 -35
- package/src/ts/lib/eslint.d.ts +0 -14
- package/src/ts/lib/eslint.js +0 -90
- package/src/ts/lib/eslint.js.map +0 -1
- package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
- package/src/ts/rdb/files/scripts/docker-pull.ts.template +0 -15
- package/src/ts/rdb/files/scripts/docker-start.ts.template +0 -84
- package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
- package/src/ts/rdb/files/src/constants.ts.template +0 -8
- package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
- package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
- package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
- package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
- /package/src/utils/agent-connection/files/{core-runtime-config/with-session-id.ts.template → core-strands/base/with-session-id-strands.ts.template} +0 -0
- /package/src/utils/agent-connection/files/{py-core-runtime-config/with_session_id.py.template → py-core-strands/base/with_session_id_strands.py.template} +0 -0
- /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
- /package/src/utils/files/common/scripts/src/{infra-deploy.ts.template → infra/infra-deploy.ts.template} +0 -0
- /package/src/utils/files/common/scripts/src/{infra-destroy.ts.template → infra/infra-destroy.ts.template} +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pyDynamoDBMcpServerConnectionGenerator = exports.PY_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
const devkit_1 = require("@nx/devkit");
|
|
9
|
+
const format_1 = require("../../../utils/format");
|
|
10
|
+
const metrics_1 = require("../../../utils/metrics");
|
|
11
|
+
const nx_1 = require("../../../utils/nx");
|
|
12
|
+
const nxlv_python_1 = require("../../../utils/nxlv-python");
|
|
13
|
+
const py_1 = require("../../../utils/py");
|
|
14
|
+
exports.PY_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
15
|
+
const pyDynamoDBMcpServerConnectionGenerator = async (tree, options) => {
|
|
16
|
+
const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
|
|
17
|
+
const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
|
|
18
|
+
(0, py_1.addWorkspaceDependencyToPyProject)(tree, sourceProject.root, targetProject.name);
|
|
19
|
+
const mcpServerName = options.sourceComponent?.name ?? 'mcp-server';
|
|
20
|
+
const serveLocalTarget = `${mcpServerName}-serve-local`;
|
|
21
|
+
if (sourceProject.targets?.[serveLocalTarget]) {
|
|
22
|
+
(0, nx_1.addDependencyToTargetIfNotPresent)(sourceProject, serveLocalTarget, {
|
|
23
|
+
projects: [targetProject.name],
|
|
24
|
+
target: 'serve-local',
|
|
25
|
+
});
|
|
26
|
+
(0, devkit_1.updateProjectConfiguration)(tree, sourceProject.name, sourceProject);
|
|
27
|
+
}
|
|
28
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
29
|
+
exports.PY_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO,
|
|
30
|
+
]);
|
|
31
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
32
|
+
return async () => {
|
|
33
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
34
|
+
await new nxlv_python_1.UVProvider(tree.root, new nxlv_python_1.Logger(), tree).install();
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
exports.pyDynamoDBMcpServerConnectionGenerator = pyDynamoDBMcpServerConnectionGenerator;
|
|
38
|
+
exports.default = exports.pyDynamoDBMcpServerConnectionGenerator;
|
|
39
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/dynamodb/mcp-server-connection/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAKoB;AACpB,kDAA6D;AAC7D,oDAAyE;AACzE,0CAK2B;AAC3B,4DAAgE;AAChE,0CAAsE;AAGzD,QAAA,gDAAgD,GAC3D,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,sCAAsC,GAAG,KAAK,EACzD,IAAU,EACV,OAAqD,EACzB,EAAE;IAC9B,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IAEF,IAAA,sCAAiC,EAC/B,IAAI,EACJ,aAAa,CAAC,IAAI,EAClB,aAAa,CAAC,IAAK,CACpB,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,IAAI,YAAY,CAAC;IACpE,MAAM,gBAAgB,GAAG,GAAG,aAAa,cAAc,CAAC;IAExD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9C,IAAA,sCAAiC,EAAC,aAAa,EAAE,gBAAgB,EAAE;YACjE,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QACH,IAAA,mCAA0B,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE;QAC1C,wDAAgD;KACjD,CAAC,CAAC;IACH,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,IAAI,EAAE;QAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,wBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,oBAAM,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC,CAAC;AAtCW,QAAA,sCAAsC,0CAsCjD;AAEF,kBAAe,8CAAsC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { ComponentMetadata } from '../../../utils/nx';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* TypeScript types for options defined in schema.json
|
|
9
|
+
*/
|
|
10
|
+
export interface PyDynamoDBMcpServerConnectionGeneratorSchema {
|
|
11
|
+
sourceProject: string;
|
|
12
|
+
targetProject: string;
|
|
13
|
+
sourceComponent?: ComponentMetadata;
|
|
14
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "py#dynamodb#mcp-server-connection",
|
|
4
|
+
"title": "py#dynamodb#mcp-server-connection",
|
|
5
|
+
"description": "Connect a py#mcp-server to a py#dynamodb project",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"sourceProject": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "The project containing the py#mcp-server to connect from"
|
|
11
|
+
},
|
|
12
|
+
"targetProject": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "The py#dynamodb project to connect to"
|
|
15
|
+
},
|
|
16
|
+
"sourceComponent": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The MCP server component name"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"required": ["sourceProject", "targetProject"]
|
|
22
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { IacOption } from '../../utils/iac';
|
|
6
|
+
|
|
7
|
+
export interface PyDynamoDBGeneratorSchema {
|
|
8
|
+
name: string;
|
|
9
|
+
directory?: string;
|
|
10
|
+
subDirectory?: string;
|
|
11
|
+
framework: 'pynamodb';
|
|
12
|
+
tableName?: string;
|
|
13
|
+
infra: 'dynamodb' | 'none';
|
|
14
|
+
iac: IacOption;
|
|
15
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "py#dynamodb",
|
|
4
|
+
"title": "py#dynamodb",
|
|
5
|
+
"description": "Create a Python DynamoDB project",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"name": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Name of the DynamoDB project to generate",
|
|
11
|
+
"$default": {
|
|
12
|
+
"$source": "argv",
|
|
13
|
+
"index": 0
|
|
14
|
+
},
|
|
15
|
+
"x-priority": "important",
|
|
16
|
+
"x-prompt": "What name would you like your DynamoDB project to have? i.e: MyTable"
|
|
17
|
+
},
|
|
18
|
+
"directory": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The directory to store the project in.",
|
|
21
|
+
"default": "packages",
|
|
22
|
+
"x-priority": "important",
|
|
23
|
+
"x-prompt": "Which directory do you want to create the project in?"
|
|
24
|
+
},
|
|
25
|
+
"subDirectory": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "The sub directory the project is placed in. By default this is the project name.",
|
|
28
|
+
"x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
|
|
29
|
+
},
|
|
30
|
+
"framework": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"enum": ["pynamodb"],
|
|
33
|
+
"default": "pynamodb",
|
|
34
|
+
"description": "The framework to use for DynamoDB entities.",
|
|
35
|
+
"x-priority": "important",
|
|
36
|
+
"x-prompt": {
|
|
37
|
+
"message": "Which framework would you like to use for DynamoDB entities?",
|
|
38
|
+
"type": "list",
|
|
39
|
+
"items": [
|
|
40
|
+
{
|
|
41
|
+
"value": "pynamodb",
|
|
42
|
+
"label": "PynamoDB"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"default": "pynamodb"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"tableName": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"description": "The DynamoDB table name. Auto-generated if not specified."
|
|
51
|
+
},
|
|
52
|
+
"infra": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": ["dynamodb", "none"],
|
|
55
|
+
"default": "dynamodb",
|
|
56
|
+
"description": "Infrastructure to provision for the DynamoDB table.",
|
|
57
|
+
"x-priority": "important",
|
|
58
|
+
"x-prompt": "Which infrastructure would you like to provision?"
|
|
59
|
+
},
|
|
60
|
+
"iac": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
63
|
+
"enum": ["inherit", "cdk", "terraform"],
|
|
64
|
+
"x-priority": "important",
|
|
65
|
+
"default": "inherit",
|
|
66
|
+
"x-prompt": "Which provider would you like to manage your infrastructure? (default: Inherit)"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"required": ["name"]
|
|
70
|
+
}
|
|
@@ -14,7 +14,6 @@ from urllib.parse import urlparse
|
|
|
14
14
|
from aws_lambda_powertools import Logger, Metrics, Tracer
|
|
15
15
|
from aws_lambda_powertools.metrics import MetricUnit
|
|
16
16
|
from fastapi import FastAPI, Request, Response
|
|
17
|
-
from fastapi.openapi.utils import get_openapi
|
|
18
17
|
from fastapi.responses import JSONResponse, StreamingResponse
|
|
19
18
|
from fastapi.routing import APIRoute
|
|
20
19
|
from pydantic import BaseModel
|
|
@@ -81,7 +80,11 @@ class JsonStreamingResponse(StreamingResponse):
|
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
|
|
84
|
-
app = FastAPI(
|
|
83
|
+
app = FastAPI(
|
|
84
|
+
title="TestApi",
|
|
85
|
+
responses={500: {"model": InternalServerErrorDetails}},
|
|
86
|
+
generate_unique_id_function=lambda route: route.name,
|
|
87
|
+
)
|
|
85
88
|
|
|
86
89
|
|
|
87
90
|
# Add cors middleware
|
|
@@ -187,28 +190,11 @@ class LoggerRouteHandler(APIRoute):
|
|
|
187
190
|
|
|
188
191
|
|
|
189
192
|
app.router.route_class = LoggerRouteHandler
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
def custom_openapi() -> dict[str, Any]:
|
|
193
|
-
if app.openapi_schema:
|
|
194
|
-
return app.openapi_schema
|
|
195
|
-
for route in app.routes:
|
|
196
|
-
if isinstance(route, APIRoute):
|
|
197
|
-
route.operation_id = route.name
|
|
198
|
-
openapi_schema = get_openapi(
|
|
199
|
-
title=app.title,
|
|
200
|
-
version=app.version,
|
|
201
|
-
openapi_version=app.openapi_version,
|
|
202
|
-
description=app.description,
|
|
203
|
-
routes=app.routes,
|
|
204
|
-
)
|
|
205
|
-
app.openapi_schema = openapi_schema
|
|
206
|
-
return app.openapi_schema
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
app.openapi = custom_openapi # ty: ignore[invalid-assignment]
|
|
210
193
|
",
|
|
211
|
-
"apps/test_api/proj_test_api/main.py": "import
|
|
194
|
+
"apps/test_api/proj_test_api/main.py": "from typing import Annotated
|
|
195
|
+
|
|
196
|
+
import uvicorn
|
|
197
|
+
from fastapi import Query
|
|
212
198
|
from pydantic import BaseModel
|
|
213
199
|
|
|
214
200
|
from .init import app, tracer
|
|
@@ -220,7 +206,7 @@ class EchoOutput(BaseModel):
|
|
|
220
206
|
|
|
221
207
|
@app.get("/echo")
|
|
222
208
|
@tracer.capture_method
|
|
223
|
-
def echo(message: str) -> EchoOutput:
|
|
209
|
+
def echo(message: Annotated[str, Query(max_length=1024)]) -> EchoOutput:
|
|
224
210
|
return EchoOutput(message=f"{message}")
|
|
225
211
|
|
|
226
212
|
|
|
@@ -270,6 +256,7 @@ import {
|
|
|
270
256
|
HttpMethod,
|
|
271
257
|
HttpStage,
|
|
272
258
|
LogGroupLogDestination,
|
|
259
|
+
ThrottleSettings,
|
|
273
260
|
} from 'aws-cdk-lib/aws-apigatewayv2';
|
|
274
261
|
import { LogGroup } from 'aws-cdk-lib/aws-logs';
|
|
275
262
|
import { suppressRules } from '../checkov.js';
|
|
@@ -296,6 +283,12 @@ export interface HttpApiProps<
|
|
|
296
283
|
* Map of operation names to their API Gateway integrations
|
|
297
284
|
*/
|
|
298
285
|
readonly integrations: TIntegrations;
|
|
286
|
+
/**
|
|
287
|
+
* Default throttling limits applied to the API's default stage.
|
|
288
|
+
*
|
|
289
|
+
* @default { rateLimit: 10000, burstLimit: 5000 }
|
|
290
|
+
*/
|
|
291
|
+
readonly throttle?: ThrottleSettings;
|
|
299
292
|
}
|
|
300
293
|
|
|
301
294
|
/**
|
|
@@ -329,6 +322,7 @@ export class HttpApi<
|
|
|
329
322
|
apiName,
|
|
330
323
|
operations,
|
|
331
324
|
integrations,
|
|
325
|
+
throttle = { rateLimit: 10000, burstLimit: 5000 },
|
|
332
326
|
...props
|
|
333
327
|
}: HttpApiProps<TIntegrations, TOperation>,
|
|
334
328
|
) {
|
|
@@ -356,6 +350,7 @@ export class HttpApi<
|
|
|
356
350
|
this.defaultStage = new HttpStage(this, 'DefaultStage', {
|
|
357
351
|
httpApi: this.api,
|
|
358
352
|
autoDeploy: true,
|
|
353
|
+
throttle,
|
|
359
354
|
accessLogSettings: {
|
|
360
355
|
destination: new LogGroupLogDestination(accessLogGroup),
|
|
361
356
|
},
|
|
@@ -757,6 +752,8 @@ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
|
|
|
757
752
|
* @template TDefaultIntegrationProps - Type for default integration properties
|
|
758
753
|
* @template TDefaultIntegration - Type for default integration implementation
|
|
759
754
|
* @template TPattern - The integration pattern ('shared' or 'isolated')
|
|
755
|
+
* @template TOverridden - Union of operation names that have been overridden
|
|
756
|
+
* @template TOperationOptioned - Union of operation names with per-operation options
|
|
760
757
|
*/
|
|
761
758
|
export class IntegrationBuilder<
|
|
762
759
|
TOperation extends string,
|
|
@@ -765,6 +762,8 @@ export class IntegrationBuilder<
|
|
|
765
762
|
TDefaultIntegrationProps extends object,
|
|
766
763
|
TDefaultIntegration extends TBaseIntegration,
|
|
767
764
|
TPattern extends 'shared' | 'isolated',
|
|
765
|
+
TOverridden extends string = never,
|
|
766
|
+
TOperationOptioned extends string = never,
|
|
768
767
|
> {
|
|
769
768
|
/** Options for the integration builder */
|
|
770
769
|
private options: IntegrationBuilderProps<
|
|
@@ -777,6 +776,11 @@ export class IntegrationBuilder<
|
|
|
777
776
|
/** Map of operation names to their custom integrations */
|
|
778
777
|
private integrations: Partial<TIntegrations> = {};
|
|
779
778
|
|
|
779
|
+
/** Map of default integration keys to per-operation default option overrides */
|
|
780
|
+
private perOperationOptions: Partial<
|
|
781
|
+
Record<string, Partial<TDefaultIntegrationProps>>
|
|
782
|
+
> = {};
|
|
783
|
+
|
|
780
784
|
/**
|
|
781
785
|
* Create an Integration Builder for an HTTP API with a shared pattern
|
|
782
786
|
*/
|
|
@@ -931,11 +935,16 @@ export class IntegrationBuilder<
|
|
|
931
935
|
/**
|
|
932
936
|
* Overrides default integrations with custom implementations for specific operations.
|
|
933
937
|
*
|
|
938
|
+
* Operations which have per-operation options set via withOperationOptions cannot be
|
|
939
|
+
* overridden, since these still use the default integration.
|
|
940
|
+
*
|
|
934
941
|
* @param overrides - Map of operation names to their custom integration implementations
|
|
935
942
|
* @returns The builder instance with updated type information reflecting the overrides
|
|
936
943
|
*/
|
|
937
944
|
public withOverrides<
|
|
938
|
-
TOverrideIntegrations extends Partial<
|
|
945
|
+
TOverrideIntegrations extends Partial<
|
|
946
|
+
Record<Exclude<TOperation, TOperationOptioned>, TBaseIntegration>
|
|
947
|
+
>,
|
|
939
948
|
>(overrides: TOverrideIntegrations) {
|
|
940
949
|
this.integrations = { ...this.integrations, ...overrides };
|
|
941
950
|
// Re-type to include the overridden integration types.
|
|
@@ -951,7 +960,9 @@ export class IntegrationBuilder<
|
|
|
951
960
|
MergedIntegrations,
|
|
952
961
|
TDefaultIntegrationProps,
|
|
953
962
|
TDefaultIntegration,
|
|
954
|
-
TPattern
|
|
963
|
+
TPattern,
|
|
964
|
+
TOverridden | Extract<keyof TOverrideIntegrations, string>,
|
|
965
|
+
TOperationOptioned
|
|
955
966
|
>;
|
|
956
967
|
}
|
|
957
968
|
|
|
@@ -970,6 +981,43 @@ export class IntegrationBuilder<
|
|
|
970
981
|
return this;
|
|
971
982
|
}
|
|
972
983
|
|
|
984
|
+
/**
|
|
985
|
+
* Updates the default integration options for specific operations, without
|
|
986
|
+
* affecting the others. The given options are merged with the defaults (and
|
|
987
|
+
* any options set via withDefaultOptions) when building each default integration.
|
|
988
|
+
*
|
|
989
|
+
* Operations which have been replaced via withOverrides cannot be targeted, since
|
|
990
|
+
* they no longer use the default integration.
|
|
991
|
+
*
|
|
992
|
+
* @param options - Map of operation names to partial default integration options
|
|
993
|
+
* @returns The builder instance
|
|
994
|
+
*/
|
|
995
|
+
public withOperationOptions<
|
|
996
|
+
TOptions extends Partial<
|
|
997
|
+
Record<
|
|
998
|
+
Exclude<DefaultIntegrationKeys<TPattern, TOperation>, TOverridden>,
|
|
999
|
+
Partial<TDefaultIntegrationProps>
|
|
1000
|
+
>
|
|
1001
|
+
>,
|
|
1002
|
+
>(options: TOptions) {
|
|
1003
|
+
Object.entries(options).forEach(([op, opOptions]) => {
|
|
1004
|
+
this.perOperationOptions[op] = {
|
|
1005
|
+
...this.perOperationOptions[op],
|
|
1006
|
+
...(opOptions as Partial<TDefaultIntegrationProps>),
|
|
1007
|
+
};
|
|
1008
|
+
});
|
|
1009
|
+
return this as unknown as IntegrationBuilder<
|
|
1010
|
+
TOperation,
|
|
1011
|
+
TBaseIntegration,
|
|
1012
|
+
TIntegrations,
|
|
1013
|
+
TDefaultIntegrationProps,
|
|
1014
|
+
TDefaultIntegration,
|
|
1015
|
+
TPattern,
|
|
1016
|
+
TOverridden,
|
|
1017
|
+
TOperationOptioned | Extract<keyof TOptions, string>
|
|
1018
|
+
>;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
973
1021
|
/**
|
|
974
1022
|
* Builds and returns the complete set of integrations.
|
|
975
1023
|
*
|
|
@@ -984,6 +1032,10 @@ export class IntegrationBuilder<
|
|
|
984
1032
|
*/
|
|
985
1033
|
public build(): TIntegrations {
|
|
986
1034
|
const options = this.options;
|
|
1035
|
+
const buildOptionsFor = (op: string): TDefaultIntegrationProps => ({
|
|
1036
|
+
...options.defaultIntegrationOptions,
|
|
1037
|
+
...this.perOperationOptions[op],
|
|
1038
|
+
});
|
|
987
1039
|
return {
|
|
988
1040
|
...Object.fromEntries(
|
|
989
1041
|
options.pattern === 'shared'
|
|
@@ -992,7 +1044,7 @@ export class IntegrationBuilder<
|
|
|
992
1044
|
'$router',
|
|
993
1045
|
options.buildDefaultIntegration(
|
|
994
1046
|
'$router',
|
|
995
|
-
|
|
1047
|
+
buildOptionsFor('$router'),
|
|
996
1048
|
),
|
|
997
1049
|
],
|
|
998
1050
|
]
|
|
@@ -1003,10 +1055,7 @@ export class IntegrationBuilder<
|
|
|
1003
1055
|
)
|
|
1004
1056
|
.map((op) => [
|
|
1005
1057
|
op,
|
|
1006
|
-
options.buildDefaultIntegration(
|
|
1007
|
-
op,
|
|
1008
|
-
options.defaultIntegrationOptions,
|
|
1009
|
-
),
|
|
1058
|
+
options.buildDefaultIntegration(op, buildOptionsFor(op)),
|
|
1010
1059
|
]),
|
|
1011
1060
|
),
|
|
1012
1061
|
...this.integrations,
|
|
@@ -1025,6 +1074,7 @@ import {
|
|
|
1025
1074
|
RestApiProps as _RestApiProps,
|
|
1026
1075
|
IResource,
|
|
1027
1076
|
Stage,
|
|
1077
|
+
ThrottleSettings,
|
|
1028
1078
|
} from 'aws-cdk-lib/aws-apigateway';
|
|
1029
1079
|
import { IAspect, RemovalPolicy } from 'aws-cdk-lib';
|
|
1030
1080
|
import {
|
|
@@ -1071,6 +1121,12 @@ export interface RestApiProps<
|
|
|
1071
1121
|
* @default true
|
|
1072
1122
|
*/
|
|
1073
1123
|
readonly enableWaf?: boolean;
|
|
1124
|
+
/**
|
|
1125
|
+
* Default throttling limits applied to all methods on the API's default stage.
|
|
1126
|
+
*
|
|
1127
|
+
* @default { rateLimit: 10000, burstLimit: 5000 }
|
|
1128
|
+
*/
|
|
1129
|
+
readonly throttle?: ThrottleSettings;
|
|
1074
1130
|
}
|
|
1075
1131
|
|
|
1076
1132
|
/**
|
|
@@ -1105,6 +1161,7 @@ export class RestApi<
|
|
|
1105
1161
|
operations,
|
|
1106
1162
|
integrations,
|
|
1107
1163
|
enableWaf = true,
|
|
1164
|
+
throttle = { rateLimit: 10000, burstLimit: 5000 },
|
|
1108
1165
|
...props
|
|
1109
1166
|
}: RestApiProps<TIntegrations, TOperation>,
|
|
1110
1167
|
) {
|
|
@@ -1112,7 +1169,21 @@ export class RestApi<
|
|
|
1112
1169
|
this.integrations = integrations;
|
|
1113
1170
|
|
|
1114
1171
|
// Create the API Gateway REST API
|
|
1115
|
-
this.api = new _RestApi(this, 'Api',
|
|
1172
|
+
this.api = new _RestApi(this, 'Api', {
|
|
1173
|
+
...props,
|
|
1174
|
+
deployOptions: {
|
|
1175
|
+
...props.deployOptions,
|
|
1176
|
+
methodOptions: {
|
|
1177
|
+
...props.deployOptions?.methodOptions,
|
|
1178
|
+
// Default throttling applied to all resource paths and methods
|
|
1179
|
+
'/*/*': {
|
|
1180
|
+
throttlingRateLimit: throttle.rateLimit,
|
|
1181
|
+
throttlingBurstLimit: throttle.burstLimit,
|
|
1182
|
+
...props.deployOptions?.methodOptions?.['/*/*'],
|
|
1183
|
+
},
|
|
1184
|
+
},
|
|
1185
|
+
},
|
|
1186
|
+
});
|
|
1116
1187
|
|
|
1117
1188
|
if (enableWaf) {
|
|
1118
1189
|
this.webAcl = new CfnWebACL(this, 'WebAcl', {
|
|
@@ -1656,6 +1727,8 @@ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
|
|
|
1656
1727
|
* @template TDefaultIntegrationProps - Type for default integration properties
|
|
1657
1728
|
* @template TDefaultIntegration - Type for default integration implementation
|
|
1658
1729
|
* @template TPattern - The integration pattern ('shared' or 'isolated')
|
|
1730
|
+
* @template TOverridden - Union of operation names that have been overridden
|
|
1731
|
+
* @template TOperationOptioned - Union of operation names with per-operation options
|
|
1659
1732
|
*/
|
|
1660
1733
|
export class IntegrationBuilder<
|
|
1661
1734
|
TOperation extends string,
|
|
@@ -1664,6 +1737,8 @@ export class IntegrationBuilder<
|
|
|
1664
1737
|
TDefaultIntegrationProps extends object,
|
|
1665
1738
|
TDefaultIntegration extends TBaseIntegration,
|
|
1666
1739
|
TPattern extends 'shared' | 'isolated',
|
|
1740
|
+
TOverridden extends string = never,
|
|
1741
|
+
TOperationOptioned extends string = never,
|
|
1667
1742
|
> {
|
|
1668
1743
|
/** Options for the integration builder */
|
|
1669
1744
|
private options: IntegrationBuilderProps<
|
|
@@ -1676,6 +1751,11 @@ export class IntegrationBuilder<
|
|
|
1676
1751
|
/** Map of operation names to their custom integrations */
|
|
1677
1752
|
private integrations: Partial<TIntegrations> = {};
|
|
1678
1753
|
|
|
1754
|
+
/** Map of default integration keys to per-operation default option overrides */
|
|
1755
|
+
private perOperationOptions: Partial<
|
|
1756
|
+
Record<string, Partial<TDefaultIntegrationProps>>
|
|
1757
|
+
> = {};
|
|
1758
|
+
|
|
1679
1759
|
/**
|
|
1680
1760
|
* Create an Integration Builder for an HTTP API with a shared pattern
|
|
1681
1761
|
*/
|
|
@@ -1830,11 +1910,16 @@ export class IntegrationBuilder<
|
|
|
1830
1910
|
/**
|
|
1831
1911
|
* Overrides default integrations with custom implementations for specific operations.
|
|
1832
1912
|
*
|
|
1913
|
+
* Operations which have per-operation options set via withOperationOptions cannot be
|
|
1914
|
+
* overridden, since these still use the default integration.
|
|
1915
|
+
*
|
|
1833
1916
|
* @param overrides - Map of operation names to their custom integration implementations
|
|
1834
1917
|
* @returns The builder instance with updated type information reflecting the overrides
|
|
1835
1918
|
*/
|
|
1836
1919
|
public withOverrides<
|
|
1837
|
-
TOverrideIntegrations extends Partial<
|
|
1920
|
+
TOverrideIntegrations extends Partial<
|
|
1921
|
+
Record<Exclude<TOperation, TOperationOptioned>, TBaseIntegration>
|
|
1922
|
+
>,
|
|
1838
1923
|
>(overrides: TOverrideIntegrations) {
|
|
1839
1924
|
this.integrations = { ...this.integrations, ...overrides };
|
|
1840
1925
|
// Re-type to include the overridden integration types.
|
|
@@ -1850,7 +1935,9 @@ export class IntegrationBuilder<
|
|
|
1850
1935
|
MergedIntegrations,
|
|
1851
1936
|
TDefaultIntegrationProps,
|
|
1852
1937
|
TDefaultIntegration,
|
|
1853
|
-
TPattern
|
|
1938
|
+
TPattern,
|
|
1939
|
+
TOverridden | Extract<keyof TOverrideIntegrations, string>,
|
|
1940
|
+
TOperationOptioned
|
|
1854
1941
|
>;
|
|
1855
1942
|
}
|
|
1856
1943
|
|
|
@@ -1869,6 +1956,43 @@ export class IntegrationBuilder<
|
|
|
1869
1956
|
return this;
|
|
1870
1957
|
}
|
|
1871
1958
|
|
|
1959
|
+
/**
|
|
1960
|
+
* Updates the default integration options for specific operations, without
|
|
1961
|
+
* affecting the others. The given options are merged with the defaults (and
|
|
1962
|
+
* any options set via withDefaultOptions) when building each default integration.
|
|
1963
|
+
*
|
|
1964
|
+
* Operations which have been replaced via withOverrides cannot be targeted, since
|
|
1965
|
+
* they no longer use the default integration.
|
|
1966
|
+
*
|
|
1967
|
+
* @param options - Map of operation names to partial default integration options
|
|
1968
|
+
* @returns The builder instance
|
|
1969
|
+
*/
|
|
1970
|
+
public withOperationOptions<
|
|
1971
|
+
TOptions extends Partial<
|
|
1972
|
+
Record<
|
|
1973
|
+
Exclude<DefaultIntegrationKeys<TPattern, TOperation>, TOverridden>,
|
|
1974
|
+
Partial<TDefaultIntegrationProps>
|
|
1975
|
+
>
|
|
1976
|
+
>,
|
|
1977
|
+
>(options: TOptions) {
|
|
1978
|
+
Object.entries(options).forEach(([op, opOptions]) => {
|
|
1979
|
+
this.perOperationOptions[op] = {
|
|
1980
|
+
...this.perOperationOptions[op],
|
|
1981
|
+
...(opOptions as Partial<TDefaultIntegrationProps>),
|
|
1982
|
+
};
|
|
1983
|
+
});
|
|
1984
|
+
return this as unknown as IntegrationBuilder<
|
|
1985
|
+
TOperation,
|
|
1986
|
+
TBaseIntegration,
|
|
1987
|
+
TIntegrations,
|
|
1988
|
+
TDefaultIntegrationProps,
|
|
1989
|
+
TDefaultIntegration,
|
|
1990
|
+
TPattern,
|
|
1991
|
+
TOverridden,
|
|
1992
|
+
TOperationOptioned | Extract<keyof TOptions, string>
|
|
1993
|
+
>;
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1872
1996
|
/**
|
|
1873
1997
|
* Builds and returns the complete set of integrations.
|
|
1874
1998
|
*
|
|
@@ -1883,6 +2007,10 @@ export class IntegrationBuilder<
|
|
|
1883
2007
|
*/
|
|
1884
2008
|
public build(): TIntegrations {
|
|
1885
2009
|
const options = this.options;
|
|
2010
|
+
const buildOptionsFor = (op: string): TDefaultIntegrationProps => ({
|
|
2011
|
+
...options.defaultIntegrationOptions,
|
|
2012
|
+
...this.perOperationOptions[op],
|
|
2013
|
+
});
|
|
1886
2014
|
return {
|
|
1887
2015
|
...Object.fromEntries(
|
|
1888
2016
|
options.pattern === 'shared'
|
|
@@ -1891,7 +2019,7 @@ export class IntegrationBuilder<
|
|
|
1891
2019
|
'$router',
|
|
1892
2020
|
options.buildDefaultIntegration(
|
|
1893
2021
|
'$router',
|
|
1894
|
-
|
|
2022
|
+
buildOptionsFor('$router'),
|
|
1895
2023
|
),
|
|
1896
2024
|
],
|
|
1897
2025
|
]
|
|
@@ -1902,10 +2030,7 @@ export class IntegrationBuilder<
|
|
|
1902
2030
|
)
|
|
1903
2031
|
.map((op) => [
|
|
1904
2032
|
op,
|
|
1905
|
-
options.buildDefaultIntegration(
|
|
1906
|
-
op,
|
|
1907
|
-
options.defaultIntegrationOptions,
|
|
1908
|
-
),
|
|
2033
|
+
options.buildDefaultIntegration(op, buildOptionsFor(op)),
|
|
1909
2034
|
]),
|
|
1910
2035
|
),
|
|
1911
2036
|
...this.integrations,
|
|
@@ -4522,6 +4647,9 @@ resource "aws_api_gateway_method" "proxy_method" {
|
|
|
4522
4647
|
|
|
4523
4648
|
authorization = "COGNITO_USER_POOLS"
|
|
4524
4649
|
authorizer_id = aws_api_gateway_authorizer.cognito_authorizer.id
|
|
4650
|
+
# Accept access tokens from both sign-in flows: 'openid' (Cognito hosted UI)
|
|
4651
|
+
# and 'aws.cognito.signin.user.admin' (Cognito admin/SRP auth APIs).
|
|
4652
|
+
authorization_scopes = ["openid", "aws.cognito.signin.user.admin"]
|
|
4525
4653
|
|
|
4526
4654
|
request_parameters = {
|
|
4527
4655
|
"method.request.path.proxy" = true
|
|
@@ -8,7 +8,6 @@ from urllib.parse import urlparse
|
|
|
8
8
|
from aws_lambda_powertools import Logger, Metrics, Tracer
|
|
9
9
|
from aws_lambda_powertools.metrics import MetricUnit
|
|
10
10
|
from fastapi import FastAPI, Request, Response
|
|
11
|
-
from fastapi.openapi.utils import get_openapi
|
|
12
11
|
from fastapi.responses import JSONResponse, StreamingResponse
|
|
13
12
|
from fastapi.routing import APIRoute
|
|
14
13
|
from pydantic import BaseModel
|
|
@@ -73,7 +72,11 @@ class JsonStreamingResponse(StreamingResponse):
|
|
|
73
72
|
}
|
|
74
73
|
|
|
75
74
|
|
|
76
|
-
app = FastAPI(
|
|
75
|
+
app = FastAPI(
|
|
76
|
+
title="<%= apiNameClassName %>",
|
|
77
|
+
responses={500: {"model": InternalServerErrorDetails}},
|
|
78
|
+
generate_unique_id_function=lambda route: route.name,
|
|
79
|
+
)
|
|
77
80
|
|
|
78
81
|
|
|
79
82
|
# Add cors middleware
|
|
@@ -174,23 +177,3 @@ class LoggerRouteHandler(APIRoute):
|
|
|
174
177
|
|
|
175
178
|
|
|
176
179
|
app.router.route_class = LoggerRouteHandler
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
def custom_openapi() -> dict[str, Any]:
|
|
180
|
-
if app.openapi_schema:
|
|
181
|
-
return app.openapi_schema
|
|
182
|
-
for route in app.routes:
|
|
183
|
-
if isinstance(route, APIRoute):
|
|
184
|
-
route.operation_id = route.name
|
|
185
|
-
openapi_schema = get_openapi(
|
|
186
|
-
title=app.title,
|
|
187
|
-
version=app.version,
|
|
188
|
-
openapi_version=app.openapi_version,
|
|
189
|
-
description=app.description,
|
|
190
|
-
routes=app.routes,
|
|
191
|
-
)
|
|
192
|
-
app.openapi_schema = openapi_schema
|
|
193
|
-
return app.openapi_schema
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
app.openapi = custom_openapi # ty: ignore[invalid-assignment]
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
from typing import Annotated
|
|
2
|
+
|
|
1
3
|
import uvicorn
|
|
4
|
+
from fastapi import Query
|
|
2
5
|
from pydantic import BaseModel
|
|
3
6
|
|
|
4
7
|
from .init import app, tracer
|
|
@@ -10,7 +13,7 @@ class EchoOutput(BaseModel):
|
|
|
10
13
|
|
|
11
14
|
@app.get("/echo")
|
|
12
15
|
@tracer.capture_method
|
|
13
|
-
def echo(message: str) -> EchoOutput:
|
|
16
|
+
def echo(message: Annotated[str, Query(max_length=1024)]) -> EchoOutput:
|
|
14
17
|
return EchoOutput(message=f"{message}")
|
|
15
18
|
|
|
16
19
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { GeneratorCallback, Tree } from '@nx/devkit';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
6
|
+
import { type NxGeneratorInfo } from '../../utils/nx';
|
|
7
|
+
import type { PyFastApiProjectGeneratorSchema } from './schema';
|
|
8
8
|
export declare const FAST_API_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
9
|
/**
|
|
10
10
|
* Generates a Python FastAPI project
|