underpost 2.8.87 → 2.8.88
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.development +35 -3
- package/.env.production +39 -4
- package/.env.test +35 -3
- package/.github/workflows/ghpkg.ci.yml +1 -1
- package/.github/workflows/npmpkg.ci.yml +1 -1
- package/.github/workflows/pwa-microservices-template-page.cd.yml +6 -5
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/.github/workflows/release.cd.yml +3 -3
- package/README.md +56 -2
- package/bin/build.js +4 -0
- package/bin/deploy.js +62 -8
- package/bin/file.js +3 -2
- package/cli.md +8 -2
- package/conf.js +30 -4
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/dd-test-development/deployment.yaml +174 -0
- package/manifests/deployment/dd-test-development/proxy.yaml +51 -0
- package/package.json +6 -5
- package/src/api/core/core.router.js +2 -1
- package/src/api/default/default.controller.js +6 -1
- package/src/api/default/default.router.js +6 -2
- package/src/api/default/default.service.js +10 -1
- package/src/api/document/document.controller.js +66 -0
- package/src/api/document/document.model.js +51 -0
- package/src/api/document/document.router.js +24 -0
- package/src/api/document/document.service.js +125 -0
- package/src/api/file/file.controller.js +15 -1
- package/src/api/file/file.router.js +2 -1
- package/src/api/test/test.router.js +1 -1
- package/src/api/user/postman_collection.json +216 -0
- package/src/api/user/user.controller.js +25 -60
- package/src/api/user/user.model.js +29 -7
- package/src/api/user/user.router.js +9 -3
- package/src/api/user/user.service.js +84 -32
- package/src/cli/baremetal.js +33 -3
- package/src/cli/cloud-init.js +11 -0
- package/src/cli/cron.js +0 -1
- package/src/cli/deploy.js +46 -23
- package/src/cli/index.js +5 -0
- package/src/cli/lxd.js +7 -0
- package/src/cli/repository.js +42 -6
- package/src/cli/run.js +45 -13
- package/src/cli/ssh.js +20 -6
- package/src/client/Default.index.js +42 -1
- package/src/client/components/core/Account.js +10 -2
- package/src/client/components/core/AgGrid.js +30 -8
- package/src/client/components/core/Auth.js +99 -56
- package/src/client/components/core/BtnIcon.js +3 -2
- package/src/client/components/core/CalendarCore.js +2 -3
- package/src/client/components/core/CommonJs.js +1 -2
- package/src/client/components/core/Content.js +15 -12
- package/src/client/components/core/Css.js +2 -1
- package/src/client/components/core/CssCore.js +6 -1
- package/src/client/components/core/Docs.js +5 -5
- package/src/client/components/core/FileExplorer.js +3 -3
- package/src/client/components/core/Input.js +22 -17
- package/src/client/components/core/JoyStick.js +2 -2
- package/src/client/components/core/LoadingAnimation.js +2 -2
- package/src/client/components/core/LogIn.js +16 -23
- package/src/client/components/core/LogOut.js +5 -1
- package/src/client/components/core/Logger.js +4 -1
- package/src/client/components/core/Modal.js +82 -53
- package/src/client/components/core/ObjectLayerEngineModal.js +2 -1
- package/src/client/components/core/Pagination.js +207 -0
- package/src/client/components/core/Panel.js +10 -10
- package/src/client/components/core/PanelForm.js +130 -33
- package/src/client/components/core/Recover.js +2 -2
- package/src/client/components/core/Router.js +210 -34
- package/src/client/components/core/SignUp.js +1 -2
- package/src/client/components/core/Stream.js +1 -1
- package/src/client/components/core/VanillaJs.js +3 -84
- package/src/client/components/core/Worker.js +2 -2
- package/src/client/components/default/LogInDefault.js +0 -6
- package/src/client/components/default/LogOutDefault.js +0 -16
- package/src/client/components/default/MenuDefault.js +97 -44
- package/src/client/components/default/RoutesDefault.js +5 -2
- package/src/client/services/core/core.service.js +8 -20
- package/src/client/services/default/default.management.js +115 -18
- package/src/client/services/default/default.service.js +13 -4
- package/src/client/services/document/document.service.js +97 -0
- package/src/client/services/file/file.service.js +2 -0
- package/src/client/services/test/test.service.js +3 -0
- package/src/client/services/user/user.management.js +6 -0
- package/src/client/services/user/user.service.js +15 -4
- package/src/client/ssr/Render.js +1 -1
- package/src/client/ssr/head/DefaultScripts.js +3 -0
- package/src/client/ssr/head/Seo.js +1 -0
- package/src/index.js +24 -2
- package/src/runtime/lampp/Lampp.js +89 -2
- package/src/runtime/xampp/Xampp.js +48 -1
- package/src/server/auth.js +519 -155
- package/src/server/backup.js +2 -2
- package/src/server/conf.js +66 -8
- package/src/server/process.js +2 -1
- package/src/server/runtime.js +135 -286
- package/src/server/ssl.js +1 -2
- package/src/server/ssr.js +85 -0
- package/src/server/start.js +2 -2
- package/src/server/valkey.js +2 -1
package/src/server/backup.js
CHANGED
|
@@ -61,10 +61,10 @@ class BackUp {
|
|
|
61
61
|
}
|
|
62
62
|
shellExec(
|
|
63
63
|
`cd ./engine-private/cron-backups` +
|
|
64
|
-
` && underpost pull .
|
|
64
|
+
` && underpost pull . ${process.env.GITHUB_USERNAME}/cron-backups` +
|
|
65
65
|
` && git add .` +
|
|
66
66
|
` && underpost cmt . backup cron-job '${new Date().toLocaleDateString()}'` +
|
|
67
|
-
` && underpost push .
|
|
67
|
+
` && underpost push . ${process.env.GITHUB_USERNAME}/cron-backups`,
|
|
68
68
|
{
|
|
69
69
|
disableLog: true,
|
|
70
70
|
},
|
package/src/server/conf.js
CHANGED
|
@@ -14,6 +14,7 @@ import { loggerFactory } from './logger.js';
|
|
|
14
14
|
import { shellExec } from './process.js';
|
|
15
15
|
import { DefaultConf } from '../../conf.js';
|
|
16
16
|
import splitFile from 'split-file';
|
|
17
|
+
import UnderpostRootEnv from '../cli/env.js';
|
|
17
18
|
|
|
18
19
|
colors.enable();
|
|
19
20
|
|
|
@@ -26,18 +27,19 @@ const Config = {
|
|
|
26
27
|
build: async function (deployContext = 'dd-default', deployList, subConf) {
|
|
27
28
|
if (typeof process.argv[2] === 'string' && process.argv[2].startsWith('dd-')) deployContext = process.argv[2];
|
|
28
29
|
if (!fs.existsSync(`./tmp`)) fs.mkdirSync(`./tmp`, { recursive: true });
|
|
29
|
-
|
|
30
|
+
UnderpostRootEnv.API.set('await-deploy', new Date().toISOString());
|
|
30
31
|
if (fs.existsSync(`./engine-private/replica/${deployContext}`))
|
|
31
32
|
return loadConf(deployContext, process.env.NODE_ENV, subConf);
|
|
32
33
|
else if (deployContext.startsWith('dd-')) return loadConf(deployContext, process.env.NODE_ENV, subConf);
|
|
33
34
|
if (deployContext === 'proxy') Config.buildProxy(deployContext, deployList, subConf);
|
|
34
35
|
},
|
|
35
|
-
deployIdFactory: function (deployId = 'dd-default') {
|
|
36
|
+
deployIdFactory: function (deployId = 'dd-default', options = { cluster: false }) {
|
|
36
37
|
if (!deployId.startsWith('dd-')) deployId = `dd-${deployId}`;
|
|
37
38
|
|
|
38
39
|
logger.info('Build deployId', deployId);
|
|
39
40
|
|
|
40
41
|
const folder = `./engine-private/conf/${deployId}`;
|
|
42
|
+
const repoName = `engine-${deployId.split('dd-')[1]}`;
|
|
41
43
|
|
|
42
44
|
if (!fs.existsSync(folder)) fs.mkdirSync(folder, { recursive: true });
|
|
43
45
|
fs.writeFileSync(
|
|
@@ -55,10 +57,48 @@ const Config = {
|
|
|
55
57
|
fs.readFileSync('./.env.test', 'utf8').replaceAll('dd-default', deployId),
|
|
56
58
|
'utf8',
|
|
57
59
|
);
|
|
58
|
-
fs.writeFileSync(
|
|
60
|
+
fs.writeFileSync(
|
|
61
|
+
`${folder}/package.json`,
|
|
62
|
+
fs.readFileSync('./package.json', 'utf8').replaceAll('dd-default', deployId),
|
|
63
|
+
'utf8',
|
|
64
|
+
);
|
|
59
65
|
|
|
60
66
|
this.buildTmpConf(folder);
|
|
61
67
|
|
|
68
|
+
if (options.cluster === true) {
|
|
69
|
+
fs.writeFileSync(
|
|
70
|
+
`./.github/workflows/${repoName}.cd.yml`,
|
|
71
|
+
fs.readFileSync(`./.github/workflows/engine-test.cd.yml`, 'utf8').replaceAll('test', deployId.split('dd-')[1]),
|
|
72
|
+
'utf8',
|
|
73
|
+
);
|
|
74
|
+
fs.writeFileSync(
|
|
75
|
+
`./.github/workflows/${repoName}.ci.yml`,
|
|
76
|
+
fs.readFileSync(`./.github/workflows/engine-test.ci.yml`, 'utf8').replaceAll('test', deployId.split('dd-')[1]),
|
|
77
|
+
'utf8',
|
|
78
|
+
);
|
|
79
|
+
shellExec(`node bin/deploy update-default-conf ${deployId}`);
|
|
80
|
+
|
|
81
|
+
if (!fs.existsSync(`./engine-private/deploy/dd.router`))
|
|
82
|
+
fs.writeFileSync(`./engine-private/deploy/dd.router`, '', 'utf8');
|
|
83
|
+
|
|
84
|
+
fs.writeFileSync(
|
|
85
|
+
`./engine-private/deploy/dd.router`,
|
|
86
|
+
fs.readFileSync(`./engine-private/deploy/dd.router`, 'utf8').trim() + `,${deployId}`,
|
|
87
|
+
'utf8',
|
|
88
|
+
);
|
|
89
|
+
const updateRepo = (stage = 1) => {
|
|
90
|
+
shellExec(`git add . && git commit -m "Add base deployId ${deployId} cluster files stage:${stage}"`);
|
|
91
|
+
shellExec(
|
|
92
|
+
`cd engine-private && git add . && git commit -m "Add base deployId ${deployId} cluster files stage:${stage}"`,
|
|
93
|
+
);
|
|
94
|
+
};
|
|
95
|
+
updateRepo(1);
|
|
96
|
+
shellExec(`node bin run --build --dev sync`);
|
|
97
|
+
updateRepo(2);
|
|
98
|
+
shellExec(`node bin run --build sync`);
|
|
99
|
+
updateRepo(3);
|
|
100
|
+
}
|
|
101
|
+
|
|
62
102
|
return { deployIdFolder: folder, deployId };
|
|
63
103
|
},
|
|
64
104
|
buildTmpConf: function (folder = './conf') {
|
|
@@ -556,7 +596,7 @@ const buildPortProxyRouter = (port, proxyRouter) => {
|
|
|
556
596
|
// build router
|
|
557
597
|
Object.keys(hosts).map((hostKey) => {
|
|
558
598
|
let { host, path, target, proxy, peer } = hosts[hostKey];
|
|
559
|
-
if (process.env.NODE_ENV === 'development') host = `localhost`;
|
|
599
|
+
if (process.env.NODE_ENV === 'development' && process.argv.includes('localhost')) host = `localhost`;
|
|
560
600
|
|
|
561
601
|
if (!proxy.includes(port)) {
|
|
562
602
|
logger.warn('Proxy port not set on conf', { port, host, path, proxy, target });
|
|
@@ -656,7 +696,7 @@ const validateTemplatePath = (absolutePath = '') => {
|
|
|
656
696
|
const confServer = DefaultConf.server[host][path];
|
|
657
697
|
const confClient = DefaultConf.client[client];
|
|
658
698
|
const confSsr = DefaultConf.ssr[ssr];
|
|
659
|
-
const clients =
|
|
699
|
+
const clients = DefaultConf.client.default.services;
|
|
660
700
|
|
|
661
701
|
if (absolutePath.match('src/api') && !confServer.apis.find((p) => absolutePath.match(`src/api/${p}/`))) {
|
|
662
702
|
return false;
|
|
@@ -726,9 +766,9 @@ const validateTemplatePath = (absolutePath = '') => {
|
|
|
726
766
|
};
|
|
727
767
|
|
|
728
768
|
const awaitDeployMonitor = async (init = false, deltaMs = 1000) => {
|
|
729
|
-
if (init)
|
|
769
|
+
if (init) UnderpostRootEnv.API.set('await-deploy', new Date().toISOString());
|
|
730
770
|
await timer(deltaMs);
|
|
731
|
-
if (
|
|
771
|
+
if (UnderpostRootEnv.API.get('await-deploy')) return await awaitDeployMonitor();
|
|
732
772
|
};
|
|
733
773
|
|
|
734
774
|
const getCronBackUpFolder = (host = '', path = '') => {
|
|
@@ -917,7 +957,7 @@ const buildCliDoc = (program, oldVersion, newVersion) => {
|
|
|
917
957
|
baseOptions +
|
|
918
958
|
`
|
|
919
959
|
|
|
920
|
-
<a target="_top" href="https://github.com/
|
|
960
|
+
<a target="_top" href="https://github.com/${process.env.GITHUB_USERNAME}/pwa-microservices-template/blob/master/cli.md">See complete CLI Docs here.</a>
|
|
921
961
|
|
|
922
962
|
`
|
|
923
963
|
).replaceAll(oldVersion, newVersion),
|
|
@@ -925,6 +965,23 @@ const buildCliDoc = (program, oldVersion, newVersion) => {
|
|
|
925
965
|
);
|
|
926
966
|
};
|
|
927
967
|
|
|
968
|
+
const getInstanceContext = async (options = { singleReplica, replicas, redirect: '' }) => {
|
|
969
|
+
const { singleReplica, replicas, redirect } = options;
|
|
970
|
+
|
|
971
|
+
if (singleReplica && replicas && replicas.length > 0)
|
|
972
|
+
return {
|
|
973
|
+
singleReplicaHost: true,
|
|
974
|
+
};
|
|
975
|
+
|
|
976
|
+
const redirectTarget = redirect
|
|
977
|
+
? redirect[redirect.length - 1] === '/'
|
|
978
|
+
? redirect.slice(0, -1)
|
|
979
|
+
: redirect
|
|
980
|
+
: undefined;
|
|
981
|
+
|
|
982
|
+
return { redirectTarget };
|
|
983
|
+
};
|
|
984
|
+
|
|
928
985
|
export {
|
|
929
986
|
Cmd,
|
|
930
987
|
Config,
|
|
@@ -957,4 +1014,5 @@ export {
|
|
|
957
1014
|
awaitDeployMonitor,
|
|
958
1015
|
rebuildConfFactory,
|
|
959
1016
|
buildCliDoc,
|
|
1017
|
+
getInstanceContext,
|
|
960
1018
|
};
|
package/src/server/process.js
CHANGED
|
@@ -5,6 +5,7 @@ import dotenv from 'dotenv';
|
|
|
5
5
|
import fs from 'fs-extra';
|
|
6
6
|
import { loggerFactory } from './logger.js';
|
|
7
7
|
import clipboard from 'clipboardy';
|
|
8
|
+
import UnderpostRootEnv from '../cli/env.js';
|
|
8
9
|
|
|
9
10
|
dotenv.config();
|
|
10
11
|
|
|
@@ -47,7 +48,7 @@ const ProcessController = {
|
|
|
47
48
|
this.logger.info(`process on exit`, args);
|
|
48
49
|
});
|
|
49
50
|
this.onSigListen();
|
|
50
|
-
|
|
51
|
+
UnderpostRootEnv.API.delete('await-deploy');
|
|
51
52
|
},
|
|
52
53
|
};
|
|
53
54
|
|