@hyperdrive.bot/cli 1.0.10 → 1.0.12
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/README.md +60 -60
- package/dist/commands/auth/login.js +1 -1
- package/dist/services/hyperdrive-sigv4.d.ts +330 -4
- package/dist/services/hyperdrive-sigv4.js +128 -2
- package/dist/services/tenant-service.d.ts +7 -4
- package/dist/services/tenant-service.js +17 -9
- package/dist/utils/auth-flow.d.ts +1 -1
- package/dist/utils/auth-flow.js +2 -2
- package/oclif.manifest.json +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ $ npm install -g @hyperdrive.bot/cli
|
|
|
20
20
|
$ hd COMMAND
|
|
21
21
|
running command...
|
|
22
22
|
$ hd (--version)
|
|
23
|
-
@hyperdrive.bot/cli/1.0.
|
|
23
|
+
@hyperdrive.bot/cli/1.0.12 linux-x64 node-v22.22.0
|
|
24
24
|
$ hd --help [COMMAND]
|
|
25
25
|
USAGE
|
|
26
26
|
$ hd COMMAND
|
|
@@ -126,7 +126,7 @@ EXAMPLES
|
|
|
126
126
|
$ hd account add # Interactive mode
|
|
127
127
|
```
|
|
128
128
|
|
|
129
|
-
_See code: [src/commands/account/add.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
129
|
+
_See code: [src/commands/account/add.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/account/add.ts)_
|
|
130
130
|
|
|
131
131
|
## `hd account list`
|
|
132
132
|
|
|
@@ -146,7 +146,7 @@ EXAMPLES
|
|
|
146
146
|
$ hd account list
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
_See code: [src/commands/account/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
149
|
+
_See code: [src/commands/account/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/account/list.ts)_
|
|
150
150
|
|
|
151
151
|
## `hd account remove`
|
|
152
152
|
|
|
@@ -170,7 +170,7 @@ EXAMPLES
|
|
|
170
170
|
$ hd account remove --accountId 123456789012 --force
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
_See code: [src/commands/account/remove.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
173
|
+
_See code: [src/commands/account/remove.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/account/remove.ts)_
|
|
174
174
|
|
|
175
175
|
## `hd auth login`
|
|
176
176
|
|
|
@@ -198,7 +198,7 @@ EXAMPLES
|
|
|
198
198
|
$ hd auth login --ci --domain acme.hyperdrive.bot
|
|
199
199
|
```
|
|
200
200
|
|
|
201
|
-
_See code: [src/commands/auth/login.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
201
|
+
_See code: [src/commands/auth/login.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/auth/login.ts)_
|
|
202
202
|
|
|
203
203
|
## `hd auth logout`
|
|
204
204
|
|
|
@@ -221,7 +221,7 @@ EXAMPLES
|
|
|
221
221
|
$ hd auth logout --domain acme.hyperdrive.bot
|
|
222
222
|
```
|
|
223
223
|
|
|
224
|
-
_See code: [src/commands/auth/logout.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
224
|
+
_See code: [src/commands/auth/logout.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/auth/logout.ts)_
|
|
225
225
|
|
|
226
226
|
## `hd auth refresh`
|
|
227
227
|
|
|
@@ -238,7 +238,7 @@ EXAMPLES
|
|
|
238
238
|
$ hd auth refresh
|
|
239
239
|
```
|
|
240
240
|
|
|
241
|
-
_See code: [src/commands/auth/refresh.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
241
|
+
_See code: [src/commands/auth/refresh.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/auth/refresh.ts)_
|
|
242
242
|
|
|
243
243
|
## `hd auth status`
|
|
244
244
|
|
|
@@ -255,7 +255,7 @@ EXAMPLES
|
|
|
255
255
|
$ hd auth status
|
|
256
256
|
```
|
|
257
257
|
|
|
258
|
-
_See code: [src/commands/auth/status.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
258
|
+
_See code: [src/commands/auth/status.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/auth/status.ts)_
|
|
259
259
|
|
|
260
260
|
## `hd ci account create`
|
|
261
261
|
|
|
@@ -286,7 +286,7 @@ EXAMPLES
|
|
|
286
286
|
$ hd ci account create --name="gitlab-staging" --scope=deploy --scope=parameter:read
|
|
287
287
|
```
|
|
288
288
|
|
|
289
|
-
_See code: [src/commands/ci/account/create.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
289
|
+
_See code: [src/commands/ci/account/create.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/ci/account/create.ts)_
|
|
290
290
|
|
|
291
291
|
## `hd ci account delete [ACCOUNTID]`
|
|
292
292
|
|
|
@@ -312,7 +312,7 @@ EXAMPLES
|
|
|
312
312
|
$ hd ci account delete <account-id> --force
|
|
313
313
|
```
|
|
314
314
|
|
|
315
|
-
_See code: [src/commands/ci/account/delete.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
315
|
+
_See code: [src/commands/ci/account/delete.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/ci/account/delete.ts)_
|
|
316
316
|
|
|
317
317
|
## `hd ci account list`
|
|
318
318
|
|
|
@@ -335,7 +335,7 @@ EXAMPLES
|
|
|
335
335
|
$ hd ci account list --json
|
|
336
336
|
```
|
|
337
337
|
|
|
338
|
-
_See code: [src/commands/ci/account/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
338
|
+
_See code: [src/commands/ci/account/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/ci/account/list.ts)_
|
|
339
339
|
|
|
340
340
|
## `hd config get KEY`
|
|
341
341
|
|
|
@@ -357,7 +357,7 @@ EXAMPLES
|
|
|
357
357
|
$ hd config get bootstrap-url
|
|
358
358
|
```
|
|
359
359
|
|
|
360
|
-
_See code: [src/commands/config/get.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
360
|
+
_See code: [src/commands/config/get.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/config/get.ts)_
|
|
361
361
|
|
|
362
362
|
## `hd config set KEY VALUE`
|
|
363
363
|
|
|
@@ -384,7 +384,7 @@ EXAMPLES
|
|
|
384
384
|
$ hd config set region us-west-2
|
|
385
385
|
```
|
|
386
386
|
|
|
387
|
-
_See code: [src/commands/config/set.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
387
|
+
_See code: [src/commands/config/set.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/config/set.ts)_
|
|
388
388
|
|
|
389
389
|
## `hd config show`
|
|
390
390
|
|
|
@@ -401,7 +401,7 @@ EXAMPLES
|
|
|
401
401
|
$ hd config show
|
|
402
402
|
```
|
|
403
403
|
|
|
404
|
-
_See code: [src/commands/config/show.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
404
|
+
_See code: [src/commands/config/show.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/config/show.ts)_
|
|
405
405
|
|
|
406
406
|
## `hd deployment create`
|
|
407
407
|
|
|
@@ -416,7 +416,7 @@ FLAGS
|
|
|
416
416
|
-c, --commit=<value> (required) Commit hash
|
|
417
417
|
-d, --domain=<value> Tenant domain (for multi-domain setups)
|
|
418
418
|
-m, --moduleSlug=<value> (required) Module slug
|
|
419
|
-
-n, --name=<value> [default: Deployment-2026-02-
|
|
419
|
+
-n, --name=<value> [default: Deployment-2026-02-09-16-59-18] The name of the deployment
|
|
420
420
|
-r, --regions=<value>... [default: ] Regions for the deployment
|
|
421
421
|
-s, --stage=<value> (required) Stage for the deployment
|
|
422
422
|
-v, --verbose Show detailed build logs
|
|
@@ -435,7 +435,7 @@ EXAMPLES
|
|
|
435
435
|
$ hd deployment create --stage="dev" --commit="abc123" --verbose
|
|
436
436
|
```
|
|
437
437
|
|
|
438
|
-
_See code: [src/commands/deployment/create.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
438
|
+
_See code: [src/commands/deployment/create.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/deployment/create.ts)_
|
|
439
439
|
|
|
440
440
|
## `hd deployment get`
|
|
441
441
|
|
|
@@ -460,7 +460,7 @@ EXAMPLES
|
|
|
460
460
|
$ hd deployment get --name="prod-release-v1" --stage="prod"
|
|
461
461
|
```
|
|
462
462
|
|
|
463
|
-
_See code: [src/commands/deployment/get.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
463
|
+
_See code: [src/commands/deployment/get.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/deployment/get.ts)_
|
|
464
464
|
|
|
465
465
|
## `hd deployment launch`
|
|
466
466
|
|
|
@@ -487,7 +487,7 @@ EXAMPLES
|
|
|
487
487
|
$ hd deployment launch --name="prod-release" --stage="prod" --region="us-west-2"
|
|
488
488
|
```
|
|
489
489
|
|
|
490
|
-
_See code: [src/commands/deployment/launch.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
490
|
+
_See code: [src/commands/deployment/launch.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/deployment/launch.ts)_
|
|
491
491
|
|
|
492
492
|
## `hd deployment list`
|
|
493
493
|
|
|
@@ -511,7 +511,7 @@ EXAMPLES
|
|
|
511
511
|
$ hd deployment list --stage="prod" --moduleSlug="my-api"
|
|
512
512
|
```
|
|
513
513
|
|
|
514
|
-
_See code: [src/commands/deployment/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
514
|
+
_See code: [src/commands/deployment/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/deployment/list.ts)_
|
|
515
515
|
|
|
516
516
|
## `hd domain current`
|
|
517
517
|
|
|
@@ -528,7 +528,7 @@ EXAMPLES
|
|
|
528
528
|
$ hd domain current
|
|
529
529
|
```
|
|
530
530
|
|
|
531
|
-
_See code: [src/commands/domain/current.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
531
|
+
_See code: [src/commands/domain/current.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/domain/current.ts)_
|
|
532
532
|
|
|
533
533
|
## `hd domain list`
|
|
534
534
|
|
|
@@ -545,7 +545,7 @@ EXAMPLES
|
|
|
545
545
|
$ hd domain list
|
|
546
546
|
```
|
|
547
547
|
|
|
548
|
-
_See code: [src/commands/domain/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
548
|
+
_See code: [src/commands/domain/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/domain/list.ts)_
|
|
549
549
|
|
|
550
550
|
## `hd domain switch DOMAIN`
|
|
551
551
|
|
|
@@ -565,7 +565,7 @@ EXAMPLES
|
|
|
565
565
|
$ hd domain switch acme.hyperdrive.bot
|
|
566
566
|
```
|
|
567
567
|
|
|
568
|
-
_See code: [src/commands/domain/switch.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
568
|
+
_See code: [src/commands/domain/switch.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/domain/switch.ts)_
|
|
569
569
|
|
|
570
570
|
## `hd example [FILE]`
|
|
571
571
|
|
|
@@ -589,7 +589,7 @@ EXAMPLES
|
|
|
589
589
|
$ hd example
|
|
590
590
|
```
|
|
591
591
|
|
|
592
|
-
_See code: [src/commands/example.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
592
|
+
_See code: [src/commands/example.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/example.ts)_
|
|
593
593
|
|
|
594
594
|
## `hd git connect`
|
|
595
595
|
|
|
@@ -613,7 +613,7 @@ EXAMPLES
|
|
|
613
613
|
$ hd git connect --provider=gitlab
|
|
614
614
|
```
|
|
615
615
|
|
|
616
|
-
_See code: [src/commands/git/connect.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
616
|
+
_See code: [src/commands/git/connect.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/git/connect.ts)_
|
|
617
617
|
|
|
618
618
|
## `hd git disconnect`
|
|
619
619
|
|
|
@@ -638,7 +638,7 @@ EXAMPLES
|
|
|
638
638
|
$ hd git disconnect --provider=github --installation-id=12345
|
|
639
639
|
```
|
|
640
640
|
|
|
641
|
-
_See code: [src/commands/git/disconnect.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
641
|
+
_See code: [src/commands/git/disconnect.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/git/disconnect.ts)_
|
|
642
642
|
|
|
643
643
|
## `hd git list`
|
|
644
644
|
|
|
@@ -662,7 +662,7 @@ EXAMPLES
|
|
|
662
662
|
$ hd git list --provider=github
|
|
663
663
|
```
|
|
664
664
|
|
|
665
|
-
_See code: [src/commands/git/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
665
|
+
_See code: [src/commands/git/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/git/list.ts)_
|
|
666
666
|
|
|
667
667
|
## `hd git sync`
|
|
668
668
|
|
|
@@ -698,7 +698,7 @@ EXAMPLES
|
|
|
698
698
|
$ hd git sync --all --remote upstream --merge-strategy no-ff
|
|
699
699
|
```
|
|
700
700
|
|
|
701
|
-
_See code: [src/commands/git/sync.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
701
|
+
_See code: [src/commands/git/sync.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/git/sync.ts)_
|
|
702
702
|
|
|
703
703
|
## `hd help [COMMAND]`
|
|
704
704
|
|
|
@@ -735,7 +735,7 @@ EXAMPLES
|
|
|
735
735
|
$ hd init
|
|
736
736
|
```
|
|
737
737
|
|
|
738
|
-
_See code: [src/commands/init.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
738
|
+
_See code: [src/commands/init.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/init.ts)_
|
|
739
739
|
|
|
740
740
|
## `hd jira connect`
|
|
741
741
|
|
|
@@ -760,7 +760,7 @@ EXAMPLES
|
|
|
760
760
|
$ hd jira connect --domain sankhya.hyperdrivebot.dev --jira-domain dev-squad.atlassian.net
|
|
761
761
|
```
|
|
762
762
|
|
|
763
|
-
_See code: [src/commands/jira/connect.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
763
|
+
_See code: [src/commands/jira/connect.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/jira/connect.ts)_
|
|
764
764
|
|
|
765
765
|
## `hd jira hook add PROJECT`
|
|
766
766
|
|
|
@@ -791,7 +791,7 @@ EXAMPLES
|
|
|
791
791
|
$ hd jira hook add my-project --json
|
|
792
792
|
```
|
|
793
793
|
|
|
794
|
-
_See code: [src/commands/jira/hook/add.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
794
|
+
_See code: [src/commands/jira/hook/add.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/jira/hook/add.ts)_
|
|
795
795
|
|
|
796
796
|
## `hd jira hook list PROJECT`
|
|
797
797
|
|
|
@@ -817,7 +817,7 @@ EXAMPLES
|
|
|
817
817
|
$ hd jira hook list my-project --json
|
|
818
818
|
```
|
|
819
819
|
|
|
820
|
-
_See code: [src/commands/jira/hook/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
820
|
+
_See code: [src/commands/jira/hook/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/jira/hook/list.ts)_
|
|
821
821
|
|
|
822
822
|
## `hd jira hook remove PROJECT`
|
|
823
823
|
|
|
@@ -846,7 +846,7 @@ EXAMPLES
|
|
|
846
846
|
$ hd jira hook remove my-project --hook-id hook-123 --json
|
|
847
847
|
```
|
|
848
848
|
|
|
849
|
-
_See code: [src/commands/jira/hook/remove.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
849
|
+
_See code: [src/commands/jira/hook/remove.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/jira/hook/remove.ts)_
|
|
850
850
|
|
|
851
851
|
## `hd jira hook toggle PROJECT`
|
|
852
852
|
|
|
@@ -875,7 +875,7 @@ EXAMPLES
|
|
|
875
875
|
$ hd jira hook toggle my-project --hook-id hook-123 --json
|
|
876
876
|
```
|
|
877
877
|
|
|
878
|
-
_See code: [src/commands/jira/hook/toggle.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
878
|
+
_See code: [src/commands/jira/hook/toggle.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/jira/hook/toggle.ts)_
|
|
879
879
|
|
|
880
880
|
## `hd jira status`
|
|
881
881
|
|
|
@@ -895,7 +895,7 @@ EXAMPLES
|
|
|
895
895
|
$ hd jira status
|
|
896
896
|
```
|
|
897
897
|
|
|
898
|
-
_See code: [src/commands/jira/status.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
898
|
+
_See code: [src/commands/jira/status.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/jira/status.ts)_
|
|
899
899
|
|
|
900
900
|
## `hd module analyze`
|
|
901
901
|
|
|
@@ -923,7 +923,7 @@ EXAMPLES
|
|
|
923
923
|
$ hd module analyze --slug="my-module" --verbose
|
|
924
924
|
```
|
|
925
925
|
|
|
926
|
-
_See code: [src/commands/module/analyze.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
926
|
+
_See code: [src/commands/module/analyze.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/module/analyze.ts)_
|
|
927
927
|
|
|
928
928
|
## `hd module create`
|
|
929
929
|
|
|
@@ -975,7 +975,7 @@ EXAMPLES
|
|
|
975
975
|
$ hd module create --name="API Service" --framework="Serverless Framework"
|
|
976
976
|
```
|
|
977
977
|
|
|
978
|
-
_See code: [src/commands/module/create.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
978
|
+
_See code: [src/commands/module/create.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/module/create.ts)_
|
|
979
979
|
|
|
980
980
|
## `hd module destroy`
|
|
981
981
|
|
|
@@ -999,7 +999,7 @@ EXAMPLES
|
|
|
999
999
|
$ hd module destroy --slug="old-project" --force
|
|
1000
1000
|
```
|
|
1001
1001
|
|
|
1002
|
-
_See code: [src/commands/module/destroy.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1002
|
+
_See code: [src/commands/module/destroy.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/module/destroy.ts)_
|
|
1003
1003
|
|
|
1004
1004
|
## `hd module get`
|
|
1005
1005
|
|
|
@@ -1022,7 +1022,7 @@ EXAMPLES
|
|
|
1022
1022
|
$ hd module get
|
|
1023
1023
|
```
|
|
1024
1024
|
|
|
1025
|
-
_See code: [src/commands/module/get.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1025
|
+
_See code: [src/commands/module/get.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/module/get.ts)_
|
|
1026
1026
|
|
|
1027
1027
|
## `hd module link`
|
|
1028
1028
|
|
|
@@ -1045,7 +1045,7 @@ EXAMPLES
|
|
|
1045
1045
|
$ hd module link --originSlug="vixting-integration" --targetSlug="vixting-api" --parameter="VLOW_API_ENDPOINT_PREFIX"
|
|
1046
1046
|
```
|
|
1047
1047
|
|
|
1048
|
-
_See code: [src/commands/module/link.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1048
|
+
_See code: [src/commands/module/link.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/module/link.ts)_
|
|
1049
1049
|
|
|
1050
1050
|
## `hd module list`
|
|
1051
1051
|
|
|
@@ -1065,7 +1065,7 @@ EXAMPLES
|
|
|
1065
1065
|
$ hd module list
|
|
1066
1066
|
```
|
|
1067
1067
|
|
|
1068
|
-
_See code: [src/commands/module/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1068
|
+
_See code: [src/commands/module/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/module/list.ts)_
|
|
1069
1069
|
|
|
1070
1070
|
## `hd module reanalyze`
|
|
1071
1071
|
|
|
@@ -1094,7 +1094,7 @@ EXAMPLES
|
|
|
1094
1094
|
$ hd module reanalyze -s my-module -p "Exclude source maps from S3 upload" --verbose
|
|
1095
1095
|
```
|
|
1096
1096
|
|
|
1097
|
-
_See code: [src/commands/module/reanalyze.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1097
|
+
_See code: [src/commands/module/reanalyze.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/module/reanalyze.ts)_
|
|
1098
1098
|
|
|
1099
1099
|
## `hd module update`
|
|
1100
1100
|
|
|
@@ -1150,7 +1150,7 @@ EXAMPLES
|
|
|
1150
1150
|
$ hd module update --slug="my-module" --name="New Name" --framework="React.js"
|
|
1151
1151
|
```
|
|
1152
1152
|
|
|
1153
|
-
_See code: [src/commands/module/update.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1153
|
+
_See code: [src/commands/module/update.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/module/update.ts)_
|
|
1154
1154
|
|
|
1155
1155
|
## `hd parameter add`
|
|
1156
1156
|
|
|
@@ -1180,7 +1180,7 @@ EXAMPLES
|
|
|
1180
1180
|
$ hd parameter add --key="PORT" --value="3000"
|
|
1181
1181
|
```
|
|
1182
1182
|
|
|
1183
|
-
_See code: [src/commands/parameter/add.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1183
|
+
_See code: [src/commands/parameter/add.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/parameter/add.ts)_
|
|
1184
1184
|
|
|
1185
1185
|
## `hd parameter backfill`
|
|
1186
1186
|
|
|
@@ -1205,7 +1205,7 @@ EXAMPLES
|
|
|
1205
1205
|
$ hd parameter backfill --accountId="123456789012"
|
|
1206
1206
|
```
|
|
1207
1207
|
|
|
1208
|
-
_See code: [src/commands/parameter/backfill.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1208
|
+
_See code: [src/commands/parameter/backfill.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/parameter/backfill.ts)_
|
|
1209
1209
|
|
|
1210
1210
|
## `hd parameter clear`
|
|
1211
1211
|
|
|
@@ -1232,7 +1232,7 @@ EXAMPLES
|
|
|
1232
1232
|
$ hd parameter clear --stage="prod" --specific --force
|
|
1233
1233
|
```
|
|
1234
1234
|
|
|
1235
|
-
_See code: [src/commands/parameter/clear.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1235
|
+
_See code: [src/commands/parameter/clear.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/parameter/clear.ts)_
|
|
1236
1236
|
|
|
1237
1237
|
## `hd parameter list`
|
|
1238
1238
|
|
|
@@ -1261,7 +1261,7 @@ EXAMPLES
|
|
|
1261
1261
|
$ hd parameter list --all-stages
|
|
1262
1262
|
```
|
|
1263
1263
|
|
|
1264
|
-
_See code: [src/commands/parameter/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1264
|
+
_See code: [src/commands/parameter/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/parameter/list.ts)_
|
|
1265
1265
|
|
|
1266
1266
|
## `hd parameter pull`
|
|
1267
1267
|
|
|
@@ -1290,7 +1290,7 @@ EXAMPLES
|
|
|
1290
1290
|
$ hd parameter pull --stage="dev" --no-backup
|
|
1291
1291
|
```
|
|
1292
1292
|
|
|
1293
|
-
_See code: [src/commands/parameter/pull.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1293
|
+
_See code: [src/commands/parameter/pull.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/parameter/pull.ts)_
|
|
1294
1294
|
|
|
1295
1295
|
## `hd parameter remove`
|
|
1296
1296
|
|
|
@@ -1320,7 +1320,7 @@ EXAMPLES
|
|
|
1320
1320
|
$ hd parameter remove --key="PORT" --force
|
|
1321
1321
|
```
|
|
1322
1322
|
|
|
1323
|
-
_See code: [src/commands/parameter/remove.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1323
|
+
_See code: [src/commands/parameter/remove.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/parameter/remove.ts)_
|
|
1324
1324
|
|
|
1325
1325
|
## `hd parameter sync`
|
|
1326
1326
|
|
|
@@ -1349,7 +1349,7 @@ EXAMPLES
|
|
|
1349
1349
|
$ hd parameter sync --no-specific --stage="all"
|
|
1350
1350
|
```
|
|
1351
1351
|
|
|
1352
|
-
_See code: [src/commands/parameter/sync.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1352
|
+
_See code: [src/commands/parameter/sync.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/parameter/sync.ts)_
|
|
1353
1353
|
|
|
1354
1354
|
## `hd parameter update`
|
|
1355
1355
|
|
|
@@ -1377,7 +1377,7 @@ EXAMPLES
|
|
|
1377
1377
|
$ hd parameter update --key="DB_HOST" --value="new-host" --specific
|
|
1378
1378
|
```
|
|
1379
1379
|
|
|
1380
|
-
_See code: [src/commands/parameter/update.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1380
|
+
_See code: [src/commands/parameter/update.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/parameter/update.ts)_
|
|
1381
1381
|
|
|
1382
1382
|
## `hd plugins`
|
|
1383
1383
|
|
|
@@ -1697,7 +1697,7 @@ EXAMPLES
|
|
|
1697
1697
|
$ hd project init --json --name "My Project" --jira-key PROJ
|
|
1698
1698
|
```
|
|
1699
1699
|
|
|
1700
|
-
_See code: [src/commands/project/init.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1700
|
+
_See code: [src/commands/project/init.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/project/init.ts)_
|
|
1701
1701
|
|
|
1702
1702
|
## `hd project list`
|
|
1703
1703
|
|
|
@@ -1722,7 +1722,7 @@ EXAMPLES
|
|
|
1722
1722
|
$ hd project list --domain custom.hyperdrive.bot
|
|
1723
1723
|
```
|
|
1724
1724
|
|
|
1725
|
-
_See code: [src/commands/project/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1725
|
+
_See code: [src/commands/project/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/project/list.ts)_
|
|
1726
1726
|
|
|
1727
1727
|
## `hd project status PROJECT`
|
|
1728
1728
|
|
|
@@ -1750,7 +1750,7 @@ EXAMPLES
|
|
|
1750
1750
|
$ hd project status my-project --domain custom.hyperdrive.bot
|
|
1751
1751
|
```
|
|
1752
1752
|
|
|
1753
|
-
_See code: [src/commands/project/status.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1753
|
+
_See code: [src/commands/project/status.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/project/status.ts)_
|
|
1754
1754
|
|
|
1755
1755
|
## `hd project sync PROJECT`
|
|
1756
1756
|
|
|
@@ -1779,7 +1779,7 @@ EXAMPLES
|
|
|
1779
1779
|
$ hd project sync my-project --json
|
|
1780
1780
|
```
|
|
1781
1781
|
|
|
1782
|
-
_See code: [src/commands/project/sync.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1782
|
+
_See code: [src/commands/project/sync.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/project/sync.ts)_
|
|
1783
1783
|
|
|
1784
1784
|
## `hd stage access [STAGE]`
|
|
1785
1785
|
|
|
@@ -1808,7 +1808,7 @@ EXAMPLES
|
|
|
1808
1808
|
$ hd stage access develop --format json
|
|
1809
1809
|
```
|
|
1810
1810
|
|
|
1811
|
-
_See code: [src/commands/stage/access.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1811
|
+
_See code: [src/commands/stage/access.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/stage/access.ts)_
|
|
1812
1812
|
|
|
1813
1813
|
## `hd stage create`
|
|
1814
1814
|
|
|
@@ -1836,7 +1836,7 @@ DESCRIPTION
|
|
|
1836
1836
|
Create a new stage
|
|
1837
1837
|
```
|
|
1838
1838
|
|
|
1839
|
-
_See code: [src/commands/stage/create.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1839
|
+
_See code: [src/commands/stage/create.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/stage/create.ts)_
|
|
1840
1840
|
|
|
1841
1841
|
## `hd stage list`
|
|
1842
1842
|
|
|
@@ -1856,7 +1856,7 @@ EXAMPLES
|
|
|
1856
1856
|
$ hd stage list
|
|
1857
1857
|
```
|
|
1858
1858
|
|
|
1859
|
-
_See code: [src/commands/stage/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1859
|
+
_See code: [src/commands/stage/list.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/stage/list.ts)_
|
|
1860
1860
|
|
|
1861
1861
|
## `hd stage revoke [STAGE]`
|
|
1862
1862
|
|
|
@@ -1888,7 +1888,7 @@ EXAMPLES
|
|
|
1888
1888
|
$ hd stage revoke develop --ci github-actions
|
|
1889
1889
|
```
|
|
1890
1890
|
|
|
1891
|
-
_See code: [src/commands/stage/revoke.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1891
|
+
_See code: [src/commands/stage/revoke.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/stage/revoke.ts)_
|
|
1892
1892
|
|
|
1893
1893
|
## `hd stage share [STAGE]`
|
|
1894
1894
|
|
|
@@ -1928,7 +1928,7 @@ EXAMPLES
|
|
|
1928
1928
|
$ hd stage share staging production --user dev@company.com --role viewer
|
|
1929
1929
|
```
|
|
1930
1930
|
|
|
1931
|
-
_See code: [src/commands/stage/share.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1931
|
+
_See code: [src/commands/stage/share.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/stage/share.ts)_
|
|
1932
1932
|
|
|
1933
1933
|
## `hd test-api`
|
|
1934
1934
|
|
|
@@ -1948,5 +1948,5 @@ EXAMPLES
|
|
|
1948
1948
|
$ hd test-api
|
|
1949
1949
|
```
|
|
1950
1950
|
|
|
1951
|
-
_See code: [src/commands/test-api.ts](https://github.com/hyperdrive/hd/blob/v1.0.
|
|
1951
|
+
_See code: [src/commands/test-api.ts](https://github.com/hyperdrive/hd/blob/v1.0.12/src/commands/test-api.ts)_
|
|
1952
1952
|
<!-- commandsstop -->
|
|
@@ -111,6 +111,7 @@ export default class Login extends Command {
|
|
|
111
111
|
spinner.start('Saving credentials...');
|
|
112
112
|
saveCredentials({
|
|
113
113
|
...tokens,
|
|
114
|
+
additionalApiUrls: tenantConfig.additionalApiUrls,
|
|
114
115
|
apiUrl: tenantConfig.apiUrl,
|
|
115
116
|
awsCredentials,
|
|
116
117
|
cognitoConfig: {
|
|
@@ -123,7 +124,6 @@ export default class Login extends Command {
|
|
|
123
124
|
region: tenantConfig.region,
|
|
124
125
|
tenantDomain: tenantConfig.tenantDomain,
|
|
125
126
|
tenantId: tenantConfig.tenantId,
|
|
126
|
-
userGroupsApiUrl: tenantConfig.userGroupsApiUrl,
|
|
127
127
|
}, tenantConfig.tenantDomain);
|
|
128
128
|
spinner.succeed(chalk.green('Credentials saved!'));
|
|
129
129
|
this.log('');
|
|
@@ -42,6 +42,7 @@ interface ModuleResponse {
|
|
|
42
42
|
ciService?: string;
|
|
43
43
|
createdAt?: string;
|
|
44
44
|
framework?: string;
|
|
45
|
+
moduleType?: 'backend' | 'frontend';
|
|
45
46
|
name?: string;
|
|
46
47
|
projectId?: string;
|
|
47
48
|
runCommand?: string;
|
|
@@ -49,6 +50,7 @@ interface ModuleResponse {
|
|
|
49
50
|
runtimeVersion?: string;
|
|
50
51
|
slug?: string;
|
|
51
52
|
sourceLocation?: string;
|
|
53
|
+
subdomain?: string;
|
|
52
54
|
}
|
|
53
55
|
interface ParameterSyncResponse {
|
|
54
56
|
errors?: Array<{
|
|
@@ -136,7 +138,9 @@ interface GitAuthInitiateResponse {
|
|
|
136
138
|
installUrl: string;
|
|
137
139
|
state: string;
|
|
138
140
|
}
|
|
139
|
-
export type
|
|
141
|
+
export type HookTriggerEvent = 'comment_added' | 'field_changed' | 'issue_assigned' | 'issue_created' | 'label_changed' | 'status_transition';
|
|
142
|
+
export type HookActionType = 'adhb-enrich' | 'ci-trigger' | 'git-create-branch' | 'git-create-mr' | 'git-delete-branch' | 'slack-notify' | 'webhook';
|
|
143
|
+
export type HookActionCategory = 'flex' | 'smart';
|
|
140
144
|
export interface SlackNotifyConfig {
|
|
141
145
|
channel: string;
|
|
142
146
|
template?: string;
|
|
@@ -167,11 +171,78 @@ export interface HookResponse {
|
|
|
167
171
|
export interface HookListResponse {
|
|
168
172
|
hooks: HookResponse[];
|
|
169
173
|
}
|
|
174
|
+
export interface HookLogEntry {
|
|
175
|
+
actionType: string;
|
|
176
|
+
durationMs: number;
|
|
177
|
+
errorMessage?: string;
|
|
178
|
+
hookId: string;
|
|
179
|
+
hookName: string;
|
|
180
|
+
httpStatusCode?: number;
|
|
181
|
+
issueKey: string;
|
|
182
|
+
status: 'failed' | 'success';
|
|
183
|
+
timestamp: string;
|
|
184
|
+
triggerEvent: string;
|
|
185
|
+
}
|
|
186
|
+
export interface HookLogListResponse {
|
|
187
|
+
items: HookLogEntry[];
|
|
188
|
+
}
|
|
170
189
|
export interface HookCreateRequest {
|
|
171
190
|
actionConfig: HookActionConfig;
|
|
172
191
|
actionType: HookActionType;
|
|
173
192
|
triggerStatus: string;
|
|
174
193
|
}
|
|
194
|
+
export interface HookCreateRequestV2 {
|
|
195
|
+
action: {
|
|
196
|
+
category: HookActionCategory;
|
|
197
|
+
config: Record<string, unknown>;
|
|
198
|
+
type: HookActionType;
|
|
199
|
+
};
|
|
200
|
+
order?: number;
|
|
201
|
+
trigger: {
|
|
202
|
+
conditions?: Record<string, string>;
|
|
203
|
+
event: HookTriggerEvent;
|
|
204
|
+
source: string;
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
export type BackupStatus = 'completed' | 'failed' | 'in-progress' | 'pending';
|
|
208
|
+
export type BackupType = 'clone' | 'restore' | 'snapshot';
|
|
209
|
+
export type SeedRunStatus = 'completed' | 'failed' | 'in-progress' | 'pending';
|
|
210
|
+
export type ClonePhase = 'completed' | 'credential-rotation' | 'failed' | 'registering' | 'restoring' | 'snapshot-creating' | 'snapshot-sharing';
|
|
211
|
+
export interface BackupResponse {
|
|
212
|
+
completedAt?: string;
|
|
213
|
+
createdAt: string;
|
|
214
|
+
errorMessage?: string;
|
|
215
|
+
id: string;
|
|
216
|
+
metadata?: Record<string, string>;
|
|
217
|
+
serviceSlug: string;
|
|
218
|
+
serviceType: string;
|
|
219
|
+
snapshotArn?: string;
|
|
220
|
+
snapshotIdentifier?: string;
|
|
221
|
+
status: BackupStatus;
|
|
222
|
+
type: BackupType;
|
|
223
|
+
updatedAt: string;
|
|
224
|
+
}
|
|
225
|
+
export interface BackupListResponse {
|
|
226
|
+
backups: BackupResponse[];
|
|
227
|
+
lastEvaluatedKey?: Record<string, unknown>;
|
|
228
|
+
}
|
|
229
|
+
export interface SeedRunResponse {
|
|
230
|
+
completedAt?: string;
|
|
231
|
+
createdAt: string;
|
|
232
|
+
errorMessage?: string;
|
|
233
|
+
id: string;
|
|
234
|
+
logGroupName?: string;
|
|
235
|
+
scriptPath?: string;
|
|
236
|
+
scriptSource: string;
|
|
237
|
+
serviceSlug: string;
|
|
238
|
+
serviceType: string;
|
|
239
|
+
status: SeedRunStatus;
|
|
240
|
+
updatedAt: string;
|
|
241
|
+
}
|
|
242
|
+
export interface SeedRunListResponse {
|
|
243
|
+
lastEvaluatedKey?: Record<string, unknown>;
|
|
244
|
+
seedRuns: SeedRunResponse[];
|
|
245
|
+
}
|
|
175
246
|
/**
|
|
176
247
|
* Hyperdrive API Service with AWS SigV4 authentication
|
|
177
248
|
*/
|
|
@@ -196,6 +267,242 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
196
267
|
accountVerify(params: {
|
|
197
268
|
accountId: string;
|
|
198
269
|
}): Promise<AWSAccountVerifyResponse>;
|
|
270
|
+
networkDiscover(params: {
|
|
271
|
+
accountId: string;
|
|
272
|
+
region: string;
|
|
273
|
+
}): Promise<{
|
|
274
|
+
vpcs: Array<{
|
|
275
|
+
vpcId: string;
|
|
276
|
+
name: string;
|
|
277
|
+
cidrBlock: string;
|
|
278
|
+
privateSubnetIds: string[];
|
|
279
|
+
publicSubnetIds: string[];
|
|
280
|
+
securityGroups: Array<{
|
|
281
|
+
groupId: string;
|
|
282
|
+
groupName: string;
|
|
283
|
+
description: string;
|
|
284
|
+
}>;
|
|
285
|
+
alreadyRegistered: boolean;
|
|
286
|
+
existingNetworkSlug?: string;
|
|
287
|
+
}>;
|
|
288
|
+
accountId: string;
|
|
289
|
+
region: string;
|
|
290
|
+
message?: string;
|
|
291
|
+
}>;
|
|
292
|
+
networkRegister(params: {
|
|
293
|
+
slug: string;
|
|
294
|
+
accountId: string;
|
|
295
|
+
region: string;
|
|
296
|
+
vpcId: string;
|
|
297
|
+
privateSubnetIds?: string[];
|
|
298
|
+
publicSubnetIds?: string[];
|
|
299
|
+
securityGroups?: Record<string, string>;
|
|
300
|
+
source?: string;
|
|
301
|
+
}): Promise<Record<string, unknown>>;
|
|
302
|
+
networkList(): Promise<Array<{
|
|
303
|
+
slug: string;
|
|
304
|
+
accountId: string;
|
|
305
|
+
region: string;
|
|
306
|
+
vpcId: string;
|
|
307
|
+
status: string;
|
|
308
|
+
source: string;
|
|
309
|
+
privateSubnetIds: string[];
|
|
310
|
+
publicSubnetIds: string[];
|
|
311
|
+
securityGroups: Record<string, string>;
|
|
312
|
+
createdAt: string;
|
|
313
|
+
updatedAt: string;
|
|
314
|
+
}>>;
|
|
315
|
+
networkGet(slug: string): Promise<{
|
|
316
|
+
slug: string;
|
|
317
|
+
accountId: string;
|
|
318
|
+
region: string;
|
|
319
|
+
vpcId: string;
|
|
320
|
+
status: string;
|
|
321
|
+
source: string;
|
|
322
|
+
privateSubnetIds: string[];
|
|
323
|
+
publicSubnetIds: string[];
|
|
324
|
+
securityGroups: Record<string, string>;
|
|
325
|
+
createdAt: string;
|
|
326
|
+
updatedAt: string;
|
|
327
|
+
}>;
|
|
328
|
+
serviceRegister(params: {
|
|
329
|
+
slug: string;
|
|
330
|
+
name: string;
|
|
331
|
+
type: string;
|
|
332
|
+
access: 'private' | 'public';
|
|
333
|
+
endpoint: string;
|
|
334
|
+
port?: number;
|
|
335
|
+
protocol?: string;
|
|
336
|
+
credentialSecretArn?: string;
|
|
337
|
+
networkSlug?: string;
|
|
338
|
+
accountId: string;
|
|
339
|
+
region: string;
|
|
340
|
+
exportedEnvVars?: Record<string, string>;
|
|
341
|
+
metadata?: Record<string, string>;
|
|
342
|
+
}): Promise<Record<string, unknown>>;
|
|
343
|
+
serviceList(params?: {
|
|
344
|
+
type?: string;
|
|
345
|
+
network?: string;
|
|
346
|
+
}): Promise<Array<{
|
|
347
|
+
slug: string;
|
|
348
|
+
name: string;
|
|
349
|
+
type: string;
|
|
350
|
+
access: string;
|
|
351
|
+
status: string;
|
|
352
|
+
endpoint: string;
|
|
353
|
+
port?: number;
|
|
354
|
+
protocol?: string;
|
|
355
|
+
credentialSecretArn?: string;
|
|
356
|
+
networkSlug?: string;
|
|
357
|
+
accountId: string;
|
|
358
|
+
region: string;
|
|
359
|
+
exportedEnvVars: Record<string, string>;
|
|
360
|
+
metadata: Record<string, string>;
|
|
361
|
+
createdAt: string;
|
|
362
|
+
updatedAt: string;
|
|
363
|
+
}>>;
|
|
364
|
+
serviceGet(slug: string): Promise<{
|
|
365
|
+
slug: string;
|
|
366
|
+
name: string;
|
|
367
|
+
type: string;
|
|
368
|
+
access: string;
|
|
369
|
+
status: string;
|
|
370
|
+
endpoint: string;
|
|
371
|
+
port?: number;
|
|
372
|
+
protocol?: string;
|
|
373
|
+
credentialSecretArn?: string;
|
|
374
|
+
networkSlug?: string;
|
|
375
|
+
accountId: string;
|
|
376
|
+
region: string;
|
|
377
|
+
templateId?: string;
|
|
378
|
+
stackName?: string;
|
|
379
|
+
stackArn?: string;
|
|
380
|
+
cdkRepo?: string;
|
|
381
|
+
exportedEnvVars: Record<string, string>;
|
|
382
|
+
metadata: Record<string, string>;
|
|
383
|
+
createdAt: string;
|
|
384
|
+
updatedAt: string;
|
|
385
|
+
}>;
|
|
386
|
+
serviceUpdate(slug: string, params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
387
|
+
serviceProvision(body: {
|
|
388
|
+
templateId: string;
|
|
389
|
+
serviceSlug: string;
|
|
390
|
+
serviceName: string;
|
|
391
|
+
stage: string;
|
|
392
|
+
parameters?: Record<string, string>;
|
|
393
|
+
networkSlug?: string;
|
|
394
|
+
}): Promise<{
|
|
395
|
+
serviceSlug: string;
|
|
396
|
+
status: string;
|
|
397
|
+
logGroupName: string;
|
|
398
|
+
}>;
|
|
399
|
+
serviceTemplateGet(templateId: string): Promise<{
|
|
400
|
+
id: string;
|
|
401
|
+
name: string;
|
|
402
|
+
description: string;
|
|
403
|
+
type: string;
|
|
404
|
+
parameters: Array<{
|
|
405
|
+
name: string;
|
|
406
|
+
description: string;
|
|
407
|
+
type: string;
|
|
408
|
+
default?: string;
|
|
409
|
+
allowed?: string[];
|
|
410
|
+
required: boolean;
|
|
411
|
+
}>;
|
|
412
|
+
defaultExportedEnvVars: Record<string, string>;
|
|
413
|
+
defaultSecurityGroupPurpose: string | null;
|
|
414
|
+
}>;
|
|
415
|
+
serviceDecommission(slug: string): Promise<{
|
|
416
|
+
message: string;
|
|
417
|
+
}>;
|
|
418
|
+
serviceBind(serviceSlug: string, body: {
|
|
419
|
+
moduleSlug: string;
|
|
420
|
+
stage: string;
|
|
421
|
+
envVarMapping?: Record<string, string>;
|
|
422
|
+
templateVars?: Record<string, string>;
|
|
423
|
+
}): Promise<{
|
|
424
|
+
stage: string;
|
|
425
|
+
moduleSlug: string;
|
|
426
|
+
serviceSlug: string;
|
|
427
|
+
envVarMapping?: Record<string, string>;
|
|
428
|
+
templateVars?: Record<string, string>;
|
|
429
|
+
createdAt: string;
|
|
430
|
+
updatedAt: string;
|
|
431
|
+
}>;
|
|
432
|
+
serviceUnbind(serviceSlug: string, body: {
|
|
433
|
+
moduleSlug: string;
|
|
434
|
+
stage: string;
|
|
435
|
+
}): Promise<{
|
|
436
|
+
message: string;
|
|
437
|
+
}>;
|
|
438
|
+
serviceBindings(serviceSlug: string): Promise<Array<{
|
|
439
|
+
stage: string;
|
|
440
|
+
moduleSlug: string;
|
|
441
|
+
serviceSlug: string;
|
|
442
|
+
envVarMapping?: Record<string, string>;
|
|
443
|
+
templateVars?: Record<string, string>;
|
|
444
|
+
createdAt: string;
|
|
445
|
+
updatedAt: string;
|
|
446
|
+
}>>;
|
|
447
|
+
serviceTemplates(): Promise<Array<{
|
|
448
|
+
id: string;
|
|
449
|
+
name: string;
|
|
450
|
+
description: string;
|
|
451
|
+
type: string;
|
|
452
|
+
parameters: Array<{
|
|
453
|
+
name: string;
|
|
454
|
+
description: string;
|
|
455
|
+
type: string;
|
|
456
|
+
default: string;
|
|
457
|
+
allowed?: string[];
|
|
458
|
+
required: boolean;
|
|
459
|
+
}>;
|
|
460
|
+
defaultExportedEnvVars: Record<string, string>;
|
|
461
|
+
}>>;
|
|
462
|
+
serviceCreateBackup(serviceSlug: string, metadata?: Record<string, string>): Promise<BackupResponse>;
|
|
463
|
+
serviceListBackups(serviceSlug: string, params?: {
|
|
464
|
+
limit?: string;
|
|
465
|
+
lastEvaluatedKey?: string;
|
|
466
|
+
}): Promise<BackupListResponse>;
|
|
467
|
+
serviceGetBackup(serviceSlug: string, backupId: string): Promise<BackupResponse>;
|
|
468
|
+
serviceRestore(serviceSlug: string, body: {
|
|
469
|
+
backupId: string;
|
|
470
|
+
instanceClass?: string;
|
|
471
|
+
networkSlug?: string;
|
|
472
|
+
targetSlug?: string;
|
|
473
|
+
}): Promise<BackupResponse>;
|
|
474
|
+
serviceClone(serviceSlug: string, body: {
|
|
475
|
+
instanceClass?: string;
|
|
476
|
+
targetAccountId?: string;
|
|
477
|
+
targetNetworkSlug: string;
|
|
478
|
+
targetSlug: string;
|
|
479
|
+
templateVars?: Record<string, string>;
|
|
480
|
+
}): Promise<BackupResponse>;
|
|
481
|
+
serviceBackupSchedule(serviceSlug: string, schedule: 'daily' | 'weekly'): Promise<Record<string, unknown>>;
|
|
482
|
+
serviceSeed(serviceSlug: string, body: {
|
|
483
|
+
allowProduction?: boolean;
|
|
484
|
+
scriptPath?: string;
|
|
485
|
+
scriptSource: string;
|
|
486
|
+
}): Promise<SeedRunResponse>;
|
|
487
|
+
serviceListSeedRuns(serviceSlug: string, params?: {
|
|
488
|
+
lastEvaluatedKey?: string;
|
|
489
|
+
limit?: string;
|
|
490
|
+
}): Promise<SeedRunListResponse>;
|
|
491
|
+
serviceGetSeedRun(serviceSlug: string, seedRunId: string): Promise<SeedRunResponse>;
|
|
492
|
+
moduleBindings(moduleSlug: string, params?: {
|
|
493
|
+
stage?: string;
|
|
494
|
+
}): Promise<Array<{
|
|
495
|
+
stage: string;
|
|
496
|
+
moduleSlug: string;
|
|
497
|
+
serviceSlug: string;
|
|
498
|
+
serviceType?: string;
|
|
499
|
+
serviceAccess?: string;
|
|
500
|
+
networkSlug?: string;
|
|
501
|
+
envVarMapping?: Record<string, string>;
|
|
502
|
+
templateVars?: Record<string, string>;
|
|
503
|
+
createdAt: string;
|
|
504
|
+
updatedAt: string;
|
|
505
|
+
}>>;
|
|
199
506
|
ciAccountCreate(params: {
|
|
200
507
|
description?: string;
|
|
201
508
|
name: string;
|
|
@@ -252,6 +559,7 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
252
559
|
deploymentCreate(params: {
|
|
253
560
|
commit: string;
|
|
254
561
|
launch: boolean;
|
|
562
|
+
moduleType?: string;
|
|
255
563
|
name: string;
|
|
256
564
|
projectSlug: string;
|
|
257
565
|
regions: string[];
|
|
@@ -290,10 +598,15 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
290
598
|
totalCount: number;
|
|
291
599
|
}>;
|
|
292
600
|
hookCreate(projectId: string, body: HookCreateRequest): Promise<HookResponse>;
|
|
601
|
+
hookCreateV2(projectId: string, body: HookCreateRequestV2): Promise<HookResponse>;
|
|
293
602
|
hookDelete(projectId: string, hookId: string): Promise<{
|
|
294
603
|
message: string;
|
|
295
604
|
}>;
|
|
296
605
|
hookList(projectId: string): Promise<HookListResponse>;
|
|
606
|
+
hookLogList(projectId: string, options?: {
|
|
607
|
+
limit?: number;
|
|
608
|
+
status?: string;
|
|
609
|
+
}): Promise<HookLogListResponse>;
|
|
297
610
|
hookUpdate(projectId: string, hookId: string, body: Partial<HookCreateRequest> & {
|
|
298
611
|
enabled?: boolean;
|
|
299
612
|
}): Promise<HookResponse>;
|
|
@@ -404,16 +717,18 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
404
717
|
moduleCreate(module: {
|
|
405
718
|
buildCommand?: string;
|
|
406
719
|
buildFolder?: string;
|
|
407
|
-
buildRuntime
|
|
720
|
+
buildRuntime?: string;
|
|
408
721
|
buildRuntimeVersion?: string;
|
|
409
722
|
ciService?: string;
|
|
410
|
-
framework
|
|
723
|
+
framework?: string;
|
|
411
724
|
installCommand?: string;
|
|
725
|
+
moduleType?: 'backend' | 'frontend' | 'cdk';
|
|
412
726
|
name: string;
|
|
413
727
|
runCommand?: string;
|
|
414
|
-
runtime
|
|
728
|
+
runtime?: string;
|
|
415
729
|
slug: string;
|
|
416
730
|
sourceLocation: string;
|
|
731
|
+
subdomain?: string;
|
|
417
732
|
}): Promise<ModuleResponse>;
|
|
418
733
|
moduleDestroy(params: {
|
|
419
734
|
slug: string;
|
|
@@ -463,12 +778,14 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
463
778
|
ciService?: string;
|
|
464
779
|
framework?: string;
|
|
465
780
|
installCommand?: string;
|
|
781
|
+
moduleType?: 'backend' | 'frontend' | 'cdk';
|
|
466
782
|
name?: string;
|
|
467
783
|
runCommand?: string;
|
|
468
784
|
runtime?: string;
|
|
469
785
|
runtimeVersion?: string;
|
|
470
786
|
slug: string;
|
|
471
787
|
sourceLocation?: string;
|
|
788
|
+
subdomain?: string;
|
|
472
789
|
}): Promise<ModuleResponse>;
|
|
473
790
|
parameterAdd(params: {
|
|
474
791
|
accountId: string;
|
|
@@ -575,6 +892,15 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
575
892
|
stageAccessRevoke(stageName: string, targetType: 'user' | 'group', targetId: string): Promise<{
|
|
576
893
|
message: string;
|
|
577
894
|
}>;
|
|
895
|
+
domainSetProduction(params: {
|
|
896
|
+
domain: string;
|
|
897
|
+
}): Promise<{
|
|
898
|
+
tenantId: string;
|
|
899
|
+
domain: string;
|
|
900
|
+
status: string;
|
|
901
|
+
createdAt: string;
|
|
902
|
+
updatedAt: string;
|
|
903
|
+
}>;
|
|
578
904
|
groupList(): Promise<Array<{
|
|
579
905
|
groupId: string;
|
|
580
906
|
name: string;
|
|
@@ -28,8 +28,8 @@ export class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
28
28
|
apiUrlOverride: process.env.HYPERDRIVE_API_URL,
|
|
29
29
|
regionOverride: process.env.HYPERDRIVE_AWS_REGION,
|
|
30
30
|
});
|
|
31
|
-
// Get user groups API URL from credentials
|
|
32
|
-
this.userGroupsApiUrl = this.getAdditionalApiUrl('
|
|
31
|
+
// Get user groups API URL from credentials (key matches bootstrap REST config name)
|
|
32
|
+
this.userGroupsApiUrl = this.getAdditionalApiUrl('user-groups');
|
|
33
33
|
}
|
|
34
34
|
// ============================================================================
|
|
35
35
|
// AWS Account Methods
|
|
@@ -50,6 +50,114 @@ export class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
50
50
|
return this.makeSignedRequest('POST', `/cloud-account/aws/account/${params.accountId}/verify`);
|
|
51
51
|
}
|
|
52
52
|
// ============================================================================
|
|
53
|
+
// Network Methods
|
|
54
|
+
// ============================================================================
|
|
55
|
+
async networkDiscover(params) {
|
|
56
|
+
return this.makeSignedRequest('POST', '/networks/discover', params);
|
|
57
|
+
}
|
|
58
|
+
async networkRegister(params) {
|
|
59
|
+
return this.makeSignedRequest('POST', '/networks', params);
|
|
60
|
+
}
|
|
61
|
+
async networkList() {
|
|
62
|
+
return this.makeSignedRequest('GET', '/networks');
|
|
63
|
+
}
|
|
64
|
+
async networkGet(slug) {
|
|
65
|
+
return this.makeSignedRequest('GET', `/networks/${encodeURIComponent(slug)}`);
|
|
66
|
+
}
|
|
67
|
+
// ============================================================================
|
|
68
|
+
// Service Registry Methods
|
|
69
|
+
// ============================================================================
|
|
70
|
+
async serviceRegister(params) {
|
|
71
|
+
return this.makeSignedRequest('POST', '/services', params);
|
|
72
|
+
}
|
|
73
|
+
async serviceList(params) {
|
|
74
|
+
const queryParts = [];
|
|
75
|
+
if (params?.type)
|
|
76
|
+
queryParts.push(`type=${encodeURIComponent(params.type)}`);
|
|
77
|
+
if (params?.network)
|
|
78
|
+
queryParts.push(`network=${encodeURIComponent(params.network)}`);
|
|
79
|
+
const qs = queryParts.length > 0 ? `?${queryParts.join('&')}` : '';
|
|
80
|
+
return this.makeSignedRequest('GET', `/services${qs}`);
|
|
81
|
+
}
|
|
82
|
+
async serviceGet(slug) {
|
|
83
|
+
return this.makeSignedRequest('GET', `/services/${encodeURIComponent(slug)}`);
|
|
84
|
+
}
|
|
85
|
+
async serviceUpdate(slug, params) {
|
|
86
|
+
return this.makeSignedRequest('PUT', `/services/${encodeURIComponent(slug)}`, params);
|
|
87
|
+
}
|
|
88
|
+
async serviceProvision(body) {
|
|
89
|
+
return this.makeSignedRequest('POST', '/services/provision', body);
|
|
90
|
+
}
|
|
91
|
+
async serviceTemplateGet(templateId) {
|
|
92
|
+
return this.makeSignedRequest('GET', `/services/templates/${encodeURIComponent(templateId)}`);
|
|
93
|
+
}
|
|
94
|
+
async serviceDecommission(slug) {
|
|
95
|
+
return this.makeSignedRequest('DELETE', `/services/${encodeURIComponent(slug)}`);
|
|
96
|
+
}
|
|
97
|
+
async serviceBind(serviceSlug, body) {
|
|
98
|
+
return this.makeSignedRequest('POST', `/services/${encodeURIComponent(serviceSlug)}/bind`, body);
|
|
99
|
+
}
|
|
100
|
+
async serviceUnbind(serviceSlug, body) {
|
|
101
|
+
return this.makeSignedRequest('DELETE', `/services/${encodeURIComponent(serviceSlug)}/bind`, body);
|
|
102
|
+
}
|
|
103
|
+
async serviceBindings(serviceSlug) {
|
|
104
|
+
return this.makeSignedRequest('GET', `/services/${encodeURIComponent(serviceSlug)}/bindings`);
|
|
105
|
+
}
|
|
106
|
+
async serviceTemplates() {
|
|
107
|
+
return this.makeSignedRequest('GET', '/services/templates');
|
|
108
|
+
}
|
|
109
|
+
// ============================================================================
|
|
110
|
+
// Service Lifecycle Methods (Backup + Restore)
|
|
111
|
+
// ============================================================================
|
|
112
|
+
async serviceCreateBackup(serviceSlug, metadata) {
|
|
113
|
+
return this.makeSignedRequest('POST', `/services/${encodeURIComponent(serviceSlug)}/backup`, metadata ? { metadata } : undefined);
|
|
114
|
+
}
|
|
115
|
+
async serviceListBackups(serviceSlug, params) {
|
|
116
|
+
const qs = new URLSearchParams();
|
|
117
|
+
if (params?.limit)
|
|
118
|
+
qs.set('limit', params.limit);
|
|
119
|
+
if (params?.lastEvaluatedKey)
|
|
120
|
+
qs.set('lastEvaluatedKey', params.lastEvaluatedKey);
|
|
121
|
+
const query = qs.toString();
|
|
122
|
+
return this.makeSignedRequest('GET', `/services/${encodeURIComponent(serviceSlug)}/backups${query ? `?${query}` : ''}`);
|
|
123
|
+
}
|
|
124
|
+
async serviceGetBackup(serviceSlug, backupId) {
|
|
125
|
+
return this.makeSignedRequest('GET', `/services/${encodeURIComponent(serviceSlug)}/backups/${encodeURIComponent(backupId)}`);
|
|
126
|
+
}
|
|
127
|
+
async serviceRestore(serviceSlug, body) {
|
|
128
|
+
return this.makeSignedRequest('POST', `/services/${encodeURIComponent(serviceSlug)}/restore`, body);
|
|
129
|
+
}
|
|
130
|
+
async serviceClone(serviceSlug, body) {
|
|
131
|
+
return this.makeSignedRequest('POST', `/services/${encodeURIComponent(serviceSlug)}/clone`, body);
|
|
132
|
+
}
|
|
133
|
+
async serviceBackupSchedule(serviceSlug, schedule) {
|
|
134
|
+
return this.makeSignedRequest('PUT', `/services/${encodeURIComponent(serviceSlug)}`, {
|
|
135
|
+
metadata: { backupSchedule: schedule },
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
// ============================================================================
|
|
139
|
+
// Service Lifecycle Methods (Seed)
|
|
140
|
+
// ============================================================================
|
|
141
|
+
async serviceSeed(serviceSlug, body) {
|
|
142
|
+
return this.makeSignedRequest('POST', `/services/${encodeURIComponent(serviceSlug)}/seed`, body);
|
|
143
|
+
}
|
|
144
|
+
async serviceListSeedRuns(serviceSlug, params) {
|
|
145
|
+
const qs = new URLSearchParams();
|
|
146
|
+
if (params?.limit)
|
|
147
|
+
qs.set('limit', params.limit);
|
|
148
|
+
if (params?.lastEvaluatedKey)
|
|
149
|
+
qs.set('lastEvaluatedKey', params.lastEvaluatedKey);
|
|
150
|
+
const query = qs.toString();
|
|
151
|
+
return this.makeSignedRequest('GET', `/services/${encodeURIComponent(serviceSlug)}/seed-runs${query ? `?${query}` : ''}`);
|
|
152
|
+
}
|
|
153
|
+
async serviceGetSeedRun(serviceSlug, seedRunId) {
|
|
154
|
+
return this.makeSignedRequest('GET', `/services/${encodeURIComponent(serviceSlug)}/seed-runs/${encodeURIComponent(seedRunId)}`);
|
|
155
|
+
}
|
|
156
|
+
async moduleBindings(moduleSlug, params) {
|
|
157
|
+
const qs = params?.stage ? `?stage=${encodeURIComponent(params.stage)}` : '';
|
|
158
|
+
return this.makeSignedRequest('GET', `/modules/${encodeURIComponent(moduleSlug)}/bindings${qs}`);
|
|
159
|
+
}
|
|
160
|
+
// ============================================================================
|
|
53
161
|
// CI Account Methods
|
|
54
162
|
// ============================================================================
|
|
55
163
|
async ciAccountCreate(params) {
|
|
@@ -107,12 +215,24 @@ export class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
107
215
|
async hookCreate(projectId, body) {
|
|
108
216
|
return this.makeSignedRequest('POST', `/hyperdrive/projects/${encodeURIComponent(projectId)}/hooks`, body);
|
|
109
217
|
}
|
|
218
|
+
async hookCreateV2(projectId, body) {
|
|
219
|
+
return this.makeSignedRequest('POST', `/hyperdrive/projects/${encodeURIComponent(projectId)}/hooks`, body);
|
|
220
|
+
}
|
|
110
221
|
async hookDelete(projectId, hookId) {
|
|
111
222
|
return this.makeSignedRequest('DELETE', `/hyperdrive/projects/${encodeURIComponent(projectId)}/hooks/${encodeURIComponent(hookId)}`);
|
|
112
223
|
}
|
|
113
224
|
async hookList(projectId) {
|
|
114
225
|
return this.makeSignedRequest('GET', `/hyperdrive/projects/${encodeURIComponent(projectId)}/hooks`);
|
|
115
226
|
}
|
|
227
|
+
async hookLogList(projectId, options) {
|
|
228
|
+
const params = new URLSearchParams();
|
|
229
|
+
if (options?.limit)
|
|
230
|
+
params.set('limit', String(options.limit));
|
|
231
|
+
if (options?.status)
|
|
232
|
+
params.set('status', options.status);
|
|
233
|
+
const qs = params.toString() ? `?${params.toString()}` : '';
|
|
234
|
+
return this.makeSignedRequest('GET', `/hyperdrive/projects/${encodeURIComponent(projectId)}/hook-logs${qs}`);
|
|
235
|
+
}
|
|
116
236
|
async hookUpdate(projectId, hookId, body) {
|
|
117
237
|
return this.makeSignedRequest('PATCH', `/hyperdrive/projects/${encodeURIComponent(projectId)}/hooks/${encodeURIComponent(hookId)}`, body);
|
|
118
238
|
}
|
|
@@ -252,6 +372,12 @@ export class HyperdriveSigV4Service extends SigV4ApiClient {
|
|
|
252
372
|
return this.makeSignedRequest('DELETE', `/stages/${stageName}/access/${targetType}/${targetId}`);
|
|
253
373
|
}
|
|
254
374
|
// ============================================================================
|
|
375
|
+
// Domain Methods
|
|
376
|
+
// ============================================================================
|
|
377
|
+
async domainSetProduction(params) {
|
|
378
|
+
return this.makeSignedRequest('PUT', '/hyperdrive/domains/production', params);
|
|
379
|
+
}
|
|
380
|
+
// ============================================================================
|
|
255
381
|
// User Groups Methods
|
|
256
382
|
// ============================================================================
|
|
257
383
|
async groupList() {
|
|
@@ -8,7 +8,8 @@ export interface TenantConfig {
|
|
|
8
8
|
region: string;
|
|
9
9
|
tenantDomain: string;
|
|
10
10
|
tenantId: string;
|
|
11
|
-
|
|
11
|
+
/** All additional API URLs from bootstrap, keyed by module name */
|
|
12
|
+
additionalApiUrls?: Record<string, string>;
|
|
12
13
|
}
|
|
13
14
|
export interface CLIConfig {
|
|
14
15
|
apiUrl?: string;
|
|
@@ -101,10 +102,12 @@ export declare class TenantService {
|
|
|
101
102
|
*/
|
|
102
103
|
private getApiUrl;
|
|
103
104
|
/**
|
|
104
|
-
*
|
|
105
|
-
* Returns
|
|
105
|
+
* Extract all additional API URLs from bootstrap REST config.
|
|
106
|
+
* Returns a map of module name → endpoint URL for every REST API
|
|
107
|
+
* beyond the primary 'hyperdrive' endpoint. Services self-serve
|
|
108
|
+
* by looking up the key they need (e.g., 'hyperdrive-projects', 'user-groups').
|
|
106
109
|
*/
|
|
107
|
-
private
|
|
110
|
+
private extractAdditionalApiUrls;
|
|
108
111
|
/**
|
|
109
112
|
* Get bootstrap URL with fallback chain:
|
|
110
113
|
* 1. Environment variable
|
|
@@ -75,6 +75,8 @@ export class TenantService {
|
|
|
75
75
|
// Fallback: construct from tenant ID
|
|
76
76
|
cognitoDomain = `${bootstrap.tenantId}.auth.${region}.amazoncognito.com`;
|
|
77
77
|
}
|
|
78
|
+
// Extract all additional API URLs from bootstrap (services self-serve by key)
|
|
79
|
+
const additionalApiUrls = this.extractAdditionalApiUrls(bootstrap.amplifyConfig.API);
|
|
78
80
|
const config = {
|
|
79
81
|
apiUrl: this.getApiUrl(region, bootstrap.amplifyConfig.API, domain),
|
|
80
82
|
cognitoClientId: Cognito.userPoolClientId,
|
|
@@ -85,7 +87,7 @@ export class TenantService {
|
|
|
85
87
|
region,
|
|
86
88
|
tenantDomain: domain,
|
|
87
89
|
tenantId: bootstrap.tenantId,
|
|
88
|
-
|
|
90
|
+
additionalApiUrls: Object.keys(additionalApiUrls).length > 0 ? additionalApiUrls : undefined,
|
|
89
91
|
};
|
|
90
92
|
// Cache the tenant domain for future use
|
|
91
93
|
this.saveTenantDomainToConfig(domain);
|
|
@@ -314,16 +316,22 @@ export class TenantService {
|
|
|
314
316
|
chalk.gray('Please contact your administrator to enable the Hyperdrive module.'));
|
|
315
317
|
}
|
|
316
318
|
/**
|
|
317
|
-
*
|
|
318
|
-
* Returns
|
|
319
|
+
* Extract all additional API URLs from bootstrap REST config.
|
|
320
|
+
* Returns a map of module name → endpoint URL for every REST API
|
|
321
|
+
* beyond the primary 'hyperdrive' endpoint. Services self-serve
|
|
322
|
+
* by looking up the key they need (e.g., 'hyperdrive-projects', 'user-groups').
|
|
319
323
|
*/
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
if (apiConfig?.REST
|
|
323
|
-
|
|
324
|
-
|
|
324
|
+
extractAdditionalApiUrls(apiConfig) {
|
|
325
|
+
const urls = {};
|
|
326
|
+
if (!apiConfig?.REST)
|
|
327
|
+
return urls;
|
|
328
|
+
for (const [apiName, config] of Object.entries(apiConfig.REST)) {
|
|
329
|
+
if (apiName !== 'hyperdrive' && config.endpoint) {
|
|
330
|
+
console.log(chalk.gray(`✓ Discovered API endpoint: ${apiName} → ${config.endpoint}`));
|
|
331
|
+
urls[apiName] = config.endpoint;
|
|
332
|
+
}
|
|
325
333
|
}
|
|
326
|
-
return
|
|
334
|
+
return urls;
|
|
327
335
|
}
|
|
328
336
|
/**
|
|
329
337
|
* Get bootstrap URL with fallback chain:
|
|
@@ -48,6 +48,7 @@ export interface CognitoConfig {
|
|
|
48
48
|
* Complete stored credentials including tokens and AWS credentials
|
|
49
49
|
*/
|
|
50
50
|
export interface StoredCredentials extends CognitoTokens {
|
|
51
|
+
additionalApiUrls?: Record<string, string>;
|
|
51
52
|
apiUrl: string;
|
|
52
53
|
awsCredentials: AWSCredentials;
|
|
53
54
|
cognitoConfig: CognitoConfig;
|
|
@@ -55,7 +56,6 @@ export interface StoredCredentials extends CognitoTokens {
|
|
|
55
56
|
region: string;
|
|
56
57
|
tenantDomain: string;
|
|
57
58
|
tenantId: string;
|
|
58
|
-
userGroupsApiUrl?: string;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Generate PKCE code verifier (random base64url string)
|
package/dist/utils/auth-flow.js
CHANGED
|
@@ -321,6 +321,7 @@ export async function executeAuthFlow(options) {
|
|
|
321
321
|
// Step 8: Save credentials
|
|
322
322
|
saveCredentials({
|
|
323
323
|
...tokens,
|
|
324
|
+
additionalApiUrls: tenantConfig.additionalApiUrls,
|
|
324
325
|
apiUrl: tenantConfig.apiUrl,
|
|
325
326
|
awsCredentials,
|
|
326
327
|
cognitoConfig: {
|
|
@@ -333,7 +334,6 @@ export async function executeAuthFlow(options) {
|
|
|
333
334
|
region: tenantConfig.region,
|
|
334
335
|
tenantDomain: tenantConfig.tenantDomain,
|
|
335
336
|
tenantId: tenantConfig.tenantId,
|
|
336
|
-
userGroupsApiUrl: tenantConfig.userGroupsApiUrl,
|
|
337
337
|
}, tenantConfig.tenantDomain);
|
|
338
338
|
return { success: true };
|
|
339
339
|
}
|
|
@@ -405,6 +405,7 @@ export async function executeCIAuthFlow(options) {
|
|
|
405
405
|
logger('Saving credentials...');
|
|
406
406
|
saveCredentials({
|
|
407
407
|
access_token: authResult.AccessToken || '',
|
|
408
|
+
additionalApiUrls: tenantConfig.additionalApiUrls,
|
|
408
409
|
apiUrl: tenantConfig.apiUrl,
|
|
409
410
|
awsCredentials,
|
|
410
411
|
cognitoConfig: {
|
|
@@ -421,7 +422,6 @@ export async function executeCIAuthFlow(options) {
|
|
|
421
422
|
tenantDomain: tenantConfig.tenantDomain,
|
|
422
423
|
tenantId: tenantConfig.tenantId,
|
|
423
424
|
token_type: authResult.TokenType || 'Bearer',
|
|
424
|
-
userGroupsApiUrl: tenantConfig.userGroupsApiUrl,
|
|
425
425
|
}, tenantConfig.tenantDomain);
|
|
426
426
|
return { success: true };
|
|
427
427
|
}
|
package/oclif.manifest.json
CHANGED
|
@@ -554,7 +554,7 @@
|
|
|
554
554
|
"description": "The name of the deployment",
|
|
555
555
|
"name": "name",
|
|
556
556
|
"required": false,
|
|
557
|
-
"default": "Deployment-2026-02-
|
|
557
|
+
"default": "Deployment-2026-02-09-16-59-18",
|
|
558
558
|
"hasDynamicHelp": false,
|
|
559
559
|
"multiple": false,
|
|
560
560
|
"type": "option"
|
|
@@ -3515,5 +3515,5 @@
|
|
|
3515
3515
|
]
|
|
3516
3516
|
}
|
|
3517
3517
|
},
|
|
3518
|
-
"version": "1.0.
|
|
3518
|
+
"version": "1.0.12"
|
|
3519
3519
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperdrive.bot/cli",
|
|
3
3
|
"description": "hyperdrive.bot is a command-line interface (CLI) tool designed for managing and deploying projects using the Hyperdrive API. The CLI acts as a proxy to the Hyperdrive API, enabling users to:",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.12",
|
|
5
5
|
"author": "marcelomarra",
|
|
6
6
|
"bin": {
|
|
7
7
|
"hd": "./bin/run.js",
|