@adobe/helix-deploy 13.1.24 → 13.2.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ # [13.2.0](https://github.com/adobe/helix-deploy/compare/v13.1.25...v13.2.0) (2025-11-25)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * always get api-id for updateLinks ([67a1fc5](https://github.com/adobe/helix-deploy/commit/67a1fc560cf7429504e1c8d8ee4a56c80e3f15a1))
7
+ * remove createApi config option ([6760c4b](https://github.com/adobe/helix-deploy/commit/6760c4b72b689f8b1ed942228301f4077232c518))
8
+
9
+
10
+ ### Features
11
+
12
+ * create routes & links options ([2c1b387](https://github.com/adobe/helix-deploy/commit/2c1b38766d1a211fe6db5ed2ad7b009e171536d3))
13
+
14
+ ## [13.1.25](https://github.com/adobe/helix-deploy/compare/v13.1.24...v13.1.25) (2025-11-25)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **deps:** update external fixes to v3.928.0 ([#867](https://github.com/adobe/helix-deploy/issues/867)) ([772beff](https://github.com/adobe/helix-deploy/commit/772beff0efe17fd859043ff81089404c12ba8421))
20
+
1
21
  ## [13.1.24](https://github.com/adobe/helix-deploy/compare/v13.1.23...v13.1.24) (2025-11-24)
2
22
 
3
23
 
package/README.md CHANGED
@@ -35,6 +35,12 @@
35
35
 
36
36
  The deploy parameters can be specifies in the CLI via `-p`. See below.
37
37
 
38
+ ## Developing
39
+
40
+ 1. Install dependencies once with `npm install`.
41
+ 2. Run the linter via `npm run lint`.
42
+ 3. Run the unit-test suite with `npm test`. The script runs `c8 mocha -i -g Integration`, so tests explicitly tagged as "Integration" are skipped.
43
+
38
44
  ## CLI
39
45
 
40
46
  The command line interface `hedy` can either be invoked via `./node_modules/.bin/hedy`.
@@ -123,6 +129,7 @@ AWS Deployment Options
123
129
  --aws-cleanup-integrations Cleans up unused integrations [boolean] [default: false]
124
130
  --aws-cleanup-versions Cleans up unused versions [boolean] [default: false]
125
131
  --aws-create-routes Create routes for function (usually not needed due to proxy function). [boolean] [default: false]
132
+ --aws-link-routes Create or update routes, integrations, permissions, and authorizers when linking versions. [boolean] [default: true]
126
133
  --aws-create-authorizer Creates API Gateway authorizer using lambda authorization with this function and the specified name. The string can contain placeholders (note that all dots ('.') are replaced with underscores. Example: "helix-authorizer_${version}". [string]
127
134
  --aws-attach-authorizer Attach specified authorizer to routes during linking. [string]
128
135
  --aws-lambda-format Format to use to create lambda functions (note that all dots ('.') will be replaced with underscores. [string] [default: "${packageName}--${baseName}"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/helix-deploy",
3
- "version": "13.1.24",
3
+ "version": "13.2.0",
4
4
  "description": "Library and Commandline Tools to build and deploy OpenWhisk Actions",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/adobe/helix-deploy#readme",
@@ -39,12 +39,12 @@
39
39
  "dependencies": {
40
40
  "@adobe/fetch": "4.2.3",
41
41
  "@adobe/helix-shared-process-queue": "3.1.3",
42
- "@aws-sdk/client-apigatewayv2": "3.927.0",
43
- "@aws-sdk/client-lambda": "3.927.0",
44
- "@aws-sdk/client-s3": "3.927.0",
45
- "@aws-sdk/client-secrets-manager": "3.927.0",
46
- "@aws-sdk/client-ssm": "3.927.0",
47
- "@aws-sdk/client-sts": "3.927.0",
42
+ "@aws-sdk/client-apigatewayv2": "3.928.0",
43
+ "@aws-sdk/client-lambda": "3.928.0",
44
+ "@aws-sdk/client-s3": "3.928.0",
45
+ "@aws-sdk/client-secrets-manager": "3.928.0",
46
+ "@aws-sdk/client-ssm": "3.928.0",
47
+ "@aws-sdk/client-sts": "3.928.0",
48
48
  "@google-cloud/functions": "4.2.1",
49
49
  "@google-cloud/secret-manager": "6.1.1",
50
50
  "@google-cloud/storage": "7.17.3",
@@ -75,6 +75,7 @@
75
75
  "mocha-multi-reporters": "1.5.1",
76
76
  "nock": "13.5.6",
77
77
  "semantic-release": "25.0.2",
78
+ "xml2js": "0.6.2",
78
79
  "yauzl": "3.2.0"
79
80
  },
80
81
  "engines": {
@@ -19,6 +19,7 @@ export default class AWSConfig {
19
19
  region: '',
20
20
  role: '',
21
21
  apiId: '',
22
+ linkRoutes: true,
22
23
  cleanUpIntegrations: false,
23
24
  cleanUpVersions: false,
24
25
  createRoutes: false,
@@ -49,6 +50,7 @@ export default class AWSConfig {
49
50
  .withAWSCreateAuthorizer(argv.awsCreateAuthorizer)
50
51
  .withAWSAttachAuthorizer(argv.awsAttachAuthorizer)
51
52
  .withAWSIdentitySources(argv.awsIdentitySource)
53
+ .withAWSLinkRoutes(argv.awsLinkRoutes)
52
54
  .withAWSCleanUpIntegrations(argv.awsCleanupIntegrations)
53
55
  .withAWSCleanUpVersions(argv.awsCleanupVersions)
54
56
  .withAWSCreateRoutes(argv.awsCreateRoutes)
@@ -101,6 +103,11 @@ export default class AWSConfig {
101
103
  return this;
102
104
  }
103
105
 
106
+ withAWSLinkRoutes(value) {
107
+ this.linkRoutes = value;
108
+ return this;
109
+ }
110
+
104
111
  withAWSCreateRoutes(value) {
105
112
  this.createRoutes = value;
106
113
  return this;
@@ -172,7 +179,7 @@ export default class AWSConfig {
172
179
  static yarg(yargs) {
173
180
  return yargs
174
181
  .group(['aws-region', 'aws-api', 'aws-role', 'aws-cleanup-buckets', 'aws-cleanup-integrations',
175
- 'aws-cleanup-versions', 'aws-create-routes', 'aws-create-authorizer', 'aws-attach-authorizer',
182
+ 'aws-cleanup-versions', 'aws-link-routes', 'aws-create-routes', 'aws-create-authorizer', 'aws-attach-authorizer',
176
183
  'aws-lambda-format', 'aws-parameter-manager', 'aws-deploy-template', 'aws-arch', 'aws-update-secrets',
177
184
  'aws-deploy-bucket', 'aws-identity-source', 'aws-log-format', 'aws-layers',
178
185
  'aws-tracing-mode', 'aws-extra-permissions', 'aws-tags', 'aws-handler'], 'AWS Deployment Options')
@@ -201,6 +208,11 @@ export default class AWSConfig {
201
208
  type: 'boolean',
202
209
  default: false,
203
210
  })
211
+ .option('aws-link-routes', {
212
+ description: 'Create or update routes, integrations, permissions, and authorizers when linking versions.',
213
+ type: 'boolean',
214
+ default: true,
215
+ })
204
216
  .option('aws-parameter-manager', {
205
217
  description: 'Manager to use for storing package params. (either "secret" for Secrets Manager or "system" for System Manager)',
206
218
  type: 'string',
@@ -491,12 +491,17 @@ export default class AWSDeployer extends BaseDeployer {
491
491
 
492
492
  async createAPI() {
493
493
  const { cfg } = this;
494
+ const requestedApiId = this._cfg.apiId;
494
495
  const { ApiId, ApiEndpoint } = await this.initApiId();
495
496
  this._functionURL = `${ApiEndpoint}${this.functionPath}`;
496
497
 
498
+ if (requestedApiId !== 'create') {
499
+ return;
500
+ }
501
+
497
502
  // check for stage
498
503
  const res = await this._api.send(new GetStagesCommand({
499
- ApiId: this._cfg.apiId,
504
+ ApiId,
500
505
  }));
501
506
  const stage = res.Items.find((s) => s.StageName === '$default');
502
507
  if (!stage) {
@@ -838,6 +843,15 @@ export default class AWSDeployer extends BaseDeployer {
838
843
  const { cfg, functionName } = this;
839
844
  const { ApiId } = await this.initApiId();
840
845
  const functionVersion = cfg.version.replace(/\./g, '_');
846
+ const shouldLinkRoutes = this._cfg.linkRoutes !== false;
847
+
848
+ let routes = [];
849
+ if (shouldLinkRoutes) {
850
+ this.log.info(chalk`--: fetching routes ...`);
851
+ routes = await this.fetchRoutes(ApiId);
852
+ } else {
853
+ this.log.info(chalk`--: skipping route linking per configuration.`);
854
+ }
841
855
 
842
856
  let res;
843
857
  let incrementalVersion;
@@ -856,10 +870,6 @@ export default class AWSDeployer extends BaseDeployer {
856
870
  throw e;
857
871
  }
858
872
 
859
- // get all the routes
860
- this.log.info(chalk`--: fetching routes ...`);
861
- const routes = await this.fetchRoutes(ApiId);
862
-
863
873
  // create routes for each symlink
864
874
  const sfx = this.getLinkVersions();
865
875
 
@@ -867,6 +877,12 @@ export default class AWSDeployer extends BaseDeployer {
867
877
  // create or update alias
868
878
  const aliasArn = await this.createOrUpdateAlias(suffix.replace('.', '_'), functionName, incrementalVersion);
869
879
 
880
+ if (!shouldLinkRoutes) {
881
+ this.log.info(chalk`--: skipped route updates for link {blue ${suffix}} (linkRoutes disabled).`);
882
+ // eslint-disable-next-line no-continue
883
+ continue;
884
+ }
885
+
870
886
  // find or create integration
871
887
  let integration = await this.findIntegration(ApiId, aliasArn);
872
888
  if (integration) {