@underpostnet/cyberia 3.3.76 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +1 -0
- package/.github/workflows/coverall.cyberia.ci.yml +17 -3
- package/.github/workflows/cyberia-client.cd.yml +2 -1
- package/.github/workflows/cyberia-server.cd.yml +2 -1
- package/.github/workflows/docker-image.cyberia-client.ci.yml +1 -1
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +1 -1
- package/.github/workflows/docker-image.cyberia-server.ci.yml +1 -1
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +1 -1
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +1 -1
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +1 -1
- package/.github/workflows/engine-cyberia.ci.yml +7 -1
- package/.github/workflows/ghpkg.ci.yml +19 -2
- package/.github/workflows/gitlab.ci.yml +8 -6
- package/.github/workflows/hardhat.ci.yml +4 -1
- package/.github/workflows/npmpkg.ci.yml +9 -5
- package/.github/workflows/publish.ci.yml +21 -12
- package/.github/workflows/publish.cyberia.ci.yml +25 -14
- package/.github/workflows/pwa-microservices-template-page.cd.yml +4 -2
- package/CHANGELOG.md +110 -262
- package/CLI-HELP.md +29 -2
- package/Dockerfile +1 -1
- package/Dockerfile.dev +1 -1
- package/Dockerfile.test +1 -1
- package/README.md +1 -1
- package/bin/build.js +67 -14
- package/bin/cyberia.js +4 -4
- package/bin/index.js +4 -4
- package/compose.env +1 -0
- package/conf.js +1 -1043
- package/deploy/cyberia-client/deploy.sh +13 -11
- package/deploy/cyberia-server/deploy.sh +13 -11
- package/deploy/dd-cyberia/sync-deploy.sh +7 -28
- package/deploy/lib/config.sh +1 -1
- package/deploy/lib/github-actions-logging.sh +3 -2
- package/deploy/lib/host.sh +1 -1
- package/deploy/pwa-microservices-template/deploy.sh +7 -1
- package/deployment.yaml +1 -1
- package/docker-compose.yml +7 -7
- package/docs/coverage/cyberia/api/cyberia-instance/cyberia-fallback-capture.js.html +1591 -0
- package/docs/coverage/cyberia/api/cyberia-instance/index.html +116 -0
- package/docs/coverage/cyberia/api/cyberia-server-defaults/cyberia-server-defaults.js.html +4138 -0
- package/docs/coverage/cyberia/api/cyberia-server-defaults/index.html +116 -0
- package/docs/coverage/cyberia/api/object-layer/index.html +116 -0
- package/docs/coverage/cyberia/api/object-layer/object-layer.model.js.html +1393 -0
- package/docs/coverage/cyberia/base.css +362 -0
- package/docs/coverage/cyberia/block-navigation.js +82 -0
- package/docs/coverage/cyberia/favicon.png +0 -0
- package/docs/coverage/cyberia/index.html +161 -0
- package/docs/coverage/cyberia/prettify.css +101 -0
- package/docs/coverage/cyberia/prettify.js +937 -0
- package/docs/coverage/cyberia/projects/cyberia/atlas-sprite-sheet-generator.js.html +1315 -0
- package/docs/coverage/cyberia/projects/cyberia/index.html +176 -0
- package/docs/coverage/cyberia/projects/cyberia/instance-backup.js.html +715 -0
- package/docs/coverage/cyberia/projects/cyberia/instance-data.js.html +2182 -0
- package/docs/coverage/cyberia/projects/cyberia/shape-generator.js.html +3265 -0
- package/docs/coverage/cyberia/projects/cyberia/stat-balance.js.html +328 -0
- package/docs/coverage/cyberia/sort-arrow-sprite.png +0 -0
- package/docs/coverage/cyberia/sorter.js +205 -0
- package/hardhat/package-lock.json +6 -6
- package/hardhat/package.json +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-vultr.yaml +1 -1
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +1 -1
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/package.json +19 -17
- package/scripts/test-monitor.sh +1 -1
- package/src/api/file/file.router.js +7 -1
- package/src/cli/baremetal.js +1 -1
- package/src/cli/cluster.js +73 -18
- package/src/cli/deploy.js +211 -30
- package/src/cli/docker-compose.js +1 -1
- package/src/cli/index.js +36 -0
- package/src/cli/kubectl.js +4 -3
- package/src/cli/release.js +5 -1
- package/src/cli/repository.js +14 -11
- package/src/cli/run.js +10 -3
- package/src/cli/secrets.js +393 -200
- package/src/cli/socketsecurity.js +260 -0
- package/src/client/components/core/Badge.js +0 -1
- package/src/client/components/core/CssCore.js +11 -1
- package/src/client/components/core/Modal.js +189 -66
- package/src/client/components/core/SearchBox.js +0 -1
- package/src/client/components/core/ToolTip.js +15 -0
- package/src/client/components/cryptokoyn/AppShellCryptokoyn.js +0 -2
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +0 -4
- package/src/client/components/default/AppShellDefault.js +1 -4
- package/src/client/components/itemledger/AppShellItemledger.js +0 -2
- package/src/client/components/underpost/AppShellUnderpost.js +12 -0
- package/src/client/components/underpost/CssUnderpost.js +15 -2
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +8 -0
- package/src/client/public/cyberia-docs/CYBERIA.md +1 -1
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +54 -56
- package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
- package/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md +30 -29
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +54 -25
- package/src/client/ssr/head/Css.js +12 -10
- package/src/client/ssr/views/Cyberia404.js +9 -13
- package/src/client/ssr/views/NotFound.js +75 -0
- package/src/client-builder/client-bundle.js +2 -2
- package/src/index.js +13 -1
- package/src/runtime/engine-cyberia/Dockerfile +1 -1
- package/src/runtime/engine-cyberia/Dockerfile.dev +1 -1
- package/src/runtime/engine-cyberia/Dockerfile.test +1 -1
- package/src/runtime/engine-cyberia/compose.env +1 -0
- package/src/runtime/engine-cyberia/docker-compose.yml +7 -7
- package/src/server/build/catalog.js +1 -0
- package/src/server/build/execution.js +19 -5
- package/src/server/build/package.js +166 -3
- package/src/server/build/testing.js +2 -1
- package/src/server/network/underpost-gateway.js +113 -14
- package/src/server/runtime/conf.js +57 -7
- package/src/server/runtime/config-scope.js +2 -0
- package/src/server/runtime/process.js +4 -3
- package/src/server/runtime/start.js +11 -2
- package/src/server/security/socketsecurity.js +1735 -0
- package/test/integration/infra/1-security/config-scope.test.js +3 -0
- package/test/integration/infra/1-security/socketsecurity.test.js +1041 -0
- package/test/integration/infra/1-security/sops-secret-store.test.js +201 -71
- package/test/integration/infra/4-ingress/underpost-ingress.test.js +1 -1
- package/test/unit/build-template.test.js +24 -0
- package/test/unit/catalog.test.js +13 -2
- package/test/unit/conf-resolution.test.js +41 -7
- package/test/unit/cyberia/instance-data.test.js +314 -0
- package/test/unit/deploy-legacy-gateway-sweep.test.js +63 -0
- package/test/unit/deploy-log-table.test.js +38 -0
- package/test/unit/execution-profiles.test.js +1 -0
- package/test/unit/gateway-pod-fetch.test.js +95 -0
- package/test/unit/letsencrypt-issuer.test.js +101 -0
- package/test/unit/package.test.js +118 -0
- package/test/unit/release-bump.test.js +3 -1
- package/test/unit/start-options.test.js +12 -0
package/src/cli/release.js
CHANGED
|
@@ -503,6 +503,8 @@ class UnderpostRelease {
|
|
|
503
503
|
shellExec(`sudo rm -rf ./engine-private/conf/dd-default`);
|
|
504
504
|
shellExec(`node bin cron --kubeadm --setup-start --git`); // --apply
|
|
505
505
|
shellExec(`node bin cmt --changelog-build`);
|
|
506
|
+
shellExec(`npm run security`);
|
|
507
|
+
shellExec(`sudo rm -rf ./conf.dd*.js`);
|
|
506
508
|
return { from: version, to: newVersion, files: report.map((r) => r.file), dryRun: false };
|
|
507
509
|
},
|
|
508
510
|
|
|
@@ -547,7 +549,9 @@ class UnderpostRelease {
|
|
|
547
549
|
logger.info(`CI push commit message: ${commitMsg}`);
|
|
548
550
|
shellExec(`node engine/bin clone --bare ${githubOrg}/${repoName}`);
|
|
549
551
|
shellCd('/home/dd/engine');
|
|
550
|
-
|
|
552
|
+
// `--coverage` runs the suites the deploy's `docs.coverage` names so the published
|
|
553
|
+
// source carries the reports; without it the pod serves the unavailable page.
|
|
554
|
+
shellExec(`node bin/build ${buildTarget} --coverage`);
|
|
551
555
|
shellCd('/home/dd/pwa-microservices-template');
|
|
552
556
|
shellExec(`rm -rf ./.git`);
|
|
553
557
|
shellExec(`mv ../${repoName}.git ./.git`);
|
package/src/cli/repository.js
CHANGED
|
@@ -950,7 +950,12 @@ Prevent build private config repo.`,
|
|
|
950
950
|
confRawPaths[1] = `${JSON.stringify(DefaultConf)};`;
|
|
951
951
|
const targetConfPath = `./conf${defaultConf ? '' : `.${deployId}`}.js`;
|
|
952
952
|
fs.writeFileSync(targetConfPath, confRawPaths.join(sepRender), 'utf8');
|
|
953
|
-
|
|
953
|
+
// A host tool, not a dependency: without it the manifest stays valid, only unformatted.
|
|
954
|
+
if (
|
|
955
|
+
`${shellExec('command -v prettier', { silent: true, silentOnError: true, stdout: true, disableLog: true }) ?? ''}`.trim()
|
|
956
|
+
)
|
|
957
|
+
shellExec(`prettier --write ${shellArgumentFactory(targetConfPath)}`);
|
|
958
|
+
else logger.warn('prettier is not on PATH; conf manifest left unformatted', { targetConfPath });
|
|
954
959
|
},
|
|
955
960
|
|
|
956
961
|
/**
|
|
@@ -1985,7 +1990,7 @@ Prevent build private config repo.`,
|
|
|
1985
1990
|
`export GITHUB_TOKEN='${githubToken.replace(/'/g, "'\\''")}'`,
|
|
1986
1991
|
`export GITHUB_USERNAME='${githubUsername.replace(/'/g, "'\\''")}'`,
|
|
1987
1992
|
`git config --global --add safe.directory '${siteRoot}' 2>/dev/null || true`,
|
|
1988
|
-
`cd '${siteRoot}' && git add -A && git commit -m
|
|
1993
|
+
`cd '${siteRoot}' && git add -A && git commit -m "backup $(date -u +%Y-%m-%dT%H:%M:%SZ)" || true`,
|
|
1989
1994
|
`cd '${siteRoot}' && underpost push . ${githubUsername}/${repoName}`,
|
|
1990
1995
|
`cd /home/dd/engine && node bin host clean --force`,
|
|
1991
1996
|
].join(' && ');
|
|
@@ -2160,13 +2165,13 @@ Prevent build private config repo.`,
|
|
|
2160
2165
|
|
|
2161
2166
|
/**
|
|
2162
2167
|
* Ensures a deploy's public source repo (e.g. `engine-prototype`) is present
|
|
2163
|
-
* next to the engine
|
|
2164
|
-
*
|
|
2165
|
-
* the source tree.
|
|
2168
|
+
* next to the engine, so catalog `sourceMoves` the engine tree lacks can be
|
|
2169
|
+
* copied in.
|
|
2166
2170
|
*
|
|
2167
|
-
* Clones `../<repoName>` when missing; otherwise
|
|
2168
|
-
*
|
|
2169
|
-
*
|
|
2171
|
+
* Clones `../<repoName>` when missing; otherwise fast-forwards it. The working
|
|
2172
|
+
* tree is never reset: it is the git view of edits made in the engine tree,
|
|
2173
|
+
* which ignores those paths, so a pending change there is review material, not
|
|
2174
|
+
* something to discard.
|
|
2170
2175
|
*
|
|
2171
2176
|
* @param {string} repoName - Public source repo name (e.g. `engine-prototype`).
|
|
2172
2177
|
* @returns {boolean} `true` when the repo is available on disk.
|
|
@@ -2182,9 +2187,7 @@ Prevent build private config repo.`,
|
|
|
2182
2187
|
} else {
|
|
2183
2188
|
const repoAbsPath = path.resolve(repoPath);
|
|
2184
2189
|
shellExec(`git config --global --add safe.directory '${repoAbsPath}'`);
|
|
2185
|
-
shellExec(`cd ${repoPath} &&
|
|
2186
|
-
silent: true,
|
|
2187
|
-
});
|
|
2190
|
+
shellExec(`cd ${repoPath} && underpost pull . ${gitUri}`, { silent: true });
|
|
2188
2191
|
}
|
|
2189
2192
|
return fs.existsSync(repoPath);
|
|
2190
2193
|
},
|
package/src/cli/run.js
CHANGED
|
@@ -3079,7 +3079,7 @@ EOF`);
|
|
|
3079
3079
|
const hostListenResult = etcHostFactory(hosts);
|
|
3080
3080
|
logger.info(hostListenResult.renderHosts);
|
|
3081
3081
|
}
|
|
3082
|
-
const version = 'v3.
|
|
3082
|
+
const version = 'v3.4.0';
|
|
3083
3083
|
const instanceOptionsFactory = (deployId, instanceId) => ({
|
|
3084
3084
|
...options,
|
|
3085
3085
|
...clusterContextFactory(clusterType),
|
|
@@ -3518,10 +3518,17 @@ EOF`);
|
|
|
3518
3518
|
logger.info('[gateway-status] Backend probe (same Host and path, bypassing Envoy)', { backendProbes });
|
|
3519
3519
|
// Only the rule the browser actually hit is comparable, so judge on
|
|
3520
3520
|
// the root rule rather than on every rule of the route.
|
|
3521
|
+
// The gateway answer carries the `server` header (`502 (nginx)`), the
|
|
3522
|
+
// direct one is the bare code: compared as strings, every relayed status
|
|
3523
|
+
// read as a routing fault, and the data plane log was dumped on a healthy
|
|
3524
|
+
// edge whose only problem was an absent workload.
|
|
3525
|
+
const statusCode = (answer) => /^([0-9]{3})/.exec(`${answer ?? ''}`)?.[1];
|
|
3521
3526
|
const rootProbes = backendProbes.filter((entry) => entry.request.endsWith('/'));
|
|
3522
|
-
const appFault = rootProbes.filter(
|
|
3527
|
+
const appFault = rootProbes.filter(
|
|
3528
|
+
(entry) => statusCode(entry.direct) && statusCode(entry.direct) === statusCode(entry.gateway),
|
|
3529
|
+
);
|
|
3523
3530
|
const gatewayFault = rootProbes.filter(
|
|
3524
|
-
(entry) =>
|
|
3531
|
+
(entry) => statusCode(entry.direct) && statusCode(entry.direct) !== statusCode(entry.gateway),
|
|
3525
3532
|
);
|
|
3526
3533
|
if (gatewayFault.length > 0) {
|
|
3527
3534
|
logger.warn(
|