@aws/nx-plugin 1.0.0-rc.23 → 1.0.0-rc.25
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 +3643 -1208
- package/package.json +30 -15
- package/src/agentcore-gateway/attach-upstream.d.ts +7 -7
- package/src/agentcore-gateway/attach-upstream.js +19 -22
- package/src/agentcore-gateway/attach-upstream.js.map +1 -1
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +4 -4
- package/src/agentcore-gateway/gateway-connection/generator.js +45 -46
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.ts +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.json +5 -0
- package/src/agentcore-gateway/generator.js +93 -73
- package/src/agentcore-gateway/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +3 -3
- package/src/agentcore-gateway/mcp-connection/generator.js +27 -31
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.ts +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.json +5 -0
- package/src/agentcore-gateway/schema.d.js +6 -0
- package/src/agentcore-gateway/schema.d.js.map +1 -0
- package/src/agentcore-gateway/schema.d.ts +1 -0
- package/src/agentcore-gateway/schema.json +5 -0
- package/src/bin/aws-nx-mcp.js +14 -0
- package/src/bin/aws-nx-mcp.js.map +1 -0
- package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +5 -5
- package/src/connection/agent-local-dev.js +42 -0
- package/src/connection/agent-local-dev.js.map +1 -0
- package/src/connection/agent-runtime-config.js +9 -14
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/generator.d.ts +1 -0
- package/src/connection/generator.js +265 -206
- package/src/connection/generator.js.map +1 -1
- package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
- package/src/connection/local-dev.js +37 -0
- package/src/connection/local-dev.js.map +1 -0
- package/src/connection/schema.d.js +6 -0
- package/src/connection/schema.d.js.map +1 -0
- package/src/connection/schema.d.ts +1 -0
- package/src/connection/schema.json +5 -0
- package/src/index.js +2 -5
- package/src/index.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +33 -47
- package/src/infra/app/generator.js +140 -124
- package/src/infra/app/generator.js.map +1 -1
- package/src/infra/app/schema.d.js +6 -0
- package/src/infra/app/schema.d.js.map +1 -0
- package/src/infra/app/schema.d.ts +1 -1
- package/src/infra/app/schema.json +5 -0
- package/src/license/config-types.js +5 -3
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +1 -1
- package/src/license/config.js +267 -242
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.js +51 -46
- package/src/license/dependency-check/check.js.map +1 -1
- package/src/license/dependency-check/collectors/collector.js +41 -71
- package/src/license/dependency-check/collectors/collector.js.map +1 -1
- package/src/license/dependency-check/collectors/npm-collector.js +34 -41
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
- package/src/license/dependency-check/collectors/python-collector.js +55 -62
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
- package/src/license/dependency-check/evaluator.js +40 -68
- package/src/license/dependency-check/evaluator.js.map +1 -1
- package/src/license/dependency-check/executor.js +30 -22
- package/src/license/dependency-check/executor.js.map +1 -1
- package/src/license/dependency-check/pre-approved.js +949 -336
- package/src/license/dependency-check/pre-approved.js.map +1 -1
- package/src/license/dependency-check/types.js +2 -3
- package/src/license/dependency-check/types.js.map +1 -1
- package/src/license/generator.js +55 -60
- package/src/license/generator.js.map +1 -1
- package/src/license/index.js +3 -9
- package/src/license/index.js.map +1 -1
- package/src/license/known-exceptions.js +14 -13
- package/src/license/known-exceptions.js.map +1 -1
- package/src/license/schema.d.js +6 -0
- package/src/license/schema.d.js.map +1 -0
- package/src/license/schema.d.ts +2 -0
- package/src/license/schema.json +5 -0
- package/src/license/sync/generator.js +94 -119
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.js +28 -35
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.js +130 -160
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.js +184 -206
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/guide-render.js +10 -25
- package/src/mcp-server/guide-render.js.map +1 -1
- package/src/mcp-server/index.js +6 -10
- package/src/mcp-server/index.js.map +1 -1
- package/src/mcp-server/mdx-ast.js +39 -57
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/option-filter.js +33 -47
- package/src/mcp-server/option-filter.js.map +1 -1
- package/src/mcp-server/schema-registry.js +27 -40
- package/src/mcp-server/schema-registry.js.map +1 -1
- package/src/mcp-server/schema.js +9 -7
- package/src/mcp-server/schema.js.map +1 -1
- package/src/mcp-server/server.js +20 -24
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.js +23 -24
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.js +45 -25
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.js +29 -37
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.js +19 -25
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/open-api/ts-client/generator.js +16 -26
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-client/schema.d.js +6 -0
- package/src/open-api/ts-client/schema.d.js.map +1 -0
- package/src/open-api/ts-hooks/generator.js +13 -21
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-hooks/schema.d.js +6 -0
- package/src/open-api/ts-hooks/schema.d.js.map +1 -0
- package/src/open-api/ts-metadata/generator.js +12 -20
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/ts-metadata/schema.d.js +6 -0
- package/src/open-api/ts-metadata/schema.d.js.map +1 -0
- package/src/open-api/utils/codegen-data/languages.js +42 -60
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data/types.js +31 -30
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.js +253 -269
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.js +242 -241
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.js +8 -14
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.js +12 -22
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/open-api/utils/types.js +5 -2
- package/src/open-api/utils/types.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +32 -7
- package/src/preset/generator.d.ts +1 -1
- package/src/preset/generator.js +134 -113
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.js +6 -0
- package/src/preset/schema.d.js.map +1 -0
- package/src/preset/schema.d.ts +1 -1
- package/src/preset/schema.json +5 -5
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
- package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.frameworks.spec.ts.snap} +16 -853
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +535 -0
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -2
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -1
- package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +1 -1
- package/src/py/agent/a2a-connection/generator.js +74 -75
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/a2a-connection/schema.d.js +8 -0
- package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/py/agent/a2a-connection/schema.d.ts +1 -0
- package/src/py/agent/a2a-connection/schema.json +5 -0
- package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +6 -8
- package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +3 -3
- package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +3 -3
- package/src/py/agent/gateway-connection/generator.js +65 -58
- package/src/py/agent/gateway-connection/generator.js.map +1 -1
- package/src/py/agent/gateway-connection/schema.d.js +6 -0
- package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/py/agent/gateway-connection/schema.d.ts +1 -0
- package/src/py/agent/gateway-connection/schema.json +5 -0
- package/src/py/agent/generator.js +230 -194
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +5 -12
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +1 -1
- package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +1 -1
- package/src/py/agent/mcp-connection/generator.js +57 -52
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/schema.d.js +8 -0
- package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/py/agent/mcp-connection/schema.d.ts +1 -0
- package/src/py/agent/mcp-connection/schema.json +5 -0
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +3 -2
- package/src/py/agent/react-connection/generator.d.ts +1 -1
- package/src/py/agent/react-connection/generator.js +55 -59
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
- package/src/py/agent/react-connection/local-dev.js +36 -0
- package/src/py/agent/react-connection/local-dev.js.map +1 -0
- package/src/py/agent/react-connection/schema.d.js +8 -0
- package/src/py/agent/react-connection/schema.d.js.map +1 -0
- package/src/py/agent/react-connection/schema.d.ts +1 -0
- package/src/py/agent/react-connection/schema.json +5 -0
- package/src/py/agent/schema.d.js +6 -0
- package/src/py/agent/schema.d.js.map +1 -0
- package/src/py/agent/schema.d.ts +1 -0
- package/src/py/agent/schema.json +5 -0
- package/src/py/api/generator.js +12 -11
- package/src/py/api/generator.js.map +1 -1
- package/src/py/api/schema.d.js +6 -0
- package/src/py/api/schema.d.js.map +1 -0
- package/src/py/api/schema.d.ts +1 -0
- package/src/py/api/schema.json +5 -0
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +68 -28
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/dynamodb/agent-connection/generator.js +30 -30
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/agent-connection/schema.d.ts +1 -0
- package/src/py/dynamodb/agent-connection/schema.json +5 -0
- package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/dynamodb/fast-api-connection/generator.js +29 -29
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
- package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.ts +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.json +5 -0
- package/src/py/dynamodb/files/__name__/client.py.template +5 -5
- package/src/py/dynamodb/files/__name__/entities/base.py.template +2 -2
- package/src/py/dynamodb/files/config.json.template +1 -1
- package/src/py/dynamodb/generator.js +66 -62
- package/src/py/dynamodb/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/dynamodb/mcp-server-connection/generator.js +30 -30
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.ts +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.json +5 -0
- package/src/py/dynamodb/schema.d.js +6 -0
- package/src/py/dynamodb/schema.d.js.map +1 -0
- package/src/py/dynamodb/schema.d.ts +1 -0
- package/src/py/dynamodb/schema.json +5 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +45 -4632
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
- package/src/py/fast-api/generator.js +82 -85
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +3 -2
- package/src/py/fast-api/react/generator.d.ts +2 -2
- package/src/py/fast-api/react/generator.js +25 -25
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.js +28 -29
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/fast-api/react/schema.d.js +6 -0
- package/src/py/fast-api/react/schema.d.js.map +1 -0
- package/src/py/fast-api/react/schema.d.ts +1 -0
- package/src/py/fast-api/react/schema.json +5 -0
- package/src/py/fast-api/schema.d.js +6 -0
- package/src/py/fast-api/schema.d.js.map +1 -0
- package/src/py/fast-api/schema.d.ts +1 -0
- package/src/py/fast-api/schema.json +5 -0
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/py/lambda-function/generator.js +60 -59
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/lambda-function/schema.d.js +6 -0
- package/src/py/lambda-function/schema.d.js.map +1 -0
- package/src/py/lambda-function/schema.d.ts +1 -0
- package/src/py/lambda-function/schema.json +5 -0
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +8 -8
- package/src/py/mcp-server/generator.js +152 -132
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.js +6 -0
- package/src/py/mcp-server/schema.d.js.map +1 -0
- package/src/py/mcp-server/schema.d.ts +1 -0
- package/src/py/mcp-server/schema.json +5 -0
- package/src/py/project/generator.js +132 -90
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.d.js +6 -0
- package/src/py/project/schema.d.js.map +1 -0
- package/src/py/project/schema.d.ts +1 -0
- package/src/py/project/schema.json +5 -0
- package/src/sdk/agentcore-gateway.d.ts +6 -0
- package/src/sdk/agentcore-gateway.js +7 -0
- package/src/sdk/agentcore-gateway.js.map +1 -0
- package/src/sdk/connection.d.ts +6 -0
- package/src/sdk/connection.js +6 -0
- package/src/sdk/connection.js.map +1 -0
- package/{sdk → src/sdk}/license.d.ts +4 -4
- package/src/sdk/license.js +7 -0
- package/src/sdk/license.js.map +1 -0
- package/src/sdk/open-api.d.ts +10 -0
- package/src/sdk/open-api.js +8 -0
- package/src/sdk/open-api.js.map +1 -0
- package/src/sdk/py.d.ts +14 -0
- package/src/sdk/py.js +10 -0
- package/src/sdk/py.js.map +1 -0
- package/src/sdk/terraform.d.ts +6 -0
- package/src/sdk/terraform.js +7 -0
- package/src/sdk/terraform.js.map +1 -0
- package/src/sdk/ts.d.ts +33 -0
- package/src/sdk/ts.js +35 -0
- package/src/sdk/ts.js.map +1 -0
- package/{sdk → src/sdk}/utils/ast.d.ts +1 -2
- package/src/sdk/utils/ast.js +6 -0
- package/src/sdk/utils/ast.js.map +1 -0
- package/{sdk → src/sdk}/utils/format.d.ts +1 -1
- package/src/sdk/utils/format.js +6 -0
- package/src/sdk/utils/format.js.map +1 -0
- package/{sdk → src/sdk}/utils/test.d.ts +1 -1
- package/src/sdk/utils/test.js +6 -0
- package/src/sdk/utils/test.js.map +1 -0
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +2 -8
- package/src/smithy/project/files/build.Dockerfile.template +1 -4
- package/src/smithy/project/generator.js +48 -43
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/project/schema.d.js +6 -0
- package/src/smithy/project/schema.d.js.map +1 -0
- package/src/smithy/project/schema.d.ts +1 -0
- package/src/smithy/project/schema.json +5 -0
- package/src/smithy/react-connection/generator.js +39 -47
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/react-connection/schema.d.js +6 -0
- package/src/smithy/react-connection/schema.d.js.map +1 -0
- package/src/smithy/react-connection/schema.d.ts +1 -0
- package/src/smithy/react-connection/schema.json +5 -0
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +395 -72
- package/src/smithy/ts/api/generator.js +125 -110
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.js +6 -0
- package/src/smithy/ts/api/schema.d.js.map +1 -0
- package/src/smithy/ts/api/schema.d.ts +1 -0
- package/src/smithy/ts/api/schema.json +5 -0
- package/src/terraform/project/files/application/src/providers.tf.template +1 -1
- package/src/terraform/project/generator.js +151 -104
- package/src/terraform/project/generator.js.map +1 -1
- package/src/terraform/project/schema.d.js +9 -0
- package/src/terraform/project/schema.d.js.map +1 -0
- package/src/terraform/project/schema.d.ts +1 -0
- package/src/terraform/project/schema.json +5 -0
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +336 -92
- package/src/trpc/backend/generator.d.ts +1 -1
- package/src/trpc/backend/generator.js +97 -86
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.js +6 -0
- package/src/trpc/backend/schema.d.js.map +1 -0
- package/src/trpc/backend/schema.d.ts +1 -0
- package/src/trpc/backend/schema.json +5 -0
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/trpc/react/generator.d.ts +1 -1
- package/src/trpc/react/generator.js +63 -58
- package/src/trpc/react/generator.js.map +1 -1
- package/src/trpc/react/schema.d.js +6 -0
- package/src/trpc/react/schema.d.js.map +1 -0
- package/src/trpc/react/schema.d.ts +1 -0
- package/src/trpc/react/schema.json +5 -0
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +11 -11
- package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +1 -1
- package/src/ts/agent/a2a-connection/generator.js +62 -55
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/a2a-connection/schema.d.js +8 -0
- package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
- package/src/ts/agent/a2a-connection/schema.json +5 -0
- package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +3 -3
- package/src/ts/agent/gateway-connection/generator.js +61 -53
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- package/src/ts/agent/gateway-connection/schema.d.js +6 -0
- package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/ts/agent/gateway-connection/schema.d.ts +1 -0
- package/src/ts/agent/gateway-connection/schema.json +5 -0
- package/src/ts/agent/generator.js +169 -137
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +1 -1
- package/src/ts/agent/mcp-connection/generator.js +52 -47
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/schema.d.js +8 -0
- package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
- package/src/ts/agent/mcp-connection/schema.json +5 -0
- package/src/ts/agent/react-connection/generator.d.ts +1 -1
- package/src/ts/agent/react-connection/generator.js +86 -80
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
- package/src/ts/agent/react-connection/local-dev.js +17 -0
- package/src/ts/agent/react-connection/local-dev.js.map +1 -0
- package/src/ts/agent/react-connection/schema.d.js +8 -0
- package/src/ts/agent/react-connection/schema.d.js.map +1 -0
- package/src/ts/agent/react-connection/schema.d.ts +1 -0
- package/src/ts/agent/react-connection/schema.json +5 -0
- package/src/ts/agent/schema.d.js +6 -0
- package/src/ts/agent/schema.d.js.map +1 -0
- package/src/ts/agent/schema.d.ts +1 -0
- package/src/ts/agent/schema.json +5 -0
- package/src/ts/api/generator.js +16 -16
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.js +6 -0
- package/src/ts/api/schema.d.js.map +1 -0
- package/src/ts/api/schema.d.ts +1 -0
- package/src/ts/api/schema.json +5 -0
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +8 -8
- package/src/ts/astro-docs/generator.js +63 -51
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/astro-docs/schema.d.js +6 -0
- package/src/ts/astro-docs/schema.d.js.map +1 -0
- package/src/ts/astro-docs/schema.d.ts +2 -2
- package/src/ts/astro-docs/schema.json +3 -3
- package/src/ts/docs/generator.js +10 -10
- package/src/ts/docs/generator.js.map +1 -1
- package/src/ts/docs/schema.d.js +6 -0
- package/src/ts/docs/schema.d.js.map +1 -0
- package/src/ts/docs/schema.d.ts +1 -4
- package/src/ts/docs/schema.json +3 -3
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +68 -30
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/dynamodb/agent-connection/generator.js +21 -23
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/agent-connection/schema.json +5 -0
- package/src/ts/dynamodb/files/config.json.template +1 -1
- package/src/ts/dynamodb/files/src/client.ts.template +7 -7
- package/src/ts/dynamodb/generator.js +68 -63
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/dynamodb/mcp-server-connection/generator.js +21 -23
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
- package/src/ts/dynamodb/schema.d.js +6 -0
- package/src/ts/dynamodb/schema.d.js.map +1 -0
- package/src/ts/dynamodb/schema.d.ts +1 -0
- package/src/ts/dynamodb/schema.json +5 -0
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/dynamodb/smithy-connection/generator.js +20 -22
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/dynamodb/trpc-connection/generator.js +20 -22
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/lambda-function/generator.js +59 -56
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lambda-function/io.js +83 -52
- package/src/ts/lambda-function/io.js.map +1 -1
- package/src/ts/lambda-function/schema.d.js +6 -0
- package/src/ts/lambda-function/schema.d.js.map +1 -0
- package/src/ts/lambda-function/schema.d.ts +1 -0
- package/src/ts/lambda-function/schema.json +5 -0
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +23 -36
- package/src/ts/lib/biome.js +37 -37
- package/src/ts/lib/biome.js.map +1 -1
- package/src/ts/lib/generator.js +82 -80
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/schema.d.js +6 -0
- package/src/ts/lib/schema.d.js.map +1 -0
- package/src/ts/lib/schema.d.ts +1 -1
- package/src/ts/lib/schema.json +5 -0
- package/src/ts/lib/ts-project-utils.js +65 -70
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/types.js +5 -2
- package/src/ts/lib/types.js.map +1 -1
- package/src/ts/lib/vitest.js +29 -26
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/mcp-server/generator.js +161 -139
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.js +6 -0
- package/src/ts/mcp-server/schema.d.js.map +1 -0
- package/src/ts/mcp-server/schema.d.ts +1 -0
- package/src/ts/mcp-server/schema.json +5 -0
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +27 -12
- package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
- package/src/ts/nx-generator/files/common/schema.json.template +5 -0
- package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
- package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
- package/src/ts/nx-generator/generator.js +88 -84
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-generator/schema.d.js +6 -0
- package/src/ts/nx-generator/schema.d.js.map +1 -0
- package/src/ts/nx-generator/schema.d.ts +1 -0
- package/src/ts/nx-generator/schema.json +5 -0
- package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +30 -18
- package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
- package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
- package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
- package/src/ts/nx-plugin/generator.js +57 -49
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/schema.d.js +9 -0
- package/src/ts/nx-plugin/schema.d.js.map +1 -0
- package/src/ts/nx-plugin/schema.json +5 -0
- package/src/ts/nx-plugin/utils.js +32 -44
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +30 -30
- package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/agent-connection/generator.js +38 -39
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/agent-connection/schema.d.js +8 -0
- package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
- package/src/ts/rdb/agent-connection/schema.json +5 -0
- package/src/ts/rdb/files/config.json.template +1 -1
- package/src/ts/rdb/files/prisma.config.ts.template +2 -2
- package/src/ts/rdb/files/src/prisma.ts.template +7 -7
- package/src/ts/rdb/files/src/utils.ts.template +1 -0
- package/src/ts/rdb/generator.js +134 -117
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/mcp-server-connection/generator.js +36 -37
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
- package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
- package/src/ts/rdb/schema.d.js +6 -0
- package/src/ts/rdb/schema.d.js.map +1 -0
- package/src/ts/rdb/schema.d.ts +1 -0
- package/src/ts/rdb/schema.json +5 -0
- package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/rdb/smithy-connection/generator.js +46 -43
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
- package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
- package/src/ts/rdb/smithy-connection/schema.json +5 -0
- package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/rdb/trpc-connection/generator.js +36 -31
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
- package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
- package/src/ts/rdb/trpc-connection/schema.json +5 -0
- package/src/ts/rdb/utils.js +9 -11
- package/src/ts/rdb/utils.js.map +1 -1
- package/src/ts/react-website/agui/generator.js +69 -61
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +178 -284
- package/src/ts/react-website/app/generator.d.ts +1 -1
- package/src/ts/react-website/app/generator.js +212 -191
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.js +6 -0
- package/src/ts/react-website/app/schema.d.js.map +1 -0
- package/src/ts/react-website/app/schema.d.ts +1 -1
- package/src/ts/react-website/app/schema.json +11 -6
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +118 -4
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +10 -3
- package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
- package/src/ts/react-website/cognito-auth/generator.d.ts +1 -1
- package/src/ts/react-website/cognito-auth/generator.js +64 -60
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
- package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
- package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
- package/src/ts/react-website/cognito-auth/schema.json +5 -0
- package/src/ts/react-website/cognito-auth/utils.js +34 -32
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
- package/src/ts/react-website/runtime-config/generator.js +29 -31
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/react-website/runtime-config/schema.d.js +6 -0
- package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
- package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
- package/src/ts/react-website/runtime-config/schema.json +5 -0
- package/src/ts/sync/generator.js +60 -59
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.js +10 -10
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/app/schema.d.js +6 -0
- package/src/ts/website/app/schema.d.js.map +1 -0
- package/src/ts/website/app/schema.d.ts +1 -1
- package/src/ts/website/app/schema.json +11 -6
- package/src/ts/website/auth/generator.d.ts +1 -1
- package/src/ts/website/auth/generator.js +11 -10
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/ts/website/auth/schema.d.js +6 -0
- package/src/ts/website/auth/schema.d.js.map +1 -0
- package/src/ts/website/auth/schema.d.ts +1 -0
- package/src/ts/website/auth/schema.json +5 -0
- package/src/utils/agent-chat/agent-chat.d.ts +1 -1
- package/src/utils/agent-chat/agent-chat.js +11 -12
- package/src/utils/agent-chat/agent-chat.js.map +1 -1
- package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-py/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
- package/src/utils/agent-connection/agent-connection.js +129 -146
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +1 -1
- package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
- package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +1 -1
- package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +1 -1
- package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +53 -50
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +4 -4
- package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +2 -2
- package/src/utils/api-constructs/api-constructs.js +30 -31
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +14 -6
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +28 -14
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -8
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +91 -4
- package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
- package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
- package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
- package/src/utils/api-constructs/open-api-metadata.js +22 -22
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.js +17 -19
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.js +72 -97
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.js +50 -47
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.js +47 -26
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/index.d.ts +2 -2
- package/src/utils/config/index.js +5 -4
- package/src/utils/config/index.js.map +1 -1
- package/src/utils/config/utils.js +48 -58
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/react.d.ts +5 -5
- package/src/utils/connection/open-api/react.js +81 -77
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.js +22 -23
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +32 -33
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +12 -2
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
- package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +2 -2
- package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +1 -1
- package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +17 -2
- package/src/utils/files/common/scripts/src/infra/stage-credentials/cdk-command.ts.template +11 -3
- package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
- package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
- package/src/utils/files/common/scripts/src/rdb/{pull-image.ts.template → shared/pull-image.ts.template} +1 -1
- package/src/utils/files/common/scripts/src/rdb/{start-container.ts.template → shared/start-container.ts.template} +16 -1
- package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
- package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +3 -3
- package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +2 -2
- package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
- package/src/utils/format.js +153 -99
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.js +14 -13
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
- package/src/utils/function-constructs/function-constructs.js +21 -26
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.js +18 -20
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.js +19 -34
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac-providers.js +5 -5
- package/src/utils/iac-providers.js.map +1 -1
- package/src/utils/iac.js +12 -14
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +112 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +2 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +104 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
- package/src/utils/identity-constructs/identity-constructs.js +24 -28
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/install.d.ts +32 -0
- package/src/utils/install.js +56 -0
- package/src/utils/install.js.map +1 -0
- package/src/utils/js.js +27 -20
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.js +34 -41
- package/src/utils/mcp.js.map +1 -1
- package/src/utils/metrics.js +30 -45
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/mock-project-graph.js +8 -12
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/names.js +25 -51
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.js +9 -17
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +18 -2
- package/src/utils/nx.js +111 -74
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.js +27 -15
- package/src/utils/nxlv-python.js.map +1 -1
- package/src/utils/object.js +5 -11
- package/src/utils/object.js.map +1 -1
- package/src/utils/paths.js +11 -15
- package/src/utils/paths.js.map +1 -1
- package/src/utils/pkg-manager.js +4 -9
- package/src/utils/pkg-manager.js.map +1 -1
- package/src/utils/pnpm-workspace.js +22 -22
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.js +26 -36
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.js +43 -52
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +3 -3
- package/src/utils/rdb-constructs/rdb-constructs.js +31 -33
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs-constants.js +16 -16
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.js +57 -54
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.js +16 -14
- package/src/utils/shared-dynamodb-scripts.js.map +1 -1
- package/src/utils/shared-infra-config.js +30 -31
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-infra-scripts.js +30 -25
- package/src/utils/shared-infra-scripts.js.map +1 -1
- package/src/utils/shared-rdb-scripts.d.ts +8 -3
- package/src/utils/shared-rdb-scripts.js +21 -13
- package/src/utils/shared-rdb-scripts.js.map +1 -1
- package/src/utils/shared-scripts.js +12 -17
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.js +64 -60
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +8 -0
- package/src/utils/test.js +33 -25
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.js +7 -15
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +93 -66
- package/src/utils/versions.js +102 -85
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
- package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +4 -4
- package/src/utils/website-constructs/website-constructs.js +31 -30
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- package/bin/aws-nx-mcp.js +0 -17
- package/bin/aws-nx-mcp.js.map +0 -1
- package/sdk/agentcore-gateway.d.ts +0 -6
- package/sdk/agentcore-gateway.js +0 -11
- package/sdk/agentcore-gateway.js.map +0 -1
- package/sdk/connection.d.ts +0 -6
- package/sdk/connection.js +0 -10
- package/sdk/connection.js.map +0 -1
- package/sdk/license.js +0 -14
- package/sdk/license.js.map +0 -1
- package/sdk/open-api.d.ts +0 -10
- package/sdk/open-api.js +0 -15
- package/sdk/open-api.js.map +0 -1
- package/sdk/py.d.ts +0 -14
- package/sdk/py.js +0 -18
- package/sdk/py.js.map +0 -1
- package/sdk/terraform.d.ts +0 -6
- package/sdk/terraform.js +0 -11
- package/sdk/terraform.js.map +0 -1
- package/sdk/ts.d.ts +0 -33
- package/sdk/ts.js +0 -53
- package/sdk/ts.js.map +0 -1
- package/sdk/utils/ast.js +0 -12
- package/sdk/utils/ast.js.map +0 -1
- package/sdk/utils/format.js +0 -10
- package/sdk/utils/format.js.map +0 -1
- package/sdk/utils/test.js +0 -10
- package/sdk/utils/test.js.map +0 -1
- package/src/connection/agent-serve-local.js +0 -48
- package/src/connection/agent-serve-local.js.map +0 -1
- package/src/connection/serve-local.js +0 -41
- package/src/connection/serve-local.js.map +0 -1
- package/src/py/agent/react-connection/serve-local.js +0 -38
- package/src/py/agent/react-connection/serve-local.js.map +0 -1
- package/src/ts/agent/react-connection/serve-local.js +0 -19
- package/src/ts/agent/react-connection/serve-local.js.map +0 -1
- package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +0 -59
- /package/src/agentcore-gateway/files/project/{serve-local.ts.template → local-dev.ts.template} +0 -0
- /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
|
@@ -1202,7 +1202,7 @@ import {
|
|
|
1202
1202
|
HttpApiIntegration,
|
|
1203
1203
|
OperationDetails,
|
|
1204
1204
|
} from './utils.js';
|
|
1205
|
-
import { CfnOutput } from 'aws-cdk-lib';
|
|
1205
|
+
import { CfnOutput, Stack } from 'aws-cdk-lib';
|
|
1206
1206
|
import {
|
|
1207
1207
|
HttpApi as _HttpApi,
|
|
1208
1208
|
HttpApiProps as _HttpApiProps,
|
|
@@ -1212,6 +1212,8 @@ import {
|
|
|
1212
1212
|
ThrottleSettings,
|
|
1213
1213
|
} from 'aws-cdk-lib/aws-apigatewayv2';
|
|
1214
1214
|
import { LogGroup } from 'aws-cdk-lib/aws-logs';
|
|
1215
|
+
import { Key } from 'aws-cdk-lib/aws-kms';
|
|
1216
|
+
import { ServicePrincipal } from 'aws-cdk-lib/aws-iam';
|
|
1215
1217
|
import { suppressRules } from '../checkov.js';
|
|
1216
1218
|
|
|
1217
1219
|
/**
|
|
@@ -1288,12 +1290,18 @@ export class HttpApi<
|
|
|
1288
1290
|
...props,
|
|
1289
1291
|
});
|
|
1290
1292
|
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1293
|
+
// Customer-managed key for access log encryption at rest
|
|
1294
|
+
const logsKey = new Key(this, 'AccessLogsKey', {
|
|
1295
|
+
enableKeyRotation: true,
|
|
1296
|
+
});
|
|
1297
|
+
const stack = Stack.of(this);
|
|
1298
|
+
logsKey.grantEncryptDecrypt(
|
|
1299
|
+
new ServicePrincipal(\`logs.\${stack.region}.amazonaws.com\`),
|
|
1296
1300
|
);
|
|
1301
|
+
|
|
1302
|
+
const accessLogGroup = new LogGroup(this, 'AccessLogs', {
|
|
1303
|
+
encryptionKey: logsKey,
|
|
1304
|
+
});
|
|
1297
1305
|
suppressRules(
|
|
1298
1306
|
accessLogGroup,
|
|
1299
1307
|
['CKV_AWS_66', 'CKV_AWS_338'],
|
|
@@ -2079,7 +2087,9 @@ export class IntegrationBuilder<
|
|
|
2079
2087
|
exports[`trpc backend generator > should set up shared constructs for rest > rest-api.ts 1`] = `
|
|
2080
2088
|
"import { Construct, IConstruct } from 'constructs';
|
|
2081
2089
|
import {
|
|
2090
|
+
AccessLogFormat,
|
|
2082
2091
|
Cors,
|
|
2092
|
+
LogGroupLogDestination,
|
|
2083
2093
|
Resource,
|
|
2084
2094
|
RestApi as _RestApi,
|
|
2085
2095
|
RestApiProps as _RestApiProps,
|
|
@@ -2087,14 +2097,17 @@ import {
|
|
|
2087
2097
|
Stage,
|
|
2088
2098
|
ThrottleSettings,
|
|
2089
2099
|
} from 'aws-cdk-lib/aws-apigateway';
|
|
2090
|
-
import { IAspect,
|
|
2100
|
+
import { IAspect, Stack } from 'aws-cdk-lib';
|
|
2091
2101
|
import {
|
|
2092
2102
|
CfnLoggingConfiguration,
|
|
2093
2103
|
CfnWebACL,
|
|
2094
2104
|
CfnWebACLAssociation,
|
|
2095
2105
|
} from 'aws-cdk-lib/aws-wafv2';
|
|
2096
2106
|
import { LogGroup, RetentionDays } from 'aws-cdk-lib/aws-logs';
|
|
2107
|
+
import { Key } from 'aws-cdk-lib/aws-kms';
|
|
2108
|
+
import { ServicePrincipal } from 'aws-cdk-lib/aws-iam';
|
|
2097
2109
|
import { RuntimeConfig } from '../runtime-config.js';
|
|
2110
|
+
import { ApiGatewayAccount } from './api-gateway-account.js';
|
|
2098
2111
|
import {
|
|
2099
2112
|
ApiIntegrations,
|
|
2100
2113
|
OperationDetails,
|
|
@@ -2179,10 +2192,28 @@ export class RestApi<
|
|
|
2179
2192
|
super(scope, id);
|
|
2180
2193
|
this.integrations = integrations;
|
|
2181
2194
|
|
|
2195
|
+
// Account-level CloudWatch role required for REST API access logging
|
|
2196
|
+
const account = ApiGatewayAccount.ensure(this);
|
|
2197
|
+
|
|
2198
|
+
// KMS key for encrypting logs at rest, usable by CloudWatch Logs
|
|
2199
|
+
const logsKey = new Key(this, 'LogsKey', {
|
|
2200
|
+
enableKeyRotation: true,
|
|
2201
|
+
});
|
|
2202
|
+
logsKey.grantEncryptDecrypt(
|
|
2203
|
+
new ServicePrincipal(\`logs.\${Stack.of(this).region}.amazonaws.com\`),
|
|
2204
|
+
);
|
|
2205
|
+
|
|
2206
|
+
const accessLogs = new LogGroup(this, 'AccessLogs', {
|
|
2207
|
+
retention: RetentionDays.ONE_YEAR,
|
|
2208
|
+
encryptionKey: logsKey,
|
|
2209
|
+
});
|
|
2210
|
+
|
|
2182
2211
|
// Create the API Gateway REST API
|
|
2183
2212
|
this.api = new _RestApi(this, 'Api', {
|
|
2184
2213
|
...props,
|
|
2185
2214
|
deployOptions: {
|
|
2215
|
+
accessLogDestination: new LogGroupLogDestination(accessLogs),
|
|
2216
|
+
accessLogFormat: AccessLogFormat.jsonWithStandardFields(),
|
|
2186
2217
|
...props.deployOptions,
|
|
2187
2218
|
methodOptions: {
|
|
2188
2219
|
...props.deployOptions?.methodOptions,
|
|
@@ -2195,6 +2226,8 @@ export class RestApi<
|
|
|
2195
2226
|
},
|
|
2196
2227
|
},
|
|
2197
2228
|
});
|
|
2229
|
+
// Ensure the account-level role is configured before the stage is created
|
|
2230
|
+
this.api.deploymentStage.node.addDependency(account.resource);
|
|
2198
2231
|
|
|
2199
2232
|
if (enableWaf) {
|
|
2200
2233
|
this.webAcl = new CfnWebACL(this, 'WebAcl', {
|
|
@@ -2261,14 +2294,9 @@ export class RestApi<
|
|
|
2261
2294
|
// \`aws-waf-logs-\` to satisfy the WAFv2 logging destination requirement.
|
|
2262
2295
|
const wafLogGroup = new LogGroup(this, 'WebAclLogs', {
|
|
2263
2296
|
logGroupName: \`aws-waf-logs-\${apiName}-\${this.node.addr.slice(-8)}\`,
|
|
2264
|
-
retention: RetentionDays.
|
|
2265
|
-
|
|
2297
|
+
retention: RetentionDays.ONE_YEAR,
|
|
2298
|
+
encryptionKey: logsKey,
|
|
2266
2299
|
});
|
|
2267
|
-
suppressRules(
|
|
2268
|
-
wafLogGroup,
|
|
2269
|
-
['CKV_AWS_158'],
|
|
2270
|
-
'Using default CloudWatch log encryption for WAF logs',
|
|
2271
|
-
);
|
|
2272
2300
|
|
|
2273
2301
|
new CfnLoggingConfiguration(this, 'WebAclLoggingConfig', {
|
|
2274
2302
|
resourceArn: this.webAcl.attrArn,
|
|
@@ -2282,12 +2310,6 @@ export class RestApi<
|
|
|
2282
2310
|
'Caching not required for this use case',
|
|
2283
2311
|
(c) => c instanceof Stage,
|
|
2284
2312
|
);
|
|
2285
|
-
suppressRules(
|
|
2286
|
-
this.api,
|
|
2287
|
-
['CKV_AWS_76'],
|
|
2288
|
-
'API Gateway access logging disabled due to account-level CloudWatch Logs role ARN requirement',
|
|
2289
|
-
(c) => c instanceof Stage,
|
|
2290
|
-
);
|
|
2291
2313
|
|
|
2292
2314
|
// Resolve the integration for a given operation.
|
|
2293
2315
|
// If the operation has a dedicated integration, use it; otherwise fall back to $router.
|
|
@@ -3120,7 +3142,7 @@ terraform {
|
|
|
3120
3142
|
required_providers {
|
|
3121
3143
|
aws = {
|
|
3122
3144
|
source = "hashicorp/aws"
|
|
3123
|
-
version = "
|
|
3145
|
+
version = "6.52.0"
|
|
3124
3146
|
}
|
|
3125
3147
|
}
|
|
3126
3148
|
}
|
|
@@ -3367,7 +3389,7 @@ output "api_log_group_arn" {
|
|
|
3367
3389
|
required_providers {
|
|
3368
3390
|
aws = {
|
|
3369
3391
|
source = "hashicorp/aws"
|
|
3370
|
-
version = "
|
|
3392
|
+
version = "6.52.0"
|
|
3371
3393
|
}
|
|
3372
3394
|
}
|
|
3373
3395
|
}
|
|
@@ -3435,12 +3457,6 @@ variable "cors_expose_headers" {
|
|
|
3435
3457
|
default = []
|
|
3436
3458
|
}
|
|
3437
3459
|
|
|
3438
|
-
variable "cors_max_age" {
|
|
3439
|
-
description = "Maximum age for CORS preflight requests in seconds"
|
|
3440
|
-
type = number
|
|
3441
|
-
default = 0
|
|
3442
|
-
}
|
|
3443
|
-
|
|
3444
3460
|
# Tags
|
|
3445
3461
|
variable "tags" {
|
|
3446
3462
|
description = "Tags to apply to all resources"
|
|
@@ -3491,7 +3507,6 @@ module "http_api" {
|
|
|
3491
3507
|
cors_allow_methods = var.cors_allow_methods
|
|
3492
3508
|
cors_allow_origins = var.cors_allow_origins
|
|
3493
3509
|
cors_expose_headers = var.cors_expose_headers
|
|
3494
|
-
cors_max_age = var.cors_max_age
|
|
3495
3510
|
|
|
3496
3511
|
# Tags
|
|
3497
3512
|
tags = var.tags
|
|
@@ -3773,7 +3788,7 @@ terraform {
|
|
|
3773
3788
|
required_providers {
|
|
3774
3789
|
aws = {
|
|
3775
3790
|
source = "hashicorp/aws"
|
|
3776
|
-
version = "
|
|
3791
|
+
version = "6.52.0"
|
|
3777
3792
|
}
|
|
3778
3793
|
}
|
|
3779
3794
|
}
|
|
@@ -4020,7 +4035,7 @@ output "api_log_group_arn" {
|
|
|
4020
4035
|
required_providers {
|
|
4021
4036
|
aws = {
|
|
4022
4037
|
source = "hashicorp/aws"
|
|
4023
|
-
version = "
|
|
4038
|
+
version = "6.52.0"
|
|
4024
4039
|
}
|
|
4025
4040
|
}
|
|
4026
4041
|
}
|
|
@@ -4078,12 +4093,6 @@ variable "cors_expose_headers" {
|
|
|
4078
4093
|
default = []
|
|
4079
4094
|
}
|
|
4080
4095
|
|
|
4081
|
-
variable "cors_max_age" {
|
|
4082
|
-
description = "Maximum age for CORS preflight requests in seconds"
|
|
4083
|
-
type = number
|
|
4084
|
-
default = 0
|
|
4085
|
-
}
|
|
4086
|
-
|
|
4087
4096
|
# Tags
|
|
4088
4097
|
variable "tags" {
|
|
4089
4098
|
description = "Tags to apply to all resources"
|
|
@@ -4134,7 +4143,6 @@ module "http_api" {
|
|
|
4134
4143
|
cors_allow_methods = var.cors_allow_methods
|
|
4135
4144
|
cors_allow_origins = var.cors_allow_origins
|
|
4136
4145
|
cors_expose_headers = var.cors_expose_headers
|
|
4137
|
-
cors_max_age = var.cors_max_age
|
|
4138
4146
|
|
|
4139
4147
|
# Tags
|
|
4140
4148
|
tags = var.tags
|
|
@@ -4498,7 +4506,7 @@ terraform {
|
|
|
4498
4506
|
required_providers {
|
|
4499
4507
|
aws = {
|
|
4500
4508
|
source = "hashicorp/aws"
|
|
4501
|
-
version = "
|
|
4509
|
+
version = "6.52.0"
|
|
4502
4510
|
}
|
|
4503
4511
|
}
|
|
4504
4512
|
}
|
|
@@ -4745,7 +4753,7 @@ output "api_log_group_arn" {
|
|
|
4745
4753
|
required_providers {
|
|
4746
4754
|
aws = {
|
|
4747
4755
|
source = "hashicorp/aws"
|
|
4748
|
-
version = "
|
|
4756
|
+
version = "6.52.0"
|
|
4749
4757
|
}
|
|
4750
4758
|
}
|
|
4751
4759
|
}
|
|
@@ -4803,12 +4811,6 @@ variable "cors_expose_headers" {
|
|
|
4803
4811
|
default = []
|
|
4804
4812
|
}
|
|
4805
4813
|
|
|
4806
|
-
variable "cors_max_age" {
|
|
4807
|
-
description = "Maximum age for CORS preflight requests in seconds"
|
|
4808
|
-
type = number
|
|
4809
|
-
default = 0
|
|
4810
|
-
}
|
|
4811
|
-
|
|
4812
4814
|
# Tags
|
|
4813
4815
|
variable "tags" {
|
|
4814
4816
|
description = "Tags to apply to all resources"
|
|
@@ -4859,7 +4861,6 @@ module "http_api" {
|
|
|
4859
4861
|
cors_allow_methods = var.cors_allow_methods
|
|
4860
4862
|
cors_allow_origins = var.cors_allow_origins
|
|
4861
4863
|
cors_expose_headers = var.cors_expose_headers
|
|
4862
|
-
cors_max_age = var.cors_max_age
|
|
4863
4864
|
|
|
4864
4865
|
# Tags
|
|
4865
4866
|
tags = var.tags
|
|
@@ -5128,11 +5129,11 @@ terraform {
|
|
|
5128
5129
|
required_providers {
|
|
5129
5130
|
aws = {
|
|
5130
5131
|
source = "hashicorp/aws"
|
|
5131
|
-
version = "
|
|
5132
|
+
version = "6.52.0"
|
|
5132
5133
|
}
|
|
5133
5134
|
random = {
|
|
5134
5135
|
source = "hashicorp/random"
|
|
5135
|
-
version = "
|
|
5136
|
+
version = "3.9.0"
|
|
5136
5137
|
}
|
|
5137
5138
|
}
|
|
5138
5139
|
}
|
|
@@ -5202,8 +5203,6 @@ data "aws_caller_identity" "current" {}
|
|
|
5202
5203
|
|
|
5203
5204
|
# Resources
|
|
5204
5205
|
|
|
5205
|
-
# Note: CloudWatch logging removed due to account-level CloudWatch Logs role ARN requirement
|
|
5206
|
-
|
|
5207
5206
|
# REST API Gateway
|
|
5208
5207
|
resource "aws_api_gateway_rest_api" "rest_api" {
|
|
5209
5208
|
name = var.api_name
|
|
@@ -5220,10 +5219,8 @@ resource "aws_api_gateway_rest_api" "rest_api" {
|
|
|
5220
5219
|
tags = var.tags
|
|
5221
5220
|
}
|
|
5222
5221
|
|
|
5223
|
-
# Note: Deployment and
|
|
5224
|
-
# after all methods and integrations are defined
|
|
5225
|
-
|
|
5226
|
-
# Note: CloudWatch Log Group removed due to account-level CloudWatch Logs role ARN requirement
|
|
5222
|
+
# Note: Deployment, stage and access logging are created in the consuming module
|
|
5223
|
+
# (e.g., foo-api.tf) after all methods and integrations are defined
|
|
5227
5224
|
|
|
5228
5225
|
# Gateway Response for CORS (4XX errors)
|
|
5229
5226
|
resource "aws_api_gateway_gateway_response" "cors_4xx" {
|
|
@@ -5381,16 +5378,14 @@ output "waf_web_acl_arn" {
|
|
|
5381
5378
|
value = var.enable_waf ? aws_wafv2_web_acl.api_waf[0].arn : null
|
|
5382
5379
|
}
|
|
5383
5380
|
|
|
5384
|
-
# Note: Stage and
|
|
5385
|
-
|
|
5386
|
-
# Note: CloudWatch log group outputs removed due to account-level CloudWatch Logs role ARN requirement",
|
|
5381
|
+
# Note: Stage, deployment and access log outputs are provided by the consuming module",
|
|
5387
5382
|
"test-api.tf": "terraform {
|
|
5388
5383
|
required_version = ">= 1.0"
|
|
5389
5384
|
|
|
5390
5385
|
required_providers {
|
|
5391
5386
|
aws = {
|
|
5392
5387
|
source = "hashicorp/aws"
|
|
5393
|
-
version = "
|
|
5388
|
+
version = "6.52.0"
|
|
5394
5389
|
}
|
|
5395
5390
|
}
|
|
5396
5391
|
}
|
|
@@ -5489,6 +5484,11 @@ resource "aws_s3_object" "lambda_zip" {
|
|
|
5489
5484
|
}
|
|
5490
5485
|
|
|
5491
5486
|
# Use the core REST API module
|
|
5487
|
+
# Account-level CloudWatch role required for REST API access logging
|
|
5488
|
+
module "account" {
|
|
5489
|
+
source = "../../../core/api/api-gateway-account"
|
|
5490
|
+
}
|
|
5491
|
+
|
|
5492
5492
|
module "rest_api" {
|
|
5493
5493
|
source = "../../../core/api/rest-api"
|
|
5494
5494
|
|
|
@@ -5733,11 +5733,63 @@ resource "aws_api_gateway_deployment" "api_deployment" {
|
|
|
5733
5733
|
]
|
|
5734
5734
|
}
|
|
5735
5735
|
|
|
5736
|
+
# KMS key for encrypting access logs at rest
|
|
5737
|
+
resource "aws_kms_key" "access_logs" {
|
|
5738
|
+
description = "TestApi API access log encryption"
|
|
5739
|
+
deletion_window_in_days = 7
|
|
5740
|
+
enable_key_rotation = true
|
|
5741
|
+
|
|
5742
|
+
policy = jsonencode({
|
|
5743
|
+
Version = "2012-10-17"
|
|
5744
|
+
Statement = [
|
|
5745
|
+
{
|
|
5746
|
+
Sid = "Enable IAM User Permissions"
|
|
5747
|
+
Effect = "Allow"
|
|
5748
|
+
Principal = { AWS = "arn:aws:iam::\${data.aws_caller_identity.current.account_id}:root" }
|
|
5749
|
+
Action = "kms:*"
|
|
5750
|
+
Resource = "*"
|
|
5751
|
+
},
|
|
5752
|
+
{
|
|
5753
|
+
Sid = "Allow CloudWatch Logs"
|
|
5754
|
+
Effect = "Allow"
|
|
5755
|
+
Principal = { Service = "logs.\${data.aws_region.current.region}.amazonaws.com" }
|
|
5756
|
+
Action = [
|
|
5757
|
+
"kms:Encrypt",
|
|
5758
|
+
"kms:Decrypt",
|
|
5759
|
+
"kms:ReEncrypt*",
|
|
5760
|
+
"kms:GenerateDataKey*",
|
|
5761
|
+
"kms:DescribeKey"
|
|
5762
|
+
]
|
|
5763
|
+
Resource = "*"
|
|
5764
|
+
Condition = {
|
|
5765
|
+
ArnEquals = {
|
|
5766
|
+
"kms:EncryptionContext:aws:logs:arn" = "arn:aws:logs:\${data.aws_region.current.region}:\${data.aws_caller_identity.current.account_id}:log-group:/aws/apigateway/test-api-\${random_string.suffix.result}/access"
|
|
5767
|
+
}
|
|
5768
|
+
}
|
|
5769
|
+
}
|
|
5770
|
+
]
|
|
5771
|
+
})
|
|
5772
|
+
|
|
5773
|
+
tags = var.tags
|
|
5774
|
+
}
|
|
5775
|
+
|
|
5776
|
+
resource "aws_kms_alias" "access_logs" {
|
|
5777
|
+
name = "alias/test-api-\${random_string.suffix.result}-access-logs"
|
|
5778
|
+
target_key_id = aws_kms_key.access_logs.key_id
|
|
5779
|
+
}
|
|
5780
|
+
|
|
5781
|
+
# Access logs for the API Gateway stage
|
|
5782
|
+
resource "aws_cloudwatch_log_group" "access_logs" {
|
|
5783
|
+
name = "/aws/apigateway/test-api-\${random_string.suffix.result}/access"
|
|
5784
|
+
retention_in_days = 365
|
|
5785
|
+
kms_key_id = aws_kms_key.access_logs.arn
|
|
5786
|
+
tags = var.tags
|
|
5787
|
+
}
|
|
5788
|
+
|
|
5736
5789
|
# API Gateway stage
|
|
5737
5790
|
resource "aws_api_gateway_stage" "api_stage" {
|
|
5738
5791
|
#checkov:skip=CKV_AWS_120:API Gateway caching not required for this use case
|
|
5739
|
-
#checkov:skip=
|
|
5740
|
-
#checkov:skip=CKV2_AWS_4:API Gateway logging level not applicable as access logging is disabled
|
|
5792
|
+
#checkov:skip=CKV2_AWS_4:Access logging is enabled below; verbose execution logging is intentionally not enabled
|
|
5741
5793
|
#checkov:skip=CKV2_AWS_51:Client certificate authentication not required for this use case
|
|
5742
5794
|
#checkov:skip=CKV2_AWS_77:WAFv2 Web ACL is attached via aws_wafv2_web_acl_association when var.enable_waf is true (default) and includes AWSManagedRulesKnownBadInputsRuleSet for Log4j protection; Checkov does not track the association across modules
|
|
5743
5795
|
deployment_id = aws_api_gateway_deployment.api_deployment.id
|
|
@@ -5745,9 +5797,39 @@ resource "aws_api_gateway_stage" "api_stage" {
|
|
|
5745
5797
|
stage_name = "prod"
|
|
5746
5798
|
xray_tracing_enabled = true
|
|
5747
5799
|
|
|
5800
|
+
access_log_settings {
|
|
5801
|
+
destination_arn = aws_cloudwatch_log_group.access_logs.arn
|
|
5802
|
+
format = jsonencode({
|
|
5803
|
+
requestId = "$context.requestId"
|
|
5804
|
+
ip = "$context.identity.sourceIp"
|
|
5805
|
+
caller = "$context.identity.caller"
|
|
5806
|
+
user = "$context.identity.user"
|
|
5807
|
+
requestTime = "$context.requestTime"
|
|
5808
|
+
httpMethod = "$context.httpMethod"
|
|
5809
|
+
resourcePath = "$context.resourcePath"
|
|
5810
|
+
status = "$context.status"
|
|
5811
|
+
protocol = "$context.protocol"
|
|
5812
|
+
responseLength = "$context.responseLength"
|
|
5813
|
+
})
|
|
5814
|
+
}
|
|
5815
|
+
|
|
5748
5816
|
tags = var.tags
|
|
5749
5817
|
|
|
5750
|
-
|
|
5818
|
+
# Ensure the account-level role is configured before the stage is created
|
|
5819
|
+
depends_on = [aws_api_gateway_deployment.api_deployment, module.account]
|
|
5820
|
+
}
|
|
5821
|
+
|
|
5822
|
+
# Default throttling applied to all resource paths and methods
|
|
5823
|
+
resource "aws_api_gateway_method_settings" "throttling" {
|
|
5824
|
+
#checkov:skip=CKV_AWS_225:API Gateway caching not required for this use case
|
|
5825
|
+
rest_api_id = module.rest_api.api_id
|
|
5826
|
+
stage_name = aws_api_gateway_stage.api_stage.stage_name
|
|
5827
|
+
method_path = "*/*"
|
|
5828
|
+
|
|
5829
|
+
settings {
|
|
5830
|
+
throttling_rate_limit = 10000
|
|
5831
|
+
throttling_burst_limit = 5000
|
|
5832
|
+
}
|
|
5751
5833
|
}
|
|
5752
5834
|
|
|
5753
5835
|
# API Gateway Resource Policy
|
|
@@ -5927,11 +6009,11 @@ terraform {
|
|
|
5927
6009
|
required_providers {
|
|
5928
6010
|
aws = {
|
|
5929
6011
|
source = "hashicorp/aws"
|
|
5930
|
-
version = "
|
|
6012
|
+
version = "6.52.0"
|
|
5931
6013
|
}
|
|
5932
6014
|
random = {
|
|
5933
6015
|
source = "hashicorp/random"
|
|
5934
|
-
version = "
|
|
6016
|
+
version = "3.9.0"
|
|
5935
6017
|
}
|
|
5936
6018
|
}
|
|
5937
6019
|
}
|
|
@@ -6001,8 +6083,6 @@ data "aws_caller_identity" "current" {}
|
|
|
6001
6083
|
|
|
6002
6084
|
# Resources
|
|
6003
6085
|
|
|
6004
|
-
# Note: CloudWatch logging removed due to account-level CloudWatch Logs role ARN requirement
|
|
6005
|
-
|
|
6006
6086
|
# REST API Gateway
|
|
6007
6087
|
resource "aws_api_gateway_rest_api" "rest_api" {
|
|
6008
6088
|
name = var.api_name
|
|
@@ -6019,10 +6099,8 @@ resource "aws_api_gateway_rest_api" "rest_api" {
|
|
|
6019
6099
|
tags = var.tags
|
|
6020
6100
|
}
|
|
6021
6101
|
|
|
6022
|
-
# Note: Deployment and
|
|
6023
|
-
# after all methods and integrations are defined
|
|
6024
|
-
|
|
6025
|
-
# Note: CloudWatch Log Group removed due to account-level CloudWatch Logs role ARN requirement
|
|
6102
|
+
# Note: Deployment, stage and access logging are created in the consuming module
|
|
6103
|
+
# (e.g., foo-api.tf) after all methods and integrations are defined
|
|
6026
6104
|
|
|
6027
6105
|
# Gateway Response for CORS (4XX errors)
|
|
6028
6106
|
resource "aws_api_gateway_gateway_response" "cors_4xx" {
|
|
@@ -6180,16 +6258,14 @@ output "waf_web_acl_arn" {
|
|
|
6180
6258
|
value = var.enable_waf ? aws_wafv2_web_acl.api_waf[0].arn : null
|
|
6181
6259
|
}
|
|
6182
6260
|
|
|
6183
|
-
# Note: Stage and
|
|
6184
|
-
|
|
6185
|
-
# Note: CloudWatch log group outputs removed due to account-level CloudWatch Logs role ARN requirement",
|
|
6261
|
+
# Note: Stage, deployment and access log outputs are provided by the consuming module",
|
|
6186
6262
|
"test-api.tf": "terraform {
|
|
6187
6263
|
required_version = ">= 1.0"
|
|
6188
6264
|
|
|
6189
6265
|
required_providers {
|
|
6190
6266
|
aws = {
|
|
6191
6267
|
source = "hashicorp/aws"
|
|
6192
|
-
version = "
|
|
6268
|
+
version = "6.52.0"
|
|
6193
6269
|
}
|
|
6194
6270
|
}
|
|
6195
6271
|
}
|
|
@@ -6278,6 +6354,11 @@ resource "aws_s3_object" "lambda_zip" {
|
|
|
6278
6354
|
}
|
|
6279
6355
|
|
|
6280
6356
|
# Use the core REST API module
|
|
6357
|
+
# Account-level CloudWatch role required for REST API access logging
|
|
6358
|
+
module "account" {
|
|
6359
|
+
source = "../../../core/api/api-gateway-account"
|
|
6360
|
+
}
|
|
6361
|
+
|
|
6281
6362
|
module "rest_api" {
|
|
6282
6363
|
source = "../../../core/api/rest-api"
|
|
6283
6364
|
|
|
@@ -6510,11 +6591,63 @@ resource "aws_api_gateway_deployment" "api_deployment" {
|
|
|
6510
6591
|
]
|
|
6511
6592
|
}
|
|
6512
6593
|
|
|
6594
|
+
# KMS key for encrypting access logs at rest
|
|
6595
|
+
resource "aws_kms_key" "access_logs" {
|
|
6596
|
+
description = "TestApi API access log encryption"
|
|
6597
|
+
deletion_window_in_days = 7
|
|
6598
|
+
enable_key_rotation = true
|
|
6599
|
+
|
|
6600
|
+
policy = jsonencode({
|
|
6601
|
+
Version = "2012-10-17"
|
|
6602
|
+
Statement = [
|
|
6603
|
+
{
|
|
6604
|
+
Sid = "Enable IAM User Permissions"
|
|
6605
|
+
Effect = "Allow"
|
|
6606
|
+
Principal = { AWS = "arn:aws:iam::\${data.aws_caller_identity.current.account_id}:root" }
|
|
6607
|
+
Action = "kms:*"
|
|
6608
|
+
Resource = "*"
|
|
6609
|
+
},
|
|
6610
|
+
{
|
|
6611
|
+
Sid = "Allow CloudWatch Logs"
|
|
6612
|
+
Effect = "Allow"
|
|
6613
|
+
Principal = { Service = "logs.\${data.aws_region.current.region}.amazonaws.com" }
|
|
6614
|
+
Action = [
|
|
6615
|
+
"kms:Encrypt",
|
|
6616
|
+
"kms:Decrypt",
|
|
6617
|
+
"kms:ReEncrypt*",
|
|
6618
|
+
"kms:GenerateDataKey*",
|
|
6619
|
+
"kms:DescribeKey"
|
|
6620
|
+
]
|
|
6621
|
+
Resource = "*"
|
|
6622
|
+
Condition = {
|
|
6623
|
+
ArnEquals = {
|
|
6624
|
+
"kms:EncryptionContext:aws:logs:arn" = "arn:aws:logs:\${data.aws_region.current.region}:\${data.aws_caller_identity.current.account_id}:log-group:/aws/apigateway/test-api-\${random_string.suffix.result}/access"
|
|
6625
|
+
}
|
|
6626
|
+
}
|
|
6627
|
+
}
|
|
6628
|
+
]
|
|
6629
|
+
})
|
|
6630
|
+
|
|
6631
|
+
tags = var.tags
|
|
6632
|
+
}
|
|
6633
|
+
|
|
6634
|
+
resource "aws_kms_alias" "access_logs" {
|
|
6635
|
+
name = "alias/test-api-\${random_string.suffix.result}-access-logs"
|
|
6636
|
+
target_key_id = aws_kms_key.access_logs.key_id
|
|
6637
|
+
}
|
|
6638
|
+
|
|
6639
|
+
# Access logs for the API Gateway stage
|
|
6640
|
+
resource "aws_cloudwatch_log_group" "access_logs" {
|
|
6641
|
+
name = "/aws/apigateway/test-api-\${random_string.suffix.result}/access"
|
|
6642
|
+
retention_in_days = 365
|
|
6643
|
+
kms_key_id = aws_kms_key.access_logs.arn
|
|
6644
|
+
tags = var.tags
|
|
6645
|
+
}
|
|
6646
|
+
|
|
6513
6647
|
# API Gateway stage
|
|
6514
6648
|
resource "aws_api_gateway_stage" "api_stage" {
|
|
6515
6649
|
#checkov:skip=CKV_AWS_120:API Gateway caching not required for this use case
|
|
6516
|
-
#checkov:skip=
|
|
6517
|
-
#checkov:skip=CKV2_AWS_4:API Gateway logging level not applicable as access logging is disabled
|
|
6650
|
+
#checkov:skip=CKV2_AWS_4:Access logging is enabled below; verbose execution logging is intentionally not enabled
|
|
6518
6651
|
#checkov:skip=CKV2_AWS_51:Client certificate authentication not required for this use case
|
|
6519
6652
|
#checkov:skip=CKV2_AWS_77:WAFv2 Web ACL is attached via aws_wafv2_web_acl_association when var.enable_waf is true (default) and includes AWSManagedRulesKnownBadInputsRuleSet for Log4j protection; Checkov does not track the association across modules
|
|
6520
6653
|
deployment_id = aws_api_gateway_deployment.api_deployment.id
|
|
@@ -6522,9 +6655,39 @@ resource "aws_api_gateway_stage" "api_stage" {
|
|
|
6522
6655
|
stage_name = "prod"
|
|
6523
6656
|
xray_tracing_enabled = true
|
|
6524
6657
|
|
|
6658
|
+
access_log_settings {
|
|
6659
|
+
destination_arn = aws_cloudwatch_log_group.access_logs.arn
|
|
6660
|
+
format = jsonencode({
|
|
6661
|
+
requestId = "$context.requestId"
|
|
6662
|
+
ip = "$context.identity.sourceIp"
|
|
6663
|
+
caller = "$context.identity.caller"
|
|
6664
|
+
user = "$context.identity.user"
|
|
6665
|
+
requestTime = "$context.requestTime"
|
|
6666
|
+
httpMethod = "$context.httpMethod"
|
|
6667
|
+
resourcePath = "$context.resourcePath"
|
|
6668
|
+
status = "$context.status"
|
|
6669
|
+
protocol = "$context.protocol"
|
|
6670
|
+
responseLength = "$context.responseLength"
|
|
6671
|
+
})
|
|
6672
|
+
}
|
|
6673
|
+
|
|
6525
6674
|
tags = var.tags
|
|
6526
6675
|
|
|
6527
|
-
|
|
6676
|
+
# Ensure the account-level role is configured before the stage is created
|
|
6677
|
+
depends_on = [aws_api_gateway_deployment.api_deployment, module.account]
|
|
6678
|
+
}
|
|
6679
|
+
|
|
6680
|
+
# Default throttling applied to all resource paths and methods
|
|
6681
|
+
resource "aws_api_gateway_method_settings" "throttling" {
|
|
6682
|
+
#checkov:skip=CKV_AWS_225:API Gateway caching not required for this use case
|
|
6683
|
+
rest_api_id = module.rest_api.api_id
|
|
6684
|
+
stage_name = aws_api_gateway_stage.api_stage.stage_name
|
|
6685
|
+
method_path = "*/*"
|
|
6686
|
+
|
|
6687
|
+
settings {
|
|
6688
|
+
throttling_rate_limit = 10000
|
|
6689
|
+
throttling_burst_limit = 5000
|
|
6690
|
+
}
|
|
6528
6691
|
}
|
|
6529
6692
|
|
|
6530
6693
|
# API Gateway Resource Policy
|
|
@@ -6715,11 +6878,11 @@ terraform {
|
|
|
6715
6878
|
required_providers {
|
|
6716
6879
|
aws = {
|
|
6717
6880
|
source = "hashicorp/aws"
|
|
6718
|
-
version = "
|
|
6881
|
+
version = "6.52.0"
|
|
6719
6882
|
}
|
|
6720
6883
|
random = {
|
|
6721
6884
|
source = "hashicorp/random"
|
|
6722
|
-
version = "
|
|
6885
|
+
version = "3.9.0"
|
|
6723
6886
|
}
|
|
6724
6887
|
}
|
|
6725
6888
|
}
|
|
@@ -6789,8 +6952,6 @@ data "aws_caller_identity" "current" {}
|
|
|
6789
6952
|
|
|
6790
6953
|
# Resources
|
|
6791
6954
|
|
|
6792
|
-
# Note: CloudWatch logging removed due to account-level CloudWatch Logs role ARN requirement
|
|
6793
|
-
|
|
6794
6955
|
# REST API Gateway
|
|
6795
6956
|
resource "aws_api_gateway_rest_api" "rest_api" {
|
|
6796
6957
|
name = var.api_name
|
|
@@ -6807,10 +6968,8 @@ resource "aws_api_gateway_rest_api" "rest_api" {
|
|
|
6807
6968
|
tags = var.tags
|
|
6808
6969
|
}
|
|
6809
6970
|
|
|
6810
|
-
# Note: Deployment and
|
|
6811
|
-
# after all methods and integrations are defined
|
|
6812
|
-
|
|
6813
|
-
# Note: CloudWatch Log Group removed due to account-level CloudWatch Logs role ARN requirement
|
|
6971
|
+
# Note: Deployment, stage and access logging are created in the consuming module
|
|
6972
|
+
# (e.g., foo-api.tf) after all methods and integrations are defined
|
|
6814
6973
|
|
|
6815
6974
|
# Gateway Response for CORS (4XX errors)
|
|
6816
6975
|
resource "aws_api_gateway_gateway_response" "cors_4xx" {
|
|
@@ -6968,16 +7127,14 @@ output "waf_web_acl_arn" {
|
|
|
6968
7127
|
value = var.enable_waf ? aws_wafv2_web_acl.api_waf[0].arn : null
|
|
6969
7128
|
}
|
|
6970
7129
|
|
|
6971
|
-
# Note: Stage and
|
|
6972
|
-
|
|
6973
|
-
# Note: CloudWatch log group outputs removed due to account-level CloudWatch Logs role ARN requirement",
|
|
7130
|
+
# Note: Stage, deployment and access log outputs are provided by the consuming module",
|
|
6974
7131
|
"test-api.tf": "terraform {
|
|
6975
7132
|
required_version = ">= 1.0"
|
|
6976
7133
|
|
|
6977
7134
|
required_providers {
|
|
6978
7135
|
aws = {
|
|
6979
7136
|
source = "hashicorp/aws"
|
|
6980
|
-
version = "
|
|
7137
|
+
version = "6.52.0"
|
|
6981
7138
|
}
|
|
6982
7139
|
}
|
|
6983
7140
|
}
|
|
@@ -7066,6 +7223,11 @@ resource "aws_s3_object" "lambda_zip" {
|
|
|
7066
7223
|
}
|
|
7067
7224
|
|
|
7068
7225
|
# Use the core REST API module
|
|
7226
|
+
# Account-level CloudWatch role required for REST API access logging
|
|
7227
|
+
module "account" {
|
|
7228
|
+
source = "../../../core/api/api-gateway-account"
|
|
7229
|
+
}
|
|
7230
|
+
|
|
7069
7231
|
module "rest_api" {
|
|
7070
7232
|
source = "../../../core/api/rest-api"
|
|
7071
7233
|
|
|
@@ -7392,11 +7554,63 @@ resource "aws_api_gateway_deployment" "api_deployment" {
|
|
|
7392
7554
|
]
|
|
7393
7555
|
}
|
|
7394
7556
|
|
|
7557
|
+
# KMS key for encrypting access logs at rest
|
|
7558
|
+
resource "aws_kms_key" "access_logs" {
|
|
7559
|
+
description = "TestApi API access log encryption"
|
|
7560
|
+
deletion_window_in_days = 7
|
|
7561
|
+
enable_key_rotation = true
|
|
7562
|
+
|
|
7563
|
+
policy = jsonencode({
|
|
7564
|
+
Version = "2012-10-17"
|
|
7565
|
+
Statement = [
|
|
7566
|
+
{
|
|
7567
|
+
Sid = "Enable IAM User Permissions"
|
|
7568
|
+
Effect = "Allow"
|
|
7569
|
+
Principal = { AWS = "arn:aws:iam::\${data.aws_caller_identity.current.account_id}:root" }
|
|
7570
|
+
Action = "kms:*"
|
|
7571
|
+
Resource = "*"
|
|
7572
|
+
},
|
|
7573
|
+
{
|
|
7574
|
+
Sid = "Allow CloudWatch Logs"
|
|
7575
|
+
Effect = "Allow"
|
|
7576
|
+
Principal = { Service = "logs.\${data.aws_region.current.region}.amazonaws.com" }
|
|
7577
|
+
Action = [
|
|
7578
|
+
"kms:Encrypt",
|
|
7579
|
+
"kms:Decrypt",
|
|
7580
|
+
"kms:ReEncrypt*",
|
|
7581
|
+
"kms:GenerateDataKey*",
|
|
7582
|
+
"kms:DescribeKey"
|
|
7583
|
+
]
|
|
7584
|
+
Resource = "*"
|
|
7585
|
+
Condition = {
|
|
7586
|
+
ArnEquals = {
|
|
7587
|
+
"kms:EncryptionContext:aws:logs:arn" = "arn:aws:logs:\${data.aws_region.current.region}:\${data.aws_caller_identity.current.account_id}:log-group:/aws/apigateway/test-api-\${random_string.suffix.result}/access"
|
|
7588
|
+
}
|
|
7589
|
+
}
|
|
7590
|
+
}
|
|
7591
|
+
]
|
|
7592
|
+
})
|
|
7593
|
+
|
|
7594
|
+
tags = var.tags
|
|
7595
|
+
}
|
|
7596
|
+
|
|
7597
|
+
resource "aws_kms_alias" "access_logs" {
|
|
7598
|
+
name = "alias/test-api-\${random_string.suffix.result}-access-logs"
|
|
7599
|
+
target_key_id = aws_kms_key.access_logs.key_id
|
|
7600
|
+
}
|
|
7601
|
+
|
|
7602
|
+
# Access logs for the API Gateway stage
|
|
7603
|
+
resource "aws_cloudwatch_log_group" "access_logs" {
|
|
7604
|
+
name = "/aws/apigateway/test-api-\${random_string.suffix.result}/access"
|
|
7605
|
+
retention_in_days = 365
|
|
7606
|
+
kms_key_id = aws_kms_key.access_logs.arn
|
|
7607
|
+
tags = var.tags
|
|
7608
|
+
}
|
|
7609
|
+
|
|
7395
7610
|
# API Gateway stage
|
|
7396
7611
|
resource "aws_api_gateway_stage" "api_stage" {
|
|
7397
7612
|
#checkov:skip=CKV_AWS_120:API Gateway caching not required for this use case
|
|
7398
|
-
#checkov:skip=
|
|
7399
|
-
#checkov:skip=CKV2_AWS_4:API Gateway logging level not applicable as access logging is disabled
|
|
7613
|
+
#checkov:skip=CKV2_AWS_4:Access logging is enabled below; verbose execution logging is intentionally not enabled
|
|
7400
7614
|
#checkov:skip=CKV2_AWS_51:Client certificate authentication not required for this use case
|
|
7401
7615
|
#checkov:skip=CKV2_AWS_77:WAFv2 Web ACL is attached via aws_wafv2_web_acl_association when var.enable_waf is true (default) and includes AWSManagedRulesKnownBadInputsRuleSet for Log4j protection; Checkov does not track the association across modules
|
|
7402
7616
|
deployment_id = aws_api_gateway_deployment.api_deployment.id
|
|
@@ -7404,9 +7618,39 @@ resource "aws_api_gateway_stage" "api_stage" {
|
|
|
7404
7618
|
stage_name = "prod"
|
|
7405
7619
|
xray_tracing_enabled = true
|
|
7406
7620
|
|
|
7621
|
+
access_log_settings {
|
|
7622
|
+
destination_arn = aws_cloudwatch_log_group.access_logs.arn
|
|
7623
|
+
format = jsonencode({
|
|
7624
|
+
requestId = "$context.requestId"
|
|
7625
|
+
ip = "$context.identity.sourceIp"
|
|
7626
|
+
caller = "$context.identity.caller"
|
|
7627
|
+
user = "$context.identity.user"
|
|
7628
|
+
requestTime = "$context.requestTime"
|
|
7629
|
+
httpMethod = "$context.httpMethod"
|
|
7630
|
+
resourcePath = "$context.resourcePath"
|
|
7631
|
+
status = "$context.status"
|
|
7632
|
+
protocol = "$context.protocol"
|
|
7633
|
+
responseLength = "$context.responseLength"
|
|
7634
|
+
})
|
|
7635
|
+
}
|
|
7636
|
+
|
|
7407
7637
|
tags = var.tags
|
|
7408
7638
|
|
|
7409
|
-
|
|
7639
|
+
# Ensure the account-level role is configured before the stage is created
|
|
7640
|
+
depends_on = [aws_api_gateway_deployment.api_deployment, module.account]
|
|
7641
|
+
}
|
|
7642
|
+
|
|
7643
|
+
# Default throttling applied to all resource paths and methods
|
|
7644
|
+
resource "aws_api_gateway_method_settings" "throttling" {
|
|
7645
|
+
#checkov:skip=CKV_AWS_225:API Gateway caching not required for this use case
|
|
7646
|
+
rest_api_id = module.rest_api.api_id
|
|
7647
|
+
stage_name = aws_api_gateway_stage.api_stage.stage_name
|
|
7648
|
+
method_path = "*/*"
|
|
7649
|
+
|
|
7650
|
+
settings {
|
|
7651
|
+
throttling_rate_limit = 10000
|
|
7652
|
+
throttling_burst_limit = 5000
|
|
7653
|
+
}
|
|
7410
7654
|
}
|
|
7411
7655
|
|
|
7412
7656
|
# API Gateway Resource Policy
|