underpost 3.2.28 → 3.2.70
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/ghpkg.ci.yml +87 -0
- package/.github/workflows/npmpkg.ci.yml +9 -6
- package/.github/workflows/pwa-microservices-template-page.cd.yml +0 -7
- package/CHANGELOG.md +161 -1
- package/CLI-HELP.md +17 -6
- package/README.md +2 -2
- package/bin/build.js +30 -0
- package/bin/deploy.js +2 -2
- package/bump.config.js +1 -0
- package/docker-compose.yml +26 -26
- 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/package.json +10 -10
- package/scripts/disk-clean.sh +85 -60
- package/scripts/test-monitor.sh +3 -5
- package/src/cli/cluster.js +77 -4
- package/src/cli/deploy.js +121 -9
- package/src/cli/docker-compose.js +58 -1
- package/src/cli/env.js +11 -2
- package/src/cli/fs.js +45 -24
- package/src/cli/image.js +129 -51
- package/src/cli/index.js +35 -6
- package/src/cli/release.js +46 -4
- package/src/cli/repository.js +166 -22
- package/src/cli/run.js +273 -118
- package/src/cli/secrets.js +82 -48
- package/src/cli/ssh.js +44 -0
- package/src/client.build.js +0 -2
- package/src/db/mongo/MongoBootstrap.js +12 -12
- package/src/index.js +1 -1
- package/src/server/catalog.js +2 -0
- package/src/server/conf.js +0 -3
- package/src/server/runtime-status.js +18 -1
- package/src/server/start.js +12 -2
- package/src/server.js +5 -1
- package/test/deploy-monitor.test.js +26 -10
|
@@ -4,6 +4,16 @@ on:
|
|
|
4
4
|
branches: ['master']
|
|
5
5
|
pull_request:
|
|
6
6
|
branches: ['master']
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
conf_id:
|
|
10
|
+
description: 'Conf id of the canonical engine github package repo (engine-ghpkg-<conf_id>)'
|
|
11
|
+
required: false
|
|
12
|
+
default: 'cyberia'
|
|
13
|
+
message:
|
|
14
|
+
description: 'Commit message for the canonical package build'
|
|
15
|
+
required: false
|
|
16
|
+
default: ''
|
|
7
17
|
permissions:
|
|
8
18
|
contents: write
|
|
9
19
|
packages: write
|
|
@@ -71,3 +81,80 @@ jobs:
|
|
|
71
81
|
git status
|
|
72
82
|
git commit -m "$LAST_COMMIT_MESSAGE"
|
|
73
83
|
node bin push . underpostnet/pwa-microservices-template-ghpkg
|
|
84
|
+
|
|
85
|
+
engine-ghpkg:
|
|
86
|
+
if: github.repository == 'underpostnet/engine' && github.event_name == 'workflow_dispatch'
|
|
87
|
+
name: Build engine ${{ github.event.inputs.conf_id || 'cyberia' }} ghpkg repository
|
|
88
|
+
runs-on: ubuntu-latest
|
|
89
|
+
container:
|
|
90
|
+
image: quay.io/rockylinux/rockylinux:9
|
|
91
|
+
permissions:
|
|
92
|
+
contents: write
|
|
93
|
+
packages: write
|
|
94
|
+
id-token: write
|
|
95
|
+
steps:
|
|
96
|
+
- uses: actions/checkout@v7
|
|
97
|
+
|
|
98
|
+
- name: Install required packages
|
|
99
|
+
run: |
|
|
100
|
+
dnf install -y sudo tar gzip bzip2 git
|
|
101
|
+
dnf install -y curl --allowerasing
|
|
102
|
+
|
|
103
|
+
- name: Install Node.js
|
|
104
|
+
run: |
|
|
105
|
+
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
|
|
106
|
+
dnf install nodejs -y
|
|
107
|
+
|
|
108
|
+
- name: Install dependencies
|
|
109
|
+
run: npm install
|
|
110
|
+
|
|
111
|
+
- name: Resolve canonical github package repo
|
|
112
|
+
run: |
|
|
113
|
+
CONF_ID="${{ github.event.inputs.conf_id }}"
|
|
114
|
+
CONF_ID="${CONF_ID:-cyberia}"
|
|
115
|
+
echo "CONF_ID=$CONF_ID" >> $GITHUB_ENV
|
|
116
|
+
echo "GHPKG_REPO=engine-ghpkg-$CONF_ID" >> $GITHUB_ENV
|
|
117
|
+
echo "PACKAGE_NAME=@underpostnet/$CONF_ID" >> $GITHUB_ENV
|
|
118
|
+
echo "[INFO] Canonical github package repo: underpostnet/engine-ghpkg-$CONF_ID"
|
|
119
|
+
|
|
120
|
+
- name: Capture commit message
|
|
121
|
+
run: |
|
|
122
|
+
FULL_MSG="${{ github.event.inputs.message }}"
|
|
123
|
+
if [ -z "$FULL_MSG" ]; then
|
|
124
|
+
FULL_MSG=$(node bin cmt --changelog-msg --from-n-commit 1 --changelog-no-hash 2>/dev/null || echo "")
|
|
125
|
+
fi
|
|
126
|
+
LAST_COMMIT_MESSAGE="${FULL_MSG:-Update canonical github package repo}"
|
|
127
|
+
echo "LAST_COMMIT_MESSAGE<<EOF" >> $GITHUB_ENV
|
|
128
|
+
echo "$LAST_COMMIT_MESSAGE" >> $GITHUB_ENV
|
|
129
|
+
echo "EOF" >> $GITHUB_ENV
|
|
130
|
+
echo "[INFO] Commit message: $LAST_COMMIT_MESSAGE"
|
|
131
|
+
|
|
132
|
+
- name: Set git global credentials
|
|
133
|
+
run: |
|
|
134
|
+
git config --global --add safe.directory '*'
|
|
135
|
+
git config --global credential.helper ""
|
|
136
|
+
git config --global user.name 'underpostnet'
|
|
137
|
+
git config --global user.email 'development@underpost.net'
|
|
138
|
+
|
|
139
|
+
- name: Mirror engine-$CONF_ID and Push to canonical github package repository
|
|
140
|
+
env:
|
|
141
|
+
GITHUB_TOKEN: ${{ secrets.GIT_AUTH_TOKEN }}
|
|
142
|
+
GITHUB_USERNAME: ${{ github.repository_owner }}
|
|
143
|
+
run: |
|
|
144
|
+
cd .. && node engine/bin clone underpostnet/engine-$CONF_ID
|
|
145
|
+
node engine/bin clone --bare underpostnet/$GHPKG_REPO
|
|
146
|
+
cd engine-$CONF_ID
|
|
147
|
+
rm -rf ./.git
|
|
148
|
+
mv ../$GHPKG_REPO.git ./.git
|
|
149
|
+
node ../engine/bin/deploy rename-package "$PACKAGE_NAME"
|
|
150
|
+
node ../engine/bin/deploy set-repo underpostnet/$GHPKG_REPO
|
|
151
|
+
git init
|
|
152
|
+
git config user.name 'underpostnet'
|
|
153
|
+
git config user.email 'development@underpost.net'
|
|
154
|
+
git add .
|
|
155
|
+
if git diff --cached --quiet; then
|
|
156
|
+
echo "[INFO] No changes to publish; skipping commit and push."
|
|
157
|
+
else
|
|
158
|
+
git commit -m "$LAST_COMMIT_MESSAGE"
|
|
159
|
+
node ../engine/bin push . underpostnet/$GHPKG_REPO
|
|
160
|
+
fi
|
|
@@ -110,14 +110,17 @@ jobs:
|
|
|
110
110
|
DT="$DEPLOY_TYPE"
|
|
111
111
|
fi
|
|
112
112
|
echo "[INFO] Dispatching ${ENGINE}.ci.yml (sync=$SYNC, deploy_type=$DT)"
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
# Build the payload with node so the propagated message (may contain quotes/newlines)
|
|
114
|
+
# is JSON-escaped safely, and forward it so every engine-* repo shares one message.
|
|
115
|
+
PAYLOAD=$(SYNC="$SYNC" DT="$DT" MSG="$LAST_COMMIT_MESSAGE" node -e '
|
|
116
|
+
const i = { sync: process.env.SYNC };
|
|
117
|
+
if (process.env.DT) i.deploy_type = process.env.DT;
|
|
118
|
+
if (process.env.MSG) i.message = process.env.MSG;
|
|
119
|
+
process.stdout.write(JSON.stringify({ ref: "master", inputs: i }));
|
|
120
|
+
')
|
|
118
121
|
curl -s -X POST \
|
|
119
122
|
-H "Accept: application/vnd.github.v3+json" \
|
|
120
123
|
-H "Authorization: token ${{ secrets.GIT_AUTH_TOKEN }}" \
|
|
121
124
|
"https://api.github.com/repos/underpostnet/engine/actions/workflows/${ENGINE}.ci.yml/dispatches" \
|
|
122
|
-
-d "
|
|
125
|
+
-d "$PAYLOAD"
|
|
123
126
|
done
|
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
# Simple workflow for deploying static content to GitHub Pages
|
|
2
1
|
name: CD | Gihub page | PWA Microservices Template
|
|
3
2
|
|
|
4
3
|
on:
|
|
5
|
-
# Runs on pushes targeting the default branch
|
|
6
4
|
push:
|
|
7
5
|
branches: ['main']
|
|
8
6
|
|
|
9
|
-
# Allows you to run this workflow manually from the Actions tab
|
|
10
7
|
workflow_dispatch:
|
|
11
8
|
|
|
12
|
-
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
13
9
|
permissions:
|
|
14
10
|
contents: read
|
|
15
11
|
pages: write
|
|
16
12
|
id-token: write
|
|
17
13
|
|
|
18
|
-
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
19
|
-
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
20
14
|
concurrency:
|
|
21
15
|
group: 'pages'
|
|
22
16
|
cancel-in-progress: false
|
|
23
17
|
|
|
24
18
|
jobs:
|
|
25
|
-
# Single deploy job since we're just deploying
|
|
26
19
|
deploy:
|
|
27
20
|
if: github.repository == 'underpostnet/pwa-microservices-template-ghpkg'
|
|
28
21
|
environment:
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,166 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 2026-
|
|
3
|
+
## 2026-07-07
|
|
4
|
+
|
|
5
|
+
### release
|
|
6
|
+
|
|
7
|
+
- Enhance buildVersionBumpTargets patterns scope ([510abdd94](https://github.com/underpostnet/engine/commit/510abdd94faaa121b7f81a21450beba484de654b))
|
|
8
|
+
|
|
9
|
+
### cli-repository
|
|
10
|
+
|
|
11
|
+
- Add default branch resolution ([c5074d31c](https://github.com/underpostnet/engine/commit/c5074d31cac7046280d24d12e30a87ad2db86285))
|
|
12
|
+
- FIx commit message propagation in CI engines workflows ([4b5458d83](https://github.com/underpostnet/engine/commit/4b5458d834efa88a1cf81ae32d517a71a4bb58f2))
|
|
13
|
+
- Add runtimeRepo logic in resolveInstanceRepo method ([1ef3ad279](https://github.com/underpostnet/engine/commit/1ef3ad27908989f3ab7f620500257b6e9ff76f4b))
|
|
14
|
+
|
|
15
|
+
### github-actions
|
|
16
|
+
|
|
17
|
+
- Clean comments ([785e9d55d](https://github.com/underpostnet/engine/commit/785e9d55d27351ad4d529e38f60d3962f9439fee))
|
|
18
|
+
- Fix typo engine cyberia cd cmd command, and clean comments in cyberia-engine related dockerfiles ([d93dbf54a](https://github.com/underpostnet/engine/commit/d93dbf54a2ec44e1c1b4c01abd21e1baa0cf7fbc))
|
|
19
|
+
- Fix add missing install dependencies in cyberia github package workflow ([8897dcdbb](https://github.com/underpostnet/engine/commit/8897dcdbbea619687165438f3ac64702480f4d23))
|
|
20
|
+
- Add cyberia cli github package workflow ([6ae0ac5f7](https://github.com/underpostnet/engine/commit/6ae0ac5f76c08643171b4b3853c874ed26b423c1))
|
|
21
|
+
- Add cyberia-server and cyberia-client CD workflows ([c92a6c278](https://github.com/underpostnet/engine/commit/c92a6c27810738c2c6a87962c6fefaf98060cb70))
|
|
22
|
+
- Fix engine-cyberia CD and engine-prototype CI manifests workflows ([3ca123dbf](https://github.com/underpostnet/engine/commit/3ca123dbf9d4d0cfbc1d504e6b0c847abd2f8757))
|
|
23
|
+
- Add single source of truth for the underpost image version in ci dockerhub workflows ([97585e735](https://github.com/underpostnet/engine/commit/97585e735c1cd48c80e8c7af8601e14a79e233fd))
|
|
24
|
+
- Update engine-cyberia default deployment node ([b181a5bd5](https://github.com/underpostnet/engine/commit/b181a5bd5254d2a692579c9c7d188161ae351e59))
|
|
25
|
+
|
|
26
|
+
### engine-cyberia
|
|
27
|
+
|
|
28
|
+
- Add sudo in engine-cyberia runtime dockerfiles ([3c3da0fcc](https://github.com/underpostnet/engine/commit/3c3da0fccc5b91c01722d3224146ae37ebcc6a27))
|
|
29
|
+
- Update production engine-cyberia Dockerfile ([e1a9330e9](https://github.com/underpostnet/engine/commit/e1a9330e9c3325a8a1ee41318bbe48714deaf3a2))
|
|
30
|
+
- Refactor Dockerfile and deployment configurations for production and development environments ([4901a3f92](https://github.com/underpostnet/engine/commit/4901a3f925ce038ede03b5e08c6b06eb03bc1617))
|
|
31
|
+
- Refactor separate engine-cybera public engine URL from internal cyberia-server api engine base url endpoint ([48923d900](https://github.com/underpostnet/engine/commit/48923d90062dc934228c049a33f619dcdacd5cbc))
|
|
32
|
+
- Add in runtime engine-cyberia module docker-compose env file related ([ae30329d4](https://github.com/underpostnet/engine/commit/ae30329d4e80d4911c3129ad042c623f74110462))
|
|
33
|
+
- Add centralized node version arg and update to v24.15.0 id dockerfiles related ([64a649a1b](https://github.com/underpostnet/engine/commit/64a649a1b29a941b10d91879207e8a7ff76f48a2))
|
|
34
|
+
- Update Dockerfile.dev use canonical repository ([12e439122](https://github.com/underpostnet/engine/commit/12e4391225ee207dd5e3edff93af4cfe667982dd))
|
|
35
|
+
- Add ipfs cluster service in cyberia docker-compose deployment ([8ee19a3fa](https://github.com/underpostnet/engine/commit/8ee19a3fa5792ed800b03f45a0a677b0d6244450))
|
|
36
|
+
- Move ffmpeg to runtime stage in docker-image build pipeline ([1fcca3783](https://github.com/underpostnet/engine/commit/1fcca3783add20e42c3c80a14dfdf9a9ff2b08a9))
|
|
37
|
+
- Add engine-cyberia runtime module, docker-compose cyberia mmo ecosystem, and docker-image engine-cyberia dockerhub pipeline ([df2162b7d](https://github.com/underpostnet/engine/commit/df2162b7d755a814d36bd2da322c3e554496daa2))
|
|
38
|
+
- Add behavior field, entity behavior vocabulary, and skill logic validation ([6ac9bcaf5](https://github.com/underpostnet/engine/commit/6ac9bcaf5eede564ae80ce74498c91eb9a4e4b20))
|
|
39
|
+
- Refactor entity-type-default to subset matching resolution ([bf0aa9fe6](https://github.com/underpostnet/engine/commit/bf0aa9fe65523d0817d18b8796ce71b9be858955))
|
|
40
|
+
- Add fontFamily+fontFactorSize; in RENDER_DEFAULTS and buildClientHints passthrough; client-hints model fields related logic ([34a1ee78b](https://github.com/underpostnet/engine/commit/34a1ee78bf8eba5ed1ffca5bad3c92f5eef5c4fd))
|
|
41
|
+
- Add transport status definition for portal entities ([4cf015892](https://github.com/underpostnet/engine/commit/4cf015892eaafd58e6d65f19c7aeeaec3eccfb5e))
|
|
42
|
+
- Implement cyberia-entity-type-default model and EntityEngineCyberia and related logic ([96c8c94ec](https://github.com/underpostnet/engine/commit/96c8c94ec4a0faf506232d3a1059e0c84f83edc6))
|
|
43
|
+
- Add cyberia saga amethyst-strata-expansion custom resources ([6422570ab](https://github.com/underpostnet/engine/commit/6422570ab33b686016bed5f338cbbf8a0395f285))
|
|
44
|
+
- Refactor questCodes field in cyberia-saga model and add actionCodes references ([93ffb7f0b](https://github.com/underpostnet/engine/commit/93ffb7f0bc8097769d3b9f3c4ffbf1c8359af18a))
|
|
45
|
+
- Fix idempotency consistency in atlasSpriteSheetId ref in export / import instance pipeline ([05e62ebbe](https://github.com/underpostnet/engine/commit/05e62ebbe0fc8284ee468b458818e19fc77298bb))
|
|
46
|
+
- Add cyberia-saga documents in import / export cyberia instance pipelines ([e77583fc8](https://github.com/underpostnet/engine/commit/e77583fc8b129a875270ef8d7e1c40d61ecc7a18))
|
|
47
|
+
- Update CLI and saga documentation for skills ([1655a5c87](https://github.com/underpostnet/engine/commit/1655a5c877c712210cbe83a35848896cdc5e4125))
|
|
48
|
+
- CLI seed-skills, import/export, and server defaults skill config ([b2215cce2](https://github.com/underpostnet/engine/commit/b2215cce22c5499579a2df63db0ac301a0553feb))
|
|
49
|
+
- Action engine skill editor with CyberiaSkill CRUD ([7a3f3b8d7](https://github.com/underpostnet/engine/commit/7a3f3b8d71272eee9a3c4fb9218d9152b2023776))
|
|
50
|
+
- Saga generator skills stage and instance persistence ([669d991ca](https://github.com/underpostnet/engine/commit/669d991cac09dedf60b60c7261cb045cb7dd7f71))
|
|
51
|
+
- Skill system - DefaultSkillConfig, gRPC server, CRUD API, and client service ([2e1997ebc](https://github.com/underpostnet/engine/commit/2e1997ebceb03723ea7ffd15ea61d950a3723414))
|
|
52
|
+
- Instance model itemIds schema with defaultPlayerInventory flag ([342df03c3](https://github.com/underpostnet/engine/commit/342df03c3612cc82131b287e1f7545e3fcd7f9f8))
|
|
53
|
+
- Add static entity type and shared direction/stat constants ([86ab2ffca](https://github.com/underpostnet/engine/commit/86ab2ffca38851ce870ee72c37221cbf260e5bd8))
|
|
54
|
+
|
|
55
|
+
### cli-fs
|
|
56
|
+
|
|
57
|
+
- Isolate Git tracking from JSON storage ([2f9145be9](https://github.com/underpostnet/engine/commit/2f9145be92456124118f9c7d74726bdff82dc5f3))
|
|
58
|
+
|
|
59
|
+
### cli-run
|
|
60
|
+
|
|
61
|
+
- Add typedef UnderpostRunDefaultOptions in cli runner module ([8a3580109](https://github.com/underpostnet/engine/commit/8a3580109d8f70a10c4ac2d216fbd35844e09541))
|
|
62
|
+
- Add resolve runtimeRepo logic in ssh-deploy runner ([1d4c26002](https://github.com/underpostnet/engine/commit/1d4c26002ac513fcde86c8839445e2b82fd55e50))
|
|
63
|
+
- Add generate sibling manifests (pv-pvc, proxy, grpc-service) in instance-build-manifest runner ([36bf33b4b](https://github.com/underpostnet/engine/commit/36bf33b4b2ec34bac3925a4330b4eb5606cf8876))
|
|
64
|
+
- Add dev mode in runner docker-image to trigger dev variant docker hub push ([bc1e23ac0](https://github.com/underpostnet/engine/commit/bc1e23ac0ce5c705e3d2f7b3e47546e1e3c583bb))
|
|
65
|
+
- Fix custom instance artifact generator add custom --trafic flag inteast ([d6873f3c3](https://github.com/underpostnet/engine/commit/d6873f3c300d09f34cf5399f671b86ac5f4b8d55))
|
|
66
|
+
- Add deploy key runner ([6164b0190](https://github.com/underpostnet/engine/commit/6164b0190e59510bdd51bb60d3064ba3a9c32a7b))
|
|
67
|
+
- Add kubernetes-sigs metrics server runner setup ([4761c6351](https://github.com/underpostnet/engine/commit/4761c6351482fe27e84f47d4cf53946f8f04caa6))
|
|
68
|
+
|
|
69
|
+
### cyberia-cli
|
|
70
|
+
|
|
71
|
+
- Add missing deployment manifests copy to build cyberia-instance dir ([ee71573ee](https://github.com/underpostnet/engine/commit/ee71573eea0e979d883238744bee97714cf0b224))
|
|
72
|
+
- Add publishing functionality for cyberia instances ([aaf8485bf](https://github.com/underpostnet/engine/commit/aaf8485bfd003a39dec59760c5dd2b2ffb051f3d))
|
|
73
|
+
- Add method to fill empty fields in Instance Conf Defaults export process ([6e1c268ae](https://github.com/underpostnet/engine/commit/6e1c268ae755b240abdfcd60ff0f26d2c35a9fe3))
|
|
74
|
+
- Add docker-compose-dev-env-up runner workflow ([9e765185a](https://github.com/underpostnet/engine/commit/9e765185ad782f34cddddbc2862981416a830de4))
|
|
75
|
+
- Add drop-db workflow to clear only cyberia collections ([5b741c22c](https://github.com/underpostnet/engine/commit/5b741c22cda0cf7c9ee531903769d466826cf133))
|
|
76
|
+
- Add sync-src to engine runner logic ([a777e5ad6](https://github.com/underpostnet/engine/commit/a777e5ad69b1069eadb04846010a6d34508ce7c5))
|
|
77
|
+
- Remove seed default dialogues in export instance logic ([1cbcb9e52](https://github.com/underpostnet/engine/commit/1cbcb9e52f1441ae10abb046bf356b49dd7fcfd2))
|
|
78
|
+
- In cyberia instance export / import disabling overlaps queries for now because they can be very expensive and are not strictly necessary for a backup ([b7d7858d6](https://github.com/underpostnet/engine/commit/b7d7858d619edb9feac968c6fce2ac99d5978d24))
|
|
79
|
+
|
|
80
|
+
### cyberia-api
|
|
81
|
+
|
|
82
|
+
- Add moderator auth guard in cyberia api CRUD operations endpoints ([0373a052f](https://github.com/underpostnet/engine/commit/0373a052f257577b7afec887d18c982938b8de02))
|
|
83
|
+
|
|
84
|
+
### client-cyberia
|
|
85
|
+
|
|
86
|
+
- Add moderator guard for CRUD operations in cyberia components ([f746ea9ce](https://github.com/underpostnet/engine/commit/f746ea9ced0a0dac113129fb26f2d7f6df763f26))
|
|
87
|
+
|
|
88
|
+
### cli-cyberia
|
|
89
|
+
|
|
90
|
+
- Add cyberia run-workflow docker-image local tar builder runner ([a953dec8f](https://github.com/underpostnet/engine/commit/a953dec8f108a4d53d9fde07fae7149f5f0e2dd4))
|
|
91
|
+
|
|
92
|
+
### cli-image
|
|
93
|
+
|
|
94
|
+
- Add --import-tar flag option and logic ([5f00f64c9](https://github.com/underpostnet/engine/commit/5f00f64c9b9c41b6c6220c09c42345f378caee90))
|
|
95
|
+
- Refactor and simplifi image build logic, and add support to load local tar in docker-compose ([f87523253](https://github.com/underpostnet/engine/commit/f8752325363bde9f8d18cefb0b348e570c00d9f9))
|
|
96
|
+
|
|
97
|
+
### cluster
|
|
98
|
+
|
|
99
|
+
- Enhance cluster and disk clean logic ([d9a079f7d](https://github.com/underpostnet/engine/commit/d9a079f7de4add9d7b30c0493d367f620c837d7b))
|
|
100
|
+
|
|
101
|
+
### catalog
|
|
102
|
+
|
|
103
|
+
- Add copies and moves options in catalog build logic ([b1940e067](https://github.com/underpostnet/engine/commit/b1940e067a9961581998e9adfd6ba39c62f35735))
|
|
104
|
+
|
|
105
|
+
### engine-prototype
|
|
106
|
+
|
|
107
|
+
- Remove ssr prototype components from base engine ([4f3e04f4b](https://github.com/underpostnet/engine/commit/4f3e04f4b5fcaca831139f4cdcd6ce871b50297d))
|
|
108
|
+
|
|
109
|
+
### grpc-cyberia
|
|
110
|
+
|
|
111
|
+
- Add behavior passthrough in entity defaults merge ([7998df262](https://github.com/underpostnet/engine/commit/7998df26276de1693054bbf3eb00a368edccfb67))
|
|
112
|
+
- Fix merge entity defaults logic, preventing cross-instance entity defaults overlap ([0d64d6b8f](https://github.com/underpostnet/engine/commit/0d64d6b8ff40a1a889df9c767aa90052a08656f5))
|
|
113
|
+
|
|
114
|
+
### cyberia-instance-engine
|
|
115
|
+
|
|
116
|
+
- Implement handler for authoritative initial spawn for new players connections logic and aoi radius customization in intance engine component ([89d68aca0](https://github.com/underpostnet/engine/commit/89d68aca0152d1800d6632cddbd428409845a58a))
|
|
117
|
+
|
|
118
|
+
### cyberia-map-engine
|
|
119
|
+
|
|
120
|
+
- Add checkbox removeOnClick and enhance ui / ux ([5b557256f](https://github.com/underpostnet/engine/commit/5b557256fd17790913e9628440bd6e125d92ee0d))
|
|
121
|
+
- Add in client component MapEngineCyberia.js renameFilteredObjectLayerItemId with random factor ([c6519a1c0](https://github.com/underpostnet/engine/commit/c6519a1c0b3dfab9ba7856e3dd03914bd14a846a))
|
|
122
|
+
|
|
123
|
+
## New release v:3.2.30 (2026-06-25)
|
|
124
|
+
|
|
125
|
+
### server
|
|
126
|
+
|
|
127
|
+
- Add only build client in development mode in normal server run start up ([a332ae458](https://github.com/underpostnet/engine/commit/a332ae458f79458c7911a4a158037ada250d3af6))
|
|
128
|
+
|
|
129
|
+
### cli-start
|
|
130
|
+
|
|
131
|
+
- Add start-container-status in start pipeline to insulate readinessProbe monitor server status, prevent external overwritten status ([75f67cf3f](https://github.com/underpostnet/engine/commit/75f67cf3fcbc07716415caac4e67ab91abb05985))
|
|
132
|
+
|
|
133
|
+
### cyberia-cli
|
|
134
|
+
|
|
135
|
+
- Enhance cyberia-saga variety theme separate custom prompt of random subject theme ([1945a2553](https://github.com/underpostnet/engine/commit/1945a2553780d1d3b5fa20e40eedcc7d0b1ecd9c))
|
|
136
|
+
- Enhance cyberia-saga variety theme handle and prompt seed customization ([a335d3e20](https://github.com/underpostnet/engine/commit/a335d3e20025f8e714ff98fdc27d7895970187b5))
|
|
137
|
+
|
|
138
|
+
### db
|
|
139
|
+
|
|
140
|
+
- Improve wait status ready mongo pods in bootstrap methods ([6805e35c2](https://github.com/underpostnet/engine/commit/6805e35c22e43315c14dc9e7457ca3d599877ea8))
|
|
141
|
+
|
|
142
|
+
### cli-env
|
|
143
|
+
|
|
144
|
+
- Add keepKeys array options in clean env method ([5b3be0bca](https://github.com/underpostnet/engine/commit/5b3be0bca14a0ccfa64740aff12d2af17a7c29ce))
|
|
145
|
+
|
|
146
|
+
### repository
|
|
147
|
+
|
|
148
|
+
- Add getRemoteUrl and switchRemote repository methods in repository cli ([0412b9986](https://github.com/underpostnet/engine/commit/0412b998683a8369833eb363f8c9953744ae1a3a))
|
|
149
|
+
|
|
150
|
+
### deploy
|
|
151
|
+
|
|
152
|
+
- Enhance node customization in default deployment and custom instance workloads ([31c6b6d3b](https://github.com/underpostnet/engine/commit/31c6b6d3b397229b0216f82b8aef29b6941e474e))
|
|
153
|
+
- Fix node affinity assignment in volume mount factory ([9ec1ef931](https://github.com/underpostnet/engine/commit/9ec1ef9313ac0dbb5993cd3f158d2d01eae7dec5))
|
|
154
|
+
|
|
155
|
+
### cli-run
|
|
156
|
+
|
|
157
|
+
- Add flag ssh key path to customize key usage for ssh operations in deployments pipelines ([861cd7373](https://github.com/underpostnet/engine/commit/861cd73734d3442783419af4403bbb8e88711f19))
|
|
158
|
+
|
|
159
|
+
### start-cli
|
|
160
|
+
|
|
161
|
+
- Improve underpost container status persistence ([bff2e8f8d](https://github.com/underpostnet/engine/commit/bff2e8f8d65c6a2fe8572fe0bc9c42b9566db918))
|
|
162
|
+
|
|
163
|
+
## New release v:3.2.28 (2026-06-23)
|
|
4
164
|
|
|
5
165
|
### hardhat
|
|
6
166
|
|
package/CLI-HELP.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## Underpost CLI
|
|
2
2
|
|
|
3
|
-
> underpost ci/cd cli v3.2.
|
|
3
|
+
> underpost ci/cd cli v3.2.70
|
|
4
4
|
|
|
5
5
|
**Usage:** `underpost [options] [command]`
|
|
6
6
|
|
|
@@ -212,16 +212,21 @@ Manages commits to a GitHub repository, supporting various commit types and opti
|
|
|
212
212
|
| `--cached` | Commit staged changes only or context. |
|
|
213
213
|
| `--hashes <hashes>` | Comma-separated list of specific file hashes of commits. |
|
|
214
214
|
| `--extension <extension>` | specific file extensions of commits. |
|
|
215
|
-
| `--changelog
|
|
215
|
+
| `--changelog` | Print the plain changelog of the last N commits (see --from-n-commit, default 1). |
|
|
216
216
|
| `--changelog-build` | Builds a CHANGELOG.md file based on the commit history |
|
|
217
217
|
| `--changelog-min-version <version>` | Sets the minimum version limit for --changelog-build (default: 2.85.0) |
|
|
218
218
|
| `--changelog-no-hash` | Excludes commit hashes from the generated changelog entries (used with --changelog-build). |
|
|
219
|
+
| `--changelog-msg` | Print the sanitized, commit-ready changelog message of the last N commits (see --from-n-commit, default 1). Empty when there are no tagged entries. |
|
|
220
|
+
| `--from-n-commit <n>` | Number of latest commits to include in --changelog/--changelog-msg (default: 1). |
|
|
219
221
|
| `--unpush` | With --log, automatically sets range to unpushed commits ahead of remote. |
|
|
220
222
|
| `-b` | Shows the current Git branch name. |
|
|
221
223
|
| `-p [branch]` | Shows the reflog for the specified branch. |
|
|
222
224
|
| `--bc <commit-hash>` | Shows branches that contain the specified commit. |
|
|
223
225
|
| `--is-remote-repo <url-repo>` | Checks whether a remote Git repository URL is reachable. Prints true or false. |
|
|
224
226
|
| `--has-changes` | Prints "1" if there are staged or unstaged git changes in the repository, empty string otherwise. |
|
|
227
|
+
| `--remote-url` | Prints the current git remote URL (origin) in plain text. |
|
|
228
|
+
| `--switch-repo <url>` | Switches the git remote (origin) to <url> and force-pulls the target branch, overwriting the current working tree (discards local commits and tracked changes). Accepts a full URL or "owner/repo". |
|
|
229
|
+
| `--target-branch <branch>` | Target branch for --switch-repo (default: master). |
|
|
225
230
|
| `-h, --help` | display help for command |
|
|
226
231
|
|
|
227
232
|
---
|
|
@@ -467,6 +472,7 @@ Manages application deployments, defaulting to deploying development pods.
|
|
|
467
472
|
| `--cert-hosts <hosts>` | Resets TLS/SSL certificate secrets for specified hosts. |
|
|
468
473
|
| `--self-signed` | Use a pre-created self-signed TLS secret (kubernetes.io/tls) instead of cert-manager. The secret must already exist in the namespace with the same name as the host. Enables TLS in the Contour HTTPProxy virtualhost without requiring a production ClusterIssuer. |
|
|
469
474
|
| `--node <node>` | Sets optional node for deployment operations. |
|
|
475
|
+
| `--ssh-key-path <path>` | Private key path for node SSH operations. Currently used when shipping a hostPath volume to a remote target node over SSH. Defaults to engine-private/deploy/id_rsa. |
|
|
470
476
|
| `--build-manifest` | Builds Kubernetes YAML manifests, including deployments, services, proxies, and secrets. |
|
|
471
477
|
| `--replicas <replicas>` | Sets a custom number of replicas for deployments. |
|
|
472
478
|
| `--image <image>` | Sets a custom image for deployments. |
|
|
@@ -513,7 +519,7 @@ Manages secrets for various platforms.
|
|
|
513
519
|
|
|
514
520
|
| Argument | Description |
|
|
515
521
|
| --- | --- |
|
|
516
|
-
| `platform` | The secret management platform. Options: underpost, globalSecretClean. |
|
|
522
|
+
| `platform` | The secret management platform. Options: underpost, sanitizeSecretEnvFile, globalSecretClean. |
|
|
517
523
|
|
|
518
524
|
#### Options
|
|
519
525
|
|
|
@@ -543,19 +549,21 @@ Manages Docker images, including building, saving, and loading into Kubernetes c
|
|
|
543
549
|
| `--rm <image-id>` | Removes specified Underpost Dockerfile images. |
|
|
544
550
|
| `--path [path]` | The path to the Dockerfile directory. |
|
|
545
551
|
| `--image-name [image-name]` | Sets a custom name for the Docker image. |
|
|
546
|
-
| `--image-path [image-path]` | Sets the output path for the tar image archive. |
|
|
552
|
+
| `--image-out-path [image-out-path]` | Sets the output path for the tar image archive. |
|
|
547
553
|
| `--dockerfile-name [dockerfile-name]` | Sets a custom name for the Dockerfile. |
|
|
548
554
|
| `--podman-save` | Exports the built image as a tar file using Podman. |
|
|
549
|
-
| `--pull-base` | Pulls base
|
|
555
|
+
| `--pull-base` | Pulls the base image prerequisites (rockylinux:9) on the host; combine with --build. |
|
|
550
556
|
| `--spec` | Get current cached list of container images used by all pods |
|
|
551
557
|
| `--namespace <namespace>` | Kubernetes namespace for image operations (defaults to "default"). |
|
|
552
558
|
| `--kind` | Set kind cluster env image context management. |
|
|
553
559
|
| `--kubeadm` | Set kubeadm cluster env image context management. |
|
|
554
560
|
| `--k3s` | Set k3s cluster env image context management. |
|
|
561
|
+
| `--docker-compose` | Load the built image tar into the local Docker store for Docker Compose availability. |
|
|
555
562
|
| `--node-name` | Set node name for kubeadm or k3s cluster env image context management. |
|
|
556
563
|
| `--reset` | Performs a build without using the cache. |
|
|
557
564
|
| `--dev` | Use development mode. |
|
|
558
565
|
| `--pull-dockerhub <dockerhub-image>` | Sets a custom Docker Hub image for base image pulls. |
|
|
566
|
+
| `--import-tar <tar-path>` | Load a pre-built image tar archive (e.g. ./image-v1.0.0.tar) into the enabled target(s) without building. Combine with --kind, --kubeadm, --k3s and/or --docker-compose; the archive is loaded into each enabled one. |
|
|
559
567
|
| `-h, --help` | display help for command |
|
|
560
568
|
|
|
561
569
|
---
|
|
@@ -816,7 +824,7 @@ Runs specified scripts using various runners.
|
|
|
816
824
|
|
|
817
825
|
| Argument | Description |
|
|
818
826
|
| --- | --- |
|
|
819
|
-
| `runner-id` | The runner ID to run. Options: dev-cluster,etc-hosts,ipfs-expose,metadata,svc-ls,svc-rm,ssh-deploy-info,node-move,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,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,build-cluster-deployment-manifests,monitor-ui,shared-dir,shared-dir-add-user. |
|
|
827
|
+
| `runner-id` | The runner ID to run. Options: dev-cluster,etc-hosts,ipfs-expose,metadata,svc-ls,svc-rm,ssh-deploy-info,node-move,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,deploy-key,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,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,build-cluster-deployment-manifests,monitor-ui,shared-dir,shared-dir-add-user. |
|
|
820
828
|
| `path` | The input value, identifier, or path for the operation. |
|
|
821
829
|
|
|
822
830
|
#### Options
|
|
@@ -830,6 +838,7 @@ Runs specified scripts using various runners.
|
|
|
830
838
|
| `--replicas <replicas>` | Sets a custom number of replicas for deployment. |
|
|
831
839
|
| `--pod-name <pod-name>` | Optional: Specifies the pod name for execution. |
|
|
832
840
|
| `--node-name <node-name>` | Optional: Specifies the node name for execution. |
|
|
841
|
+
| `--ssh-key-path <path>` | Optional: Private key path for node SSH operations, forwarded to volume shipping over SSH. Defaults to engine-private/deploy/id_rsa. |
|
|
833
842
|
| `--port <port>` | Optional: Specifies the port for execution. |
|
|
834
843
|
| `--etc-hosts` | Enables etc-hosts context for the runner execution. |
|
|
835
844
|
| `--volume-host-path <volume-host-path>` | Optional: Specifies the volume host path for test execution. |
|
|
@@ -866,6 +875,7 @@ Runs specified scripts using various runners.
|
|
|
866
875
|
| `--kubeadm` | Sets the kubeadm cluster context for the runner execution. |
|
|
867
876
|
| `--k3s` | Sets the k3s cluster context for the runner execution. |
|
|
868
877
|
| `--kind` | Sets the kind cluster context for the runner execution. |
|
|
878
|
+
| `--traffic <traffic>` | Blue/green traffic colour to bake into generated manifests (default: blue). |
|
|
869
879
|
| `--git-clean` | Runs git clean on volume mount paths before copying. |
|
|
870
880
|
| `--deploy-id <deploy-id>` | Sets deploy id context for the runner execution. |
|
|
871
881
|
| `--user <user>` | Sets user context for the runner execution. |
|
|
@@ -915,6 +925,7 @@ General-purpose Docker Compose development pipeline (mirrors the Kubernetes dev
|
|
|
915
925
|
| `--reset` | Comprehensive teardown (equivalent to cluster --reset): removes all stack containers, the network, named volumes (destroys data), orphans, and generated artifacts. |
|
|
916
926
|
| `--force` | Force reinstall (--install), remove volumes (--down), or also drop the env-file (--reset). |
|
|
917
927
|
| `--deploy-id <deploy-id>` | Deployment to run as the app container (default: dd-default). 'dd-default' self-bootstraps a fresh engine; any other id runs the standard 'underpost start' command (mirrors src/cli/deploy.js). |
|
|
928
|
+
| `--docker-compose-id <docker-compose-id>` | Selects a canonical custom-workflow stack at engine-private/conf/<deploy-id>/docker-compose/<docker-compose-id>/ (docker-compose.yml + compose.env + nginx.conf, used as-is; nginx/env generation is skipped). e.g. --deploy-id dd-cyberia --docker-compose-id cyberia for the Cyberia MMO ecosystem. |
|
|
918
929
|
| `--env <env>` | Deployment environment for non-default deploy ids (default: development). |
|
|
919
930
|
| `--generate` | Render dynamic supporting files (nginx router config, env-file, app-command override). |
|
|
920
931
|
| `--up` | Start the full stack detached (regenerates config first). |
|
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
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://www.jsdelivr.com/package/npm/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.70) [](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
|
|
|
@@ -88,7 +88,7 @@ npm run dev
|
|
|
88
88
|
<!-- cli-index-start -->
|
|
89
89
|
## Underpost CLI
|
|
90
90
|
|
|
91
|
-
> underpost ci/cd cli v3.2.
|
|
91
|
+
> underpost ci/cd cli v3.2.70
|
|
92
92
|
|
|
93
93
|
**Usage:** `underpost [options] [command]`
|
|
94
94
|
|
package/bin/build.js
CHANGED
|
@@ -154,6 +154,16 @@ const buildDeployTemplate = async (confName) => {
|
|
|
154
154
|
if (!fs.existsSync(`${basePath}/images`)) fs.mkdirSync(`${basePath}/images`);
|
|
155
155
|
|
|
156
156
|
fs.copyFileSync(`./.github/workflows/${repoName}.ci.yml`, `${basePath}/.github/workflows/${repoName}.ci.yml`);
|
|
157
|
+
if (fs.existsSync(`./.github/workflows/docker-image.${repoName}.ci.yml`))
|
|
158
|
+
fs.copyFileSync(
|
|
159
|
+
`./.github/workflows/docker-image.${repoName}.ci.yml`,
|
|
160
|
+
`${basePath}/.github/workflows/docker-image.${repoName}.ci.yml`,
|
|
161
|
+
);
|
|
162
|
+
if (fs.existsSync(`./.github/workflows/docker-image.${repoName}.dev.ci.yml`))
|
|
163
|
+
fs.copyFileSync(
|
|
164
|
+
`./.github/workflows/docker-image.${repoName}.dev.ci.yml`,
|
|
165
|
+
`${basePath}/.github/workflows/docker-image.${repoName}.dev.ci.yml`,
|
|
166
|
+
);
|
|
157
167
|
fs.copyFileSync(`./.github/workflows/${repoName}.cd.yml`, `${basePath}/.github/workflows/${repoName}.cd.yml`);
|
|
158
168
|
|
|
159
169
|
if (fs.existsSync(`./typedoc.${confName}.json`)) {
|
|
@@ -179,6 +189,26 @@ const buildDeployTemplate = async (confName) => {
|
|
|
179
189
|
`${basePath}/.gitignore`,
|
|
180
190
|
fs.readFileSync(`.gitignore`, 'utf8').split('# Ignore ERP / CRM custom prototypes src')[0],
|
|
181
191
|
);
|
|
192
|
+
|
|
193
|
+
// Process catalog copies — each [src, dest] pair is copied from engine root to the template target.
|
|
194
|
+
if (catalog.copies && catalog.copies.length) {
|
|
195
|
+
for (const [src, dest] of catalog.copies) {
|
|
196
|
+
if (fs.existsSync(src)) {
|
|
197
|
+
logger.info(`Build copy`, `${src} -> ${dest}`);
|
|
198
|
+
fs.copySync(src, `${basePath}/${dest.replace(/^\.\//, '')}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Process catalog moves — each [src, dest] pair is moved from engine src to template dest.
|
|
204
|
+
if (catalog.moves && catalog.moves.length) {
|
|
205
|
+
for (const [src, dest] of catalog.moves) {
|
|
206
|
+
if (fs.existsSync(src)) {
|
|
207
|
+
logger.info(`Build move`, `${src} -> ${dest}`);
|
|
208
|
+
fs.moveSync(src, `${basePath}/${dest.replace(/^\.\//, '')}`, { overwrite: true });
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
182
212
|
};
|
|
183
213
|
|
|
184
214
|
const program = new Command();
|
package/bin/deploy.js
CHANGED
|
@@ -422,7 +422,7 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
|
|
|
422
422
|
shellExec(`sudo rm -rf ${path}/${imageName.replace(':', '_')}.tar`);
|
|
423
423
|
const args = [
|
|
424
424
|
`node bin image --build --path ${path}/backend/`,
|
|
425
|
-
`--image-name=${imageName} --image-path=${path}`,
|
|
425
|
+
`--image-name=${imageName} --image-out-path=${path}`,
|
|
426
426
|
`--podman-save --${process.argv.includes('kubeadm') ? 'kubeadm' : 'kind'} --reset`,
|
|
427
427
|
];
|
|
428
428
|
shellExec(args.join(' '));
|
|
@@ -434,7 +434,7 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
|
|
|
434
434
|
shellExec(`sudo rm -rf ${path}/${imageName.replace(':', '_')}.tar`);
|
|
435
435
|
const args = [
|
|
436
436
|
`node bin image --build --path ${path}/frontend/`,
|
|
437
|
-
`--image-name=${imageName} --image-path=${path}`,
|
|
437
|
+
`--image-name=${imageName} --image-out-path=${path}`,
|
|
438
438
|
`--podman-save --${process.argv.includes('kubeadm') ? 'kubeadm' : 'kind'} --reset`,
|
|
439
439
|
];
|
|
440
440
|
shellExec(args.join(' '));
|