@underpostnet/underpost 2.92.0 → 2.95.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.github/workflows/pwa-microservices-template-page.cd.yml +5 -4
  2. package/README.md +4 -5
  3. package/bin/build.js +6 -1
  4. package/bin/deploy.js +2 -69
  5. package/cli.md +99 -92
  6. package/manifests/deployment/dd-default-development/deployment.yaml +4 -4
  7. package/manifests/deployment/dd-test-development/deployment.yaml +2 -2
  8. package/package.json +1 -1
  9. package/scripts/disk-clean.sh +216 -0
  10. package/scripts/ssh-cluster-info.sh +4 -3
  11. package/src/cli/cluster.js +1 -1
  12. package/src/cli/db.js +71 -80
  13. package/src/cli/deploy.js +77 -13
  14. package/src/cli/image.js +198 -133
  15. package/src/cli/index.js +59 -81
  16. package/src/cli/lxd.js +73 -74
  17. package/src/cli/monitor.js +20 -9
  18. package/src/cli/repository.js +86 -3
  19. package/src/cli/run.js +167 -63
  20. package/src/cli/ssh.js +351 -134
  21. package/src/index.js +1 -1
  22. package/src/monitor.js +11 -1
  23. package/src/server/backup.js +1 -1
  24. package/src/server/conf.js +1 -1
  25. package/src/server/dns.js +88 -1
  26. package/src/server/process.js +6 -1
  27. package/scripts/snap-clean.sh +0 -26
  28. package/src/client/public/default/plantuml/client-conf.svg +0 -1
  29. package/src/client/public/default/plantuml/client-schema.svg +0 -1
  30. package/src/client/public/default/plantuml/cron-conf.svg +0 -1
  31. package/src/client/public/default/plantuml/cron-schema.svg +0 -1
  32. package/src/client/public/default/plantuml/server-conf.svg +0 -1
  33. package/src/client/public/default/plantuml/server-schema.svg +0 -1
  34. package/src/client/public/default/plantuml/ssr-conf.svg +0 -1
  35. package/src/client/public/default/plantuml/ssr-schema.svg +0 -1
@@ -4,7 +4,7 @@ name: CD | Gihub page | PWA Microservices Template
4
4
  on:
5
5
  # Runs on pushes targeting the default branch
6
6
  push:
7
- branches: ["main"]
7
+ branches: ['main']
8
8
 
9
9
  # Allows you to run this workflow manually from the Actions tab
10
10
  workflow_dispatch:
@@ -18,7 +18,7 @@ permissions:
18
18
  # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19
19
  # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20
20
  concurrency:
21
- group: "pages"
21
+ group: 'pages'
22
22
  cancel-in-progress: false
23
23
 
24
24
  jobs:
@@ -53,7 +53,8 @@ jobs:
53
53
  run: |
54
54
  npm install -g underpost
55
55
  npm install
56
- node bin/deploy update-default-conf dd-github-pages
56
+ node bin new --default-conf --conf-workflow-id dd-github-pages
57
+ node bin new --deploy-id dd-github-pages
57
58
  underpost env dd-github-pages production
58
59
  env-cmd -f .env.production node bin/deploy build-full-client dd-github-pages underpostnet.github.io /pwa-microservices-template-ghpkg
59
60
  # git lfs install
@@ -66,7 +67,7 @@ jobs:
66
67
  uses: actions/upload-pages-artifact@v3
67
68
  with:
68
69
  # Upload entire repository
69
- path: "./public/underpostnet.github.io/pwa-microservices-template-ghpkg/"
70
+ path: './public/underpostnet.github.io/pwa-microservices-template-ghpkg/'
70
71
  - name: Deploy to GitHub Pages
71
72
  id: deployment
72
73
  uses: actions/deploy-pages@v4
package/README.md CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  <!-- badges -->
20
20
 
21
- [![Node.js CI](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [![Test](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [![Downloads](https://img.shields.io/npm/dm/underpost.svg)](https://www.npmjs.com/package/underpost) [![Socket Badge](https://socket.dev/api/badge/npm/package/underpost/2.92.0)](https://socket.dev/npm/package/underpost/overview/2.92.0) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine/badge.svg?branch=master)](https://coveralls.io/github/underpostnet/engine?branch=master) [![Version](https://img.shields.io/npm/v/underpost.svg)](https://www.npmjs.org/package/underpost) [![License](https://img.shields.io/npm/l/underpost.svg)](https://www.npmjs.com/package/underpost)
21
+ [![Node.js CI](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [![Test](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [![Downloads](https://img.shields.io/npm/dm/underpost.svg)](https://www.npmjs.com/package/underpost) [![Socket Badge](https://socket.dev/api/badge/npm/package/underpost/2.95.1)](https://socket.dev/npm/package/underpost/overview/2.95.1) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine/badge.svg?branch=master)](https://coveralls.io/github/underpostnet/engine?branch=master) [![Version](https://img.shields.io/npm/v/underpost.svg)](https://www.npmjs.org/package/underpost) [![License](https://img.shields.io/npm/l/underpost.svg)](https://www.npmjs.com/package/underpost)
22
22
 
23
23
  <!-- end-badges -->
24
24
 
@@ -66,7 +66,7 @@ Run dev client server
66
66
  npm run dev
67
67
  ```
68
68
  <!-- -->
69
- ## underpost ci/cd cli v2.92.0
69
+ ## underpost ci/cd cli v2.95.1
70
70
 
71
71
  ### Usage: `underpost [options] [command]`
72
72
  ```
@@ -89,8 +89,7 @@ Commands:
89
89
  cluster [options] [pod-name] Manages Kubernetes clusters, defaulting to Kind cluster initialization.
90
90
  deploy [options] [deploy-list] [env] Manages application deployments, defaulting to deploying development pods.
91
91
  secret [options] <platform> Manages secrets for various platforms.
92
- dockerfile-image-build [options] Builds a Docker image from a specified Dockerfile with various options for naming, saving, and loading.
93
- dockerfile-pull-base-images [options] Pulls required Underpost Dockerfile base images and optionally loads them into clusters.
92
+ image [options] Manages Docker images, including building, saving, and loading into Kubernetes clusters.
94
93
  install Quickly imports Underpost npm dependencies by copying them.
95
94
  db [options] <deploy-list> Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.
96
95
  metadata [options] [deploy-id] [host] [path] Manages cluster metadata operations, including import and export.
@@ -100,7 +99,7 @@ Commands:
100
99
  test [options] [deploy-list] Manages and runs tests, defaulting to the current Underpost default test suite.
101
100
  monitor [options] <deploy-id> [env] Manages health server monitoring for specified deployments.
102
101
  ssh [options]
103
- run [options] <runner-id> [path] Runs a script from the specified path.
102
+ run [options] <runner-id> [path] Runs specified scripts using various runners.
104
103
  lxd [options] Manages LXD containers and virtual machines.
105
104
  baremetal [options] [workflow-id] [hostname] [ip-address] Manages baremetal server operations, including installation, database setup, commissioning, and user management.
106
105
  help [command] display help for command
package/bin/build.js CHANGED
@@ -47,7 +47,9 @@ if (process.argv.includes('conf')) {
47
47
  if (!fs.existsSync(`../${privateRepoName}`)) {
48
48
  shellExec(`cd .. && underpost clone ${privateGitUri}`, { silent: true });
49
49
  } else {
50
- shellExec(`cd ../${privateRepoName} && git checkout . && git clean -f -d && underpost pull . ${privateGitUri}`);
50
+ shellExec(`cd ../${privateRepoName} && git checkout . && git clean -f -d && underpost pull . ${privateGitUri}`, {
51
+ silent: true,
52
+ });
51
53
  }
52
54
  const toPath = `../${privateRepoName}/conf/${_confName}`;
53
55
  fs.removeSync(toPath);
@@ -72,6 +74,9 @@ if (process.argv.includes('conf')) {
72
74
  ` && git add .` +
73
75
  ` && underpost cmt . ci engine-core-conf 'Update ${_confName} conf'` +
74
76
  ` && underpost push . ${privateGitUri}`,
77
+ {
78
+ silent: true,
79
+ },
75
80
  );
76
81
  }
77
82
  process.exit(0);
package/bin/deploy.js CHANGED
@@ -24,10 +24,8 @@ import {
24
24
  buildCliDoc,
25
25
  } from '../src/server/conf.js';
26
26
  import { buildClient } from '../src/server/client-build.js';
27
- import { DefaultConf } from '../conf.js';
28
27
  import colors from 'colors';
29
28
  import { program } from '../src/cli/index.js';
30
- import Dns, { getLocalIPv4Address } from '../src/server/dns.js';
31
29
  import { timer } from '../src/client/components/core/CommonJs.js';
32
30
 
33
31
  colors.enable();
@@ -598,71 +596,6 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
598
596
  break;
599
597
  }
600
598
 
601
- case 'update-default-conf': {
602
- const defaultServer = DefaultConf.server['default.net']['/'];
603
- let confName = process.argv[3];
604
- let defaultConf = false;
605
- if (confName === 'dd-github-pages') {
606
- const host = `${process.env.GITHUB_USERNAME ?? 'underpostnet'}.github.io`;
607
- const path = '/pwa-microservices-template-ghpkg';
608
- DefaultConf.server = {
609
- [host]: { [path]: defaultServer },
610
- };
611
- DefaultConf.server[host][path].apiBaseProxyPath = '/';
612
- DefaultConf.server[host][path].apiBaseHost = 'www.nexodev.org';
613
- defaultConf = true;
614
- } else if (confName === 'template') {
615
- const host = 'default.net';
616
- const path = '/';
617
- DefaultConf.server[host][path].valkey = {
618
- port: 6379,
619
- host: 'valkey-service.default.svc.cluster.local',
620
- };
621
- // mongodb-0.mongodb-service
622
- DefaultConf.server[host][path].db.host = 'mongodb://mongodb-service:27017';
623
- defaultConf = true;
624
- } else if (confName && fs.existsSync(`./engine-private/conf/${confName}`)) {
625
- DefaultConf.client = JSON.parse(fs.readFileSync(`./engine-private/conf/${confName}/conf.client.json`, 'utf8'));
626
- DefaultConf.server = JSON.parse(fs.readFileSync(`./engine-private/conf/${confName}/conf.server.json`, 'utf8'));
627
- DefaultConf.ssr = JSON.parse(fs.readFileSync(`./engine-private/conf/${confName}/conf.ssr.json`, 'utf8'));
628
- // DefaultConf.cron = JSON.parse(fs.readFileSync(`./engine-private/conf/${confName}/conf.cron.json`, 'utf8'));
629
-
630
- for (const host of Object.keys(DefaultConf.server)) {
631
- for (const path of Object.keys(DefaultConf.server[host])) {
632
- DefaultConf.server[host][path].db = defaultServer.db;
633
- DefaultConf.server[host][path].mailer = defaultServer.mailer;
634
-
635
- delete DefaultConf.server[host][path]._wp_client;
636
- delete DefaultConf.server[host][path]._wp_git;
637
- delete DefaultConf.server[host][path]._wp_directory;
638
- delete DefaultConf.server[host][path].wp;
639
- delete DefaultConf.server[host][path].git;
640
- delete DefaultConf.server[host][path].directory;
641
- }
642
- }
643
- }
644
- const sepRender = '/**/';
645
- const confRawPaths = fs.readFileSync('./conf.js', 'utf8').split(sepRender);
646
- confRawPaths[1] = `${JSON.stringify(DefaultConf)};`;
647
- const targetConfPath = `./conf${defaultConf ? '' : `.${confName}`}.js`;
648
- fs.writeFileSync(targetConfPath, confRawPaths.join(sepRender), 'utf8');
649
- shellExec(`prettier --write ${targetConfPath}`);
650
-
651
- switch (confName) {
652
- case 'dd-github-pages':
653
- {
654
- if (fs.exists(`./engine-private/conf/${confName}`)) fs.removeSync(`./engine-private/conf/${confName}`);
655
- shellExec(`node bin new --deploy-id ${confName}`);
656
- }
657
- break;
658
-
659
- default:
660
- break;
661
- }
662
-
663
- break;
664
- }
665
-
666
599
  case 'maas-db': {
667
600
  // DROP, ALTER, CREATE, WITH ENCRYPTED
668
601
  // sudo -u <user> -h <host> psql <db-name>
@@ -925,7 +858,7 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
925
858
  shellExec(`sudo podman pull ghcr.io/astral-sh/uv:0.5.11`);
926
859
  shellExec(`sudo rm -rf ${path}/${imageName.replace(':', '_')}.tar`);
927
860
  const args = [
928
- `node bin dockerfile-image-build --path ${path}/backend/`,
861
+ `node bin image --build --path ${path}/backend/`,
929
862
  `--image-name=${imageName} --image-path=${path}`,
930
863
  `--podman-save --${process.argv.includes('kubeadm') ? 'kubeadm' : 'kind'}-load --reset`,
931
864
  ];
@@ -937,7 +870,7 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
937
870
  shellExec(`sudo podman pull docker.io/library/nginx:1`);
938
871
  shellExec(`sudo rm -rf ${path}/${imageName.replace(':', '_')}.tar`);
939
872
  const args = [
940
- `node bin dockerfile-image-build --path ${path}/frontend/`,
873
+ `node bin image --build --path ${path}/frontend/`,
941
874
  `--image-name=${imageName} --image-path=${path}`,
942
875
  `--podman-save --${process.argv.includes('kubeadm') ? 'kubeadm' : 'kind'}-load --reset`,
943
876
  ];
package/cli.md CHANGED
@@ -1,4 +1,4 @@
1
- ## underpost ci/cd cli v2.92.0
1
+ ## underpost ci/cd cli v2.95.1
2
2
 
3
3
  ### Usage: `underpost [options] [command]`
4
4
  ```
@@ -21,8 +21,7 @@ Commands:
21
21
  cluster [options] [pod-name] Manages Kubernetes clusters, defaulting to Kind cluster initialization.
22
22
  deploy [options] [deploy-list] [env] Manages application deployments, defaulting to deploying development pods.
23
23
  secret [options] <platform> Manages secrets for various platforms.
24
- dockerfile-image-build [options] Builds a Docker image from a specified Dockerfile with various options for naming, saving, and loading.
25
- dockerfile-pull-base-images [options] Pulls required Underpost Dockerfile base images and optionally loads them into clusters.
24
+ image [options] Manages Docker images, including building, saving, and loading into Kubernetes clusters.
26
25
  install Quickly imports Underpost npm dependencies by copying them.
27
26
  db [options] <deploy-list> Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.
28
27
  metadata [options] [deploy-id] [host] [path] Manages cluster metadata operations, including import and export.
@@ -32,7 +31,7 @@ Commands:
32
31
  test [options] [deploy-list] Manages and runs tests, defaulting to the current Underpost default test suite.
33
32
  monitor [options] <deploy-id> [env] Manages health server monitoring for specified deployments.
34
33
  ssh [options]
35
- run [options] <runner-id> [path] Runs a script from the specified path.
34
+ run [options] <runner-id> [path] Runs specified scripts using various runners.
36
35
  lxd [options] Manages LXD containers and virtual machines.
37
36
  baremetal [options] [workflow-id] [hostname] [ip-address] Manages baremetal server operations, including installation, database setup, commissioning, and user management.
38
37
  help [command] display help for command
@@ -49,24 +48,28 @@ Commands:
49
48
  Initializes a new Underpost project, service, or configuration.
50
49
 
51
50
  Arguments:
52
- app-name The name of the new project.
51
+ app-name The name of the new project.
53
52
 
54
53
  Options:
55
- --deploy-id <deploy-id> Crete deploy ID conf env files
56
- --sub-conf <sub-conf> Create sub conf env files
57
- --cluster Create deploy ID cluster files and sync to current
58
- cluster
59
- --build-repos Create deploy ID repositories
60
- --build Build the deployment to pwa-microservices-template
61
- (requires --deploy-id)
62
- --clean-template Clean the build directory
63
- (pwa-microservices-template)
64
- --sync-conf Sync configuration to private repositories (requires
65
- --deploy-id)
66
- --purge Remove deploy ID conf and all related repositories
67
- (requires --deploy-id)
68
- --dev Sets the development cli context
69
- -h, --help display help for command
54
+ --deploy-id <deploy-id> Crete deploy ID conf env files
55
+ --sub-conf <sub-conf> Create sub conf env files
56
+ --cluster Create deploy ID cluster files and sync to
57
+ current cluster
58
+ --build-repos Create deploy ID repositories
59
+ --build Build the deployment to
60
+ pwa-microservices-template (requires
61
+ --deploy-id)
62
+ --clean-template Clean the build directory
63
+ (pwa-microservices-template)
64
+ --sync-conf Sync configuration to private repositories
65
+ (requires --deploy-id)
66
+ --purge Remove deploy ID conf and all related
67
+ repositories (requires --deploy-id)
68
+ --dev Sets the development cli context
69
+ --default-conf Create default deploy ID conf env files
70
+ --conf-workflow-id <workflow-id> Set custom configuration workflow ID for
71
+ conf generation
72
+ -h, --help display help for command
70
73
 
71
74
  ```
72
75
 
@@ -483,14 +486,22 @@ Options:
483
486
  ```
484
487
 
485
488
 
486
- ### `dockerfile-image-build` :
489
+ ### `image` :
487
490
  ```
488
- Usage: underpost dockerfile-image-build [options]
491
+ Usage: underpost image [options]
489
492
 
490
- Builds a Docker image from a specified Dockerfile with various options for
491
- naming, saving, and loading.
493
+ Manages Docker images, including building, saving, and loading into Kubernetes
494
+ clusters.
492
495
 
493
496
  Options:
497
+ --build Builds a Docker image using Podman,
498
+ optionally saves it as a tar archive,
499
+ and loads it into a specified Kubernetes
500
+ cluster (Kind, Kubeadm, or K3s).
501
+ --ls Lists all available Underpost Dockerfile
502
+ images.
503
+ --rm <image-id> Removes specified Underpost Dockerfile
504
+ images.
494
505
  --path [path] The path to the Dockerfile directory.
495
506
  --image-name [image-name] Sets a custom name for the Docker image.
496
507
  --image-path [image-path] Sets the output path for the tar image
@@ -498,10 +509,20 @@ Options:
498
509
  --dockerfile-name [dockerfile-name] Sets a custom name for the Dockerfile.
499
510
  --podman-save Exports the built image as a tar file
500
511
  using Podman.
501
- --kind-load Imports the tar image into a Kind
502
- cluster.
503
- --kubeadm-load Imports the tar image into a Kubeadm
504
- cluster.
512
+ --pull-base Pulls base images and builds a
513
+ "rockylinux9-underpost" image.
514
+ --spec Get current cached list of container
515
+ images used by all pods
516
+ --namespace <namespace> Kubernetes namespace for image
517
+ operations (defaults to "default").
518
+ --kind Set kind cluster env image context
519
+ management.
520
+ --kubeadm Set kubeadm cluster env image context
521
+ management.
522
+ --k3s Set k3s cluster env image context
523
+ management.
524
+ --node-name Set node name for kubeadm or k3s cluster
525
+ env image context management.
505
526
  --secrets Includes Dockerfile environment secrets
506
527
  during the build.
507
528
  --secrets-path [secrets-path] Specifies a custom path for Dockerfile
@@ -509,31 +530,13 @@ Options:
509
530
  --reset Performs a build without using the
510
531
  cache.
511
532
  --dev Use development mode.
512
- --k3s-load Loads the image into a K3s cluster.
533
+ --pull-dockerhub <dockerhub-image> Sets a custom Docker Hub image for base
534
+ image pulls.
513
535
  -h, --help display help for command
514
536
 
515
537
  ```
516
538
 
517
539
 
518
- ### `dockerfile-pull-base-images` :
519
- ```
520
- Usage: underpost dockerfile-pull-base-images [options]
521
-
522
- Pulls required Underpost Dockerfile base images and optionally loads them into
523
- clusters.
524
-
525
- Options:
526
- --path [path] The path to the Dockerfile directory.
527
- --kind-load Imports the pulled image into a Kind cluster.
528
- --kubeadm-load Imports the pulled image into a Kubeadm cluster.
529
- --version Sets a custom version for the base images.
530
- --k3s-load Loads the image into a K3s cluster.
531
- --dev Use development mode.
532
- -h, --help display help for command
533
-
534
- ```
535
-
536
-
537
540
  ### `install` :
538
541
  ```
539
542
  Usage: underpost install [options]
@@ -554,44 +557,27 @@ Manages database operations with support for MariaDB and MongoDB, including
554
557
  import/export, multi-pod targeting, and Git integration.
555
558
 
556
559
  Arguments:
557
- deploy-list A comma-separated list of deployment IDs (e.g.,
558
- "default-a,default-b").
560
+ deploy-list A comma-separated list of deployment IDs (e.g., "default-a,default-b").
559
561
 
560
562
  Options:
561
- --import Imports container backups from specified
562
- repositories.
563
- --export Exports container backups to specified
564
- repositories.
565
- --pod-name <pod-name> Comma-separated list of pod names or patterns
566
- (supports wildcards like "mariadb-*").
567
- --node-name <node-name> Comma-separated list of node names to filter
568
- pods by their node placement.
569
- --label-selector <selector> Kubernetes label selector for filtering pods
570
- (e.g., "app=mariadb").
571
- --all-pods Target all matching pods instead of just the
572
- first one.
573
- --primary-pod Automatically detect and use MongoDB primary pod
574
- (MongoDB only).
575
- --stats Display database statistics (collection/table
576
- names with document/row counts).
577
- --collections <collections> Comma-separated list of database collections to
578
- operate on.
579
- --out-path <out-path> Specifies a custom output path for backups.
580
- --drop Drops the specified databases or collections
581
- before importing.
582
- --preserveUUID Preserves UUIDs during database import
583
- operations.
584
- --git Enables Git integration for backup version
585
- control (clone, pull, commit, push to GitHub).
586
- --hosts <hosts> Comma-separated list of database hosts to filter
587
- operations.
588
- --paths <paths> Comma-separated list of paths to filter database
589
- operations.
590
- --ns <ns-name> Kubernetes namespace context for database
591
- operations (defaults to "default").
592
- --dry-run Simulates operations without executing them
593
- (useful for testing).
594
- -h, --help display help for command
563
+ --import Imports container backups from specified repositories.
564
+ --export Exports container backups to specified repositories.
565
+ --pod-name <pod-name> Comma-separated list of pod names or patterns (supports wildcards like "mariadb-*").
566
+ --node-name <node-name> Comma-separated list of node names to filter pods by their node placement.
567
+ --label-selector <selector> Kubernetes label selector for filtering pods (e.g., "app=mariadb").
568
+ --all-pods Target all matching pods instead of just the first one.
569
+ --primary-pod Automatically detect and use MongoDB primary pod (MongoDB only).
570
+ --stats Display database statistics (collection/table names with document/row counts).
571
+ --collections <collections> Comma-separated list of database collections to operate on.
572
+ --out-path <out-path> Specifies a custom output path for backups.
573
+ --drop Drops the specified databases or collections before importing.
574
+ --preserveUUID Preserves UUIDs during database import operations.
575
+ --git Enables Git integration for backup version control (clone, pull, commit, push to GitHub).
576
+ --hosts <hosts> Comma-separated list of database hosts to filter operations.
577
+ --paths <paths> Comma-separated list of paths to filter database operations.
578
+ --ns <ns-name> Kubernetes namespace context for database operations (defaults to "default").
579
+ --macro-rollback-export <n-commits-reset> Exports a macro rollback script that reverts the last n commits (Git integration required).
580
+ -h, --help display help for command
595
581
 
596
582
  ```
597
583
 
@@ -734,9 +720,12 @@ Options:
734
720
  --single Disables recurrence, running the monitor script
735
721
  only once.
736
722
  --replicas <replicas> Sets a custom number of replicas for monitoring.
723
+ Defaults to 1.
737
724
  --type <type> Sets a custom monitor type.
738
725
  --sync Synchronizes with current proxy deployments and
739
726
  traffic configurations.
727
+ --namespace <namespace> Sets the Kubernetes namespace for the
728
+ deployment. Defaults to "default".
740
729
  -h, --help display help for command
741
730
 
742
731
  ```
@@ -774,6 +763,11 @@ Options:
774
763
  storage.
775
764
  --disable-password Disables password authentication for the SSH
776
765
  session.
766
+ --key-test Tests the SSH key using ssh-keygen.
767
+ --stop Stops the SSH service.
768
+ --status Checks the status of the SSH service.
769
+ --connect-uri Displays the connection URI.
770
+ --copy Copies the connection URI to clipboard.
777
771
  -h, --help display help for command
778
772
 
779
773
  ```
@@ -783,11 +777,11 @@ Options:
783
777
  ```
784
778
  Usage: underpost run [options] <runner-id> [path]
785
779
 
786
- Runs a script from the specified path.
780
+ Runs specified scripts using various runners.
787
781
 
788
782
  Arguments:
789
- runner-id The runner ID to run. Options: spark-template, rmi, kill, secret, underpost-config, gpu-env, tf-gpu-test, dev-cluster, metadata, svc-ls, svc-rm, ssh-cluster-info, dev-hosts-expose, dev-hosts-restore, cluster-build, template-deploy, template-deploy-image, clean, pull, release-deploy, ssh-deploy, ide, sync, tz, cron, get-proxy, instance-promote, instance, ls-deployments, ls-images, host-update, dd-container, ip-info, monitor, db-client, git-conf, promote, metrics, cluster, deploy, dev, service, sh, log, release-cmt, sync-replica, tf-vae-test, deploy-job.
790
- path The absolute or relative directory path where the script is located.
783
+ runner-id The runner ID to run. Options: spark-template, rmi, kill, secret, underpost-config, gpu-env, tf-gpu-test, dev-cluster, metadata, svc-ls, svc-rm, ssh-cluster-info, dev-hosts-expose, dev-hosts-restore, cluster-build, template-deploy, template-deploy-image, clean, pull, release-deploy, ssh-deploy, ide, sync, stop, ssh-deploy-stop, tz, cron, get-proxy, instance-promote, instance, ls-deployments, host-update, dd-container, ip-info, monitor, db-client, git-conf, promote, metrics, cluster, deploy, disk-clean, disk-usage, dev, service, sh, log, release-cmt, sync-replica, tf-vae-test, deploy-job.
784
+ path The input value, identifier, or path for the operation.
791
785
 
792
786
  Options:
793
787
  --command <command-array> Array of commands to run.
@@ -813,9 +807,7 @@ Options:
813
807
  --api-version <version> Sets the API version for the job manifest in deploy-job.
814
808
  --labels <labels> Optional: Specifies a comma-separated list of key-value pairs for labels (e.g., "app=my-app,env=prod").
815
809
  --claim-name <name> Optional: Specifies the claim name for volume mounting in deploy-job.
816
- --kind <kind-type> Specifies the kind of Kubernetes resource (e.g., Job, Deployment) for deploy-job.
817
- --kubeadm Flag to indicate Kubeadm cluster type context
818
- --k3s Flag to indicate K3s cluster type context
810
+ --kind-type <kind-type> Specifies the kind of Kubernetes resource (e.g., Job, Deployment) for deploy-job.
819
811
  --force Forces operation, overriding any warnings or conflicts.
820
812
  --tls Enables TLS for the runner execution.
821
813
  --reset Resets the runner state before execution.
@@ -830,6 +822,16 @@ Options:
830
822
  --expose Enables service exposure for the runner execution.
831
823
  --conf-server-path <conf-server-path> Sets a custom configuration server path.
832
824
  --underpost-root <underpost-root> Sets a custom Underpost root path.
825
+ --cron-jobs <jobs> Comma-separated list of cron jobs to run before executing the script.
826
+ --timezone <timezone> Sets the timezone for the runner execution.
827
+ --kubeadm Sets the kubeadm cluster context for the runner execution.
828
+ --k3s Sets the k3s cluster context for the runner execution.
829
+ --kind Sets the kind cluster context for the runner execution.
830
+ --log-type <log-type> Sets the log type for the runner execution.
831
+ --deploy-id <deploy-id> Sets deploy id context for the runner execution.
832
+ --user <user> Sets user context for the runner execution.
833
+ --hosts <hosts> Comma-separated list of hosts for the runner execution.
834
+ --instance-id <instance-id> Sets instance id context for the runner execution.
833
835
  -h, --help display help for command
834
836
 
835
837
  ```
@@ -873,8 +875,13 @@ Options:
873
875
  --delete-expose <vm-name-ports> Removes exposed ports on a VM (e.g.,
874
876
  "k8s-control:80,443"). Multiple VM-port
875
877
  pairs can be comma-separated.
876
- --auto-expose-k8s-ports <vm-id> Automatically exposes common Kubernetes
877
- ports for the specified VM.
878
+ --workflow-id <workflow-id> Sets the workflow ID context for LXD
879
+ operations.
880
+ --vm-id <vm-id> Sets the VM ID context for LXD operations.
881
+ --deploy-id <deploy-id> Sets the deployment ID context for LXD
882
+ operations.
883
+ --namespace <namespace> Kubernetes namespace for LXD operations
884
+ (defaults to "default").
878
885
  -h, --help display help for command
879
886
 
880
887
  ```
@@ -17,7 +17,7 @@ spec:
17
17
  spec:
18
18
  containers:
19
19
  - name: dd-default-development-blue
20
- image: localhost/rockylinux9-underpost:v2.92.0
20
+ image: localhost/rockylinux9-underpost:v2.95.1
21
21
  # resources:
22
22
  # requests:
23
23
  # memory: "124Ki"
@@ -32,7 +32,7 @@ spec:
32
32
  npm install -g npm@11.2.0 &&
33
33
  npm install -g underpost &&
34
34
  cd $(underpost root)/underpost &&
35
- node bin/deploy update-default-conf template &&
35
+ node bin new --default-conf --conf-workflow-id template &&
36
36
  mkdir -p /home/dd &&
37
37
  cd /home/dd &&
38
38
  underpost new engine
@@ -100,7 +100,7 @@ spec:
100
100
  spec:
101
101
  containers:
102
102
  - name: dd-default-development-green
103
- image: localhost/rockylinux9-underpost:v2.92.0
103
+ image: localhost/rockylinux9-underpost:v2.95.1
104
104
  # resources:
105
105
  # requests:
106
106
  # memory: "124Ki"
@@ -115,7 +115,7 @@ spec:
115
115
  npm install -g npm@11.2.0 &&
116
116
  npm install -g underpost &&
117
117
  cd $(underpost root)/underpost &&
118
- node bin/deploy update-default-conf template &&
118
+ node bin new --default-conf --conf-workflow-id template &&
119
119
  mkdir -p /home/dd &&
120
120
  cd /home/dd &&
121
121
  underpost new engine
@@ -18,7 +18,7 @@ spec:
18
18
  spec:
19
19
  containers:
20
20
  - name: dd-test-development-blue
21
- image: localhost/rockylinux9-underpost:v2.92.0
21
+ image: localhost/rockylinux9-underpost:v2.95.1
22
22
 
23
23
  command:
24
24
  - /bin/sh
@@ -103,7 +103,7 @@ spec:
103
103
  spec:
104
104
  containers:
105
105
  - name: dd-test-development-green
106
- image: localhost/rockylinux9-underpost:v2.92.0
106
+ image: localhost/rockylinux9-underpost:v2.95.1
107
107
 
108
108
  command:
109
109
  - /bin/sh
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "type": "module",
3
3
  "main": "src/index.js",
4
4
  "name": "@underpostnet/underpost",
5
- "version": "2.92.0",
5
+ "version": "2.95.1",
6
6
  "description": "pwa api rest template",
7
7
  "scripts": {
8
8
  "start": "env-cmd -f .env.production node --max-old-space-size=8192 src/server",