@aws/nx-plugin 1.0.0-rc.95 → 1.0.0-rc.97
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 +234 -38
- package/migrations.json +65 -2
- package/package.json +6 -6
- package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/agentcore-gateway/generator.js +6 -0
- package/src/agentcore-gateway/generator.js.map +1 -1
- package/src/agentcore-gateway/react-connection/__snapshots__/generator.spec.ts.snap +4 -1
- package/src/agentcore-harness/__snapshots__/generator.spec.ts.snap +68 -4
- package/src/agentcore-harness/generator.js +6 -0
- package/src/agentcore-harness/generator.js.map +1 -1
- package/src/connection/gateway-runtime-config.js +1 -1
- package/src/connection/gateway-runtime-config.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +10 -16
- package/src/infra/app/generator.js +34 -7
- package/src/infra/app/generator.js.map +1 -1
- package/src/init/generator.d.ts +1 -1
- package/src/init/generator.js +8 -6
- package/src/init/generator.js.map +1 -1
- package/src/init/schema.d.js.map +1 -1
- package/src/init/schema.d.ts +1 -0
- package/src/init/schema.json +5 -0
- package/src/mcp-server/server.js +2 -0
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/best-practices.d.ts +28 -0
- package/src/mcp-server/tools/best-practices.js +43 -0
- package/src/mcp-server/tools/best-practices.js.map +1 -0
- package/src/mcp-server/tools/general-guidance.d.ts +1 -1
- package/src/mcp-server/tools/general-guidance.js +13 -4
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/migrations/latest/checkov-scan-cache-inputs/metadata.json +3 -0
- package/src/migrations/latest/checkov-scan-cache-inputs/migration.d.ts +6 -0
- package/src/migrations/latest/checkov-scan-cache-inputs/migration.js +58 -0
- package/src/migrations/latest/checkov-scan-cache-inputs/migration.js.map +1 -0
- package/src/migrations/latest/gateway-url-accessor/__snapshots__/migration.spec.ts.snap +84 -0
- package/src/migrations/latest/gateway-url-accessor/metadata.json +3 -0
- package/src/migrations/latest/gateway-url-accessor/migration.d.ts +6 -0
- package/src/migrations/latest/gateway-url-accessor/migration.js +94 -0
- package/src/migrations/latest/gateway-url-accessor/migration.js.map +1 -0
- package/src/migrations/latest/infra-deploy-express-mode/metadata.json +1 -1
- package/src/migrations/latest/infra-deploy-express-mode/migration.js +26 -28
- package/src/migrations/latest/infra-deploy-express-mode/migration.js.map +1 -1
- package/src/migrations/latest/py-lambda-powertools-context/metadata.json +3 -0
- package/src/migrations/latest/py-lambda-powertools-context/migration.d.ts +6 -0
- package/src/migrations/latest/py-lambda-powertools-context/migration.js +58 -0
- package/src/migrations/latest/py-lambda-powertools-context/migration.js.map +1 -0
- package/src/migrations/latest/script-project-quality-gates/metadata.json +3 -0
- package/src/migrations/latest/script-project-quality-gates/migration.d.ts +6 -0
- package/src/migrations/latest/script-project-quality-gates/migration.js +53 -0
- package/src/migrations/latest/script-project-quality-gates/migration.js.map +1 -0
- package/src/migrations/latest/smithy-extension-trait-aliases/__snapshots__/migration.spec.ts.snap +25 -0
- package/src/migrations/latest/smithy-extension-trait-aliases/metadata.json +3 -0
- package/src/migrations/latest/smithy-extension-trait-aliases/migration.d.ts +28 -0
- package/src/migrations/latest/smithy-extension-trait-aliases/migration.js +75 -0
- package/src/migrations/latest/smithy-extension-trait-aliases/migration.js.map +1 -0
- package/src/migrations/latest/terraform-validate-without-backend/metadata.json +3 -0
- package/src/migrations/latest/terraform-validate-without-backend/migration.d.ts +6 -0
- package/src/migrations/latest/terraform-validate-without-backend/migration.js +84 -0
- package/src/migrations/latest/terraform-validate-without-backend/migration.js.map +1 -0
- package/src/preset/__snapshots__/generator.spec.ts.snap +3 -5
- package/src/preset/generator.js +4 -25
- package/src/preset/generator.js.map +1 -1
- package/src/py/agent/a2a-connection/generator.d.ts +1 -1
- package/src/py/agent/gateway-connection/generator.d.ts +1 -1
- package/src/py/agent/mcp-connection/generator.d.ts +1 -1
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +4 -1
- package/src/py/agent/react-connection/generator.d.ts +29 -0
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +8 -10
- package/src/py/dynamodb/generator.js +34 -7
- package/src/py/dynamodb/generator.js.map +1 -1
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -1
- package/src/py/lambda-function/files/handler/__lambdaFunctionSnakeCase__.py.template +2 -1
- package/src/py/project/schema.json +3 -1
- package/src/py/rdb/__snapshots__/generator.spec.ts.snap +28 -12
- package/src/py/rdb/files/Dockerfile.create-db-user.template +7 -3
- package/src/py/rdb/files/Dockerfile.migration.template +7 -3
- package/src/py/rdb/generator.js +29 -28
- package/src/py/rdb/generator.js.map +1 -1
- package/src/smithy/react-connection/files/model/extensions.smithy.template +3 -3
- package/src/smithy/ts/api/generator.js +7 -2
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/terraform/project/generator.js +34 -10
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/generator.js +7 -1
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/react/generator.js +6 -0
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/agent/generator.js +3 -3
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/react-connection/generator.d.ts +37 -0
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -0
- package/src/ts/dynamodb/generator.js +30 -6
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/lib/biome.d.ts +15 -1
- package/src/ts/lib/biome.js +79 -63
- package/src/ts/lib/biome.js.map +1 -1
- package/src/ts/lib/generator.d.ts +13 -0
- package/src/ts/lib/generator.js +14 -9
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/ts-project-utils.d.ts +31 -1
- package/src/ts/lib/ts-project-utils.js +53 -0
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +6 -0
- package/src/ts/lib/vitest.js +16 -1
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/generator.js +3 -3
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +5 -0
- package/src/ts/rdb/files/Dockerfile.template +5 -0
- package/src/ts/rdb/generator.d.ts +8 -0
- package/src/ts/rdb/generator.js +28 -24
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +39 -0
- package/src/ts/rdb/trpc-connection/generator.js +13 -0
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/react-website/agui/files/common/src/components/__agentNameKebabCase__-chat.tsx.template +9 -0
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +4 -1
- package/src/ts/react-website/agui/generator.d.ts +21 -0
- package/src/ts/react-website/agui/generator.js +6 -2
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +26 -22
- package/src/ts/react-website/app/generator.d.ts +42 -0
- package/src/ts/react-website/app/generator.js +4 -8
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/utils/agent-connection/agent-connection.d.ts +2 -1
- package/src/utils/agent-connection/agent-connection.js +6 -1
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +11 -7
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +14 -6
- package/src/utils/agent-core-packaging.js +5 -5
- package/src/utils/agent-core-packaging.js.map +1 -1
- package/src/utils/api-constructs/api-constructs.d.ts +5 -0
- package/src/utils/api-constructs/api-constructs.js +8 -0
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +4 -2
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +4 -2
- package/src/utils/ast.d.ts +10 -0
- package/src/utils/ast.js +33 -0
- package/src/utils/ast.js.map +1 -1
- package/src/utils/dependencies.js +1 -10
- package/src/utils/dependencies.js.map +1 -1
- package/src/utils/docker.d.ts +11 -0
- package/src/utils/docker.js +16 -3
- package/src/utils/docker.js.map +1 -1
- package/src/utils/dynamodb-config.d.ts +48 -0
- package/src/utils/dynamodb-config.js +44 -0
- package/src/utils/dynamodb-config.js.map +1 -0
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +8 -4
- package/src/utils/git-secrets.d.ts +28 -0
- package/src/utils/git-secrets.js +66 -0
- package/src/utils/git-secrets.js.map +1 -0
- package/src/utils/init.js +7 -6
- package/src/utils/init.js.map +1 -1
- package/src/utils/local-project-dependency.d.ts +28 -0
- package/src/utils/local-project-dependency.js +40 -0
- package/src/utils/local-project-dependency.js.map +1 -0
- package/src/utils/nx.d.ts +14 -0
- package/src/utils/nx.js +30 -0
- package/src/utils/nx.js.map +1 -1
- package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +11 -6
- package/src/utils/script-project-targets.d.ts +26 -0
- package/src/utils/script-project-targets.js +75 -0
- package/src/utils/script-project-targets.js.map +1 -0
- package/src/utils/shared-shadcn.d.ts +13 -0
- package/src/utils/shared-shadcn.js +3 -2
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.js +15 -0
- package/src/utils/test.js.map +1 -1
- package/src/utils/version-upgrade-migration/sync-vended-versions.js +4 -4
- package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -1
- package/src/utils/versions.d.ts +13 -9
- package/src/utils/versions.js +17 -8
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +8 -4
- package/src/py/dynamodb/files/__name__/__init__.py.template +0 -6
- package/src/py/dynamodb/files/__name__/entities/__init__.py.template +0 -4
- package/src/py/dynamodb/files/config.json.template +0 -24
- package/src/ts/dynamodb/files/config.json.template +0 -24
- package/src/ts/dynamodb/files/src/entities/index.ts.template +0 -1
- package/src/ts/dynamodb/files/src/index.ts.template +0 -2
|
@@ -10,7 +10,7 @@ import type { PyAgentA2aConnectionGeneratorSchema } from './schema';
|
|
|
10
10
|
export interface PyAgentA2aConnectionMetadata {
|
|
11
11
|
readonly framework: AgentFramework;
|
|
12
12
|
}
|
|
13
|
-
export declare const DEPENDENCIES: import("../../../utils/declared-dependencies.js").DependencyDeclaration<readonly import("../../../utils/declared-dependencies.js").DeclaredTsDependency<"@ag-ui/client" | "@ag-ui/core" | "@ag-ui/encoder" | "@biomejs/biome" | "@a2a-js/sdk" | "@aws/aws-distro-opentelemetry-node-autoinstrumentation" | "@opentelemetry/propagator-jaeger" | "minimatch" | "@aws-sdk/client-dynamodb" | "@aws-sdk/client-api-gateway" | "@aws-sdk/client-iam" | "@aws-sdk/client-bedrock-agentcore" | "@aws-sdk/client-bedrock-runtime" | "@aws-sdk/client-s3" | "@aws-sdk/client-sts" | "@aws-sdk/credential-providers" | "@aws-sdk/credential-provider-cognito-identity" | "@aws-sdk/client-secrets-manager" | "@aws-sdk/rds-signer" | "@smithy/server-apigateway" | "@smithy/server-node" | "@aws-lambda-powertools/logger" | "@aws-lambda-powertools/metrics" | "@aws-lambda-powertools/parameters" | "@aws-lambda-powertools/tracer" | "@aws-lambda-powertools/parser" | "@aws-sdk/client-appconfigdata" | "@middy/core" | "@nxlv/python" | "@nx-extend/terraform" | "nx" | "@nx/devkit" | "@nx/js" | "@nx/react" | "@nx/vite" | "@nx/vitest" | "@nx/workspace" | "create-nx-workspace" | "@swc-node/register" | "@swc/core" | "@modelcontextprotocol/sdk" | "@modelcontextprotocol/inspector" | "@ag-ui/a2ui-toolkit" | "@ag-ui/aws-strands" | "agent-chat-cli" | "@copilotkit/react-core" | "rxjs" | "@strands-agents/sdk" | "@tanstack/react-router" | "@tanstack/router-plugin" | "@tanstack/router-generator" | "@tanstack/virtual-file-routes" | "@tanstack/router-utils" | "@cloudscape-design/board-components" | "@cloudscape-design/chat-components" | "@cloudscape-design/components" | "@cloudscape-design/global-styles" | "@tanstack/react-query" | "@tanstack/react-query-devtools" | "@trpc/tanstack-react-query" | "@trpc/client" | "@trpc/server" | "@types/node" | "@types/aws-lambda" | "@types/cors" | "@types/pg" | "@types/ws" | "@types/express" | "@smithy/config-resolver" | "@smithy/node-config-provider" | "@smithy/node-http-handler" | "@smithy/types" | "@vitest/coverage-v8" | "@vitest/ui" | "@astrojs/react" | "@astrojs/starlight" | "astro" | "cookie" | "aws4fetch" | "aws-cdk" | "aws-cdk-lib" | "aws-xray-sdk-core" | "constructs" | "cors" | "chalk" | "class-variance-authority" | "clsx" | "commander" | "electrodb" | "esbuild" | "event-source-polyfill" | "@types/event-source-polyfill" | "@prisma/adapter-mariadb" | "@prisma/adapter-pg" | "@prisma/client" | "ejs" | "@types/ejs" | "express" | "fast-glob" | "husky" | "fs-extra" | "@types/fs-extra" | "mariadb" | "mise" | "npm" | "npm-check-updates" | "oidc-client-ts" | "pg" | "prisma" | "react-oidc-context" | "react" | "react-dom" | "rolldown" | "rolldown-plugin-dts" | "shx" | "simple-git" | "source-map-support" | "starlight-blog" | "tailwindcss" | "@tailwindcss/vite" | "tsx" | "lucide-react" | "radix-ui" | "shadcn" | "tw-animate-css" | "tailwind-merge" | "vite" | "typescript" | "vitest" | "zod" | "ws", PyAgentA2aConnectionMetadata>[], readonly [{
|
|
13
|
+
export declare const DEPENDENCIES: import("../../../utils/declared-dependencies.js").DependencyDeclaration<readonly import("../../../utils/declared-dependencies.js").DeclaredTsDependency<"@ag-ui/client" | "@ag-ui/core" | "@ag-ui/encoder" | "@biomejs/biome" | "@a2a-js/sdk" | "@aws/aws-distro-opentelemetry-node-autoinstrumentation" | "@opentelemetry/propagator-jaeger" | "minimatch" | "deepmerge-ts" | "mysql2" | "@aws-sdk/client-dynamodb" | "@aws-sdk/client-api-gateway" | "@aws-sdk/client-iam" | "@aws-sdk/client-bedrock-agentcore" | "@aws-sdk/client-bedrock-runtime" | "@aws-sdk/client-s3" | "@aws-sdk/client-sts" | "@aws-sdk/client-cognito-identity-provider" | "@aws-sdk/credential-providers" | "@aws-sdk/credential-provider-cognito-identity" | "@aws-sdk/client-secrets-manager" | "@aws-sdk/rds-signer" | "@smithy/server-apigateway" | "@smithy/server-node" | "@aws-lambda-powertools/logger" | "@aws-lambda-powertools/metrics" | "@aws-lambda-powertools/parameters" | "@aws-lambda-powertools/tracer" | "@aws-lambda-powertools/parser" | "@aws-sdk/client-appconfigdata" | "@middy/core" | "@nxlv/python" | "@nx-extend/terraform" | "nx" | "@nx/devkit" | "@nx/js" | "@nx/react" | "@nx/vite" | "@nx/vitest" | "@nx/workspace" | "create-nx-workspace" | "@swc-node/register" | "@swc/core" | "@modelcontextprotocol/sdk" | "@modelcontextprotocol/inspector" | "@ag-ui/a2ui-toolkit" | "@ag-ui/aws-strands" | "agent-chat-cli" | "@copilotkit/react-core" | "rxjs" | "@strands-agents/sdk" | "@tanstack/react-router" | "@tanstack/router-plugin" | "@tanstack/router-generator" | "@tanstack/virtual-file-routes" | "@tanstack/router-utils" | "@cloudscape-design/board-components" | "@cloudscape-design/chat-components" | "@cloudscape-design/components" | "@cloudscape-design/global-styles" | "@tanstack/react-query" | "@tanstack/react-query-devtools" | "@trpc/tanstack-react-query" | "@trpc/client" | "@trpc/server" | "@types/node" | "@types/aws-lambda" | "@types/cors" | "@types/pg" | "@types/ws" | "@types/express" | "@smithy/config-resolver" | "@smithy/node-config-provider" | "@smithy/node-http-handler" | "@smithy/types" | "@vitest/coverage-v8" | "@vitest/ui" | "@astrojs/react" | "@astrojs/starlight" | "astro" | "cookie" | "aws4fetch" | "aws-cdk" | "aws-cdk-lib" | "aws-xray-sdk-core" | "constructs" | "cors" | "chalk" | "class-variance-authority" | "clsx" | "commander" | "electrodb" | "esbuild" | "event-source-polyfill" | "@types/event-source-polyfill" | "@prisma/adapter-mariadb" | "@prisma/adapter-pg" | "@prisma/client" | "ejs" | "@types/ejs" | "express" | "fast-glob" | "husky" | "fs-extra" | "@types/fs-extra" | "mariadb" | "mise" | "npm" | "npm-check-updates" | "oidc-client-ts" | "pg" | "prisma" | "react-oidc-context" | "react" | "react-dom" | "rolldown" | "rolldown-plugin-dts" | "shx" | "simple-git" | "source-map-support" | "starlight-blog" | "tailwindcss" | "@tailwindcss/vite" | "tsx" | "lucide-react" | "radix-ui" | "shadcn" | "tw-animate-css" | "tailwind-merge" | "vite" | "typescript" | "vitest" | "jsdom" | "zod" | "ws", PyAgentA2aConnectionMetadata>[], readonly [{
|
|
14
14
|
readonly name: "boto3";
|
|
15
15
|
}, {
|
|
16
16
|
readonly name: "httpx";
|
|
@@ -10,7 +10,7 @@ import type { PyAgentGatewayConnectionGeneratorSchema } from './schema';
|
|
|
10
10
|
export interface PyAgentGatewayConnectionMetadata {
|
|
11
11
|
readonly framework: AgentFramework;
|
|
12
12
|
}
|
|
13
|
-
export declare const DEPENDENCIES: import("../../../utils/declared-dependencies.js").DependencyDeclaration<readonly import("../../../utils/declared-dependencies.js").DeclaredTsDependency<"@ag-ui/client" | "@ag-ui/core" | "@ag-ui/encoder" | "@biomejs/biome" | "@a2a-js/sdk" | "@aws/aws-distro-opentelemetry-node-autoinstrumentation" | "@opentelemetry/propagator-jaeger" | "minimatch" | "@aws-sdk/client-dynamodb" | "@aws-sdk/client-api-gateway" | "@aws-sdk/client-iam" | "@aws-sdk/client-bedrock-agentcore" | "@aws-sdk/client-bedrock-runtime" | "@aws-sdk/client-s3" | "@aws-sdk/client-sts" | "@aws-sdk/credential-providers" | "@aws-sdk/credential-provider-cognito-identity" | "@aws-sdk/client-secrets-manager" | "@aws-sdk/rds-signer" | "@smithy/server-apigateway" | "@smithy/server-node" | "@aws-lambda-powertools/logger" | "@aws-lambda-powertools/metrics" | "@aws-lambda-powertools/parameters" | "@aws-lambda-powertools/tracer" | "@aws-lambda-powertools/parser" | "@aws-sdk/client-appconfigdata" | "@middy/core" | "@nxlv/python" | "@nx-extend/terraform" | "nx" | "@nx/devkit" | "@nx/js" | "@nx/react" | "@nx/vite" | "@nx/vitest" | "@nx/workspace" | "create-nx-workspace" | "@swc-node/register" | "@swc/core" | "@modelcontextprotocol/sdk" | "@modelcontextprotocol/inspector" | "@ag-ui/a2ui-toolkit" | "@ag-ui/aws-strands" | "agent-chat-cli" | "@copilotkit/react-core" | "rxjs" | "@strands-agents/sdk" | "@tanstack/react-router" | "@tanstack/router-plugin" | "@tanstack/router-generator" | "@tanstack/virtual-file-routes" | "@tanstack/router-utils" | "@cloudscape-design/board-components" | "@cloudscape-design/chat-components" | "@cloudscape-design/components" | "@cloudscape-design/global-styles" | "@tanstack/react-query" | "@tanstack/react-query-devtools" | "@trpc/tanstack-react-query" | "@trpc/client" | "@trpc/server" | "@types/node" | "@types/aws-lambda" | "@types/cors" | "@types/pg" | "@types/ws" | "@types/express" | "@smithy/config-resolver" | "@smithy/node-config-provider" | "@smithy/node-http-handler" | "@smithy/types" | "@vitest/coverage-v8" | "@vitest/ui" | "@astrojs/react" | "@astrojs/starlight" | "astro" | "cookie" | "aws4fetch" | "aws-cdk" | "aws-cdk-lib" | "aws-xray-sdk-core" | "constructs" | "cors" | "chalk" | "class-variance-authority" | "clsx" | "commander" | "electrodb" | "esbuild" | "event-source-polyfill" | "@types/event-source-polyfill" | "@prisma/adapter-mariadb" | "@prisma/adapter-pg" | "@prisma/client" | "ejs" | "@types/ejs" | "express" | "fast-glob" | "husky" | "fs-extra" | "@types/fs-extra" | "mariadb" | "mise" | "npm" | "npm-check-updates" | "oidc-client-ts" | "pg" | "prisma" | "react-oidc-context" | "react" | "react-dom" | "rolldown" | "rolldown-plugin-dts" | "shx" | "simple-git" | "source-map-support" | "starlight-blog" | "tailwindcss" | "@tailwindcss/vite" | "tsx" | "lucide-react" | "radix-ui" | "shadcn" | "tw-animate-css" | "tailwind-merge" | "vite" | "typescript" | "vitest" | "zod" | "ws", PyAgentGatewayConnectionMetadata>[], readonly [{
|
|
13
|
+
export declare const DEPENDENCIES: import("../../../utils/declared-dependencies.js").DependencyDeclaration<readonly import("../../../utils/declared-dependencies.js").DeclaredTsDependency<"@ag-ui/client" | "@ag-ui/core" | "@ag-ui/encoder" | "@biomejs/biome" | "@a2a-js/sdk" | "@aws/aws-distro-opentelemetry-node-autoinstrumentation" | "@opentelemetry/propagator-jaeger" | "minimatch" | "deepmerge-ts" | "mysql2" | "@aws-sdk/client-dynamodb" | "@aws-sdk/client-api-gateway" | "@aws-sdk/client-iam" | "@aws-sdk/client-bedrock-agentcore" | "@aws-sdk/client-bedrock-runtime" | "@aws-sdk/client-s3" | "@aws-sdk/client-sts" | "@aws-sdk/client-cognito-identity-provider" | "@aws-sdk/credential-providers" | "@aws-sdk/credential-provider-cognito-identity" | "@aws-sdk/client-secrets-manager" | "@aws-sdk/rds-signer" | "@smithy/server-apigateway" | "@smithy/server-node" | "@aws-lambda-powertools/logger" | "@aws-lambda-powertools/metrics" | "@aws-lambda-powertools/parameters" | "@aws-lambda-powertools/tracer" | "@aws-lambda-powertools/parser" | "@aws-sdk/client-appconfigdata" | "@middy/core" | "@nxlv/python" | "@nx-extend/terraform" | "nx" | "@nx/devkit" | "@nx/js" | "@nx/react" | "@nx/vite" | "@nx/vitest" | "@nx/workspace" | "create-nx-workspace" | "@swc-node/register" | "@swc/core" | "@modelcontextprotocol/sdk" | "@modelcontextprotocol/inspector" | "@ag-ui/a2ui-toolkit" | "@ag-ui/aws-strands" | "agent-chat-cli" | "@copilotkit/react-core" | "rxjs" | "@strands-agents/sdk" | "@tanstack/react-router" | "@tanstack/router-plugin" | "@tanstack/router-generator" | "@tanstack/virtual-file-routes" | "@tanstack/router-utils" | "@cloudscape-design/board-components" | "@cloudscape-design/chat-components" | "@cloudscape-design/components" | "@cloudscape-design/global-styles" | "@tanstack/react-query" | "@tanstack/react-query-devtools" | "@trpc/tanstack-react-query" | "@trpc/client" | "@trpc/server" | "@types/node" | "@types/aws-lambda" | "@types/cors" | "@types/pg" | "@types/ws" | "@types/express" | "@smithy/config-resolver" | "@smithy/node-config-provider" | "@smithy/node-http-handler" | "@smithy/types" | "@vitest/coverage-v8" | "@vitest/ui" | "@astrojs/react" | "@astrojs/starlight" | "astro" | "cookie" | "aws4fetch" | "aws-cdk" | "aws-cdk-lib" | "aws-xray-sdk-core" | "constructs" | "cors" | "chalk" | "class-variance-authority" | "clsx" | "commander" | "electrodb" | "esbuild" | "event-source-polyfill" | "@types/event-source-polyfill" | "@prisma/adapter-mariadb" | "@prisma/adapter-pg" | "@prisma/client" | "ejs" | "@types/ejs" | "express" | "fast-glob" | "husky" | "fs-extra" | "@types/fs-extra" | "mariadb" | "mise" | "npm" | "npm-check-updates" | "oidc-client-ts" | "pg" | "prisma" | "react-oidc-context" | "react" | "react-dom" | "rolldown" | "rolldown-plugin-dts" | "shx" | "simple-git" | "source-map-support" | "starlight-blog" | "tailwindcss" | "@tailwindcss/vite" | "tsx" | "lucide-react" | "radix-ui" | "shadcn" | "tw-animate-css" | "tailwind-merge" | "vite" | "typescript" | "vitest" | "jsdom" | "zod" | "ws", PyAgentGatewayConnectionMetadata>[], readonly [{
|
|
14
14
|
readonly name: "boto3";
|
|
15
15
|
}, {
|
|
16
16
|
readonly name: "httpx";
|
|
@@ -10,7 +10,7 @@ import type { PyAgentMcpConnectionGeneratorSchema } from './schema';
|
|
|
10
10
|
export interface PyAgentMcpConnectionMetadata {
|
|
11
11
|
readonly framework: AgentFramework;
|
|
12
12
|
}
|
|
13
|
-
export declare const DEPENDENCIES: import("../../../utils/declared-dependencies.js").DependencyDeclaration<readonly import("../../../utils/declared-dependencies.js").DeclaredTsDependency<"@ag-ui/client" | "@ag-ui/core" | "@ag-ui/encoder" | "@biomejs/biome" | "@a2a-js/sdk" | "@aws/aws-distro-opentelemetry-node-autoinstrumentation" | "@opentelemetry/propagator-jaeger" | "minimatch" | "@aws-sdk/client-dynamodb" | "@aws-sdk/client-api-gateway" | "@aws-sdk/client-iam" | "@aws-sdk/client-bedrock-agentcore" | "@aws-sdk/client-bedrock-runtime" | "@aws-sdk/client-s3" | "@aws-sdk/client-sts" | "@aws-sdk/credential-providers" | "@aws-sdk/credential-provider-cognito-identity" | "@aws-sdk/client-secrets-manager" | "@aws-sdk/rds-signer" | "@smithy/server-apigateway" | "@smithy/server-node" | "@aws-lambda-powertools/logger" | "@aws-lambda-powertools/metrics" | "@aws-lambda-powertools/parameters" | "@aws-lambda-powertools/tracer" | "@aws-lambda-powertools/parser" | "@aws-sdk/client-appconfigdata" | "@middy/core" | "@nxlv/python" | "@nx-extend/terraform" | "nx" | "@nx/devkit" | "@nx/js" | "@nx/react" | "@nx/vite" | "@nx/vitest" | "@nx/workspace" | "create-nx-workspace" | "@swc-node/register" | "@swc/core" | "@modelcontextprotocol/sdk" | "@modelcontextprotocol/inspector" | "@ag-ui/a2ui-toolkit" | "@ag-ui/aws-strands" | "agent-chat-cli" | "@copilotkit/react-core" | "rxjs" | "@strands-agents/sdk" | "@tanstack/react-router" | "@tanstack/router-plugin" | "@tanstack/router-generator" | "@tanstack/virtual-file-routes" | "@tanstack/router-utils" | "@cloudscape-design/board-components" | "@cloudscape-design/chat-components" | "@cloudscape-design/components" | "@cloudscape-design/global-styles" | "@tanstack/react-query" | "@tanstack/react-query-devtools" | "@trpc/tanstack-react-query" | "@trpc/client" | "@trpc/server" | "@types/node" | "@types/aws-lambda" | "@types/cors" | "@types/pg" | "@types/ws" | "@types/express" | "@smithy/config-resolver" | "@smithy/node-config-provider" | "@smithy/node-http-handler" | "@smithy/types" | "@vitest/coverage-v8" | "@vitest/ui" | "@astrojs/react" | "@astrojs/starlight" | "astro" | "cookie" | "aws4fetch" | "aws-cdk" | "aws-cdk-lib" | "aws-xray-sdk-core" | "constructs" | "cors" | "chalk" | "class-variance-authority" | "clsx" | "commander" | "electrodb" | "esbuild" | "event-source-polyfill" | "@types/event-source-polyfill" | "@prisma/adapter-mariadb" | "@prisma/adapter-pg" | "@prisma/client" | "ejs" | "@types/ejs" | "express" | "fast-glob" | "husky" | "fs-extra" | "@types/fs-extra" | "mariadb" | "mise" | "npm" | "npm-check-updates" | "oidc-client-ts" | "pg" | "prisma" | "react-oidc-context" | "react" | "react-dom" | "rolldown" | "rolldown-plugin-dts" | "shx" | "simple-git" | "source-map-support" | "starlight-blog" | "tailwindcss" | "@tailwindcss/vite" | "tsx" | "lucide-react" | "radix-ui" | "shadcn" | "tw-animate-css" | "tailwind-merge" | "vite" | "typescript" | "vitest" | "zod" | "ws", PyAgentMcpConnectionMetadata>[], readonly [{
|
|
13
|
+
export declare const DEPENDENCIES: import("../../../utils/declared-dependencies.js").DependencyDeclaration<readonly import("../../../utils/declared-dependencies.js").DeclaredTsDependency<"@ag-ui/client" | "@ag-ui/core" | "@ag-ui/encoder" | "@biomejs/biome" | "@a2a-js/sdk" | "@aws/aws-distro-opentelemetry-node-autoinstrumentation" | "@opentelemetry/propagator-jaeger" | "minimatch" | "deepmerge-ts" | "mysql2" | "@aws-sdk/client-dynamodb" | "@aws-sdk/client-api-gateway" | "@aws-sdk/client-iam" | "@aws-sdk/client-bedrock-agentcore" | "@aws-sdk/client-bedrock-runtime" | "@aws-sdk/client-s3" | "@aws-sdk/client-sts" | "@aws-sdk/client-cognito-identity-provider" | "@aws-sdk/credential-providers" | "@aws-sdk/credential-provider-cognito-identity" | "@aws-sdk/client-secrets-manager" | "@aws-sdk/rds-signer" | "@smithy/server-apigateway" | "@smithy/server-node" | "@aws-lambda-powertools/logger" | "@aws-lambda-powertools/metrics" | "@aws-lambda-powertools/parameters" | "@aws-lambda-powertools/tracer" | "@aws-lambda-powertools/parser" | "@aws-sdk/client-appconfigdata" | "@middy/core" | "@nxlv/python" | "@nx-extend/terraform" | "nx" | "@nx/devkit" | "@nx/js" | "@nx/react" | "@nx/vite" | "@nx/vitest" | "@nx/workspace" | "create-nx-workspace" | "@swc-node/register" | "@swc/core" | "@modelcontextprotocol/sdk" | "@modelcontextprotocol/inspector" | "@ag-ui/a2ui-toolkit" | "@ag-ui/aws-strands" | "agent-chat-cli" | "@copilotkit/react-core" | "rxjs" | "@strands-agents/sdk" | "@tanstack/react-router" | "@tanstack/router-plugin" | "@tanstack/router-generator" | "@tanstack/virtual-file-routes" | "@tanstack/router-utils" | "@cloudscape-design/board-components" | "@cloudscape-design/chat-components" | "@cloudscape-design/components" | "@cloudscape-design/global-styles" | "@tanstack/react-query" | "@tanstack/react-query-devtools" | "@trpc/tanstack-react-query" | "@trpc/client" | "@trpc/server" | "@types/node" | "@types/aws-lambda" | "@types/cors" | "@types/pg" | "@types/ws" | "@types/express" | "@smithy/config-resolver" | "@smithy/node-config-provider" | "@smithy/node-http-handler" | "@smithy/types" | "@vitest/coverage-v8" | "@vitest/ui" | "@astrojs/react" | "@astrojs/starlight" | "astro" | "cookie" | "aws4fetch" | "aws-cdk" | "aws-cdk-lib" | "aws-xray-sdk-core" | "constructs" | "cors" | "chalk" | "class-variance-authority" | "clsx" | "commander" | "electrodb" | "esbuild" | "event-source-polyfill" | "@types/event-source-polyfill" | "@prisma/adapter-mariadb" | "@prisma/adapter-pg" | "@prisma/client" | "ejs" | "@types/ejs" | "express" | "fast-glob" | "husky" | "fs-extra" | "@types/fs-extra" | "mariadb" | "mise" | "npm" | "npm-check-updates" | "oidc-client-ts" | "pg" | "prisma" | "react-oidc-context" | "react" | "react-dom" | "rolldown" | "rolldown-plugin-dts" | "shx" | "simple-git" | "source-map-support" | "starlight-blog" | "tailwindcss" | "@tailwindcss/vite" | "tsx" | "lucide-react" | "radix-ui" | "shadcn" | "tw-animate-css" | "tailwind-merge" | "vite" | "typescript" | "vitest" | "jsdom" | "zod" | "ws", PyAgentMcpConnectionMetadata>[], readonly [{
|
|
14
14
|
readonly name: "boto3";
|
|
15
15
|
}, {
|
|
16
16
|
readonly name: "httpx";
|
|
@@ -311,6 +311,9 @@ class SigV4HttpAgent extends HttpAgent {
|
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
|
|
314
|
+
// The id this agent is registered under, used as \`agentId\` by CopilotKit components.
|
|
315
|
+
export const TEST_AGENT_ID = 'agent';
|
|
316
|
+
|
|
314
317
|
export const useAguiTestAgent = (): Record<string, AbstractAgent> => {
|
|
315
318
|
const runtimeConfig = useRuntimeConfig();
|
|
316
319
|
const agentRuntimeValue = runtimeConfig.agentRuntimes.TestAgent;
|
|
@@ -327,7 +330,7 @@ export const useAguiTestAgent = (): Record<string, AbstractAgent> => {
|
|
|
327
330
|
return useMemo((): Record<string, AbstractAgent> => {
|
|
328
331
|
const agent = new SigV4HttpAgent({ url }, sigv4);
|
|
329
332
|
|
|
330
|
-
return {
|
|
333
|
+
return { [TEST_AGENT_ID]: agent };
|
|
331
334
|
}, [url, sigv4]);
|
|
332
335
|
};
|
|
333
336
|
"
|
|
@@ -151,6 +151,35 @@ export declare const DEPENDENCIES: import("../../../utils/declared-dependencies.
|
|
|
151
151
|
versionOnly: true;
|
|
152
152
|
}, "when"> & {
|
|
153
153
|
when: (m: PyAgentReactConnectionMetadata) => boolean;
|
|
154
|
+
}, Omit<{
|
|
155
|
+
readonly name: "jsdom";
|
|
156
|
+
} & {
|
|
157
|
+
versionOnly: true;
|
|
158
|
+
}, "when"> & {
|
|
159
|
+
when: (m: PyAgentReactConnectionMetadata) => boolean;
|
|
160
|
+
}, Omit<{
|
|
161
|
+
readonly name: "@nx/vitest";
|
|
162
|
+
readonly dev: true;
|
|
163
|
+
readonly root: true;
|
|
164
|
+
} & {
|
|
165
|
+
versionOnly: true;
|
|
166
|
+
}, "when"> & {
|
|
167
|
+
when: (m: PyAgentReactConnectionMetadata) => boolean;
|
|
168
|
+
}, Omit<{
|
|
169
|
+
readonly name: "@types/node";
|
|
170
|
+
readonly dev: true;
|
|
171
|
+
} & {
|
|
172
|
+
versionOnly: true;
|
|
173
|
+
}, "when"> & {
|
|
174
|
+
when: (m: PyAgentReactConnectionMetadata) => boolean;
|
|
175
|
+
}, Omit<{
|
|
176
|
+
readonly name: "@types/node";
|
|
177
|
+
readonly dev: true;
|
|
178
|
+
readonly root: true;
|
|
179
|
+
} & {
|
|
180
|
+
versionOnly: true;
|
|
181
|
+
}, "when"> & {
|
|
182
|
+
when: (m: PyAgentReactConnectionMetadata) => boolean;
|
|
154
183
|
}], readonly import("../../../utils/declared-dependencies.js").DeclaredPyDependency<"ruff" | "a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aiosqlite" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "langgraph-checkpoint-aws" | "langgraph-checkpoint-sqlite" | "mcp" | "pip-check-updates" | "pip-licenses" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", PyAgentReactConnectionMetadata>[]>;
|
|
155
184
|
export declare const PY_AGENT_REACT_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
|
|
156
185
|
export declare const pyAgentReactConnectionGenerator: (tree: Tree, options: ResolvedConnectionOptions & {
|
|
@@ -674,12 +674,11 @@ logs.on('exit', cleanup);
|
|
|
674
674
|
`;
|
|
675
675
|
|
|
676
676
|
exports[`py#dynamodb generator > should generate the dynamodb project > packages/my_table/proj_my_table/__init__.py 1`] = `
|
|
677
|
-
"
|
|
677
|
+
""""Automatically generated by Nx."""
|
|
678
678
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
]
|
|
679
|
+
from .entities import BaseModel, ExampleModel
|
|
680
|
+
|
|
681
|
+
__all__ = ["BaseModel", "ExampleModel"]
|
|
683
682
|
"
|
|
684
683
|
`;
|
|
685
684
|
|
|
@@ -1395,12 +1394,11 @@ logs.on('exit', cleanup);
|
|
|
1395
1394
|
`;
|
|
1396
1395
|
|
|
1397
1396
|
exports[`py#dynamodb generator > should generate with infra=none then upgrade to infra=dynamodb > packages/my_table/proj_my_table/__init__.py 1`] = `
|
|
1398
|
-
"
|
|
1397
|
+
""""Automatically generated by Nx."""
|
|
1399
1398
|
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
]
|
|
1399
|
+
from .entities import BaseModel, ExampleModel
|
|
1400
|
+
|
|
1401
|
+
__all__ = ["BaseModel", "ExampleModel"]
|
|
1404
1402
|
"
|
|
1405
1403
|
`;
|
|
1406
1404
|
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/ import { relative } from "node:path";
|
|
5
|
-
import { generateFiles, joinPathFragments, readProjectConfiguration, updateProjectConfiguration } from "@nx/devkit";
|
|
5
|
+
import { generateFiles, joinPathFragments, OverwriteStrategy, readProjectConfiguration, updateProjectConfiguration } from "@nx/devkit";
|
|
6
6
|
import { addPyDependencies } from "../../utils/add-dependencies.js";
|
|
7
|
+
import { addPythonReExport } from "../../utils/agent-connection/agent-connection.js";
|
|
7
8
|
import { resolveContainers } from "../../utils/containers.js";
|
|
8
9
|
import { declareDependencies, ownedElsewhere } from "../../utils/declared-dependencies.js";
|
|
10
|
+
import { DYNAMODB_LOCAL_IMAGE, writeDynamoDBConfig } from "../../utils/dynamodb-config.js";
|
|
9
11
|
import { addDynamoDBInfra } from "../../utils/dynamodb-constructs/dynamodb-constructs.js";
|
|
10
12
|
import { formatFilesInSubtree } from "../../utils/format.js";
|
|
11
13
|
import { resolveIac } from "../../utils/iac.js";
|
|
@@ -60,13 +62,38 @@ export const pyDynamoDBGenerator = async (tree, options)=>{
|
|
|
60
62
|
const containerName = `${getNpmScope(tree)}-dynamodb`;
|
|
61
63
|
const templateOptions = {
|
|
62
64
|
name: normalizedModuleName,
|
|
63
|
-
runtimeConfigKey: nameClassName
|
|
64
|
-
localDynamoDBPort,
|
|
65
|
-
localTableName,
|
|
66
|
-
containerName,
|
|
67
|
-
containerEngine
|
|
65
|
+
runtimeConfigKey: nameClassName
|
|
68
66
|
};
|
|
69
|
-
|
|
67
|
+
// The entities and the client are the user's to author — the guide walks
|
|
68
|
+
// through adding entity modules under `entities/` — so a re-run leaves them
|
|
69
|
+
// alone.
|
|
70
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files'), dir, templateOptions, {
|
|
71
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
72
|
+
});
|
|
73
|
+
// The barrels re-export the generated base and example models. Adding to
|
|
74
|
+
// whatever is already there registers them without discarding the user's own
|
|
75
|
+
// entity exports on a re-run — which matters beyond the barrel itself, since
|
|
76
|
+
// PynamoDB only registers a model's discriminator once it is imported.
|
|
77
|
+
const entitiesInitPath = joinPathFragments(dir, normalizedModuleName, 'entities', '__init__.py');
|
|
78
|
+
await addPythonReExport(tree, entitiesInitPath, '.base', 'BaseModel');
|
|
79
|
+
await addPythonReExport(tree, entitiesInitPath, '.example', 'ExampleModel');
|
|
80
|
+
const packageInitPath = joinPathFragments(dir, normalizedModuleName, '__init__.py');
|
|
81
|
+
for (const importName of [
|
|
82
|
+
'BaseModel',
|
|
83
|
+
'ExampleModel'
|
|
84
|
+
]){
|
|
85
|
+
await addPythonReExport(tree, packageInitPath, '.entities', importName);
|
|
86
|
+
}
|
|
87
|
+
writeDynamoDBConfig(tree, dir, {
|
|
88
|
+
runtimeConfigKey: nameClassName,
|
|
89
|
+
localDev: {
|
|
90
|
+
port: localDynamoDBPort,
|
|
91
|
+
tableName: localTableName,
|
|
92
|
+
image: DYNAMODB_LOCAL_IMAGE,
|
|
93
|
+
containerName,
|
|
94
|
+
containerEngine
|
|
95
|
+
}
|
|
96
|
+
});
|
|
70
97
|
await sharedDynamoDBScriptsGenerator(tree, DEPENDENCIES);
|
|
71
98
|
const scriptsDir = relative(dir, joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'src', 'dynamodb'));
|
|
72
99
|
projectConfig.targets['pull-image'] = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/py/dynamodb/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { relative } from 'node:path';\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n readProjectConfiguration,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addPyDependencies } from '../../utils/add-dependencies.js';\nimport { resolveContainers } from '../../utils/containers.js';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../utils/declared-dependencies.js';\nimport { addDynamoDBInfra } from '../../utils/dynamodb-constructs/dynamodb-constructs.js';\nimport { formatFilesInSubtree } from '../../utils/format.js';\nimport { resolveIac } from '../../utils/iac.js';\nimport { installDependencies } from '../../utils/install.js';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics.js';\nimport { kebabCase, toClassName } from '../../utils/names.js';\nimport { getNpmScope } from '../../utils/npm-scope.js';\nimport {\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n projectExists,\n} from '../../utils/nx.js';\nimport { assignSharedPort } from '../../utils/port.js';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../utils/shared-constructs.js';\nimport {\n DYNAMODB_GENERATOR_IDS,\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n} from '../../utils/shared-constructs-constants.js';\nimport {\n SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES,\n sharedDynamoDBScriptsGenerator,\n} from '../../utils/shared-dynamodb-scripts.js';\nimport pyProjectGenerator, {\n getPyProjectDetails,\n} from '../project/generator.js';\nimport type { PyDynamoDBGeneratorSchema } from './schema';\n\nexport const DEPENDENCIES = declareDependencies()({\n ts: [\n ...ownedElsewhere(SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES),\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ],\n py: [\n { name: 'pynamodb' },\n { name: 'boto3' },\n { name: 'aws-lambda-powertools' },\n ],\n});\n\nexport const PY_DYNAMODB_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport const pyDynamoDBGenerator = async (\n tree: Tree,\n options: PyDynamoDBGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const nameClassName = toClassName(options.name);\n const localTableName = `${getNpmScope(tree)}-${kebabCase(options.tableName ?? options.name)}`;\n const containerEngine = await resolveContainers(tree, 'inherit');\n const { fullyQualifiedName, dir, normalizedModuleName } = getPyProjectDetails(\n tree,\n {\n name: options.name,\n directory: options.directory,\n subDirectory: options.subDirectory,\n },\n );\n\n if (!projectExists(tree, fullyQualifiedName)) {\n await pyProjectGenerator(tree, {\n name: options.name,\n directory: options.directory,\n subDirectory: options.subDirectory,\n type: 'library',\n preferInstallDependencies: false,\n });\n }\n\n const projectConfig = readProjectConfiguration(tree, fullyQualifiedName);\n\n const localDynamoDBPort = assignSharedPort(\n tree,\n projectConfig,\n DYNAMODB_GENERATOR_IDS,\n 8000,\n );\n\n const containerName = `${getNpmScope(tree)}-dynamodb`;\n\n const templateOptions = {\n name: normalizedModuleName,\n runtimeConfigKey: nameClassName,\n localDynamoDBPort,\n localTableName,\n containerName,\n containerEngine,\n };\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files'),\n dir,\n templateOptions,\n );\n\n await sharedDynamoDBScriptsGenerator(tree, DEPENDENCIES);\n\n const scriptsDir = relative(\n dir,\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'src', 'dynamodb'),\n );\n\n projectConfig.targets['pull-image'] = {\n executor: 'nx:run-commands',\n options: {\n command: `tsx ${scriptsDir}/pull-image.ts`,\n cwd: '{projectRoot}',\n },\n };\n projectConfig.targets['dev'] = {\n executor: 'nx:run-commands',\n continuous: true,\n dependsOn: ['pull-image'],\n options: {\n commands: [\n `tsx ${scriptsDir}/start-container.ts`,\n `tsx ${scriptsDir}/create-local-table.ts`,\n ],\n parallel: true,\n cwd: '{projectRoot}',\n },\n };\n\n updateProjectConfiguration(tree, fullyQualifiedName, projectConfig);\n // Recorded so the version sync can tell a CDK project from a Terraform one;\n // undefined when no infrastructure was generated.\n const iac =\n options.infra !== 'none' ? await resolveIac(tree, options.iac) : undefined;\n\n addGeneratorMetadata(\n tree,\n fullyQualifiedName,\n PY_DYNAMODB_GENERATOR_INFO,\n iac ? { iac } : {},\n );\n\n if (options.infra !== 'none') {\n await sharedConstructsGenerator(tree, { iac }, DEPENDENCIES);\n await addDynamoDBInfra(tree, {\n iac,\n projectName: fullyQualifiedName,\n nameClassName,\n nameKebabCase: kebabCase(options.name),\n tableName: localTableName,\n projectRoot: dir,\n });\n }\n\n addPyDependencies(tree, DEPENDENCIES, { projectRoot: dir });\n\n await addGeneratorMetricsIfApplicable(tree, [PY_DYNAMODB_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript', 'python'],\n });\n};\n\nexport default pyDynamoDBGenerator;\n"],"names":["relative","generateFiles","joinPathFragments","readProjectConfiguration","updateProjectConfiguration","addPyDependencies","resolveContainers","declareDependencies","ownedElsewhere","addDynamoDBInfra","formatFilesInSubtree","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","kebabCase","toClassName","getNpmScope","addGeneratorMetadata","getGeneratorInfo","projectExists","assignSharedPort","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","DYNAMODB_GENERATOR_IDS","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES","sharedDynamoDBScriptsGenerator","pyProjectGenerator","getPyProjectDetails","DEPENDENCIES","ts","py","name","PY_DYNAMODB_GENERATOR_INFO","filename","pyDynamoDBGenerator","tree","options","nameClassName","localTableName","tableName","containerEngine","fullyQualifiedName","dir","normalizedModuleName","directory","subDirectory","type","preferInstallDependencies","projectConfig","localDynamoDBPort","containerName","templateOptions","runtimeConfigKey","dirname","scriptsDir","targets","executor","command","cwd","continuous","dependsOn","commands","parallel","iac","infra","undefined","projectName","nameKebabCase","projectRoot","languages"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/py/dynamodb/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { relative } from 'node:path';\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n readProjectConfiguration,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addPyDependencies } from '../../utils/add-dependencies.js';\nimport { addPythonReExport } from '../../utils/agent-connection/agent-connection.js';\nimport { resolveContainers } from '../../utils/containers.js';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../utils/declared-dependencies.js';\nimport {\n DYNAMODB_LOCAL_IMAGE,\n writeDynamoDBConfig,\n} from '../../utils/dynamodb-config.js';\nimport { addDynamoDBInfra } from '../../utils/dynamodb-constructs/dynamodb-constructs.js';\nimport { formatFilesInSubtree } from '../../utils/format.js';\nimport { resolveIac } from '../../utils/iac.js';\nimport { installDependencies } from '../../utils/install.js';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics.js';\nimport { kebabCase, toClassName } from '../../utils/names.js';\nimport { getNpmScope } from '../../utils/npm-scope.js';\nimport {\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n projectExists,\n} from '../../utils/nx.js';\nimport { assignSharedPort } from '../../utils/port.js';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../utils/shared-constructs.js';\nimport {\n DYNAMODB_GENERATOR_IDS,\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n} from '../../utils/shared-constructs-constants.js';\nimport {\n SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES,\n sharedDynamoDBScriptsGenerator,\n} from '../../utils/shared-dynamodb-scripts.js';\nimport pyProjectGenerator, {\n getPyProjectDetails,\n} from '../project/generator.js';\nimport type { PyDynamoDBGeneratorSchema } from './schema';\n\nexport const DEPENDENCIES = declareDependencies()({\n ts: [\n ...ownedElsewhere(SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES),\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ],\n py: [\n { name: 'pynamodb' },\n { name: 'boto3' },\n { name: 'aws-lambda-powertools' },\n ],\n});\n\nexport const PY_DYNAMODB_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport const pyDynamoDBGenerator = async (\n tree: Tree,\n options: PyDynamoDBGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const nameClassName = toClassName(options.name);\n const localTableName = `${getNpmScope(tree)}-${kebabCase(options.tableName ?? options.name)}`;\n const containerEngine = await resolveContainers(tree, 'inherit');\n const { fullyQualifiedName, dir, normalizedModuleName } = getPyProjectDetails(\n tree,\n {\n name: options.name,\n directory: options.directory,\n subDirectory: options.subDirectory,\n },\n );\n\n if (!projectExists(tree, fullyQualifiedName)) {\n await pyProjectGenerator(tree, {\n name: options.name,\n directory: options.directory,\n subDirectory: options.subDirectory,\n type: 'library',\n preferInstallDependencies: false,\n });\n }\n\n const projectConfig = readProjectConfiguration(tree, fullyQualifiedName);\n\n const localDynamoDBPort = assignSharedPort(\n tree,\n projectConfig,\n DYNAMODB_GENERATOR_IDS,\n 8000,\n );\n\n const containerName = `${getNpmScope(tree)}-dynamodb`;\n\n const templateOptions = {\n name: normalizedModuleName,\n runtimeConfigKey: nameClassName,\n };\n\n // The entities and the client are the user's to author — the guide walks\n // through adding entity modules under `entities/` — so a re-run leaves them\n // alone.\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files'),\n dir,\n templateOptions,\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // The barrels re-export the generated base and example models. Adding to\n // whatever is already there registers them without discarding the user's own\n // entity exports on a re-run — which matters beyond the barrel itself, since\n // PynamoDB only registers a model's discriminator once it is imported.\n const entitiesInitPath = joinPathFragments(\n dir,\n normalizedModuleName,\n 'entities',\n '__init__.py',\n );\n await addPythonReExport(tree, entitiesInitPath, '.base', 'BaseModel');\n await addPythonReExport(tree, entitiesInitPath, '.example', 'ExampleModel');\n\n const packageInitPath = joinPathFragments(\n dir,\n normalizedModuleName,\n '__init__.py',\n );\n for (const importName of ['BaseModel', 'ExampleModel']) {\n await addPythonReExport(tree, packageInitPath, '.entities', importName);\n }\n\n writeDynamoDBConfig(tree, dir, {\n runtimeConfigKey: nameClassName,\n localDev: {\n port: localDynamoDBPort,\n tableName: localTableName,\n image: DYNAMODB_LOCAL_IMAGE,\n containerName,\n containerEngine,\n },\n });\n\n await sharedDynamoDBScriptsGenerator(tree, DEPENDENCIES);\n\n const scriptsDir = relative(\n dir,\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'src', 'dynamodb'),\n );\n\n projectConfig.targets['pull-image'] = {\n executor: 'nx:run-commands',\n options: {\n command: `tsx ${scriptsDir}/pull-image.ts`,\n cwd: '{projectRoot}',\n },\n };\n projectConfig.targets['dev'] = {\n executor: 'nx:run-commands',\n continuous: true,\n dependsOn: ['pull-image'],\n options: {\n commands: [\n `tsx ${scriptsDir}/start-container.ts`,\n `tsx ${scriptsDir}/create-local-table.ts`,\n ],\n parallel: true,\n cwd: '{projectRoot}',\n },\n };\n\n updateProjectConfiguration(tree, fullyQualifiedName, projectConfig);\n // Recorded so the version sync can tell a CDK project from a Terraform one;\n // undefined when no infrastructure was generated.\n const iac =\n options.infra !== 'none' ? await resolveIac(tree, options.iac) : undefined;\n\n addGeneratorMetadata(\n tree,\n fullyQualifiedName,\n PY_DYNAMODB_GENERATOR_INFO,\n iac ? { iac } : {},\n );\n\n if (options.infra !== 'none') {\n await sharedConstructsGenerator(tree, { iac }, DEPENDENCIES);\n await addDynamoDBInfra(tree, {\n iac,\n projectName: fullyQualifiedName,\n nameClassName,\n nameKebabCase: kebabCase(options.name),\n tableName: localTableName,\n projectRoot: dir,\n });\n }\n\n addPyDependencies(tree, DEPENDENCIES, { projectRoot: dir });\n\n await addGeneratorMetricsIfApplicable(tree, [PY_DYNAMODB_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript', 'python'],\n });\n};\n\nexport default pyDynamoDBGenerator;\n"],"names":["relative","generateFiles","joinPathFragments","OverwriteStrategy","readProjectConfiguration","updateProjectConfiguration","addPyDependencies","addPythonReExport","resolveContainers","declareDependencies","ownedElsewhere","DYNAMODB_LOCAL_IMAGE","writeDynamoDBConfig","addDynamoDBInfra","formatFilesInSubtree","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","kebabCase","toClassName","getNpmScope","addGeneratorMetadata","getGeneratorInfo","projectExists","assignSharedPort","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","DYNAMODB_GENERATOR_IDS","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES","sharedDynamoDBScriptsGenerator","pyProjectGenerator","getPyProjectDetails","DEPENDENCIES","ts","py","name","PY_DYNAMODB_GENERATOR_INFO","filename","pyDynamoDBGenerator","tree","options","nameClassName","localTableName","tableName","containerEngine","fullyQualifiedName","dir","normalizedModuleName","directory","subDirectory","type","preferInstallDependencies","projectConfig","localDynamoDBPort","containerName","templateOptions","runtimeConfigKey","dirname","overwriteStrategy","KeepExisting","entitiesInitPath","packageInitPath","importName","localDev","port","image","scriptsDir","targets","executor","command","cwd","continuous","dependsOn","commands","parallel","iac","infra","undefined","projectName","nameKebabCase","projectRoot","languages"],"mappings":"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"}
|
|
@@ -17,7 +17,8 @@ tracer: Tracer = Tracer()
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
@tracer.capture_lambda_handler
|
|
20
|
-
@
|
|
20
|
+
@logger.inject_lambda_context
|
|
21
|
+
@metrics.log_metrics(capture_cold_start_metric=True)
|
|
21
22
|
def lambda_handler(event: dict, context: LambdaContext):
|
|
22
23
|
logger.info("Received event", extra={"event": event})
|
|
23
24
|
metrics.add_metric(name="InvocationCount", unit=MetricUnit.Count, value=1)
|
|
@@ -16,7 +16,8 @@ metrics: Metrics = Metrics()
|
|
|
16
16
|
tracer: Tracer = Tracer()
|
|
17
17
|
|
|
18
18
|
@tracer.capture_lambda_handler
|
|
19
|
-
@
|
|
19
|
+
@logger.inject_lambda_context
|
|
20
|
+
@metrics.log_metrics(capture_cold_start_metric=True)
|
|
20
21
|
<%_ if (event !== 'Any') { _%>
|
|
21
22
|
@event_parser(model=<%= event %>)
|
|
22
23
|
<%_ } _%>
|
|
@@ -32,7 +32,9 @@
|
|
|
32
32
|
"type": "string",
|
|
33
33
|
"description": "Whether the project is an application or library",
|
|
34
34
|
"default": "application",
|
|
35
|
-
"enum": ["application", "library"]
|
|
35
|
+
"enum": ["application", "library"],
|
|
36
|
+
"x-priority": "important",
|
|
37
|
+
"x-prompt": "What type of Python project would you like to create?"
|
|
36
38
|
},
|
|
37
39
|
"moduleName": {
|
|
38
40
|
"type": "string",
|
|
@@ -170,9 +170,13 @@ def handler(event: dict[str, Any], _context: Any) -> dict[str, Any]:
|
|
|
170
170
|
exports[`py#rdb generator > should generate MySQL dependencies and templates 4`] = `
|
|
171
171
|
"FROM public.ecr.aws/lambda/python:3.14
|
|
172
172
|
|
|
173
|
-
# Patch OS packages beyond the base image's pinned release
|
|
174
|
-
#
|
|
175
|
-
|
|
173
|
+
# Patch OS packages beyond the base image's pinned release, and drop pip, whose
|
|
174
|
+
# vendored copies of msgpack and setuptools carry known HIGH vulnerabilities.
|
|
175
|
+
# The handler's dependencies are already installed in the image, so nothing
|
|
176
|
+
# installs packages at runtime.
|
|
177
|
+
RUN microdnf upgrade -y --releasever latest && microdnf clean all \\
|
|
178
|
+
&& rm -rf /var/lang/lib/python*/site-packages/pip \\
|
|
179
|
+
/var/lang/lib/python*/site-packages/pip-*.dist-info
|
|
176
180
|
|
|
177
181
|
WORKDIR \${LAMBDA_TASK_ROOT}
|
|
178
182
|
|
|
@@ -188,9 +192,13 @@ CMD ["proj_db.migration_handler.handler"]
|
|
|
188
192
|
exports[`py#rdb generator > should generate MySQL dependencies and templates 5`] = `
|
|
189
193
|
"FROM public.ecr.aws/lambda/python:3.14
|
|
190
194
|
|
|
191
|
-
# Patch OS packages beyond the base image's pinned release
|
|
192
|
-
#
|
|
193
|
-
|
|
195
|
+
# Patch OS packages beyond the base image's pinned release, and drop pip, whose
|
|
196
|
+
# vendored copies of msgpack and setuptools carry known HIGH vulnerabilities.
|
|
197
|
+
# The handler's dependencies are already installed in the image, so nothing
|
|
198
|
+
# installs packages at runtime.
|
|
199
|
+
RUN microdnf upgrade -y --releasever latest && microdnf clean all \\
|
|
200
|
+
&& rm -rf /var/lang/lib/python*/site-packages/pip \\
|
|
201
|
+
/var/lang/lib/python*/site-packages/pip-*.dist-info
|
|
194
202
|
|
|
195
203
|
WORKDIR \${LAMBDA_TASK_ROOT}
|
|
196
204
|
|
|
@@ -1382,9 +1390,13 @@ datefmt = %H:%M:%S
|
|
|
1382
1390
|
exports[`py#rdb generator > should generate a PostgreSQL SQLModel project with Alembic 2`] = `
|
|
1383
1391
|
"FROM public.ecr.aws/lambda/python:3.14
|
|
1384
1392
|
|
|
1385
|
-
# Patch OS packages beyond the base image's pinned release
|
|
1386
|
-
#
|
|
1387
|
-
|
|
1393
|
+
# Patch OS packages beyond the base image's pinned release, and drop pip, whose
|
|
1394
|
+
# vendored copies of msgpack and setuptools carry known HIGH vulnerabilities.
|
|
1395
|
+
# The handler's dependencies are already installed in the image, so nothing
|
|
1396
|
+
# installs packages at runtime.
|
|
1397
|
+
RUN microdnf upgrade -y --releasever latest && microdnf clean all \\
|
|
1398
|
+
&& rm -rf /var/lang/lib/python*/site-packages/pip \\
|
|
1399
|
+
/var/lang/lib/python*/site-packages/pip-*.dist-info
|
|
1388
1400
|
|
|
1389
1401
|
WORKDIR \${LAMBDA_TASK_ROOT}
|
|
1390
1402
|
|
|
@@ -1400,9 +1412,13 @@ CMD ["proj_db.migration_handler.handler"]
|
|
|
1400
1412
|
exports[`py#rdb generator > should generate a PostgreSQL SQLModel project with Alembic 3`] = `
|
|
1401
1413
|
"FROM public.ecr.aws/lambda/python:3.14
|
|
1402
1414
|
|
|
1403
|
-
# Patch OS packages beyond the base image's pinned release
|
|
1404
|
-
#
|
|
1405
|
-
|
|
1415
|
+
# Patch OS packages beyond the base image's pinned release, and drop pip, whose
|
|
1416
|
+
# vendored copies of msgpack and setuptools carry known HIGH vulnerabilities.
|
|
1417
|
+
# The handler's dependencies are already installed in the image, so nothing
|
|
1418
|
+
# installs packages at runtime.
|
|
1419
|
+
RUN microdnf upgrade -y --releasever latest && microdnf clean all \\
|
|
1420
|
+
&& rm -rf /var/lang/lib/python*/site-packages/pip \\
|
|
1421
|
+
/var/lang/lib/python*/site-packages/pip-*.dist-info
|
|
1406
1422
|
|
|
1407
1423
|
WORKDIR \${LAMBDA_TASK_ROOT}
|
|
1408
1424
|
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
FROM public.ecr.aws/lambda/python:3.14
|
|
2
2
|
|
|
3
|
-
# Patch OS packages beyond the base image's pinned release
|
|
4
|
-
#
|
|
5
|
-
|
|
3
|
+
# Patch OS packages beyond the base image's pinned release, and drop pip, whose
|
|
4
|
+
# vendored copies of msgpack and setuptools carry known HIGH vulnerabilities.
|
|
5
|
+
# The handler's dependencies are already installed in the image, so nothing
|
|
6
|
+
# installs packages at runtime.
|
|
7
|
+
RUN microdnf upgrade -y --releasever latest && microdnf clean all \
|
|
8
|
+
&& rm -rf /var/lang/lib/python*/site-packages/pip \
|
|
9
|
+
/var/lang/lib/python*/site-packages/pip-*.dist-info
|
|
6
10
|
|
|
7
11
|
WORKDIR ${LAMBDA_TASK_ROOT}
|
|
8
12
|
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
FROM public.ecr.aws/lambda/python:3.14
|
|
2
2
|
|
|
3
|
-
# Patch OS packages beyond the base image's pinned release
|
|
4
|
-
#
|
|
5
|
-
|
|
3
|
+
# Patch OS packages beyond the base image's pinned release, and drop pip, whose
|
|
4
|
+
# vendored copies of msgpack and setuptools carry known HIGH vulnerabilities.
|
|
5
|
+
# The handler's dependencies are already installed in the image, so nothing
|
|
6
|
+
# installs packages at runtime.
|
|
7
|
+
RUN microdnf upgrade -y --releasever latest && microdnf clean all \
|
|
8
|
+
&& rm -rf /var/lang/lib/python*/site-packages/pip \
|
|
9
|
+
/var/lang/lib/python*/site-packages/pip-*.dist-info
|
|
6
10
|
|
|
7
11
|
WORKDIR ${LAMBDA_TASK_ROOT}
|
|
8
12
|
|
package/src/py/rdb/generator.js
CHANGED
|
@@ -290,34 +290,35 @@ export const pyRdbGenerator = async (tree, options)=>{
|
|
|
290
290
|
}
|
|
291
291
|
};
|
|
292
292
|
if (options.infra !== 'none') {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
293
|
+
// Both images ship under either provider — Terraform pushes the locally
|
|
294
|
+
// built tags, CDK builds the same contexts as image assets — so the build
|
|
295
|
+
// and its scan are wired up for either.
|
|
296
|
+
projectConfig.targets.docker = {
|
|
297
|
+
cache: IMAGE_BUILD_CACHE,
|
|
298
|
+
executor: 'nx:run-commands',
|
|
299
|
+
options: {
|
|
300
|
+
commands: [
|
|
301
|
+
`${containerEngine} build --platform linux/arm64 --provenance=false -t ${migrationDockerImageTag} ${migrationBundleDir}`,
|
|
302
|
+
`${containerEngine} build --platform linux/arm64 --provenance=false -t ${createDbUserDockerImageTag} ${createDbUserBundleDir}`
|
|
303
|
+
],
|
|
304
|
+
parallel: false
|
|
305
|
+
},
|
|
306
|
+
dependsOn: [
|
|
307
|
+
'bundle-migration',
|
|
308
|
+
'bundle-create-db-user'
|
|
309
|
+
]
|
|
310
|
+
};
|
|
311
|
+
addArtifactDependencyToTargets(projectConfig, 'docker');
|
|
312
|
+
addDockerScanTarget(tree, {
|
|
313
|
+
project: projectConfig,
|
|
314
|
+
containerEngine,
|
|
315
|
+
trivyTargetName: 'trivy',
|
|
316
|
+
dockerTargetName: 'docker',
|
|
317
|
+
imageTags: [
|
|
318
|
+
migrationDockerImageTag,
|
|
319
|
+
createDbUserDockerImageTag
|
|
320
|
+
]
|
|
321
|
+
}, DEPENDENCIES);
|
|
321
322
|
addDependencyToTargetIfNotPresent(projectConfig, 'build', 'bundle-migration');
|
|
322
323
|
addDependencyToTargetIfNotPresent(projectConfig, 'build', 'bundle-create-db-user');
|
|
323
324
|
}
|