underpost 3.2.9 → 3.2.10
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/.github/workflows/npmpkg.ci.yml +1 -0
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/.github/workflows/release.cd.yml +1 -0
- package/.vscode/settings.json +10 -5
- package/CHANGELOG.md +122 -1
- package/CLI-HELP.md +22 -7
- package/README.md +37 -8
- package/bin/build.js +26 -9
- package/bin/deploy.js +20 -21
- package/bin/file.js +31 -13
- package/bin/index.js +2 -1
- package/bin/vs.js +1 -1
- package/bump.config.js +26 -0
- package/conf.js +20 -4
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/dd-test-development/deployment.yaml +4 -2
- package/manifests/kind-config-dev.yaml +8 -0
- package/manifests/mongodb/pv-pvc.yaml +44 -8
- package/manifests/mongodb/statefulset.yaml +55 -68
- package/package.json +27 -12
- package/scripts/k3s-node-setup.sh +28 -9
- package/src/api/core/core.router.js +19 -14
- package/src/api/core/core.service.js +5 -5
- package/src/api/default/default.router.js +22 -18
- package/src/api/default/default.service.js +5 -5
- package/src/api/document/document.router.js +28 -23
- package/src/api/document/document.service.js +100 -23
- package/src/api/file/file.router.js +19 -13
- package/src/api/file/file.service.js +9 -7
- package/src/api/test/test.router.js +17 -12
- package/src/api/types.js +24 -0
- package/src/api/user/guest.service.js +5 -4
- package/src/api/user/user.router.js +297 -288
- package/src/api/user/user.service.js +100 -35
- package/src/cli/baremetal.js +20 -11
- package/src/cli/cluster.js +196 -55
- package/src/cli/db.js +59 -60
- package/src/cli/deploy.js +273 -159
- package/src/cli/fs.js +3 -1
- package/src/cli/index.js +16 -9
- package/src/cli/ipfs.js +4 -6
- package/src/cli/kubectl.js +4 -1
- package/src/cli/lxd.js +217 -135
- package/src/cli/release.js +289 -131
- package/src/cli/repository.js +58 -7
- package/src/cli/run.js +152 -25
- package/src/cli/test.js +9 -3
- package/src/client/Default.index.js +9 -3
- package/src/client/components/core/Auth.js +4 -0
- package/src/client/components/core/PanelForm.js +56 -52
- package/src/client/components/core/Worker.js +162 -363
- package/src/client/sw/core.sw.js +174 -112
- package/src/db/DataBaseProvider.js +120 -20
- package/src/db/mongo/MongoBootstrap.js +587 -0
- package/src/db/mongo/MongooseDB.js +126 -22
- package/src/index.js +1 -1
- package/src/runtime/express/Express.js +2 -2
- package/src/runtime/wp/Wp.js +8 -5
- package/src/server/auth.js +2 -2
- package/src/server/client-build-docs.js +1 -1
- package/src/server/client-build.js +94 -129
- package/src/server/conf.js +20 -65
- package/src/server/process.js +180 -19
- package/src/server/runtime.js +1 -1
- package/src/server/start.js +12 -4
- package/src/ws/IoInterface.js +16 -16
- package/src/ws/core/channels/core.ws.chat.js +11 -11
- package/src/ws/core/channels/core.ws.mailer.js +29 -29
- package/src/ws/core/channels/core.ws.stream.js +19 -19
- package/src/ws/core/core.ws.connection.js +8 -8
- package/src/ws/core/core.ws.server.js +6 -5
- package/src/ws/default/channels/default.ws.main.js +10 -10
- package/src/ws/default/default.ws.connection.js +4 -4
- package/src/ws/default/default.ws.server.js +4 -3
- package/src/client/ssr/email/DefaultRecoverEmail.js +0 -21
- package/src/client/ssr/email/DefaultVerifyEmail.js +0 -17
- /package/src/client/ssr/{offline → views}/Maintenance.js +0 -0
- /package/src/client/ssr/{offline → views}/NoNetworkConnection.js +0 -0
- /package/src/client/ssr/{pages → views}/Test.js +0 -0
package/.vscode/settings.json
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
3
2
|
"editor.formatOnSave": true,
|
|
4
|
-
"explorer.compactFolders": false,
|
|
5
|
-
"js/ts.preferences.importModuleSpecifierEnding": "js",
|
|
6
3
|
"[javascript]": {
|
|
7
4
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
8
5
|
},
|
|
9
|
-
"
|
|
10
|
-
|
|
6
|
+
"[javascriptreact]": {
|
|
7
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
8
|
+
},
|
|
9
|
+
"[typescript]": {
|
|
10
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
11
|
+
},
|
|
12
|
+
"[typescriptreact]": {
|
|
13
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
14
|
+
}
|
|
15
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,127 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 2026-05-
|
|
3
|
+
## 2026-05-26
|
|
4
|
+
|
|
5
|
+
### cli-run
|
|
6
|
+
|
|
7
|
+
- Add group property and shared directory setup methods to UnderpostRun ([6cc121c4a](https://github.com/underpostnet/engine/commit/6cc121c4abe8a5fe07582a99a251ef8e1133ce00))
|
|
8
|
+
|
|
9
|
+
### cli-release
|
|
10
|
+
|
|
11
|
+
- Add bumpp configuration and integrate version bumping into release process ([e5eb50d70](https://github.com/underpostnet/engine/commit/e5eb50d70980fe625e4246b5807b2a3984f09e72))
|
|
12
|
+
|
|
13
|
+
### engine-cyberia
|
|
14
|
+
|
|
15
|
+
- Refactor CI workflows for cyberia-client and cyberia-server, removing outdated comments and improving clarity. Update Dockerfile to ensure clean builds by adding a clean step before compilation. ([e74918e81](https://github.com/underpostnet/engine/commit/e74918e8102a2c7361ff8abd89aa019aee6ef642))
|
|
16
|
+
- Refactor CI workflows and Dockerfiles for cyberia-client and cyberia-server ([0dfda92fd](https://github.com/underpostnet/engine/commit/0dfda92fd0c01de7af755a2935fd68199d94d61f))
|
|
17
|
+
- Refactor package.json metadata for Cyberia CLI and Underpost Platform, updating descriptions and keywords for improved clarity and relevance. ([893a371ac](https://github.com/underpostnet/engine/commit/893a371acef87351841d4ff703f35421e05725e4))
|
|
18
|
+
- Enhance Dockerfiles and CLI: align underpost versioning, add dev configurations, and improve manifest build options ([4f9c96df6](https://github.com/underpostnet/engine/commit/4f9c96df6b672c25ef8d34d0ad440f66061f7789))
|
|
19
|
+
- Refactor presentation handling: remove legacy fields, update documentation, and streamline client hints integration ([e79315e6e](https://github.com/underpostnet/engine/commit/e79315e6e3064140d6b2e634f31b153008a15db0))
|
|
20
|
+
- Refactor Cyberia defaults management ([2454ad54c](https://github.com/underpostnet/engine/commit/2454ad54c9f9d3e9b2aa43a831184f6e87b4772f))
|
|
21
|
+
- Add cyberia hints model and refactor docs ([14fc8a633](https://github.com/underpostnet/engine/commit/14fc8a633843a52f705594eba3927a8a7b1dc685))
|
|
22
|
+
- Update build process to include README.md and update white paper version ([77099e88f](https://github.com/underpostnet/engine/commit/77099e88f50516a0e6e626f74059814585ca18d6))
|
|
23
|
+
|
|
24
|
+
### client
|
|
25
|
+
|
|
26
|
+
- Chore landing icons ([ed1bc3fee](https://github.com/underpostnet/engine/commit/ed1bc3fee671319b151e218ec58b9ca67200579e))
|
|
27
|
+
|
|
28
|
+
### github-actions
|
|
29
|
+
|
|
30
|
+
- Add condition to skip jobs for dependabot in Coverall CI workflow ([db35270a6](https://github.com/underpostnet/engine/commit/db35270a686edf5c975721a3ec60ae8fc0b893be))
|
|
31
|
+
- Enhance underpost test execution and improve error handling ([d046dcee2](https://github.com/underpostnet/engine/commit/d046dcee2a78c2a80fd13ac74322a735aa3044c5))
|
|
32
|
+
- Update CI workflows to specify repository paths for cyberia-client and cyberia-server; adjust Dockerfile to copy from the correct directory ([9bef93774](https://github.com/underpostnet/engine/commit/9bef93774841ec650b2574f2369b8e6b486c342d))
|
|
33
|
+
|
|
34
|
+
### cli-deploy
|
|
35
|
+
|
|
36
|
+
- Add imagePullPolicy option to deployment commands and documentation ([d1ebe5d71](https://github.com/underpostnet/engine/commit/d1ebe5d71a7840d7739be0f41d59dc0f5dfdd155))
|
|
37
|
+
- Enhance deployment monitoring: improve pod readiness checks, add container-status validation, and refine logging for deployment progress ([3cb67b64b](https://github.com/underpostnet/engine/commit/3cb67b64b01af8055396ca78515011ffe4146b28))
|
|
38
|
+
|
|
39
|
+
### gitub-actions
|
|
40
|
+
|
|
41
|
+
- Enhance CI workflow and Dockerfiles to include SSR dashboard setup and dependencies ([6e8db980f](https://github.com/underpostnet/engine/commit/6e8db980f79b3ef9d48d2231f83ea62c28879f25))
|
|
42
|
+
|
|
43
|
+
### client-core
|
|
44
|
+
|
|
45
|
+
- Enhance file handling logic and improve UI interactions in PanelForm and Auth components ([f4e146195](https://github.com/underpostnet/engine/commit/f4e146195b94dc8df711bb3e1eec52feaae0489c))
|
|
46
|
+
- Enhance offline and maintenance fallback handling: implement inline HTML responses, improve caching logic, and ensure user-friendly error pages ([1802b40ca](https://github.com/underpostnet/engine/commit/1802b40caab7c90b0c73a9ab70a042772a8fe77b))
|
|
47
|
+
- Enhance service worker fallback handling: add inline HTML responses for offline and maintenance states, improve caching logic, and refine navigation fetch strategy ([bc2a1a0ca](https://github.com/underpostnet/engine/commit/bc2a1a0ca711e7448ee9be7629a8e0e3b598dfaf))
|
|
48
|
+
- Add SSR views for server metrics, maintenance, and offline handling ([81ca21084](https://github.com/underpostnet/engine/commit/81ca21084a7246f2926ee6b6c6f96858714a232c))
|
|
49
|
+
|
|
50
|
+
### dependencies
|
|
51
|
+
|
|
52
|
+
- Update dependencies and improve branch deletion error handling ([bcbf1a5e3](https://github.com/underpostnet/engine/commit/bcbf1a5e3a801d4bc6fdfc1e0f17a5630b40b325))
|
|
53
|
+
- Update dependencies: bump body-parser to 1.20.5, express to 4.22.2, and qs to 6.15.2 ([3d5da7d28](https://github.com/underpostnet/engine/commit/3d5da7d28bba137ea50b0c2260b5614bf42c2b69))
|
|
54
|
+
|
|
55
|
+
### ssr-cyberia
|
|
56
|
+
|
|
57
|
+
- Refactor ssr/views/CyberiaServerMetrics.js ([7184a738d](https://github.com/underpostnet/engine/commit/7184a738d17602fafe5cefd7722a7cd669b11693))
|
|
58
|
+
|
|
59
|
+
### cli
|
|
60
|
+
|
|
61
|
+
- Enhance error handling: silence errors during git commit and process termination ([7583c4f12](https://github.com/underpostnet/engine/commit/7583c4f1288713513c02b76e5c11649c41e427ca))
|
|
62
|
+
|
|
63
|
+
### cluster
|
|
64
|
+
|
|
65
|
+
- Add targeted reset option for MongoDB components without full cluster restart ([8c293e11d](https://github.com/underpostnet/engine/commit/8c293e11dfafb992ccf3b26ab139e95266c28169))
|
|
66
|
+
- Enhance UnderpostCluster: add natSetup method for NAT and iptables configuration, improve cluster deletion logic, and update options parameter for config method ([b90d7dba7](https://github.com/underpostnet/engine/commit/b90d7dba7bcbdd1d433f763ab3f7394dabf912f2))
|
|
67
|
+
|
|
68
|
+
### ipfs
|
|
69
|
+
|
|
70
|
+
- Fix IPFS deployment: streamline UDP buffer sysctl application for Kind nodes ([2b08cbc6d](https://github.com/underpostnet/engine/commit/2b08cbc6dafcd4af7b55c96d99bc7b8e603b80f6))
|
|
71
|
+
|
|
72
|
+
### db
|
|
73
|
+
|
|
74
|
+
- Refactor MongoDB bootstrap logic: enhance admin authentication check and streamline initialization script execution ([866e56c63](https://github.com/underpostnet/engine/commit/866e56c6303e20b8269778e5a7adc6e618f4520a))
|
|
75
|
+
- Refactor MongoDB primary pod detection and bootstrap logic ([609f5e89b](https://github.com/underpostnet/engine/commit/609f5e89b5807df797bd5c16839c87f2bd786ba2))
|
|
76
|
+
- Refactor MongoDB manifests and initialization: update PersistentVolume configurations, enhance StatefulSet security, and improve MongoDB cluster bootstrap logic ([ed89c3850](https://github.com/underpostnet/engine/commit/ed89c3850ca3108664ca70f9737ac756f7936083))
|
|
77
|
+
- Refactor DataBaseProviderService: change #instance to static and update instance getter for compatibility ([360d2c856](https://github.com/underpostnet/engine/commit/360d2c856a6409efa32dc2e1d602bd6e5b268223))
|
|
78
|
+
- Refactor replace DataBaseProvider with DataBaseProviderService across services and routers ([614e47314](https://github.com/underpostnet/engine/commit/614e4731493b413346f05915a0be6c18aa0d81c2))
|
|
79
|
+
- Enhance MongoDB configuration and management: update stateful set parameters, improve secret handling, and implement replica set initialization logic ([1fb895669](https://github.com/underpostnet/engine/commit/1fb895669cbd8ec1d42b779c810ae6a35555725e))
|
|
80
|
+
|
|
81
|
+
### ws
|
|
82
|
+
|
|
83
|
+
- Refactor WebSocket management context: replace wsManagementId with hostKeyContext across IoInterface and related channels ([b82c80fce](https://github.com/underpostnet/engine/commit/b82c80fce52cba2ef9443ea664df69e727e35ca0))
|
|
84
|
+
|
|
85
|
+
### deploy
|
|
86
|
+
|
|
87
|
+
- Enhance deployment error handling: update expected container status, throw errors for pod status issues, and manage container status in shell execution ([d170f36cc](https://github.com/underpostnet/engine/commit/d170f36cc77b759a4e86a7f0dcad015aa6fc74ef))
|
|
88
|
+
|
|
89
|
+
### lxd
|
|
90
|
+
|
|
91
|
+
- Enhance LXD management: add safe teardown for VMs, improve engine source replication, and update documentation ([e9b3a68c9](https://github.com/underpostnet/engine/commit/e9b3a68c961dd08722dc3febbca3a5bd9c42a9fe))
|
|
92
|
+
|
|
93
|
+
### api
|
|
94
|
+
|
|
95
|
+
- Enhance ObjectLayerService command execution with error context ([4253b2437](https://github.com/underpostnet/engine/commit/4253b2437b9cb8af42cbea0967baa6900880e0b5))
|
|
96
|
+
|
|
97
|
+
### docs
|
|
98
|
+
|
|
99
|
+
- Clean docs ([465507082](https://github.com/underpostnet/engine/commit/465507082493ec26b96658b8dd26c33ace8e6bf4))
|
|
100
|
+
- Update README.md for clarity and improved documentation links ([4021b6fcb](https://github.com/underpostnet/engine/commit/4021b6fcb55c6bad4e3cf605583c5b748ebb4734))
|
|
101
|
+
- Add jsdelivr badge ([d2a6f2931](https://github.com/underpostnet/engine/commit/d2a6f293127801b89e7de1794c77bce2c0522276))
|
|
102
|
+
- Update file paths and command syntax in architecture and client/server documentation ([f51891d44](https://github.com/underpostnet/engine/commit/f51891d44552fd5cd386e7685f86434b2cf02eb9))
|
|
103
|
+
|
|
104
|
+
### settings
|
|
105
|
+
|
|
106
|
+
- Update default formatters for JSON and TypeScript files ([e2c20b6f8](https://github.com/underpostnet/engine/commit/e2c20b6f896ef65f55df71678cc6e6d9c116b8f6))
|
|
107
|
+
|
|
108
|
+
### dependabot
|
|
109
|
+
|
|
110
|
+
- Update dependency patterns in dependabot.yml for improved package management ([60e8605c3](https://github.com/underpostnet/engine/commit/60e8605c3361e1cb824ac072d593a6321d79399f))
|
|
111
|
+
|
|
112
|
+
### cli-cyberia
|
|
113
|
+
|
|
114
|
+
- Refactor CyberiaDialogue handling to use codes instead of itemIds for improved dialogue management ([273fed2e4](https://github.com/underpostnet/engine/commit/273fed2e4706311fbbde993ce9ea5d549376dd0b))
|
|
115
|
+
|
|
116
|
+
### runtime-cyberia
|
|
117
|
+
|
|
118
|
+
- Refactor Dockerfiles for cyberia-client and cyberia-server to streamline package installations and improve build processes ([0312126c7](https://github.com/underpostnet/engine/commit/0312126c7032c17e1b67fe0fef8e7c74975d9ac8))
|
|
119
|
+
|
|
120
|
+
### bin-vs
|
|
121
|
+
|
|
122
|
+
- Fix correct typo in clean case to remove vsConfigRootPath ([0251c45a3](https://github.com/underpostnet/engine/commit/0251c45a3580ec0e5a907667fcc1240307e2f27b))
|
|
123
|
+
|
|
124
|
+
## New release v:3.2.9 (2026-05-13)
|
|
4
125
|
|
|
5
126
|
### client-core
|
|
6
127
|
|
package/CLI-HELP.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## underpost ci/cd cli v3.2.
|
|
1
|
+
## underpost ci/cd cli v3.2.10
|
|
2
2
|
|
|
3
3
|
### Usage: `underpost [options] [command]`
|
|
4
4
|
```
|
|
@@ -412,6 +412,10 @@ Arguments:
|
|
|
412
412
|
Options:
|
|
413
413
|
--reset Deletes all clusters and prunes all
|
|
414
414
|
related data and caches.
|
|
415
|
+
--reset-mongodb Performs a hard cleanup of only
|
|
416
|
+
MongoDB-related resources (StatefulSet,
|
|
417
|
+
PVCs/PVs, Secrets, ConfigMaps, caches)
|
|
418
|
+
without restarting the whole node.
|
|
415
419
|
--mariadb Initializes the cluster with a MariaDB
|
|
416
420
|
statefulset.
|
|
417
421
|
--mysql Initializes the cluster with a MySQL
|
|
@@ -565,6 +569,11 @@ Options:
|
|
|
565
569
|
bundle from Cloudinary inside the
|
|
566
570
|
container. Use together with
|
|
567
571
|
--skip-full-build.
|
|
572
|
+
--image-pull-policy <policy> Override container imagePullPolicy in the
|
|
573
|
+
generated deployment manifest (Always,
|
|
574
|
+
IfNotPresent, Never). Defaults to Never
|
|
575
|
+
for localhost/ images and IfNotPresent
|
|
576
|
+
otherwise.
|
|
568
577
|
-h, --help display help for command
|
|
569
578
|
|
|
570
579
|
```
|
|
@@ -903,7 +912,7 @@ Options:
|
|
|
903
912
|
Runs specified scripts using various runners.
|
|
904
913
|
|
|
905
914
|
Arguments:
|
|
906
|
-
runner-id The runner ID to run. Options: dev-cluster,ipfs-expose,metadata,svc-ls,svc-rm,ssh-deploy-info,dev-hosts-expose,dev-hosts-restore,cluster-build,template-deploy,template-deploy-local,docker-image,clean,pull,release-deploy,ssh-deploy,ide,crypto-policy,sync,stop,ssh-deploy-stop,ssh-deploy-db-rollback,ssh-deploy-db,ssh-deploy-db-status,tz,get-proxy,instance-promote,instance,instance-build-manifest,ls-deployments,host-update,install-crio,dd-container,ip-info,db-client,git-conf,promote,metrics,cluster,deploy,disk-clean,disk-devices,disk-usage,dev,service,etc-hosts,sh,log,ps,pid-info,background,ports,deploy-test,tf-vae-test,spark-template,pull-rocky-image,rmi,kill,generate-pass,secret,underpost-config,gpu-env,tf-gpu-test,deploy-job,push-bundle,pull-bundle.
|
|
915
|
+
runner-id The runner ID to run. Options: dev-cluster,ipfs-expose,metadata,svc-ls,svc-rm,ssh-deploy-info,dev-hosts-expose,dev-hosts-restore,cluster-build,template-deploy,template-deploy-local,docker-image,clean,pull,release-deploy,ssh-deploy,ide,crypto-policy,sync,stop,ssh-deploy-stop,ssh-deploy-db-rollback,ssh-deploy-db,ssh-deploy-db-status,tz,get-proxy,instance-promote,instance,instance-build-manifest,ls-deployments,host-update,install-crio,dd-container,ip-info,db-client,git-conf,promote,metrics,cluster,deploy,disk-clean,disk-devices,disk-usage,dev,service,etc-hosts,sh,log,ps,pid-info,background,ports,deploy-test,tf-vae-test,spark-template,pull-rocky-image,rmi,kill,generate-pass,secret,underpost-config,gpu-env,tf-gpu-test,deploy-job,push-bundle,pull-bundle,setup-shared-dir,reload-shared-dir.
|
|
907
916
|
path The input value, identifier, or path for the operation.
|
|
908
917
|
|
|
909
918
|
Options:
|
|
@@ -987,7 +996,9 @@ Manages LXD virtual machines as K3s nodes (control plane or workers).
|
|
|
987
996
|
Options:
|
|
988
997
|
--init Initializes LXD on the current machine via
|
|
989
998
|
preseed.
|
|
990
|
-
--reset
|
|
999
|
+
--reset SAFE complete reset: cleans all VMs (proxy
|
|
1000
|
+
devices first), profiles, networks, then
|
|
1001
|
+
removes LXD snap.
|
|
991
1002
|
--install Installs the LXD snap.
|
|
992
1003
|
--dev Use local paths instead of the global npm
|
|
993
1004
|
installation.
|
|
@@ -1001,7 +1012,9 @@ Options:
|
|
|
1001
1012
|
node.
|
|
1002
1013
|
--create-vm <vm-name> Copy the LXC launch command for a new K3s VM
|
|
1003
1014
|
to the clipboard.
|
|
1004
|
-
--delete-vm <vm-name>
|
|
1015
|
+
--delete-vm <vm-name> SAFELY stop and delete VM (removes proxy
|
|
1016
|
+
devices first, then stops, then deletes).
|
|
1017
|
+
Safe to re-run.
|
|
1005
1018
|
--init-vm <vm-name> Run k3s-node-setup.sh on the specified VM
|
|
1006
1019
|
(use with --control or --worker).
|
|
1007
1020
|
--info-vm <vm-name> Display full configuration and status for the
|
|
@@ -1018,9 +1031,8 @@ Options:
|
|
|
1018
1031
|
"k3s-control:80,443").
|
|
1019
1032
|
--delete-expose <vm-name:ports> Remove proxied ports from a VM (e.g.,
|
|
1020
1033
|
"k3s-control:80,443").
|
|
1021
|
-
--
|
|
1022
|
-
|
|
1023
|
-
--deploy-id <deploy-id> Deployment ID context for workflow execution.
|
|
1034
|
+
--bootstrap-engine <vm-name> Replicate /home/dd/engine source into the VM
|
|
1035
|
+
after init completes.
|
|
1024
1036
|
--namespace <namespace> Kubernetes namespace context (defaults to
|
|
1025
1037
|
"default").
|
|
1026
1038
|
-h, --help display help for command
|
|
@@ -1112,6 +1124,9 @@ Options:
|
|
|
1112
1124
|
--pwa-build Runs the pwa-microservices-template update flow: always
|
|
1113
1125
|
re-clones, syncs engine sources, installs, builds, and
|
|
1114
1126
|
pushes.
|
|
1127
|
+
--dry-run For --build: previews version-bump changes (per-file
|
|
1128
|
+
substitution counts) without writing files or running
|
|
1129
|
+
downstream commands.
|
|
1115
1130
|
-h, --help display help for command
|
|
1116
1131
|
|
|
1117
1132
|
```
|
package/README.md
CHANGED
|
@@ -16,17 +16,46 @@
|
|
|
16
16
|
|
|
17
17
|
<div align="center">
|
|
18
18
|
|
|
19
|
-
[](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml) [](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [](https://www.npmjs.com/package/underpost) [](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml) [](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [](https://www.npmjs.com/package/underpost) [](https://www.jsdelivr.com/package/npm/underpost) [](https://socket.dev/npm/package/underpost/overview/3.2.10) [](https://coveralls.io/github/underpostnet/engine?branch=master) [](https://www.npmjs.org/package/underpost) [](https://www.npmjs.com/package/underpost)
|
|
20
20
|
|
|
21
21
|
</div>
|
|
22
22
|
|
|
23
|
-
<div align="center">
|
|
24
|
-
|
|
25
23
|
#### Base template for pwa/api-rest projects.
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
## Underpost Platform
|
|
28
26
|
|
|
29
|
-
|
|
27
|
+
**Underpost** is an platform for application delivery, from infrastructure to runtime. The `underpost` npm package is its CLI toolchain surface.
|
|
28
|
+
|
|
29
|
+
The project covers:
|
|
30
|
+
|
|
31
|
+
- **Bare metal provisioning** on Rocky Linux 9.
|
|
32
|
+
- **Kubernetes / K3s / kubeadm / LXD** workflows for production, edge, and isolated workloads.
|
|
33
|
+
- **GitHub OSS repository flow** — clone, pull, push, commit, release, and CI integrations as first-class CLI subcommands.
|
|
34
|
+
- **CI/CD orchestration** — GitHub Actions integrations, container builds, multi-environment deployments.
|
|
35
|
+
- **Static build + PWA delivery** — every deploy ships as an installable Progressive Web App with Workbox-based offline support.
|
|
36
|
+
- **Cloudinary-backed static asset flow** for image/asset delivery.
|
|
37
|
+
- **ERP/CRM-style PWA base applications** as the default workload.
|
|
38
|
+
- **Cyberia** — a dedicated MMO extension built on top of the platform, with its own content backend (`engine-cyberia`), authoritative simulation runtime (`cyberia-server`), and presentation runtime (`cyberia-client`).
|
|
39
|
+
|
|
40
|
+
<a target="_top" href="Https://github.com/underpostnet/engine/blob/master/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md">See Detailed platform doc.</a>
|
|
41
|
+
|
|
42
|
+
### Architectural roles (Cyberia stack)
|
|
43
|
+
|
|
44
|
+
When the platform is hosting the Cyberia MMO extension, three runtime processes participate. Their boundaries are non-overlapping and their startup order is **strictly sequential** — not parallel.
|
|
45
|
+
|
|
46
|
+
| Process | Role |
|
|
47
|
+
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| **engine-cyberia** (Node.js) | Content authority: maps, object layers, atlas/asset metadata, world configuration, persistence, validation, gRPC + REST data services, editor backend, asset distribution. |
|
|
49
|
+
| **cyberia-server** (Go) | Authoritative simulation runtime: tick advancement, AOI replication, input command processing, snapshot generation. |
|
|
50
|
+
| **cyberia-client** (C → WebAssembly) | Presentation runtime: rendering, UI, input capture, prediction, reconciliation, interpolation, client-side presentation defaults. |
|
|
51
|
+
|
|
52
|
+
**Startup order — sequential, in order:**
|
|
53
|
+
|
|
54
|
+
1. **Persistent backend / sidecar data layer** — databases, content backend (engine-cyberia), static asset backend, config and data services.
|
|
55
|
+
2. **cyberia-server** — authoritative Go simulation runtime; dials engine-cyberia gRPC at boot to load world configuration.
|
|
56
|
+
3. **cyberia-client** — rendering, UI, prediction, interpolation, reconciliation; connects to cyberia-server via WebSocket.
|
|
57
|
+
|
|
58
|
+
<a target="_top" href="https://github.com/underpostnet/engine-cyberia/blob/master/src/client/public/cyberia-docs/ARCHITECTURE.md">See Detailed architecture.</a>
|
|
30
59
|
|
|
31
60
|
## Create a new project
|
|
32
61
|
|
|
@@ -58,10 +87,10 @@ Run dev client server
|
|
|
58
87
|
npm run dev
|
|
59
88
|
```
|
|
60
89
|
|
|
61
|
-
<a target="_top" href="https://www.nexodev.org/docs?cid=src">See Docs
|
|
90
|
+
<a target="_top" href="https://www.nexodev.org/docs?cid=src">See Docs.</a>
|
|
62
91
|
|
|
63
92
|
<!-- cli-index-start -->
|
|
64
|
-
## underpost ci/cd cli v3.2.
|
|
93
|
+
## underpost ci/cd cli v3.2.10
|
|
65
94
|
|
|
66
95
|
### Usage: `underpost [options] [command]`
|
|
67
96
|
```
|
|
@@ -103,4 +132,4 @@ Commands:
|
|
|
103
132
|
```
|
|
104
133
|
<!-- cli-index-end -->
|
|
105
134
|
|
|
106
|
-
<a target="_top" href="https://github.com/underpostnet/pwa-microservices-template/blob/master/CLI-HELP.md">See CLI Docs
|
|
135
|
+
<a target="_top" href="https://github.com/underpostnet/pwa-microservices-template/blob/master/CLI-HELP.md">See CLI Docs.</a>
|
package/bin/build.js
CHANGED
|
@@ -64,9 +64,9 @@ if (process.argv.includes('conf')) {
|
|
|
64
64
|
}
|
|
65
65
|
shellExec(
|
|
66
66
|
`cd ../${privateRepoName}` +
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
` && git add .` +
|
|
68
|
+
` && underpost cmt . ci engine-core-conf 'Update ${_confName} conf'` +
|
|
69
|
+
` && underpost push . ${privateGitUri}`,
|
|
70
70
|
{
|
|
71
71
|
silent: true,
|
|
72
72
|
},
|
|
@@ -167,23 +167,39 @@ const { DefaultConf } = await import(`../conf.${confName}.js`);
|
|
|
167
167
|
packageJson.bin.cyberia = 'bin/index.js';
|
|
168
168
|
packageJson.keywords = [
|
|
169
169
|
'cyberia',
|
|
170
|
+
'cyberia-cli',
|
|
171
|
+
'sidecar',
|
|
172
|
+
'data-layer',
|
|
173
|
+
'engine-cyberia',
|
|
170
174
|
'object-layer',
|
|
171
|
-
'game-engine',
|
|
172
|
-
'assets-management',
|
|
173
|
-
'web3',
|
|
174
175
|
'atlas-sprite-sheet',
|
|
176
|
+
'ipfs',
|
|
177
|
+
'erc-1155',
|
|
178
|
+
'object-layer-token',
|
|
179
|
+
'hardhat',
|
|
180
|
+
'hyperledger-besu',
|
|
181
|
+
'blockchain',
|
|
182
|
+
'web3',
|
|
183
|
+
'underpost-platform',
|
|
184
|
+
'mmo-extension',
|
|
175
185
|
];
|
|
176
|
-
packageJson.description =
|
|
177
|
-
|
|
186
|
+
packageJson.description =
|
|
187
|
+
'Cyberia CLI — toolchain for the Cyberia MMO data layer, content pipeline, persistence, gRPC services, and ERC-1155 lifecycle on Hyperledger Besu.';
|
|
188
|
+
const { CyberiaDependencies } = await import(`../src/api/cyberia-server-defaults/cyberia-server-defaults.js`);
|
|
178
189
|
packageJson.dependencies = {
|
|
179
190
|
...originPackageJson.dependencies,
|
|
180
191
|
...CyberiaDependencies,
|
|
181
192
|
};
|
|
182
193
|
fs.writeFileSync(`${basePath}/bin/index.js`, fs.readFileSync(`./bin/cyberia.js`, 'utf8'), 'utf8');
|
|
194
|
+
fs.writeFileSync(
|
|
195
|
+
`${basePath}/README.md`,
|
|
196
|
+
fs.readFileSync(`./src/client/public/cyberia-docs/CYBERIA-CLI.md`, 'utf8'),
|
|
197
|
+
'utf8',
|
|
198
|
+
);
|
|
183
199
|
fs.copySync(`./hardhat`, `${basePath}/hardhat`);
|
|
184
200
|
for (const path of [
|
|
185
201
|
'/src/grpc/cyberia',
|
|
186
|
-
'/src/client/ssr/
|
|
202
|
+
'/src/client/ssr/views/CyberiaServerMetrics.js',
|
|
187
203
|
'/src/server/object-layer.js',
|
|
188
204
|
'/src/server/atlas-sprite-sheet-generator.js',
|
|
189
205
|
'/src/server/shape-generator.js',
|
|
@@ -197,6 +213,7 @@ const { DefaultConf } = await import(`../conf.${confName}.js`);
|
|
|
197
213
|
'/src/runtime/cyberia-client',
|
|
198
214
|
'/.github/workflows/hardhat.ci.yml',
|
|
199
215
|
'/src/client/public/cyberia-docs',
|
|
216
|
+
'/src/api/cyberia-server-defaults'
|
|
200
217
|
])
|
|
201
218
|
fs.copySync(`.${path}`, `${basePath}${path}`);
|
|
202
219
|
|
package/bin/deploy.js
CHANGED
|
@@ -443,10 +443,10 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
|
|
|
443
443
|
shellExec(`sudo kubectl delete secret ${secretSelector} -n ${namespace} --ignore-not-found`);
|
|
444
444
|
shellExec(
|
|
445
445
|
`sudo kubectl create secret generic ${secretSelector}` +
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
446
|
+
` --from-literal=POSTGRES_DB=postgresdb` +
|
|
447
|
+
` --from-literal=POSTGRES_USER=admin` +
|
|
448
|
+
` --from-file=POSTGRES_PASSWORD=/home/dd/engine/engine-private/postgresql-password` +
|
|
449
|
+
` --dry-run=client -o yaml | kubectl apply -f - -n ${namespace}`,
|
|
450
450
|
);
|
|
451
451
|
}
|
|
452
452
|
{
|
|
@@ -454,10 +454,10 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
|
|
|
454
454
|
shellExec(`sudo kubectl delete secret ${secretSelector} -n ${namespace} --ignore-not-found`);
|
|
455
455
|
shellExec(
|
|
456
456
|
`sudo kubectl create secret generic ${secretSelector}` +
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
457
|
+
` --from-file=SECRET_KEY=/home/dd/engine/engine-private/postgresql-password` +
|
|
458
|
+
` --from-literal=FIRST_SUPERUSER=${process.env.GITHUB_EMAIL || 'development@underpost.net'}` +
|
|
459
|
+
` --from-file=FIRST_SUPERUSER_PASSWORD=/home/dd/engine/engine-private/postgresql-password` +
|
|
460
|
+
` --dry-run=client -o yaml | kubectl apply -f - -n ${namespace}`,
|
|
461
461
|
);
|
|
462
462
|
}
|
|
463
463
|
}
|
|
@@ -577,8 +577,7 @@ nvidia/gpu-operator \
|
|
|
577
577
|
shellExec(`sudo docker pull ${image}`);
|
|
578
578
|
if (!process.argv.includes('kubeadm'))
|
|
579
579
|
shellExec(
|
|
580
|
-
`sudo ${
|
|
581
|
-
process.argv.includes('kubeadm') ? `ctr -n k8s.io images import` : `kind load docker-image`
|
|
580
|
+
`sudo ${process.argv.includes('kubeadm') ? `ctr -n k8s.io images import` : `kind load docker-image`
|
|
582
581
|
} ${image}`,
|
|
583
582
|
);
|
|
584
583
|
const namespace = process.argv.find((arg) => arg.startsWith('--namespace='))?.split('=')[1] || 'default';
|
|
@@ -627,11 +626,11 @@ nvidia/gpu-operator \
|
|
|
627
626
|
}
|
|
628
627
|
env[key] =
|
|
629
628
|
`${key}`.toUpperCase().match('API') ||
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
629
|
+
`${key}`.toUpperCase().match('KEY') ||
|
|
630
|
+
`${key}`.toUpperCase().match('SECRET') ||
|
|
631
|
+
`${key}`.toUpperCase().match('TOKEN') ||
|
|
632
|
+
`${key}`.toUpperCase().match('PASSWORD') ||
|
|
633
|
+
`${key}`.toUpperCase().match('MAC')
|
|
635
634
|
? 'changethis'
|
|
636
635
|
: isNaN(parseFloat(privateEnv[key]))
|
|
637
636
|
? `${privateEnv[key]}`.match(`@`)
|
|
@@ -714,7 +713,7 @@ nvidia/gpu-operator \
|
|
|
714
713
|
}
|
|
715
714
|
|
|
716
715
|
case 'cyberia': {
|
|
717
|
-
const { CyberiaDependencies } = await import(`../src/
|
|
716
|
+
const { CyberiaDependencies } = await import(`../src/api/cyberia-server-defaults/cyberia-server-defaults.js`);
|
|
718
717
|
for (const dep of Object.keys(CyberiaDependencies)) {
|
|
719
718
|
const ver = CyberiaDependencies[dep];
|
|
720
719
|
shellExec(`npm install ${dep}@${ver}`);
|
|
@@ -823,7 +822,7 @@ nvidia/gpu-operator \
|
|
|
823
822
|
|
|
824
823
|
// Delete merged local and remote branches
|
|
825
824
|
for (const { branch, isAlreadyMerged } of mergedBranches) {
|
|
826
|
-
shellExec(`git branch -D ${branch}`, { silent: true });
|
|
825
|
+
shellExec(`git branch -D ${branch}`, { silent: true, silentOnError: true });
|
|
827
826
|
// logger.info(`Deleting remote branch: ${branch}${isAlreadyMerged ? ' (already merged)' : ''}`);
|
|
828
827
|
// shellExec(`git push https://${process.env.GITHUB_TOKEN}@github.com/${gitUri}.git --delete ${branch}`, {
|
|
829
828
|
// disableLog: true,
|
|
@@ -1394,10 +1393,10 @@ nvidia/gpu-operator \
|
|
|
1394
1393
|
const deployIds = deployIdArg
|
|
1395
1394
|
? [deployIdArg]
|
|
1396
1395
|
: fs
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1396
|
+
.readFileSync(`./engine-private/deploy/dd.router`, 'utf8')
|
|
1397
|
+
.split(',')
|
|
1398
|
+
.map((d) => d.trim())
|
|
1399
|
+
.filter(Boolean);
|
|
1401
1400
|
|
|
1402
1401
|
const addComponentToClientConf = ({ filePath, label, targetClientId, targetSubmoduleId }) => {
|
|
1403
1402
|
if (!fs.existsSync(filePath)) return { added: 0, checked: 0, hasComponentFile: false };
|
package/bin/file.js
CHANGED
|
@@ -15,9 +15,13 @@ import dotenv from 'dotenv';
|
|
|
15
15
|
|
|
16
16
|
const logger = loggerFactory(import.meta);
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
if (fs.existsSync('./engine-private/conf/dd-cron/.env.production'))
|
|
19
|
+
dotenv.config({
|
|
20
|
+
path:
|
|
21
|
+
`./engine-private/conf/dd-cron/.env.production`,
|
|
22
|
+
override: true
|
|
23
|
+
});
|
|
24
|
+
else dotenv.config();
|
|
21
25
|
|
|
22
26
|
let [exe, dir, type] = process.argv;
|
|
23
27
|
let rawPath = process.argv[3].replaceAll(`'`, '');
|
|
@@ -56,10 +60,10 @@ try {
|
|
|
56
60
|
|
|
57
61
|
if (type === 'update-template') {
|
|
58
62
|
if (!fs.existsSync(toPath))
|
|
59
|
-
shellExec(`cd .. &&
|
|
63
|
+
shellExec(`cd .. && node engine/bin clone ${process.env.GITHUB_USERNAME}/pwa-microservices-template`);
|
|
60
64
|
else {
|
|
61
65
|
shellExec(`cd ${toPath} && git reset && git checkout . && git clean -f -d`);
|
|
62
|
-
shellExec(`
|
|
66
|
+
shellExec(`node bin pull ${toPath} ${process.env.GITHUB_USERNAME}/pwa-microservices-template`);
|
|
63
67
|
shellExec(`sudo rm -rf ${toPath}/engine-private`);
|
|
64
68
|
shellExec(`sudo rm -rf ${toPath}/logs`);
|
|
65
69
|
}
|
|
@@ -135,9 +139,6 @@ try {
|
|
|
135
139
|
const templatePackageJson = JSON.parse(fs.readFileSync('../pwa-microservices-template/package.json', 'utf8'));
|
|
136
140
|
|
|
137
141
|
const name = templatePackageJson.name;
|
|
138
|
-
const description = templatePackageJson.description;
|
|
139
|
-
const dev = templatePackageJson.scripts.dev;
|
|
140
|
-
const build = templatePackageJson.scripts.build;
|
|
141
142
|
|
|
142
143
|
templatePackageJson.dependencies = originPackageJson.dependencies;
|
|
143
144
|
templatePackageJson.devDependencies = originPackageJson.devDependencies;
|
|
@@ -145,11 +146,27 @@ try {
|
|
|
145
146
|
templatePackageJson.scripts = originPackageJson.scripts;
|
|
146
147
|
templatePackageJson.overrides = originPackageJson.overrides;
|
|
147
148
|
templatePackageJson.name = name;
|
|
148
|
-
templatePackageJson.description =
|
|
149
|
-
|
|
150
|
-
// templatePackageJson.scripts.build = build;
|
|
149
|
+
templatePackageJson.description =
|
|
150
|
+
'Underpost Platform — end-to-end CI/CD and application-delivery toolchain CLI. Covers bare metal, Kubernetes, K3s, kubeadm, LXD, container/image orchestration, secrets, databases, cron jobs, monitoring, SSH, runners, PWA + Workbox delivery, and release orchestration. Extensible via downstream CLIs.';
|
|
151
151
|
templatePackageJson.keywords = uniqueArray(
|
|
152
|
-
[
|
|
152
|
+
[
|
|
153
|
+
'underpost',
|
|
154
|
+
'underpost-platform',
|
|
155
|
+
'cli',
|
|
156
|
+
'toolchain',
|
|
157
|
+
'ci-cd',
|
|
158
|
+
'devops',
|
|
159
|
+
'kubernetes',
|
|
160
|
+
'k3s',
|
|
161
|
+
'kubeadm',
|
|
162
|
+
'lxd',
|
|
163
|
+
'bare-metal',
|
|
164
|
+
'container-orchestration',
|
|
165
|
+
'image-management',
|
|
166
|
+
'pwa',
|
|
167
|
+
'workbox',
|
|
168
|
+
'microservices',
|
|
169
|
+
].concat(templatePackageJson.keywords || []),
|
|
153
170
|
);
|
|
154
171
|
delete templatePackageJson.scripts['update:template'];
|
|
155
172
|
fs.writeFileSync(
|
|
@@ -199,4 +216,5 @@ try {
|
|
|
199
216
|
}
|
|
200
217
|
} catch (error) {
|
|
201
218
|
logger.error(error, error.stack);
|
|
202
|
-
|
|
219
|
+
process.exit(1);
|
|
220
|
+
}
|
package/bin/index.js
CHANGED
package/bin/vs.js
CHANGED
package/bump.config.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* bumpp configuration for the Underpost engine.
|
|
3
|
+
*
|
|
4
|
+
* Owns the *canonical* version-bearing files (anything that exposes a literal `version` field
|
|
5
|
+
* bumpp can detect natively). Non-canonical files — image tags in workflows, README badges,
|
|
6
|
+
* doc strings, deployment.yaml image refs — are handled by the custom regex walker in
|
|
7
|
+
* src/cli/release.js (VERSION_BUMP_TARGETS), because bumpp only rewrites `version`-shaped lines.
|
|
8
|
+
*
|
|
9
|
+
* release.js drives bumpp programmatically (versionBump from 'bumpp') with commit/tag/push
|
|
10
|
+
* disabled, since the engine release flow stages and commits separately via `node bin cmt`.
|
|
11
|
+
*
|
|
12
|
+
* @see https://github.com/antfu/bumpp
|
|
13
|
+
*/
|
|
14
|
+
export default {
|
|
15
|
+
files: [
|
|
16
|
+
'package.json',
|
|
17
|
+
'package-lock.json',
|
|
18
|
+
// engine-private confs are git-ignored and visited only if present at bump time.
|
|
19
|
+
'engine-private/conf/**/package.json',
|
|
20
|
+
],
|
|
21
|
+
commit: false,
|
|
22
|
+
tag: false,
|
|
23
|
+
push: false,
|
|
24
|
+
confirm: false,
|
|
25
|
+
recursive: false,
|
|
26
|
+
};
|