hereya-cli 0.95.5 → 0.97.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/README.md +73 -72
- package/dist/backend/cloud/cloud-backend/executor-jobs.d.ts +8 -0
- package/dist/backend/cloud/cloud-backend/executor-jobs.js +11 -0
- package/dist/backend/cloud/cloud-backend.d.ts +8 -0
- package/dist/backend/cloud/cloud-backend.js +3 -0
- package/dist/commands/devenv/config/index.d.ts +12 -0
- package/dist/commands/devenv/config/index.js +66 -13
- package/dist/commands/devenv/ssh-proxy/index.d.ts +27 -0
- package/dist/commands/devenv/ssh-proxy/index.js +80 -0
- package/dist/commands/devenv/uninstall/index.js +19 -0
- package/dist/commands/workspace/executor/install/index.js +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/oclif.manifest.json +63 -30
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ $ npm install -g hereya-cli
|
|
|
21
21
|
$ hereya COMMAND
|
|
22
22
|
running command...
|
|
23
23
|
$ hereya (--version)
|
|
24
|
-
hereya-cli/0.
|
|
24
|
+
hereya-cli/0.97.0 linux-x64 node-v24.14.1
|
|
25
25
|
$ hereya --help [COMMAND]
|
|
26
26
|
USAGE
|
|
27
27
|
$ hereya COMMAND
|
|
@@ -129,7 +129,7 @@ EXAMPLES
|
|
|
129
129
|
$ hereya add cloudy/docker_postgres
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-
_See code: [src/commands/add/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
132
|
+
_See code: [src/commands/add/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/add/index.ts)_
|
|
133
133
|
|
|
134
134
|
## `hereya app deploy NAME`
|
|
135
135
|
|
|
@@ -163,7 +163,7 @@ EXAMPLES
|
|
|
163
163
|
$ hereya app deploy my-org/my-app -w prod -p organizationId=org-123
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
-
_See code: [src/commands/app/deploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
166
|
+
_See code: [src/commands/app/deploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/app/deploy/index.ts)_
|
|
167
167
|
|
|
168
168
|
## `hereya app deployments NAME`
|
|
169
169
|
|
|
@@ -183,7 +183,7 @@ EXAMPLES
|
|
|
183
183
|
$ hereya app deployments my-org/my-app
|
|
184
184
|
```
|
|
185
185
|
|
|
186
|
-
_See code: [src/commands/app/deployments/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
186
|
+
_See code: [src/commands/app/deployments/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/app/deployments/index.ts)_
|
|
187
187
|
|
|
188
188
|
## `hereya app destroy NAME`
|
|
189
189
|
|
|
@@ -212,7 +212,7 @@ EXAMPLES
|
|
|
212
212
|
$ hereya app destroy my-org/my-app -w my-workspace
|
|
213
213
|
```
|
|
214
214
|
|
|
215
|
-
_See code: [src/commands/app/destroy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
215
|
+
_See code: [src/commands/app/destroy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/app/destroy/index.ts)_
|
|
216
216
|
|
|
217
217
|
## `hereya app env NAME [KEY]`
|
|
218
218
|
|
|
@@ -238,7 +238,7 @@ EXAMPLES
|
|
|
238
238
|
$ hereya app env my-org/my-app -w my-workspace DATABASE_URL
|
|
239
239
|
```
|
|
240
240
|
|
|
241
|
-
_See code: [src/commands/app/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
241
|
+
_See code: [src/commands/app/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/app/env/index.ts)_
|
|
242
242
|
|
|
243
243
|
## `hereya app list`
|
|
244
244
|
|
|
@@ -255,7 +255,7 @@ EXAMPLES
|
|
|
255
255
|
$ hereya app list
|
|
256
256
|
```
|
|
257
257
|
|
|
258
|
-
_See code: [src/commands/app/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
258
|
+
_See code: [src/commands/app/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/app/list/index.ts)_
|
|
259
259
|
|
|
260
260
|
## `hereya app new DIRNAME`
|
|
261
261
|
|
|
@@ -281,7 +281,7 @@ EXAMPLES
|
|
|
281
281
|
$ hereya app new ./my-app -n my-org/my-app --description "An ai-app-builder app"
|
|
282
282
|
```
|
|
283
283
|
|
|
284
|
-
_See code: [src/commands/app/new/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
284
|
+
_See code: [src/commands/app/new/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/app/new/index.ts)_
|
|
285
285
|
|
|
286
286
|
## `hereya app status NAME`
|
|
287
287
|
|
|
@@ -304,7 +304,7 @@ EXAMPLES
|
|
|
304
304
|
$ hereya app status my-org/my-app -w my-workspace
|
|
305
305
|
```
|
|
306
306
|
|
|
307
|
-
_See code: [src/commands/app/status/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
307
|
+
_See code: [src/commands/app/status/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/app/status/index.ts)_
|
|
308
308
|
|
|
309
309
|
## `hereya bootstrap INFRASTRUCTURETYPE`
|
|
310
310
|
|
|
@@ -329,7 +329,7 @@ EXAMPLES
|
|
|
329
329
|
$ hereya bootstrap local
|
|
330
330
|
```
|
|
331
331
|
|
|
332
|
-
_See code: [src/commands/bootstrap/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
332
|
+
_See code: [src/commands/bootstrap/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/bootstrap/index.ts)_
|
|
333
333
|
|
|
334
334
|
## `hereya clone PROJECT`
|
|
335
335
|
|
|
@@ -354,7 +354,7 @@ EXAMPLES
|
|
|
354
354
|
$ hereya clone myProject --chdir=./myProject
|
|
355
355
|
```
|
|
356
356
|
|
|
357
|
-
_See code: [src/commands/clone/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
357
|
+
_See code: [src/commands/clone/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/clone/index.ts)_
|
|
358
358
|
|
|
359
359
|
## `hereya config export-backend [FILE]`
|
|
360
360
|
|
|
@@ -376,7 +376,7 @@ EXAMPLES
|
|
|
376
376
|
$ hereya config export-backend ./path/to/export.json
|
|
377
377
|
```
|
|
378
378
|
|
|
379
|
-
_See code: [src/commands/config/export-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
379
|
+
_See code: [src/commands/config/export-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/config/export-backend/index.ts)_
|
|
380
380
|
|
|
381
381
|
## `hereya config get-backend`
|
|
382
382
|
|
|
@@ -393,7 +393,7 @@ EXAMPLES
|
|
|
393
393
|
$ hereya config get-backend
|
|
394
394
|
```
|
|
395
395
|
|
|
396
|
-
_See code: [src/commands/config/get-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
396
|
+
_See code: [src/commands/config/get-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/config/get-backend/index.ts)_
|
|
397
397
|
|
|
398
398
|
## `hereya config import-backend FILE`
|
|
399
399
|
|
|
@@ -413,7 +413,7 @@ EXAMPLES
|
|
|
413
413
|
$ hereya config import-backend ./path/to/cloud-backend.json
|
|
414
414
|
```
|
|
415
415
|
|
|
416
|
-
_See code: [src/commands/config/import-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
416
|
+
_See code: [src/commands/config/import-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/config/import-backend/index.ts)_
|
|
417
417
|
|
|
418
418
|
## `hereya config use-backend TYPE`
|
|
419
419
|
|
|
@@ -435,7 +435,7 @@ EXAMPLES
|
|
|
435
435
|
$ hereya config use-backend local
|
|
436
436
|
```
|
|
437
437
|
|
|
438
|
-
_See code: [src/commands/config/use-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
438
|
+
_See code: [src/commands/config/use-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/config/use-backend/index.ts)_
|
|
439
439
|
|
|
440
440
|
## `hereya delete-state`
|
|
441
441
|
|
|
@@ -461,7 +461,7 @@ EXAMPLES
|
|
|
461
461
|
$ hereya delete-state --workspace staging
|
|
462
462
|
```
|
|
463
463
|
|
|
464
|
-
_See code: [src/commands/delete-state/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
464
|
+
_See code: [src/commands/delete-state/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/delete-state/index.ts)_
|
|
465
465
|
|
|
466
466
|
## `hereya deploy`
|
|
467
467
|
|
|
@@ -487,11 +487,11 @@ EXAMPLES
|
|
|
487
487
|
$ hereya deploy
|
|
488
488
|
```
|
|
489
489
|
|
|
490
|
-
_See code: [src/commands/deploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
490
|
+
_See code: [src/commands/deploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/deploy/index.ts)_
|
|
491
491
|
|
|
492
492
|
## `hereya devenv config`
|
|
493
493
|
|
|
494
|
-
Configure SSH for a dev environment and display connection details.
|
|
494
|
+
Configure SSH for a dev environment and display connection details. On-demand devenvs use a ProxyCommand that wakes the instance on first connection.
|
|
495
495
|
|
|
496
496
|
```
|
|
497
497
|
USAGE
|
|
@@ -501,13 +501,14 @@ FLAGS
|
|
|
501
501
|
-w, --workspace=<value> (required) name of the workspace to configure SSH for
|
|
502
502
|
|
|
503
503
|
DESCRIPTION
|
|
504
|
-
Configure SSH for a dev environment and display connection details.
|
|
504
|
+
Configure SSH for a dev environment and display connection details. On-demand devenvs use a ProxyCommand that wakes
|
|
505
|
+
the instance on first connection.
|
|
505
506
|
|
|
506
507
|
EXAMPLES
|
|
507
508
|
$ hereya devenv config -w my-workspace
|
|
508
509
|
```
|
|
509
510
|
|
|
510
|
-
_See code: [src/commands/devenv/config/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
511
|
+
_See code: [src/commands/devenv/config/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/devenv/config/index.ts)_
|
|
511
512
|
|
|
512
513
|
## `hereya devenv install`
|
|
513
514
|
|
|
@@ -534,7 +535,7 @@ EXAMPLES
|
|
|
534
535
|
$ hereya devenv install -w my-workspace -p instanceType=t3.large
|
|
535
536
|
```
|
|
536
537
|
|
|
537
|
-
_See code: [src/commands/devenv/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
538
|
+
_See code: [src/commands/devenv/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/devenv/install/index.ts)_
|
|
538
539
|
|
|
539
540
|
## `hereya devenv project init PROJECT`
|
|
540
541
|
|
|
@@ -566,7 +567,7 @@ EXAMPLES
|
|
|
566
567
|
$ hereya devenv project init my-app -w my-workspace -t acme/node-starter -p region=us-east-1
|
|
567
568
|
```
|
|
568
569
|
|
|
569
|
-
_See code: [src/commands/devenv/project/init/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
570
|
+
_See code: [src/commands/devenv/project/init/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/devenv/project/init/index.ts)_
|
|
570
571
|
|
|
571
572
|
## `hereya devenv project uninit PROJECT`
|
|
572
573
|
|
|
@@ -592,7 +593,7 @@ EXAMPLES
|
|
|
592
593
|
$ hereya devenv project uninit my-app -w my-workspace --force
|
|
593
594
|
```
|
|
594
595
|
|
|
595
|
-
_See code: [src/commands/devenv/project/uninit/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
596
|
+
_See code: [src/commands/devenv/project/uninit/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/devenv/project/uninit/index.ts)_
|
|
596
597
|
|
|
597
598
|
## `hereya devenv sleep`
|
|
598
599
|
|
|
@@ -613,7 +614,7 @@ EXAMPLES
|
|
|
613
614
|
$ hereya devenv sleep -w my-workspace
|
|
614
615
|
```
|
|
615
616
|
|
|
616
|
-
_See code: [src/commands/devenv/sleep/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
617
|
+
_See code: [src/commands/devenv/sleep/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/devenv/sleep/index.ts)_
|
|
617
618
|
|
|
618
619
|
## `hereya devenv ssh`
|
|
619
620
|
|
|
@@ -633,7 +634,7 @@ EXAMPLES
|
|
|
633
634
|
$ hereya devenv ssh -w my-workspace
|
|
634
635
|
```
|
|
635
636
|
|
|
636
|
-
_See code: [src/commands/devenv/ssh/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
637
|
+
_See code: [src/commands/devenv/ssh/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/devenv/ssh/index.ts)_
|
|
637
638
|
|
|
638
639
|
## `hereya devenv uninstall`
|
|
639
640
|
|
|
@@ -654,7 +655,7 @@ EXAMPLES
|
|
|
654
655
|
$ hereya devenv uninstall -w my-workspace
|
|
655
656
|
```
|
|
656
657
|
|
|
657
|
-
_See code: [src/commands/devenv/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
658
|
+
_See code: [src/commands/devenv/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/devenv/uninstall/index.ts)_
|
|
658
659
|
|
|
659
660
|
## `hereya doc PACKAGE`
|
|
660
661
|
|
|
@@ -687,7 +688,7 @@ EXAMPLES
|
|
|
687
688
|
$ hereya doc my-package --no-doc
|
|
688
689
|
```
|
|
689
690
|
|
|
690
|
-
_See code: [src/commands/doc/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
691
|
+
_See code: [src/commands/doc/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/doc/index.ts)_
|
|
691
692
|
|
|
692
693
|
## `hereya docker run IMAGE`
|
|
693
694
|
|
|
@@ -718,7 +719,7 @@ EXAMPLES
|
|
|
718
719
|
$ hereya docker run myapp:latest -- --rm -v ./data:/data
|
|
719
720
|
```
|
|
720
721
|
|
|
721
|
-
_See code: [src/commands/docker/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
722
|
+
_See code: [src/commands/docker/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/docker/run/index.ts)_
|
|
722
723
|
|
|
723
724
|
## `hereya down`
|
|
724
725
|
|
|
@@ -745,7 +746,7 @@ EXAMPLES
|
|
|
745
746
|
$ hereya down
|
|
746
747
|
```
|
|
747
748
|
|
|
748
|
-
_See code: [src/commands/down/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
749
|
+
_See code: [src/commands/down/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/down/index.ts)_
|
|
749
750
|
|
|
750
751
|
## `hereya env [NAME]`
|
|
751
752
|
|
|
@@ -776,7 +777,7 @@ EXAMPLES
|
|
|
776
777
|
$ hereya env -w dev -l
|
|
777
778
|
```
|
|
778
779
|
|
|
779
|
-
_See code: [src/commands/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
780
|
+
_See code: [src/commands/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/env/index.ts)_
|
|
780
781
|
|
|
781
782
|
## `hereya env set [NAME]`
|
|
782
783
|
|
|
@@ -803,7 +804,7 @@ EXAMPLES
|
|
|
803
804
|
$ hereya env set FOO -v bar -w dev
|
|
804
805
|
```
|
|
805
806
|
|
|
806
|
-
_See code: [src/commands/env/set/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
807
|
+
_See code: [src/commands/env/set/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/env/set/index.ts)_
|
|
807
808
|
|
|
808
809
|
## `hereya executor start`
|
|
809
810
|
|
|
@@ -837,7 +838,7 @@ EXAMPLES
|
|
|
837
838
|
HEREYA_TOKEN=<token> HEREYA_CLOUD_URL=https://my-cloud.example.com hereya executor start -w my-workspace
|
|
838
839
|
```
|
|
839
840
|
|
|
840
|
-
_See code: [src/commands/executor/start/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
841
|
+
_See code: [src/commands/executor/start/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/executor/start/index.ts)_
|
|
841
842
|
|
|
842
843
|
## `hereya flow add PACKAGE`
|
|
843
844
|
|
|
@@ -875,7 +876,7 @@ EXAMPLES
|
|
|
875
876
|
$ hereya flow add cloudy/docker_postgres -p DB_NAME=mydb -p DB_USER=admin
|
|
876
877
|
```
|
|
877
878
|
|
|
878
|
-
_See code: [src/commands/flow/add/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
879
|
+
_See code: [src/commands/flow/add/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/flow/add/index.ts)_
|
|
879
880
|
|
|
880
881
|
## `hereya flow docker run IMAGE`
|
|
881
882
|
|
|
@@ -905,7 +906,7 @@ EXAMPLES
|
|
|
905
906
|
$ hereya flow docker run --pin myapp:latest -- --rm
|
|
906
907
|
```
|
|
907
908
|
|
|
908
|
-
_See code: [src/commands/flow/docker/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
909
|
+
_See code: [src/commands/flow/docker/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/flow/docker/run/index.ts)_
|
|
909
910
|
|
|
910
911
|
## `hereya flow down`
|
|
911
912
|
|
|
@@ -939,7 +940,7 @@ EXAMPLES
|
|
|
939
940
|
$ hereya flow down --pin
|
|
940
941
|
```
|
|
941
942
|
|
|
942
|
-
_See code: [src/commands/flow/down/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
943
|
+
_See code: [src/commands/flow/down/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/flow/down/index.ts)_
|
|
943
944
|
|
|
944
945
|
## `hereya flow env [NAME]`
|
|
945
946
|
|
|
@@ -973,7 +974,7 @@ EXAMPLES
|
|
|
973
974
|
$ hereya flow env -l
|
|
974
975
|
```
|
|
975
976
|
|
|
976
|
-
_See code: [src/commands/flow/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
977
|
+
_See code: [src/commands/flow/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/flow/env/index.ts)_
|
|
977
978
|
|
|
978
979
|
## `hereya flow provid PACKAGE`
|
|
979
980
|
|
|
@@ -1002,7 +1003,7 @@ EXAMPLES
|
|
|
1002
1003
|
$ hereya flow provid hereya/postgres --pin
|
|
1003
1004
|
```
|
|
1004
1005
|
|
|
1005
|
-
_See code: [src/commands/flow/provid/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1006
|
+
_See code: [src/commands/flow/provid/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/flow/provid/index.ts)_
|
|
1006
1007
|
|
|
1007
1008
|
## `hereya flow remove PACKAGE`
|
|
1008
1009
|
|
|
@@ -1032,7 +1033,7 @@ EXAMPLES
|
|
|
1032
1033
|
$ hereya flow remove cloudy/docker_postgres --profile staging
|
|
1033
1034
|
```
|
|
1034
1035
|
|
|
1035
|
-
_See code: [src/commands/flow/remove/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1036
|
+
_See code: [src/commands/flow/remove/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/flow/remove/index.ts)_
|
|
1036
1037
|
|
|
1037
1038
|
## `hereya flow run CMD`
|
|
1038
1039
|
|
|
@@ -1061,7 +1062,7 @@ EXAMPLES
|
|
|
1061
1062
|
$ hereya flow run --pin -- npm test
|
|
1062
1063
|
```
|
|
1063
1064
|
|
|
1064
|
-
_See code: [src/commands/flow/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1065
|
+
_See code: [src/commands/flow/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/flow/run/index.ts)_
|
|
1065
1066
|
|
|
1066
1067
|
## `hereya flow up`
|
|
1067
1068
|
|
|
@@ -1095,7 +1096,7 @@ EXAMPLES
|
|
|
1095
1096
|
$ hereya flow up --pin
|
|
1096
1097
|
```
|
|
1097
1098
|
|
|
1098
|
-
_See code: [src/commands/flow/up/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1099
|
+
_See code: [src/commands/flow/up/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/flow/up/index.ts)_
|
|
1099
1100
|
|
|
1100
1101
|
## `hereya help [COMMAND]`
|
|
1101
1102
|
|
|
@@ -1152,7 +1153,7 @@ EXAMPLES
|
|
|
1152
1153
|
$ hereya import org/my-package -f state.tfstate -w my-workspace
|
|
1153
1154
|
```
|
|
1154
1155
|
|
|
1155
|
-
_See code: [src/commands/import/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1156
|
+
_See code: [src/commands/import/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/import/index.ts)_
|
|
1156
1157
|
|
|
1157
1158
|
## `hereya import-repo PROJECT`
|
|
1158
1159
|
|
|
@@ -1182,7 +1183,7 @@ EXAMPLES
|
|
|
1182
1183
|
$ hereya import-repo myProject -w=dev -r=https://github.com/acme/api --clone --chdir=./api
|
|
1183
1184
|
```
|
|
1184
1185
|
|
|
1185
|
-
_See code: [src/commands/import-repo/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1186
|
+
_See code: [src/commands/import-repo/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/import-repo/index.ts)_
|
|
1186
1187
|
|
|
1187
1188
|
## `hereya init PROJECT`
|
|
1188
1189
|
|
|
@@ -1216,7 +1217,7 @@ EXAMPLES
|
|
|
1216
1217
|
$ hereya init myProject -w=dev -t=acme/node-starter -d=prod -p region=us-east-1
|
|
1217
1218
|
```
|
|
1218
1219
|
|
|
1219
|
-
_See code: [src/commands/init/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1220
|
+
_See code: [src/commands/init/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/init/index.ts)_
|
|
1220
1221
|
|
|
1221
1222
|
## `hereya list`
|
|
1222
1223
|
|
|
@@ -1233,7 +1234,7 @@ EXAMPLES
|
|
|
1233
1234
|
$ hereya list
|
|
1234
1235
|
```
|
|
1235
1236
|
|
|
1236
|
-
_See code: [src/commands/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1237
|
+
_See code: [src/commands/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/list/index.ts)_
|
|
1237
1238
|
|
|
1238
1239
|
## `hereya login [URL]`
|
|
1239
1240
|
|
|
@@ -1262,7 +1263,7 @@ EXAMPLES
|
|
|
1262
1263
|
$ hereya login --token=your-token https://cloud.hereya.dev
|
|
1263
1264
|
```
|
|
1264
1265
|
|
|
1265
|
-
_See code: [src/commands/login/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1266
|
+
_See code: [src/commands/login/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/login/index.ts)_
|
|
1266
1267
|
|
|
1267
1268
|
## `hereya logout`
|
|
1268
1269
|
|
|
@@ -1279,7 +1280,7 @@ EXAMPLES
|
|
|
1279
1280
|
$ hereya logout
|
|
1280
1281
|
```
|
|
1281
1282
|
|
|
1282
|
-
_See code: [src/commands/logout/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1283
|
+
_See code: [src/commands/logout/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/logout/index.ts)_
|
|
1283
1284
|
|
|
1284
1285
|
## `hereya provid PACKAGE`
|
|
1285
1286
|
|
|
@@ -1307,7 +1308,7 @@ EXAMPLES
|
|
|
1307
1308
|
$ hereya provid hereya/postgres --workspace staging
|
|
1308
1309
|
```
|
|
1309
1310
|
|
|
1310
|
-
_See code: [src/commands/provid/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1311
|
+
_See code: [src/commands/provid/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/provid/index.ts)_
|
|
1311
1312
|
|
|
1312
1313
|
## `hereya publish`
|
|
1313
1314
|
|
|
@@ -1330,7 +1331,7 @@ EXAMPLES
|
|
|
1330
1331
|
$ hereya publish --chdir=/path/to/package
|
|
1331
1332
|
```
|
|
1332
1333
|
|
|
1333
|
-
_See code: [src/commands/publish/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1334
|
+
_See code: [src/commands/publish/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/publish/index.ts)_
|
|
1334
1335
|
|
|
1335
1336
|
## `hereya remove PACKAGE`
|
|
1336
1337
|
|
|
@@ -1358,7 +1359,7 @@ EXAMPLES
|
|
|
1358
1359
|
$ hereya remove cloudy/docker_postgres
|
|
1359
1360
|
```
|
|
1360
1361
|
|
|
1361
|
-
_See code: [src/commands/remove/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1362
|
+
_See code: [src/commands/remove/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/remove/index.ts)_
|
|
1362
1363
|
|
|
1363
1364
|
## `hereya run CMD`
|
|
1364
1365
|
|
|
@@ -1384,7 +1385,7 @@ EXAMPLES
|
|
|
1384
1385
|
$ hereya run -w uat -- node index.js
|
|
1385
1386
|
```
|
|
1386
1387
|
|
|
1387
|
-
_See code: [src/commands/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1388
|
+
_See code: [src/commands/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/run/index.ts)_
|
|
1388
1389
|
|
|
1389
1390
|
## `hereya search QUERY`
|
|
1390
1391
|
|
|
@@ -1415,7 +1416,7 @@ EXAMPLES
|
|
|
1415
1416
|
$ hereya search database --json
|
|
1416
1417
|
```
|
|
1417
1418
|
|
|
1418
|
-
_See code: [src/commands/search/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1419
|
+
_See code: [src/commands/search/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/search/index.ts)_
|
|
1419
1420
|
|
|
1420
1421
|
## `hereya unbootstrap INFRASTRUCTURETYPE`
|
|
1421
1422
|
|
|
@@ -1440,7 +1441,7 @@ EXAMPLES
|
|
|
1440
1441
|
$ hereya unbootstrap local
|
|
1441
1442
|
```
|
|
1442
1443
|
|
|
1443
|
-
_See code: [src/commands/unbootstrap/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1444
|
+
_See code: [src/commands/unbootstrap/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/unbootstrap/index.ts)_
|
|
1444
1445
|
|
|
1445
1446
|
## `hereya undeploy`
|
|
1446
1447
|
|
|
@@ -1466,7 +1467,7 @@ EXAMPLES
|
|
|
1466
1467
|
$ hereya undeploy
|
|
1467
1468
|
```
|
|
1468
1469
|
|
|
1469
|
-
_See code: [src/commands/undeploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1470
|
+
_See code: [src/commands/undeploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/undeploy/index.ts)_
|
|
1470
1471
|
|
|
1471
1472
|
## `hereya uninit PROJECT`
|
|
1472
1473
|
|
|
@@ -1494,7 +1495,7 @@ EXAMPLES
|
|
|
1494
1495
|
$ hereya uninit myProject -w dev -p prodWorkspace=prod
|
|
1495
1496
|
```
|
|
1496
1497
|
|
|
1497
|
-
_See code: [src/commands/uninit/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1498
|
+
_See code: [src/commands/uninit/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/uninit/index.ts)_
|
|
1498
1499
|
|
|
1499
1500
|
## `hereya up`
|
|
1500
1501
|
|
|
@@ -1521,7 +1522,7 @@ EXAMPLES
|
|
|
1521
1522
|
$ hereya up
|
|
1522
1523
|
```
|
|
1523
1524
|
|
|
1524
|
-
_See code: [src/commands/up/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1525
|
+
_See code: [src/commands/up/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/up/index.ts)_
|
|
1525
1526
|
|
|
1526
1527
|
## `hereya update [VERSION]`
|
|
1527
1528
|
|
|
@@ -1543,7 +1544,7 @@ EXAMPLES
|
|
|
1543
1544
|
$ hereya update 0.75.0
|
|
1544
1545
|
```
|
|
1545
1546
|
|
|
1546
|
-
_See code: [src/commands/update/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1547
|
+
_See code: [src/commands/update/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/update/index.ts)_
|
|
1547
1548
|
|
|
1548
1549
|
## `hereya workspace create NAME`
|
|
1549
1550
|
|
|
@@ -1568,7 +1569,7 @@ EXAMPLES
|
|
|
1568
1569
|
$ hereya workspace create dev
|
|
1569
1570
|
```
|
|
1570
1571
|
|
|
1571
|
-
_See code: [src/commands/workspace/create/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1572
|
+
_See code: [src/commands/workspace/create/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/create/index.ts)_
|
|
1572
1573
|
|
|
1573
1574
|
## `hereya workspace delete NAME`
|
|
1574
1575
|
|
|
@@ -1588,7 +1589,7 @@ EXAMPLES
|
|
|
1588
1589
|
$ hereya workspace delete dev
|
|
1589
1590
|
```
|
|
1590
1591
|
|
|
1591
|
-
_See code: [src/commands/workspace/delete/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1592
|
+
_See code: [src/commands/workspace/delete/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/delete/index.ts)_
|
|
1592
1593
|
|
|
1593
1594
|
## `hereya workspace env [NAME]`
|
|
1594
1595
|
|
|
@@ -1614,7 +1615,7 @@ EXAMPLES
|
|
|
1614
1615
|
$ hereya workspace env myEnv -w dev
|
|
1615
1616
|
```
|
|
1616
1617
|
|
|
1617
|
-
_See code: [src/commands/workspace/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1618
|
+
_See code: [src/commands/workspace/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/env/index.ts)_
|
|
1618
1619
|
|
|
1619
1620
|
## `hereya workspace env set`
|
|
1620
1621
|
|
|
@@ -1638,7 +1639,7 @@ EXAMPLES
|
|
|
1638
1639
|
$ hereya workspace env set -w my-workspace -n myVar -v my-value -i aws -s
|
|
1639
1640
|
```
|
|
1640
1641
|
|
|
1641
|
-
_See code: [src/commands/workspace/env/set/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1642
|
+
_See code: [src/commands/workspace/env/set/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/env/set/index.ts)_
|
|
1642
1643
|
|
|
1643
1644
|
## `hereya workspace env unset`
|
|
1644
1645
|
|
|
@@ -1659,7 +1660,7 @@ EXAMPLES
|
|
|
1659
1660
|
$ hereya workspace env unset -w my-workspace -n myVar
|
|
1660
1661
|
```
|
|
1661
1662
|
|
|
1662
|
-
_See code: [src/commands/workspace/env/unset/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1663
|
+
_See code: [src/commands/workspace/env/unset/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/env/unset/index.ts)_
|
|
1663
1664
|
|
|
1664
1665
|
## `hereya workspace executor install`
|
|
1665
1666
|
|
|
@@ -1674,19 +1675,19 @@ FLAGS
|
|
|
1674
1675
|
-p, --parameter=<value>... parameter for the package, in the form of 'key=value'. Can be specified multiple times.
|
|
1675
1676
|
-w, --workspace=<value> (required) name of the workspace
|
|
1676
1677
|
--debug enable debug mode
|
|
1677
|
-
--mode=<option> [default:
|
|
1678
|
-
|
|
1678
|
+
--mode=<option> [default: ephemeral] executor mode: ephemeral (ASG min=0/max=1 with broker Lambda) or
|
|
1679
|
+
always-on (legacy long-lived EC2)
|
|
1679
1680
|
<options: ephemeral|always-on>
|
|
1680
1681
|
|
|
1681
1682
|
DESCRIPTION
|
|
1682
1683
|
Install a remote executor into a workspace.
|
|
1683
1684
|
|
|
1684
1685
|
Provisions hereya/remote-executor-aws. Two modes are supported:
|
|
1685
|
-
-
|
|
1686
|
-
-
|
|
1686
|
+
- ephemeral (default): ASG scaled to 0 with a broker Lambda + OIDC for on-demand wake.
|
|
1687
|
+
- always-on: a long-lived EC2 polls hereya-cloud 24/7 (legacy).
|
|
1687
1688
|
```
|
|
1688
1689
|
|
|
1689
|
-
_See code: [src/commands/workspace/executor/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1690
|
+
_See code: [src/commands/workspace/executor/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/executor/install/index.ts)_
|
|
1690
1691
|
|
|
1691
1692
|
## `hereya workspace executor token`
|
|
1692
1693
|
|
|
@@ -1703,7 +1704,7 @@ DESCRIPTION
|
|
|
1703
1704
|
Generate a workspace-scoped executor token for the remote executor
|
|
1704
1705
|
```
|
|
1705
1706
|
|
|
1706
|
-
_See code: [src/commands/workspace/executor/token/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1707
|
+
_See code: [src/commands/workspace/executor/token/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/executor/token/index.ts)_
|
|
1707
1708
|
|
|
1708
1709
|
## `hereya workspace executor uninstall`
|
|
1709
1710
|
|
|
@@ -1727,7 +1728,7 @@ DESCRIPTION
|
|
|
1727
1728
|
controls log output.
|
|
1728
1729
|
```
|
|
1729
1730
|
|
|
1730
|
-
_See code: [src/commands/workspace/executor/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1731
|
+
_See code: [src/commands/workspace/executor/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/executor/uninstall/index.ts)_
|
|
1731
1732
|
|
|
1732
1733
|
## `hereya workspace install PACKAGE`
|
|
1733
1734
|
|
|
@@ -1754,7 +1755,7 @@ EXAMPLES
|
|
|
1754
1755
|
$ hereya workspace install hereya/aws-cognito
|
|
1755
1756
|
```
|
|
1756
1757
|
|
|
1757
|
-
_See code: [src/commands/workspace/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1758
|
+
_See code: [src/commands/workspace/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/install/index.ts)_
|
|
1758
1759
|
|
|
1759
1760
|
## `hereya workspace list`
|
|
1760
1761
|
|
|
@@ -1778,7 +1779,7 @@ EXAMPLES
|
|
|
1778
1779
|
$ hereya workspace list --org personal
|
|
1779
1780
|
```
|
|
1780
1781
|
|
|
1781
|
-
_See code: [src/commands/workspace/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1782
|
+
_See code: [src/commands/workspace/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/list/index.ts)_
|
|
1782
1783
|
|
|
1783
1784
|
## `hereya workspace set-profile PROFILE`
|
|
1784
1785
|
|
|
@@ -1802,7 +1803,7 @@ EXAMPLES
|
|
|
1802
1803
|
$ hereya workspace set-profile prod-profile -w production
|
|
1803
1804
|
```
|
|
1804
1805
|
|
|
1805
|
-
_See code: [src/commands/workspace/set-profile/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1806
|
+
_See code: [src/commands/workspace/set-profile/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/set-profile/index.ts)_
|
|
1806
1807
|
|
|
1807
1808
|
## `hereya workspace uninstall PACKAGE`
|
|
1808
1809
|
|
|
@@ -1829,5 +1830,5 @@ EXAMPLES
|
|
|
1829
1830
|
$ hereya workspace uninstall hereya/aws-cognito
|
|
1830
1831
|
```
|
|
1831
1832
|
|
|
1832
|
-
_See code: [src/commands/workspace/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.
|
|
1833
|
+
_See code: [src/commands/workspace/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.97.0/src/commands/workspace/uninstall/index.ts)_
|
|
1833
1834
|
<!-- commandsstop -->
|
|
@@ -42,6 +42,14 @@ export declare function pollExecutorJobs(config: CloudHttpConfig, input: {
|
|
|
42
42
|
success: false;
|
|
43
43
|
unauthorized?: true;
|
|
44
44
|
}>;
|
|
45
|
+
export declare function revokeDevenvToken(config: CloudHttpConfig, input: {
|
|
46
|
+
workspace: string;
|
|
47
|
+
}): Promise<{
|
|
48
|
+
reason: string;
|
|
49
|
+
success: false;
|
|
50
|
+
} | {
|
|
51
|
+
success: true;
|
|
52
|
+
}>;
|
|
45
53
|
export declare function revokeExecutorToken(config: CloudHttpConfig, input: {
|
|
46
54
|
workspace: string;
|
|
47
55
|
}): Promise<{
|
|
@@ -53,6 +53,17 @@ export async function pollExecutorJobs(config, input) {
|
|
|
53
53
|
const result = await response.json();
|
|
54
54
|
return { job: result.job, success: true };
|
|
55
55
|
}
|
|
56
|
+
export async function revokeDevenvToken(config, input) {
|
|
57
|
+
const response = await fetch(`${config.url}/api/workspaces/${encodeURIComponent(input.workspace)}/devenv-token`, {
|
|
58
|
+
headers: { 'Authorization': `Bearer ${config.accessToken}` },
|
|
59
|
+
method: 'DELETE',
|
|
60
|
+
});
|
|
61
|
+
if (!response.ok) {
|
|
62
|
+
const error = await safeResponseJson(response);
|
|
63
|
+
return { reason: error.error || 'Failed to revoke devenv token', success: false };
|
|
64
|
+
}
|
|
65
|
+
return { success: true };
|
|
66
|
+
}
|
|
56
67
|
export async function revokeExecutorToken(config, input) {
|
|
57
68
|
const response = await fetch(`${config.url}/api/workspaces/${encodeURIComponent(input.workspace)}/executor-token`, {
|
|
58
69
|
headers: { 'Authorization': `Bearer ${config.accessToken}` },
|
|
@@ -146,6 +146,14 @@ export declare class CloudBackend implements Backend {
|
|
|
146
146
|
publishPackage(input: Parameters<typeof packagesPublish.publishPackage>[1]): Promise<import("../common.js").PublishPackageOutput>;
|
|
147
147
|
registerExecutorBroker(input: executorBroker.RegisterExecutorBrokerInput): Promise<executorBroker.RegisterExecutorBrokerOutput>;
|
|
148
148
|
removePackageFromWorkspace(input: Parameters<typeof packagesWorkspace.removePackageFromWorkspace>[1]): Promise<import("../common.js").AddPackageToWorkspaceOutput>;
|
|
149
|
+
revokeDevenvToken(input: {
|
|
150
|
+
workspace: string;
|
|
151
|
+
}): Promise<{
|
|
152
|
+
reason: string;
|
|
153
|
+
success: false;
|
|
154
|
+
} | {
|
|
155
|
+
success: true;
|
|
156
|
+
}>;
|
|
149
157
|
revokeExecutorToken(input: {
|
|
150
158
|
workspace: string;
|
|
151
159
|
}): Promise<{
|
|
@@ -114,6 +114,9 @@ export class CloudBackend {
|
|
|
114
114
|
removePackageFromWorkspace(input) {
|
|
115
115
|
return packagesWorkspace.removePackageFromWorkspace(this.config, input);
|
|
116
116
|
}
|
|
117
|
+
revokeDevenvToken(input) {
|
|
118
|
+
return executorJobs.revokeDevenvToken(this.config, input);
|
|
119
|
+
}
|
|
117
120
|
revokeExecutorToken(input) {
|
|
118
121
|
return executorJobs.revokeExecutorToken(this.config, input);
|
|
119
122
|
}
|
|
@@ -3,8 +3,20 @@ export declare function buildSshConfigBlock(options: {
|
|
|
3
3
|
host: string;
|
|
4
4
|
hostAlias: string;
|
|
5
5
|
keyFilePath: string;
|
|
6
|
+
proxyCommand?: string;
|
|
6
7
|
sshUser: string;
|
|
7
8
|
}): string;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the path to the hereya binary so we can bake an absolute
|
|
11
|
+
* ProxyCommand into the SSH config. SSH invokes ProxyCommand without
|
|
12
|
+
* inheriting the user's interactive shell PATH (it uses /bin/sh and the
|
|
13
|
+
* stripped login env), so a bare `hereya` often won't resolve. Prefer
|
|
14
|
+
* `process.argv[1]` (the actual binary that ran us) — that path is what's
|
|
15
|
+
* already on the user's machine and just worked. Fall back to `hereya` if
|
|
16
|
+
* argv[1] is missing for any reason; users can fix their PATH or re-run
|
|
17
|
+
* `devenv config` from a binary they want the SSH proxy to use.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveHereyaBinForProxyCommand(): string;
|
|
8
20
|
export declare function upsertSshConfigBlock(existingConfig: string, newBlock: string, hostAlias: string): string;
|
|
9
21
|
export default class DevenvConfig extends Command {
|
|
10
22
|
static description: string;
|
|
@@ -6,20 +6,43 @@ import { getBackend } from '../../../backend/index.js';
|
|
|
6
6
|
import { getExecutorForWorkspace } from '../../../executor/context.js';
|
|
7
7
|
import { setKeyFilePermissions, setSshDirPermissions } from '../../../lib/ssh-utils.js';
|
|
8
8
|
export function buildSshConfigBlock(options) {
|
|
9
|
-
const { host, hostAlias, keyFilePath, sshUser } = options;
|
|
9
|
+
const { host, hostAlias, keyFilePath, proxyCommand, sshUser } = options;
|
|
10
10
|
const knownHostsFile = process.platform === 'win32' ? 'NUL' : '/dev/null';
|
|
11
11
|
const beginMarker = `# hereya-managed:${hostAlias} BEGIN`;
|
|
12
12
|
const endMarker = `# hereya-managed:${hostAlias} END`;
|
|
13
|
-
|
|
13
|
+
// On-demand devenvs (proxyCommand provided) need a placeholder HostName —
|
|
14
|
+
// ssh requires HostName to start a connection but the actual address is
|
|
15
|
+
// resolved by ProxyCommand at connect time. The alias itself is fine as
|
|
16
|
+
// a placeholder; ProxyCommand ignores %h.
|
|
17
|
+
const lines = [
|
|
14
18
|
beginMarker,
|
|
15
19
|
`Host ${hostAlias}`,
|
|
16
20
|
` HostName ${host}`,
|
|
17
21
|
` User ${sshUser}`,
|
|
18
22
|
` IdentityFile ${keyFilePath}`,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
];
|
|
24
|
+
if (proxyCommand) {
|
|
25
|
+
lines.push(` ProxyCommand ${proxyCommand}`);
|
|
26
|
+
}
|
|
27
|
+
lines.push(` StrictHostKeyChecking no`, ` UserKnownHostsFile ${knownHostsFile}`, endMarker);
|
|
28
|
+
return lines.join('\n');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve the path to the hereya binary so we can bake an absolute
|
|
32
|
+
* ProxyCommand into the SSH config. SSH invokes ProxyCommand without
|
|
33
|
+
* inheriting the user's interactive shell PATH (it uses /bin/sh and the
|
|
34
|
+
* stripped login env), so a bare `hereya` often won't resolve. Prefer
|
|
35
|
+
* `process.argv[1]` (the actual binary that ran us) — that path is what's
|
|
36
|
+
* already on the user's machine and just worked. Fall back to `hereya` if
|
|
37
|
+
* argv[1] is missing for any reason; users can fix their PATH or re-run
|
|
38
|
+
* `devenv config` from a binary they want the SSH proxy to use.
|
|
39
|
+
*/
|
|
40
|
+
export function resolveHereyaBinForProxyCommand() {
|
|
41
|
+
const argv1 = process.argv[1];
|
|
42
|
+
if (argv1 && argv1.length > 0) {
|
|
43
|
+
return argv1;
|
|
44
|
+
}
|
|
45
|
+
return 'hereya';
|
|
23
46
|
}
|
|
24
47
|
export function upsertSshConfigBlock(existingConfig, newBlock, hostAlias) {
|
|
25
48
|
const beginMarker = `# hereya-managed:${hostAlias} BEGIN`;
|
|
@@ -37,7 +60,7 @@ export function upsertSshConfigBlock(existingConfig, newBlock, hostAlias) {
|
|
|
37
60
|
return existingConfig.trimEnd() + '\n\n' + newBlock + '\n';
|
|
38
61
|
}
|
|
39
62
|
export default class DevenvConfig extends Command {
|
|
40
|
-
static description = 'Configure SSH for a dev environment and display connection details.';
|
|
63
|
+
static description = 'Configure SSH for a dev environment and display connection details. On-demand devenvs use a ProxyCommand that wakes the instance on first connection.';
|
|
41
64
|
static examples = [
|
|
42
65
|
'<%= config.bin %> <%= command.id %> -w my-workspace',
|
|
43
66
|
];
|
|
@@ -67,10 +90,15 @@ export default class DevenvConfig extends Command {
|
|
|
67
90
|
const sshPrivateKey = env.devEnvSshPrivateKey;
|
|
68
91
|
const sshUser = env.devEnvSshUser;
|
|
69
92
|
const sshHostDns = env.devEnvSshHostDns;
|
|
70
|
-
|
|
71
|
-
|
|
93
|
+
const wakeUrl = env.devEnvWakeUrl;
|
|
94
|
+
if (!sshPrivateKey || !sshUser) {
|
|
95
|
+
this.error('devEnvSshPrivateKey and devEnvSshUser must be set in the workspace environment');
|
|
96
|
+
}
|
|
97
|
+
// Always-on devenvs need a cached host; on-demand devenvs resolve via
|
|
98
|
+
// the broker so devEnvSshHost is just a hint (and is often stale).
|
|
99
|
+
if (!wakeUrl && !sshHost) {
|
|
100
|
+
this.error('devEnvSshHost must be set in the workspace environment for always-on devenvs');
|
|
72
101
|
}
|
|
73
|
-
const host = sshHostDns || sshHost;
|
|
74
102
|
const sshDir = path.join(os.homedir(), '.ssh');
|
|
75
103
|
const sanitizedWorkspace = workspace.replaceAll('/', '-');
|
|
76
104
|
const keyFilePath = path.join(sshDir, `hereya-devenv-${sanitizedWorkspace}`);
|
|
@@ -87,15 +115,40 @@ export default class DevenvConfig extends Command {
|
|
|
87
115
|
catch {
|
|
88
116
|
// File doesn't exist yet, that's fine
|
|
89
117
|
}
|
|
90
|
-
|
|
91
|
-
|
|
118
|
+
// For on-demand devenvs, emit a ProxyCommand that calls back into this
|
|
119
|
+
// CLI to wake the box and resolve the live IP every connection. The
|
|
120
|
+
// cached devEnvSshHost would otherwise drift on every stop/start (EC2
|
|
121
|
+
// reassigns public IPs). The HostName field still has to be present
|
|
122
|
+
// for ssh to even try the connection — use the alias as a placeholder
|
|
123
|
+
// since ProxyCommand ignores %h.
|
|
124
|
+
const isOnDemand = Boolean(wakeUrl);
|
|
125
|
+
const block = isOnDemand
|
|
126
|
+
? buildSshConfigBlock({
|
|
127
|
+
host: hostAlias,
|
|
128
|
+
hostAlias,
|
|
129
|
+
keyFilePath,
|
|
130
|
+
proxyCommand: `${resolveHereyaBinForProxyCommand()} devenv ssh-proxy -w ${workspace}`,
|
|
131
|
+
sshUser,
|
|
132
|
+
})
|
|
133
|
+
: buildSshConfigBlock({
|
|
134
|
+
host: sshHostDns || sshHost,
|
|
135
|
+
hostAlias,
|
|
136
|
+
keyFilePath,
|
|
137
|
+
sshUser,
|
|
138
|
+
});
|
|
139
|
+
const updatedConfig = upsertSshConfigBlock(existingConfig, block, hostAlias);
|
|
92
140
|
await fs.writeFile(sshConfigPath, updatedConfig, { mode: 0o600 });
|
|
93
141
|
this.log('SSH connection configured successfully.');
|
|
94
142
|
this.log('');
|
|
95
143
|
this.log('Fill in the Claude Code SSH connection form with:');
|
|
96
144
|
this.log('');
|
|
97
145
|
this.log(` Name: ${workspace}`);
|
|
98
|
-
|
|
146
|
+
if (isOnDemand) {
|
|
147
|
+
this.log(` SSH Host: ${hostAlias} (on-demand; wake handled automatically via ProxyCommand)`);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.log(` SSH Host: ${sshUser}@${sshHostDns || sshHost}`);
|
|
151
|
+
}
|
|
99
152
|
this.log(` SSH Port: 22`);
|
|
100
153
|
this.log(` Identity File: ${keyFilePath}`);
|
|
101
154
|
this.log('');
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Hidden command used as `ProxyCommand` from the SSH config block written
|
|
4
|
+
* by `hereya devenv config`. Wakes the devenv (on-demand path) via the
|
|
5
|
+
* broker, resolves the live IP, then pipes stdin/stdout to <host>:22 so
|
|
6
|
+
* any SSH client (plain `ssh`, VS Code Remote SSH, Cursor, etc.) connects
|
|
7
|
+
* through the resolved address transparently.
|
|
8
|
+
*
|
|
9
|
+
* Equivalent to `ssh -W %h:%p` semantics, except %h/%p are resolved here
|
|
10
|
+
* (host comes from the broker, port is fixed at 22). Uses Node's built-in
|
|
11
|
+
* `net` module so we don't depend on an external `nc`/`ncat` being on PATH.
|
|
12
|
+
*/
|
|
13
|
+
export default class DevenvSshProxy extends Command {
|
|
14
|
+
static description: string;
|
|
15
|
+
static flags: {
|
|
16
|
+
workspace: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
};
|
|
18
|
+
static hidden: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Open a TCP socket to <host>:<port> and pipe between stdin/stdout and
|
|
21
|
+
* the socket — the canonical SSH ProxyCommand contract. Resolves when
|
|
22
|
+
* the SSH client closes (EOF on stdin / socket end), with the appropriate
|
|
23
|
+
* exit code on error.
|
|
24
|
+
*/
|
|
25
|
+
protected pipeToHost(host: string, port: number): Promise<void>;
|
|
26
|
+
run(): Promise<void>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import * as net from 'node:net';
|
|
3
|
+
import { getBackend } from '../../../backend/index.js';
|
|
4
|
+
import { getExecutorForWorkspace } from '../../../executor/context.js';
|
|
5
|
+
import { resolveDevenvSshHost } from '../../../lib/devenv-wake.js';
|
|
6
|
+
/**
|
|
7
|
+
* Hidden command used as `ProxyCommand` from the SSH config block written
|
|
8
|
+
* by `hereya devenv config`. Wakes the devenv (on-demand path) via the
|
|
9
|
+
* broker, resolves the live IP, then pipes stdin/stdout to <host>:22 so
|
|
10
|
+
* any SSH client (plain `ssh`, VS Code Remote SSH, Cursor, etc.) connects
|
|
11
|
+
* through the resolved address transparently.
|
|
12
|
+
*
|
|
13
|
+
* Equivalent to `ssh -W %h:%p` semantics, except %h/%p are resolved here
|
|
14
|
+
* (host comes from the broker, port is fixed at 22). Uses Node's built-in
|
|
15
|
+
* `net` module so we don't depend on an external `nc`/`ncat` being on PATH.
|
|
16
|
+
*/
|
|
17
|
+
export default class DevenvSshProxy extends Command {
|
|
18
|
+
static description = 'Internal: SSH ProxyCommand for on-demand devenvs (wake + connect).';
|
|
19
|
+
static flags = {
|
|
20
|
+
workspace: Flags.string({
|
|
21
|
+
char: 'w',
|
|
22
|
+
description: 'name of the workspace to proxy SSH for',
|
|
23
|
+
required: true,
|
|
24
|
+
}),
|
|
25
|
+
};
|
|
26
|
+
static hidden = true;
|
|
27
|
+
/**
|
|
28
|
+
* Open a TCP socket to <host>:<port> and pipe between stdin/stdout and
|
|
29
|
+
* the socket — the canonical SSH ProxyCommand contract. Resolves when
|
|
30
|
+
* the SSH client closes (EOF on stdin / socket end), with the appropriate
|
|
31
|
+
* exit code on error.
|
|
32
|
+
*/
|
|
33
|
+
pipeToHost(host, port) {
|
|
34
|
+
return new Promise((resolve, reject) => {
|
|
35
|
+
const socket = net.createConnection({ host, port });
|
|
36
|
+
socket.once('error', (err) => {
|
|
37
|
+
process.stderr.write(`hereya devenv ssh-proxy: failed to connect to ${host}:${port}: ${err.message}\n`);
|
|
38
|
+
reject(err);
|
|
39
|
+
});
|
|
40
|
+
socket.once('connect', () => {
|
|
41
|
+
process.stdin.pipe(socket);
|
|
42
|
+
socket.pipe(process.stdout);
|
|
43
|
+
});
|
|
44
|
+
socket.once('end', () => {
|
|
45
|
+
resolve();
|
|
46
|
+
});
|
|
47
|
+
socket.once('close', () => {
|
|
48
|
+
resolve();
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async run() {
|
|
53
|
+
const { flags } = await this.parse(DevenvSshProxy);
|
|
54
|
+
const { workspace } = flags;
|
|
55
|
+
const backend = await getBackend();
|
|
56
|
+
const getWorkspaceEnvOutput = await backend.getWorkspaceEnv({ workspace });
|
|
57
|
+
if (!getWorkspaceEnvOutput.success) {
|
|
58
|
+
this.error(getWorkspaceEnvOutput.reason);
|
|
59
|
+
}
|
|
60
|
+
let { env } = getWorkspaceEnvOutput;
|
|
61
|
+
const executor$ = await getExecutorForWorkspace(workspace);
|
|
62
|
+
if (!executor$.success) {
|
|
63
|
+
this.error(executor$.reason);
|
|
64
|
+
}
|
|
65
|
+
const { executor } = executor$;
|
|
66
|
+
env = await executor.resolveEnvValues({ env });
|
|
67
|
+
let host;
|
|
68
|
+
try {
|
|
69
|
+
host = await resolveDevenvSshHost(env);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
73
|
+
// Print to stderr so SSH surfaces it, then exit non-zero so SSH
|
|
74
|
+
// reports a clean failure to the user.
|
|
75
|
+
process.stderr.write(`hereya devenv ssh-proxy: ${message}\n`);
|
|
76
|
+
this.exit(1);
|
|
77
|
+
}
|
|
78
|
+
await this.pipeToHost(host, 22);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command, Flags } from '@oclif/core';
|
|
2
2
|
import { Listr, ListrLogger, ListrLogLevels } from 'listr2';
|
|
3
|
+
import { CloudBackend } from '../../../backend/cloud/cloud-backend.js';
|
|
3
4
|
import { getCloudCredentials, loadBackendConfig } from '../../../backend/config.js';
|
|
4
5
|
import { getBackend } from '../../../backend/index.js';
|
|
5
6
|
import { getExecutorForWorkspace } from '../../../executor/context.js';
|
|
@@ -192,6 +193,24 @@ export default class DevenvUninstall extends Command {
|
|
|
192
193
|
},
|
|
193
194
|
title: 'Destroying dev environment',
|
|
194
195
|
},
|
|
196
|
+
{
|
|
197
|
+
async task() {
|
|
198
|
+
const backend = await getBackend();
|
|
199
|
+
if (!(backend instanceof CloudBackend)) {
|
|
200
|
+
// Local-only setup — no devenv tokens to revoke. Silently skip.
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const result = await backend.revokeDevenvToken({ workspace: flags.workspace });
|
|
204
|
+
if (!result.success) {
|
|
205
|
+
// Non-fatal: destroy already succeeded. Surface a warning so the
|
|
206
|
+
// user knows the token will only expire on its own (365-day TTL).
|
|
207
|
+
// Mirrors the executor uninstall's posture — destroy is the
|
|
208
|
+
// unrecoverable step; auth cleanup is best-effort.
|
|
209
|
+
process.stderr.write(`warning: failed to revoke devenv token: ${result.reason}\n`);
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
title: 'Revoking devenv token',
|
|
213
|
+
},
|
|
195
214
|
{
|
|
196
215
|
async task(ctx) {
|
|
197
216
|
const { env, metadata } = ctx.destroyOutput;
|
|
@@ -10,14 +10,14 @@ export default class WorkspaceExecutorInstall extends Command {
|
|
|
10
10
|
static description = `Install a remote executor into a workspace.
|
|
11
11
|
|
|
12
12
|
Provisions hereya/remote-executor-aws. Two modes are supported:
|
|
13
|
-
-
|
|
14
|
-
-
|
|
13
|
+
- ephemeral (default): ASG scaled to 0 with a broker Lambda + OIDC for on-demand wake.
|
|
14
|
+
- always-on: a long-lived EC2 polls hereya-cloud 24/7 (legacy).`;
|
|
15
15
|
static flags = {
|
|
16
16
|
debug: Flags.boolean({ default: false, description: 'enable debug mode' }),
|
|
17
17
|
force: Flags.boolean({ char: 'f', default: false, description: 'force reinstall even if executor is already installed' }),
|
|
18
18
|
mode: Flags.string({
|
|
19
|
-
default: '
|
|
20
|
-
description: 'executor mode:
|
|
19
|
+
default: 'ephemeral',
|
|
20
|
+
description: 'executor mode: ephemeral (ASG min=0/max=1 with broker Lambda) or always-on (legacy long-lived EC2)',
|
|
21
21
|
options: ['ephemeral', 'always-on'],
|
|
22
22
|
}),
|
|
23
23
|
parameter: Flags.string({
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { type GetInfrastructureFn, type GetWorkspaceEnvFn, type MintInstallationTokenFn, type ResolveEnvProviders, resolveEnvValues, type ResolveEnvValuesInput, type ResolveEnvValuesOutput, resolveGithubAppMarkers, type ResolveSimpleEnvFn, } from './executor/resolve-env.js';
|
|
2
2
|
export { InfrastructureType } from './infrastructure/common.js';
|
|
3
3
|
export { awsProviderFactory, getInfrastructure, type GetInfrastructureInput, type GetInfrastructureOutput, type InfrastructureProviderFactory, registerInfrastructureProvider, resetInfrastructureProviders, } from './infrastructure/registry.js';
|
|
4
|
+
export { mintInstallationToken, type MintInstallationTokenInput, } from './lib/github-app.js';
|
|
4
5
|
export { run } from '@oclif/core';
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,5 @@
|
|
|
5
5
|
export { resolveEnvValues, resolveGithubAppMarkers, } from './executor/resolve-env.js';
|
|
6
6
|
export { InfrastructureType } from './infrastructure/common.js';
|
|
7
7
|
export { awsProviderFactory, getInfrastructure, registerInfrastructureProvider, resetInfrastructureProviders, } from './infrastructure/registry.js';
|
|
8
|
+
export { mintInstallationToken, } from './lib/github-app.js';
|
|
8
9
|
export { run } from '@oclif/core';
|
package/oclif.manifest.json
CHANGED
|
@@ -170,13 +170,12 @@
|
|
|
170
170
|
"index.js"
|
|
171
171
|
]
|
|
172
172
|
},
|
|
173
|
-
"
|
|
173
|
+
"deploy": {
|
|
174
174
|
"aliases": [],
|
|
175
175
|
"args": {},
|
|
176
|
-
"description": "
|
|
176
|
+
"description": "Deploy a hereya project using the project deployment package",
|
|
177
177
|
"examples": [
|
|
178
|
-
"<%= config.bin %> <%= command.id %>
|
|
179
|
-
"<%= config.bin %> <%= command.id %> --workspace staging"
|
|
178
|
+
"<%= config.bin %> <%= command.id %>"
|
|
180
179
|
],
|
|
181
180
|
"flags": {
|
|
182
181
|
"chdir": {
|
|
@@ -187,9 +186,21 @@
|
|
|
187
186
|
"multiple": false,
|
|
188
187
|
"type": "option"
|
|
189
188
|
},
|
|
189
|
+
"debug": {
|
|
190
|
+
"description": "enable debug mode",
|
|
191
|
+
"name": "debug",
|
|
192
|
+
"allowNo": false,
|
|
193
|
+
"type": "boolean"
|
|
194
|
+
},
|
|
195
|
+
"local": {
|
|
196
|
+
"description": "force local execution (skip remote executor)",
|
|
197
|
+
"name": "local",
|
|
198
|
+
"allowNo": false,
|
|
199
|
+
"type": "boolean"
|
|
200
|
+
},
|
|
190
201
|
"workspace": {
|
|
191
202
|
"char": "w",
|
|
192
|
-
"description": "workspace
|
|
203
|
+
"description": "name of the workspace to deploy the packages for",
|
|
193
204
|
"name": "workspace",
|
|
194
205
|
"required": true,
|
|
195
206
|
"hasDynamicHelp": false,
|
|
@@ -199,7 +210,7 @@
|
|
|
199
210
|
},
|
|
200
211
|
"hasDynamicHelp": false,
|
|
201
212
|
"hiddenAliases": [],
|
|
202
|
-
"id": "
|
|
213
|
+
"id": "deploy",
|
|
203
214
|
"pluginAlias": "hereya-cli",
|
|
204
215
|
"pluginName": "hereya-cli",
|
|
205
216
|
"pluginType": "core",
|
|
@@ -209,16 +220,17 @@
|
|
|
209
220
|
"relativePath": [
|
|
210
221
|
"dist",
|
|
211
222
|
"commands",
|
|
212
|
-
"
|
|
223
|
+
"deploy",
|
|
213
224
|
"index.js"
|
|
214
225
|
]
|
|
215
226
|
},
|
|
216
|
-
"
|
|
227
|
+
"delete-state": {
|
|
217
228
|
"aliases": [],
|
|
218
229
|
"args": {},
|
|
219
|
-
"description": "
|
|
230
|
+
"description": "Delete the remote state of a project for a given workspace",
|
|
220
231
|
"examples": [
|
|
221
|
-
"<%= config.bin %> <%= command.id %>"
|
|
232
|
+
"<%= config.bin %> <%= command.id %> -w dev",
|
|
233
|
+
"<%= config.bin %> <%= command.id %> --workspace staging"
|
|
222
234
|
],
|
|
223
235
|
"flags": {
|
|
224
236
|
"chdir": {
|
|
@@ -229,21 +241,9 @@
|
|
|
229
241
|
"multiple": false,
|
|
230
242
|
"type": "option"
|
|
231
243
|
},
|
|
232
|
-
"debug": {
|
|
233
|
-
"description": "enable debug mode",
|
|
234
|
-
"name": "debug",
|
|
235
|
-
"allowNo": false,
|
|
236
|
-
"type": "boolean"
|
|
237
|
-
},
|
|
238
|
-
"local": {
|
|
239
|
-
"description": "force local execution (skip remote executor)",
|
|
240
|
-
"name": "local",
|
|
241
|
-
"allowNo": false,
|
|
242
|
-
"type": "boolean"
|
|
243
|
-
},
|
|
244
244
|
"workspace": {
|
|
245
245
|
"char": "w",
|
|
246
|
-
"description": "
|
|
246
|
+
"description": "workspace name",
|
|
247
247
|
"name": "workspace",
|
|
248
248
|
"required": true,
|
|
249
249
|
"hasDynamicHelp": false,
|
|
@@ -253,7 +253,7 @@
|
|
|
253
253
|
},
|
|
254
254
|
"hasDynamicHelp": false,
|
|
255
255
|
"hiddenAliases": [],
|
|
256
|
-
"id": "
|
|
256
|
+
"id": "delete-state",
|
|
257
257
|
"pluginAlias": "hereya-cli",
|
|
258
258
|
"pluginName": "hereya-cli",
|
|
259
259
|
"pluginType": "core",
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
"relativePath": [
|
|
264
264
|
"dist",
|
|
265
265
|
"commands",
|
|
266
|
-
"
|
|
266
|
+
"delete-state",
|
|
267
267
|
"index.js"
|
|
268
268
|
]
|
|
269
269
|
},
|
|
@@ -1704,7 +1704,7 @@
|
|
|
1704
1704
|
"devenv:config": {
|
|
1705
1705
|
"aliases": [],
|
|
1706
1706
|
"args": {},
|
|
1707
|
-
"description": "Configure SSH for a dev environment and display connection details.",
|
|
1707
|
+
"description": "Configure SSH for a dev environment and display connection details. On-demand devenvs use a ProxyCommand that wakes the instance on first connection.",
|
|
1708
1708
|
"examples": [
|
|
1709
1709
|
"<%= config.bin %> <%= command.id %> -w my-workspace"
|
|
1710
1710
|
],
|
|
@@ -1886,6 +1886,39 @@
|
|
|
1886
1886
|
"index.js"
|
|
1887
1887
|
]
|
|
1888
1888
|
},
|
|
1889
|
+
"devenv:ssh-proxy": {
|
|
1890
|
+
"aliases": [],
|
|
1891
|
+
"args": {},
|
|
1892
|
+
"description": "Internal: SSH ProxyCommand for on-demand devenvs (wake + connect).",
|
|
1893
|
+
"flags": {
|
|
1894
|
+
"workspace": {
|
|
1895
|
+
"char": "w",
|
|
1896
|
+
"description": "name of the workspace to proxy SSH for",
|
|
1897
|
+
"name": "workspace",
|
|
1898
|
+
"required": true,
|
|
1899
|
+
"hasDynamicHelp": false,
|
|
1900
|
+
"multiple": false,
|
|
1901
|
+
"type": "option"
|
|
1902
|
+
}
|
|
1903
|
+
},
|
|
1904
|
+
"hasDynamicHelp": false,
|
|
1905
|
+
"hidden": true,
|
|
1906
|
+
"hiddenAliases": [],
|
|
1907
|
+
"id": "devenv:ssh-proxy",
|
|
1908
|
+
"pluginAlias": "hereya-cli",
|
|
1909
|
+
"pluginName": "hereya-cli",
|
|
1910
|
+
"pluginType": "core",
|
|
1911
|
+
"strict": true,
|
|
1912
|
+
"enableJsonFlag": false,
|
|
1913
|
+
"isESM": true,
|
|
1914
|
+
"relativePath": [
|
|
1915
|
+
"dist",
|
|
1916
|
+
"commands",
|
|
1917
|
+
"devenv",
|
|
1918
|
+
"ssh-proxy",
|
|
1919
|
+
"index.js"
|
|
1920
|
+
]
|
|
1921
|
+
},
|
|
1889
1922
|
"devenv:uninstall": {
|
|
1890
1923
|
"aliases": [],
|
|
1891
1924
|
"args": {},
|
|
@@ -3221,7 +3254,7 @@
|
|
|
3221
3254
|
"workspace:executor:install": {
|
|
3222
3255
|
"aliases": [],
|
|
3223
3256
|
"args": {},
|
|
3224
|
-
"description": "Install a remote executor into a workspace.\n\nProvisions hereya/remote-executor-aws. Two modes are supported:\n -
|
|
3257
|
+
"description": "Install a remote executor into a workspace.\n\nProvisions hereya/remote-executor-aws. Two modes are supported:\n - ephemeral (default): ASG scaled to 0 with a broker Lambda + OIDC for on-demand wake.\n - always-on: a long-lived EC2 polls hereya-cloud 24/7 (legacy).",
|
|
3225
3258
|
"flags": {
|
|
3226
3259
|
"debug": {
|
|
3227
3260
|
"description": "enable debug mode",
|
|
@@ -3237,9 +3270,9 @@
|
|
|
3237
3270
|
"type": "boolean"
|
|
3238
3271
|
},
|
|
3239
3272
|
"mode": {
|
|
3240
|
-
"description": "executor mode:
|
|
3273
|
+
"description": "executor mode: ephemeral (ASG min=0/max=1 with broker Lambda) or always-on (legacy long-lived EC2)",
|
|
3241
3274
|
"name": "mode",
|
|
3242
|
-
"default": "
|
|
3275
|
+
"default": "ephemeral",
|
|
3243
3276
|
"hasDynamicHelp": false,
|
|
3244
3277
|
"multiple": false,
|
|
3245
3278
|
"options": [
|
|
@@ -3369,5 +3402,5 @@
|
|
|
3369
3402
|
]
|
|
3370
3403
|
}
|
|
3371
3404
|
},
|
|
3372
|
-
"version": "0.
|
|
3405
|
+
"version": "0.97.0"
|
|
3373
3406
|
}
|