@adobe/helix-deploy 13.1.25 → 13.2.1
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 +20 -0
- package/README.md +7 -0
- package/package.json +10 -9
- package/src/deploy/AWSConfig.js +13 -1
- package/src/deploy/AWSDeployer.js +21 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
## [13.2.1](https://github.com/adobe/helix-deploy/compare/v13.2.0...v13.2.1) (2025-12-02)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **deps:** update external fixes ([#868](https://github.com/adobe/helix-deploy/issues/868)) ([3c6b031](https://github.com/adobe/helix-deploy/commit/3c6b03166db4e1f7f8e48d800ce2812a7c9095dd))
|
|
7
|
+
|
|
8
|
+
# [13.2.0](https://github.com/adobe/helix-deploy/compare/v13.1.25...v13.2.0) (2025-11-25)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* always get api-id for updateLinks ([67a1fc5](https://github.com/adobe/helix-deploy/commit/67a1fc560cf7429504e1c8d8ee4a56c80e3f15a1))
|
|
14
|
+
* remove createApi config option ([6760c4b](https://github.com/adobe/helix-deploy/commit/6760c4b72b689f8b1ed942228301f4077232c518))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* create routes & links options ([2c1b387](https://github.com/adobe/helix-deploy/commit/2c1b38766d1a211fe6db5ed2ad7b009e171536d3))
|
|
20
|
+
|
|
1
21
|
## [13.1.25](https://github.com/adobe/helix-deploy/compare/v13.1.24...v13.1.25) (2025-11-25)
|
|
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
|
|
3
|
+
"version": "13.2.1",
|
|
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.
|
|
43
|
-
"@aws-sdk/client-lambda": "3.
|
|
44
|
-
"@aws-sdk/client-s3": "3.
|
|
45
|
-
"@aws-sdk/client-secrets-manager": "3.
|
|
46
|
-
"@aws-sdk/client-ssm": "3.
|
|
47
|
-
"@aws-sdk/client-sts": "3.
|
|
42
|
+
"@aws-sdk/client-apigatewayv2": "3.933.0",
|
|
43
|
+
"@aws-sdk/client-lambda": "3.933.0",
|
|
44
|
+
"@aws-sdk/client-s3": "3.933.0",
|
|
45
|
+
"@aws-sdk/client-secrets-manager": "3.933.0",
|
|
46
|
+
"@aws-sdk/client-ssm": "3.933.0",
|
|
47
|
+
"@aws-sdk/client-sts": "3.933.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",
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
"yargs": "18.0.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@adobe/eslint-config-helix": "3.0.
|
|
63
|
+
"@adobe/eslint-config-helix": "3.0.15",
|
|
64
64
|
"@adobe/helix-shared-wrap": "2.0.2",
|
|
65
65
|
"@adobe/helix-status": "10.1.5",
|
|
66
|
-
"@eslint/config-helpers": "0.
|
|
66
|
+
"@eslint/config-helpers": "0.5.0",
|
|
67
67
|
"@semantic-release/changelog": "6.0.3",
|
|
68
68
|
"@semantic-release/git": "10.0.1",
|
|
69
69
|
"c8": "10.1.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": {
|
package/src/deploy/AWSConfig.js
CHANGED
|
@@ -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
|
|
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) {
|