@aws/nx-plugin 0.118.0 → 0.119.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/package.json +1 -1
  2. package/src/infra/app/generator.js +30 -18
  3. package/src/infra/app/generator.js.map +1 -1
  4. package/src/mcp-server/tools/create-workspace-command.js +5 -0
  5. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  6. package/src/mcp-server/tools/general-guidance.js +3 -3
  7. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  8. package/src/preset/__snapshots__/generator.spec.ts.snap +5 -1
  9. package/src/preset/generator.d.ts +1 -1
  10. package/src/preset/generator.js +29 -3
  11. package/src/preset/generator.js.map +1 -1
  12. package/src/preset/git-secrets-files/git-secrets-dir/git-secrets +206 -0
  13. package/src/preset/git-secrets-files/husky-dir/pre-commit +4 -0
  14. package/src/preset/schema.d.ts +5 -0
  15. package/src/preset/schema.json +13 -0
  16. package/src/py/agent/__snapshots__/generator.spec.ts.snap +2 -2
  17. package/src/py/agent/generator.js +4 -1
  18. package/src/py/agent/generator.js.map +1 -1
  19. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
  20. package/src/py/mcp-server/generator.js +4 -1
  21. package/src/py/mcp-server/generator.js.map +1 -1
  22. package/src/smithy/project/generator.js +3 -1
  23. package/src/smithy/project/generator.js.map +1 -1
  24. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +2 -2
  25. package/src/ts/agent/generator.js +4 -1
  26. package/src/ts/agent/generator.js.map +1 -1
  27. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
  28. package/src/ts/mcp-server/generator.js +4 -1
  29. package/src/ts/mcp-server/generator.js.map +1 -1
  30. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +128 -107
  31. package/src/ts/rdb/files/scripts/docker-pull.ts.template +11 -11
  32. package/src/ts/rdb/files/scripts/docker-start.ts.template +58 -56
  33. package/src/ts/rdb/generator.js +5 -6
  34. package/src/ts/rdb/generator.js.map +1 -1
  35. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +4 -0
  36. package/src/utils/agent-core-constructs/agent-core-constructs.js +3 -1
  37. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  38. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +6 -6
  39. package/src/utils/config/index.d.ts +6 -0
  40. package/src/utils/config/index.js.map +1 -1
  41. package/src/utils/containers.d.ts +29 -0
  42. package/src/utils/containers.js +47 -0
  43. package/src/utils/containers.js.map +1 -0
  44. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
  45. package/src/utils/rdb-constructs/rdb-constructs.d.ts +2 -0
  46. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  47. package/src/utils/versions.d.ts +8 -3
  48. package/src/utils/versions.js +8 -3
  49. package/src/utils/versions.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin",
3
- "version": "0.118.0",
3
+ "version": "0.119.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/awslabs/nx-plugin-for-aws.git",
@@ -23,10 +23,22 @@ const metrics_1 = require("../../utils/metrics");
23
23
  const names_1 = require("../../utils/names");
24
24
  const pkg_manager_1 = require("../../utils/pkg-manager");
25
25
  const py_1 = require("../../utils/py");
26
+ const containers_1 = require("../../utils/containers");
26
27
  exports.INFRA_APP_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
27
28
  async function tsInfraGenerator(tree, schema) {
28
29
  const lib = (0, generator_1.getTsLibDetails)(tree, schema);
29
30
  await (0, generator_1.default)(tree, schema);
31
+ // CDK shells out to a container engine to build image assets. Default
32
+ // (docker) needs no env override; finch is set via CDK_DOCKER per
33
+ // https://docs.aws.amazon.com/cdk/v2/guide/build-containers.html#build-container-replace.
34
+ const containerEngine = await (0, containers_1.resolveContainerEngine)(tree, 'Inherit');
35
+ const cdkEnv = containerEngine === 'docker' ? undefined : { CDK_DOCKER: containerEngine };
36
+ const withCdkEnv = (opts) => {
37
+ if (!cdkEnv)
38
+ return opts;
39
+ const existingEnv = opts.env ?? {};
40
+ return { ...opts, env: { ...existingEnv, ...cdkEnv } };
41
+ };
30
42
  (0, nx_1.addGeneratorMetadata)(tree, lib.fullyQualifiedName, exports.INFRA_APP_GENERATOR_INFO);
31
43
  // Shared constructs always in CDK for typescript infra generator
32
44
  await (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
@@ -81,10 +93,10 @@ async function tsInfraGenerator(tree, schema) {
81
93
  inputs: ['default'],
82
94
  outputs: ['{workspaceRoot}/dist/{projectRoot}/cdk.out'],
83
95
  dependsOn: ['^build', 'compile'], // compile clobbers dist directory, so ensure synth runs afterwards
84
- options: {
96
+ options: withCdkEnv({
85
97
  cwd: '{projectRoot}',
86
98
  command: 'cdk synth',
87
- },
99
+ }),
88
100
  };
89
101
  config.targets.checkov = {
90
102
  cache: true,
@@ -100,53 +112,53 @@ async function tsInfraGenerator(tree, schema) {
100
112
  executor: 'nx:run-commands',
101
113
  dependsOn: ['^build', 'compile'],
102
114
  options: enableStageConfig
103
- ? {
115
+ ? withCdkEnv({
104
116
  command: `tsx packages/common/scripts/src/infra-deploy.ts ${libraryRoot}`,
105
- }
106
- : {
117
+ })
118
+ : withCdkEnv({
107
119
  cwd: '{projectRoot}',
108
120
  command: 'cdk deploy --require-approval=never',
109
- },
121
+ }),
110
122
  };
111
123
  config.targets['deploy-ci'] = {
112
124
  executor: 'nx:run-commands',
113
- options: {
125
+ options: withCdkEnv({
114
126
  cwd: '{projectRoot}',
115
127
  command: `cdk deploy --require-approval=never --app ${distDirFromProjectRoot}`,
116
- },
128
+ }),
117
129
  };
118
130
  config.targets.destroy = {
119
131
  executor: 'nx:run-commands',
120
132
  dependsOn: ['^build', 'compile'],
121
133
  options: enableStageConfig
122
- ? {
134
+ ? withCdkEnv({
123
135
  command: `tsx packages/common/scripts/src/infra-destroy.ts ${libraryRoot}`,
124
- }
125
- : {
136
+ })
137
+ : withCdkEnv({
126
138
  cwd: '{projectRoot}',
127
139
  command: 'cdk destroy --require-approval=never',
128
- },
140
+ }),
129
141
  };
130
142
  config.targets['destroy-ci'] = {
131
143
  executor: 'nx:run-commands',
132
- options: {
144
+ options: withCdkEnv({
133
145
  cwd: '{projectRoot}',
134
146
  command: `cdk destroy --require-approval=never --app ${distDirFromProjectRoot}`,
135
- },
147
+ }),
136
148
  };
137
149
  config.targets.cdk = {
138
150
  executor: 'nx:run-commands',
139
- options: {
151
+ options: withCdkEnv({
140
152
  cwd: '{projectRoot}',
141
153
  command: 'cdk',
142
- },
154
+ }),
143
155
  };
144
156
  config.targets.bootstrap = {
145
157
  executor: 'nx:run-commands',
146
- options: {
158
+ options: withCdkEnv({
147
159
  cwd: '{projectRoot}',
148
160
  command: 'cdk bootstrap',
149
- },
161
+ }),
150
162
  };
151
163
  config.targets = (0, object_1.sortObjectKeys)(config.targets);
152
164
  return config;
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/infra/app/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/infra/app/generator.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,11 @@ ${(0, commands_1.buildCreateNxWorkspaceCommand)(packageManager, '.')} --no-inter
33
33
 
34
34
  Note that this will prompt for an Infrastructure as Code provider (${iac_providers_1.IAC_PROVIDERS.join(', ')}).
35
35
  If you know the preferred option, pass ${iac_providers_1.IAC_PROVIDERS.map((iac) => `\`--iacProvider=${iac}\``).join(' or ')} to the above command to skip the prompt.
36
+
37
+ Additional options:
38
+ - \`--no-gitSecrets\`: Opt out of the default git-secrets pre-commit hook (prevents committing AWS credentials)
39
+
40
+ Refer to the \`general-guidance\` tool for full workspace documentation including structure, common commands, and configuration.
36
41
  `,
37
42
  },
38
43
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"create-workspace-command.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/mcp-server/tools/create-workspace-command.ts"],"names":[],"mappings":";;;AAKA,sCAAiD;AACjD,6DAA0D;AAC1D,mDAAqE;AAErE;;GAEG;AACI,MAAM,6BAA6B,GAAG,CAAC,MAAiB,EAAE,EAAE;IACjE,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EACT,oEAAoE;QACtE,WAAW,EAAE;YACX,cAAc,EAAE,6BAAoB;SACrC;KACF,EACD,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE;;;EAGd,IAAA,wCAA6B,EAAC,cAAc,EAAE,kBAAkB,CAAC;;;;;;;;EAQjE,IAAA,wCAA6B,EAAC,cAAc,EAAE,GAAG,CAAC;;;qEAGiB,6BAAa,CAAC,IAAI,CAAC,IAAI,CAAC;yCACpD,6BAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;GACzG;aACM;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,6BAA6B,iCAmCxC"}
1
+ {"version":3,"file":"create-workspace-command.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/mcp-server/tools/create-workspace-command.ts"],"names":[],"mappings":";;;AAKA,sCAAiD;AACjD,6DAA0D;AAC1D,mDAAqE;AAErE;;GAEG;AACI,MAAM,6BAA6B,GAAG,CAAC,MAAiB,EAAE,EAAE;IACjE,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EACT,oEAAoE;QACtE,WAAW,EAAE;YACX,cAAc,EAAE,6BAAoB;SACrC;KACF,EACD,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE;;;EAGd,IAAA,wCAA6B,EAAC,cAAc,EAAE,kBAAkB,CAAC;;;;;;;;EAQjE,IAAA,wCAA6B,EAAC,cAAc,EAAE,GAAG,CAAC;;;qEAGiB,6BAAa,CAAC,IAAI,CAAC,IAAI,CAAC;yCACpD,6BAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;GAMzG;aACM;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAxCW,QAAA,6BAA6B,iCAwCxC"}
@@ -65,11 +65,11 @@ ${schema_1.PACKAGE_MANAGERS.map((pm) => (0, generator_info_1.buildNxCommand)('<o
65
65
  - After making changes to your projects, fix linting issues, then run a full build
66
66
  - When it's time to start testing a project, suggest to the user that infrastructure is deployed to AWS. For websites, if a runtime-config.json is needed, use the load:runtime-config target after a deployment to point a local website at a sandbox stack.
67
67
 
68
- ## Language Specific Guidance
68
+ ## Detailed Guides
69
69
 
70
- Please refer to the below documentation for important details regarding working with any TypeScript or Python projects.
70
+ Please refer to the below documentation for important details regarding workspaces and working with TypeScript or Python projects.
71
71
 
72
- ${await (0, generator_info_1.fetchGuidePages)(['typescript-project', 'python-project'], generators)}
72
+ ${await (0, generator_info_1.fetchGuidePages)(['workspace', 'typescript-project', 'python-project'], generators)}
73
73
 
74
74
  `,
75
75
  },
@@ -1 +1 @@
1
- {"version":3,"file":"general-guidance.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/mcp-server/tools/general-guidance.ts"],"names":[],"mappings":";;;AAMA,sCAA6C;AAC7C,sDAAoE;AACpE,6DAA0D;AAE7C,QAAA,oBAAoB,GAAG;;;;;gGAK4D,CAAC;AAEjG;;GAEG;AACI,MAAM,sBAAsB,GAAG,CACpC,MAAiB,EACjB,UAA6B,EAC7B,EAAE;IACF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,oFAAoF;KACvF,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE;;EAEd,4BAAoB;;;;2DAIqC,yBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;iFACL,6BAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;EAOvG,yBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,+BAAc,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC3E,MAAM,IAAA,gCAAe,EAAC,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,EAAE,UAAU,CAAC;;KAExE;aACI;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAtEW,QAAA,sBAAsB,0BAsEjC"}
1
+ {"version":3,"file":"general-guidance.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/mcp-server/tools/general-guidance.ts"],"names":[],"mappings":";;;AAMA,sCAA6C;AAC7C,sDAAoE;AACpE,6DAA0D;AAE7C,QAAA,oBAAoB,GAAG;;;;;gGAK4D,CAAC;AAEjG;;GAEG;AACI,MAAM,sBAAsB,GAAG,CACpC,MAAiB,EACjB,UAA6B,EAC7B,EAAE;IACF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,oFAAoF;KACvF,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE;;EAEd,4BAAoB;;;;2DAIqC,yBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;iFACL,6BAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;EAOvG,yBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,+BAAc,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC3E,MAAM,IAAA,gCAAe,EAAC,CAAC,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,EAAE,UAAU,CAAC;;KAErF;aACI;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAtEW,QAAA,sBAAsB,0BAsEjC"}
@@ -168,7 +168,10 @@ Learn more:
168
168
  exports[`preset generator > should run successfully > aws-nx-plugin.config.mts 1`] = `
169
169
  "import { AwsNxPluginConfig } from '@aws/nx-plugin';
170
170
 
171
- export default { iac: { provider: 'CDK' } } satisfies AwsNxPluginConfig;
171
+ export default {
172
+ iac: { provider: 'CDK' },
173
+ containers: { engine: 'docker' },
174
+ } satisfies AwsNxPluginConfig;
172
175
  "
173
176
  `;
174
177
 
@@ -211,6 +214,7 @@ exports[`preset generator > should run successfully > package.json 1`] = `
211
214
  "scripts": {
212
215
  "build": "nx run-many --target build",
213
216
  "lint": "nx run-many --target lint --configuration=fix",
217
+ "test": "nx run-many --target test --all",
214
218
  "build:skip-lint": "nx run-many --target build --configuration=skip-lint",
215
219
  "build:all": "nx run-many --target build --all",
216
220
  "affected:all": "nx affected --target build"
@@ -29,5 +29,5 @@ export declare const PRESET_GENERATOR_INFO: NxGeneratorInfo;
29
29
  * isAmazonian(); // false
30
30
  */
31
31
  export declare function isAmazonian(): boolean;
32
- export declare const presetGenerator: (tree: Tree, { addTsPlugin, iacProvider }: PresetGeneratorSchema) => Promise<GeneratorCallback>;
32
+ export declare const presetGenerator: (tree: Tree, { addTsPlugin, iacProvider, gitSecrets, containerEngine, }: PresetGeneratorSchema) => Promise<GeneratorCallback>;
33
33
  export default presetGenerator;
@@ -17,9 +17,11 @@ const package_json_1 = require("nx/src/utils/package-json");
17
17
  const npm_scope_1 = require("../utils/npm-scope");
18
18
  const generators_json_1 = tslib_1.__importDefault(require("../../generators.json"));
19
19
  const child_process_1 = require("child_process");
20
+ const fs_1 = require("fs");
20
21
  const enquirer = tslib_1.__importStar(require("enquirer"));
21
22
  const utils_1 = require("../utils/config/utils");
22
23
  const generator_1 = require("../ts/sync/generator");
24
+ const containers_1 = require("../utils/containers");
23
25
  const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
24
26
  const WORKSPACES = ['packages/*'];
25
27
  const NX_TYPESCRIPT_SYNC_GENERATOR = '@nx/js:typescript-sync';
@@ -93,7 +95,24 @@ function isAmazonian() {
93
95
  return false;
94
96
  }
95
97
  }
96
- const presetGenerator = async (tree, { addTsPlugin, iacProvider }) => {
98
+ const setUpGitSecrets = (tree) => {
99
+ const gitSecretsDir = (0, devkit_1.joinPathFragments)(__dirname, 'git-secrets-files', 'git-secrets-dir');
100
+ const huskyDir = (0, devkit_1.joinPathFragments)(__dirname, 'git-secrets-files', 'husky-dir');
101
+ tree.write('.git-secrets/git-secrets', (0, fs_1.readFileSync)((0, devkit_1.joinPathFragments)(gitSecretsDir, 'git-secrets'), 'utf-8'));
102
+ tree.write('.husky/pre-commit', (0, fs_1.readFileSync)((0, devkit_1.joinPathFragments)(huskyDir, 'pre-commit'), 'utf-8'));
103
+ (0, devkit_1.updateJson)(tree, 'package.json', (json) => ({
104
+ ...json,
105
+ scripts: {
106
+ ...json.scripts,
107
+ prepare: 'husky',
108
+ },
109
+ }));
110
+ (0, devkit_1.addDependenciesToPackageJson)(tree, {}, (0, versions_1.withVersions)(['husky']));
111
+ };
112
+ const presetGenerator = async (tree, { addTsPlugin, iacProvider, gitSecrets, containerEngine, }) => {
113
+ const resolvedContainerEngine = !containerEngine || containerEngine === 'infer'
114
+ ? (0, containers_1.inferContainerEngine)()
115
+ : containerEngine;
97
116
  if (isAmazonian() &&
98
117
  !process.env.VITEST &&
99
118
  !process.env.CI &&
@@ -112,9 +131,12 @@ const presetGenerator = async (tree, { addTsPlugin, iacProvider }) => {
112
131
  await (0, utils_1.updateAwsNxPluginConfig)(tree, { tags: [engagementId] });
113
132
  }
114
133
  }
115
- // Write IaC provider to plugin config
134
+ // Write IaC provider and container engine to plugin config
116
135
  await (0, utils_1.ensureAwsNxPluginConfig)(tree);
117
- await (0, utils_1.updateAwsNxPluginConfig)(tree, { iac: { provider: iacProvider } });
136
+ await (0, utils_1.updateAwsNxPluginConfig)(tree, {
137
+ iac: { provider: iacProvider },
138
+ containers: { engine: resolvedContainerEngine },
139
+ });
118
140
  await (0, js_1.initGenerator)(tree, {
119
141
  formatter: 'prettier',
120
142
  addTsPlugin: addTsPlugin ?? true,
@@ -146,6 +168,7 @@ const presetGenerator = async (tree, { addTsPlugin, iacProvider }) => {
146
168
  ...packageJson.scripts,
147
169
  build: 'nx run-many --target build',
148
170
  lint: 'nx run-many --target lint --configuration=fix',
171
+ test: 'nx run-many --target test --all',
149
172
  'build:skip-lint': 'nx run-many --target build --configuration=skip-lint',
150
173
  'build:all': 'nx run-many --target build --all',
151
174
  'affected:all': 'nx affected --target build',
@@ -173,6 +196,9 @@ const presetGenerator = async (tree, { addTsPlugin, iacProvider }) => {
173
196
  }, {
174
197
  overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
175
198
  });
199
+ if (gitSecrets !== false) {
200
+ setUpGitSecrets(tree);
201
+ }
176
202
  await (0, format_1.formatFilesInSubtree)(tree);
177
203
  return () => {
178
204
  (0, devkit_1.installPackagesTask)(tree);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/preset/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/preset/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License").
5
+ # You may not use this file except in compliance with the License.
6
+ # A copy of the License is located at
7
+ #
8
+ # http://aws.amazon.com/apache2.0
9
+ #
10
+ # or in the "license" file accompanying this file. This file is distributed
11
+ # on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12
+ # express or implied. See the License for the specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+ load_patterns() {
16
+ git config --get-all secrets.patterns
17
+ git config --get-all secrets.providers | while read -r cmd; do
18
+ local result="$(export IFS=$'\n\t '; $cmd | tr -d $'\r')"
19
+ if [ -n "${result}" ]; then
20
+ echo "${result}"
21
+ fi
22
+ done
23
+ }
24
+
25
+ load_allowed() {
26
+ git config --get-all secrets.allowed
27
+ local gitallowed="$(git rev-parse --show-toplevel)/.gitallowed"
28
+ if [ -e "$gitallowed" ]; then
29
+ cat "$gitallowed" | awk 'NF && $1!~/^#/'
30
+ fi
31
+ }
32
+
33
+ load_combined_patterns() {
34
+ local patterns=$(load_patterns)
35
+ local combined_patterns=''
36
+ for pattern in $patterns; do
37
+ combined_patterns=${combined_patterns}${pattern}"|"
38
+ done
39
+ combined_patterns=${combined_patterns%?}
40
+ echo "$combined_patterns"
41
+ }
42
+
43
+ scan() {
44
+ local files=("${@}") options=""
45
+ [ "${SCAN_CACHED}" == 1 ] && options+="--cached"
46
+ [ "${SCAN_UNTRACKED}" == 1 ] && options+=" --untracked"
47
+ [ "${SCAN_NO_INDEX}" == 1 ] && options+=" --no-index"
48
+ if [ ${#files[@]} -eq 0 ] || [ ! -z "${options}" ]; then
49
+ output=$(git_grep $options "${files[@]}")
50
+ else
51
+ output=$(regular_grep "${files[@]}")
52
+ fi
53
+ process_output $? "${output}"
54
+ }
55
+
56
+ git_grep() {
57
+ local options="$1"; shift
58
+ local files=("${@}") combined_patterns=$(load_combined_patterns)
59
+ [ -z "${combined_patterns}" ] && return 1
60
+ GREP_OPTIONS= LC_ALL=C git grep -nwHEI ${options} "${combined_patterns}" -- "${files[@]}"
61
+ }
62
+
63
+ regular_grep() {
64
+ local files=("${@}") patterns=$(load_patterns) action='skip'
65
+ [ -z "${patterns}" ] && return 1
66
+ [ ${RECURSIVE} -eq 1 ] && action="recurse"
67
+ GREP_OPTIONS= LC_ALL=C grep -d "${action}" -nwHEI "${patterns}" "${files[@]}"
68
+ }
69
+
70
+ process_output() {
71
+ local status="$1" output="$2"
72
+ local allowed=$(load_allowed)
73
+ case "$status" in
74
+ 0)
75
+ [ -z "${allowed}" ] && echo "${output}" >&2 && return 1
76
+ echo "${output}" | GREP_OPTIONS= LC_ALL=C grep -Ev "${allowed}" >&2 \
77
+ && return 1 || return 0
78
+ ;;
79
+ 1) return 0 ;;
80
+ *) exit $status
81
+ esac
82
+ }
83
+
84
+ scan_with_fn_or_die() {
85
+ local fn="$1"; shift
86
+ $fn "$@" && exit 0
87
+ echo >&2
88
+ echo "[ERROR] Matched one or more prohibited patterns" >&2
89
+ echo >&2
90
+ echo "Possible mitigations:" >&2
91
+ echo "- Mark false positives as allowed using: git config --add secrets.allowed ..." >&2
92
+ echo "- Mark false positives as allowed by adding regular expressions to .gitallowed at repository's root directory" >&2
93
+ echo "- List your configured patterns: git config --get-all secrets.patterns" >&2
94
+ echo "- List your configured allowed patterns: git config --get-all secrets.allowed" >&2
95
+ echo "- Use --no-verify if this is a one-time false positive" >&2
96
+ exit 1
97
+ }
98
+
99
+ pre_commit_hook() {
100
+ SCAN_CACHED=1
101
+ local files=() file rev="4b825dc642cb6eb9a060e54bf8d69288fbee4904"
102
+ git rev-parse --verify HEAD >/dev/null 2>&1 && rev="HEAD"
103
+ while IFS= read -r file; do
104
+ [ -n "$file" ] && files+=("$file")
105
+ done <<< "$(git diff-index --diff-filter 'ACMU' --name-only --cached $rev --)"
106
+ [ ${#files[@]} -eq 0 ] && exit 0
107
+ scan_with_fn_or_die "scan" "${files[@]}"
108
+ }
109
+
110
+ commit_msg_hook() {
111
+ scan_with_fn_or_die "scan" "$1"
112
+ }
113
+
114
+ prepare_commit_msg_hook() {
115
+ case "$2,$3" in
116
+ merge,)
117
+ local git_head=$(env | grep GITHEAD)
118
+ local sha="${git_head##*=}"
119
+ local branch=$(git symbolic-ref HEAD)
120
+ local dest="${branch#refs/heads/}"
121
+ git log "${dest}".."${sha}" -p | scan_with_fn_or_die "scan" -
122
+ ;;
123
+ esac
124
+ }
125
+
126
+ add_config() {
127
+ local key="$1"; shift
128
+ local value="$@"
129
+ if [ ${LITERAL} -eq 1 ]; then
130
+ value=$(sed 's/[\.|$(){}?+*^]/\\&/g' <<< "${value}")
131
+ fi
132
+ if [ ${GLOBAL} -eq 1 ]; then
133
+ git config --global --get-all $key | grep -Fq "${value}" && return 1
134
+ git config --global --add "${key}" "${value}"
135
+ else
136
+ git config --get-all $key | grep -Fq "${value}" && return 1
137
+ git config --add "${key}" "${value}"
138
+ fi
139
+ }
140
+
141
+ register_aws() {
142
+ local aws="(AWS|aws|Aws)?_?" quote="(\"|')" connect="\s*(:|=>|=)\s*"
143
+ local opt_quote="${quote}?"
144
+ add_config 'secrets.providers' 'bash .git-secrets/git-secrets --aws-provider'
145
+ add_config 'secrets.patterns' '(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}'
146
+ add_config 'secrets.patterns' 'ABSK[A-Za-z0-9+/]{109,}=*'
147
+ add_config 'secrets.patterns' 'bedrock-api-key-YmVkcm9jay5hbWF6b25hd3MuY29t'
148
+ add_config 'secrets.patterns' "${opt_quote}${aws}(SECRET|secret|Secret)?_?(ACCESS|access|Access)?_?(KEY|key|Key)${opt_quote}${connect}${opt_quote}[A-Za-z0-9/\+=]{40}${opt_quote}"
149
+ add_config 'secrets.patterns' "${opt_quote}${aws}(ACCOUNT|account|Account)_?(ID|id|Id)?${opt_quote}${connect}${opt_quote}[0-9]{4}\-?[0-9]{4}\-?[0-9]{4}${opt_quote}"
150
+ add_config 'secrets.allowed' 'AKIAIOSFODNN7EXAMPLE'
151
+ add_config 'secrets.allowed' "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
152
+ }
153
+
154
+ aws_provider() {
155
+ local fi="$1"
156
+ [ -z "$fi" ] && fi=~/.aws/credentials
157
+ if [ -f "$fi" ]; then
158
+ awk -F "=" '/aws_access_key_id|aws_secret_access_key/ {print $2}' "$fi" \
159
+ | tr -d ' "' \
160
+ | sed 's/[]\.|$(){}?+*^]/\\&/g'
161
+ fi
162
+ }
163
+
164
+ declare RECURSIVE=0 LITERAL=0 GLOBAL=0 ALLOWED=0
165
+ declare SCAN_CACHED=0 SCAN_NO_INDEX=0 SCAN_UNTRACKED=0
166
+
167
+ COMMAND="$1"
168
+ shift 1
169
+
170
+ while [ "$#" -ne 0 ]; do
171
+ case "$1" in
172
+ -r) RECURSIVE=1 ;;
173
+ -l) LITERAL=1 ;;
174
+ -a) ALLOWED=1 ;;
175
+ --cached) SCAN_CACHED=1 ;;
176
+ --no-index) SCAN_NO_INDEX=1 ;;
177
+ --untracked) SCAN_UNTRACKED=1 ;;
178
+ --global) GLOBAL=1 ;;
179
+ --) shift; break ;;
180
+ esac
181
+ shift
182
+ done
183
+
184
+ case "${COMMAND}" in
185
+ --register-aws) register_aws ;;
186
+ --aws-provider) aws_provider "$1" ;;
187
+ --pre_commit_hook|--pre-commit-hook) pre_commit_hook "$@" ;;
188
+ --commit_msg_hook|--commit-msg-hook) commit_msg_hook "$@" ;;
189
+ --prepare_commit_msg_hook|--prepare-commit-msg-hook) prepare_commit_msg_hook "$@" ;;
190
+ --scan) scan_with_fn_or_die "scan" "$@" ;;
191
+ --add)
192
+ if [ ${ALLOWED} -eq 1 ]; then
193
+ add_config "secrets.allowed" "$1"
194
+ else
195
+ add_config "secrets.patterns" "$1"
196
+ fi
197
+ ;;
198
+ --list)
199
+ if [ ${GLOBAL} -eq 1 ]; then
200
+ git config --global --get-regex secrets.*
201
+ else
202
+ git config --get-regex secrets.*
203
+ fi
204
+ ;;
205
+ *) echo "Usage: git-secrets [--scan|--register-aws|--pre_commit_hook|--commit_msg_hook|--list|--add]" >&2; exit 1 ;;
206
+ esac
@@ -0,0 +1,4 @@
1
+ if ! git config --get-all secrets.patterns >/dev/null 2>&1; then
2
+ bash .git-secrets/git-secrets --register-aws
3
+ fi
4
+ bash .git-secrets/git-secrets --pre_commit_hook
@@ -3,8 +3,13 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { IacProvider } from '../utils/iac';
6
+ import { ContainerEngine } from '../utils/containers';
7
+
8
+ export type PresetContainerEngineOption = ContainerEngine | 'infer';
6
9
 
7
10
  export interface PresetGeneratorSchema {
8
11
  readonly addTsPlugin?: boolean;
9
12
  readonly iacProvider: IacProvider;
13
+ readonly gitSecrets?: boolean;
14
+ readonly containerEngine?: PresetContainerEngineOption;
10
15
  }
@@ -17,6 +17,19 @@
17
17
  "default": "CDK",
18
18
  "x-priority": "important",
19
19
  "x-prompt": "Which provider would you like to manage your infrastructure?"
20
+ },
21
+ "gitSecrets": {
22
+ "type": "boolean",
23
+ "description": "Whether to configure git-secrets to prevent committing AWS credentials.",
24
+ "default": true
25
+ },
26
+ "containerEngine": {
27
+ "type": "string",
28
+ "description": "The container engine to use for build/push/login. 'infer' picks docker if installed, otherwise finch (falling back to docker when neither is installed).",
29
+ "enum": ["infer", "docker", "finch"],
30
+ "default": "infer",
31
+ "x-priority": "important",
32
+ "x-prompt": "Which container engine would you like to use? (default: infer)"
20
33
  }
21
34
  }
22
35
  }
@@ -523,12 +523,12 @@ resource "aws_iam_role_policy_attachment" "agent_core_policy" {
523
523
  policy_arn = aws_iam_policy.agent_core_runtime_policy.arn
524
524
  }
525
525
 
526
- # Data source to get Docker image digest
526
+ # Data source to get container image digest
527
527
  data "external" "docker_digest" {
528
528
  program = ["sh", "-c", "echo '{\\"digest\\":\\"'$(docker inspect \${var.docker_image_tag} --format '{{.Id}}')'\\"}' "]
529
529
  }
530
530
 
531
- # Null resource for Docker publish
531
+ # Null resource for container image publish
532
532
  resource "null_resource" "docker_publish" {
533
533
  triggers = {
534
534
  docker_digest = data.external.docker_digest.result.digest
@@ -23,6 +23,7 @@ const npm_scope_1 = require("../../utils/npm-scope");
23
23
  const shared_constructs_1 = require("../../utils/shared-constructs");
24
24
  const nxlv_python_1 = require("../../utils/nxlv-python");
25
25
  const iac_1 = require("../../utils/iac");
26
+ const containers_1 = require("../../utils/containers");
26
27
  const port_1 = require("../../utils/port");
27
28
  const paths_1 = require("../../utils/paths");
28
29
  exports.PY_AGENT_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
@@ -85,6 +86,7 @@ const pyAgentGenerator = async (tree, options) => {
85
86
  'fastapi[standard]',
86
87
  ]);
87
88
  if (computeType === 'BedrockAgentCoreRuntime') {
89
+ const containerEngine = await (0, containers_1.resolveContainerEngine)(tree, 'Inherit');
88
90
  const dockerImageTag = `${(0, npm_scope_1.getNpmScope)(tree)}-${name}:latest`;
89
91
  // Add bundle target
90
92
  const { bundleTargetName, bundleOutputDir } = (0, bundle_1.addPythonBundleTarget)(project, {
@@ -110,7 +112,7 @@ const pyAgentGenerator = async (tree, options) => {
110
112
  fs.mkdir(dockerOutputDir),
111
113
  fs.cp(bundleOutputDir, dockerOutputDir),
112
114
  fs.cp(`${targetSourceDir}/Dockerfile`, `${dockerOutputDir}/Dockerfile`),
113
- `docker build --platform linux/arm64 -t ${dockerImageTag} ${dockerOutputDir}`,
115
+ `${containerEngine} build --platform linux/arm64 -t ${dockerImageTag} ${dockerOutputDir}`,
114
116
  ],
115
117
  parallel: false,
116
118
  },
@@ -133,6 +135,7 @@ const pyAgentGenerator = async (tree, options) => {
133
135
  projectName: project.name,
134
136
  auth,
135
137
  serverProtocol: infraProtocol,
138
+ containerEngine,
136
139
  });
137
140
  }
138
141
  // A2A servers use port 9000 as per the Strands A2A SDK default and AgentCore A2A contract.