underpost 2.8.878 → 2.8.882
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 +40 -3
- package/.env.test +35 -3
- package/.github/workflows/release.cd.yml +3 -3
- package/README.md +20 -2
- package/bin/deploy.js +40 -0
- package/cli.md +3 -1
- package/conf.js +29 -3
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/dd-test-development/deployment.yaml +6 -6
- package/package.json +1 -2
- 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 +133 -0
- package/src/cli/deploy.js +1 -1
- package/src/cli/index.js +2 -0
- package/src/cli/repository.js +2 -0
- package/src/cli/run.js +27 -1
- package/src/client/Default.index.js +46 -1
- package/src/client/components/core/Account.js +8 -1
- package/src/client/components/core/AgGrid.js +18 -9
- package/src/client/components/core/Auth.js +258 -89
- package/src/client/components/core/BtnIcon.js +13 -3
- package/src/client/components/core/Content.js +2 -1
- package/src/client/components/core/CssCore.js +40 -27
- package/src/client/components/core/Docs.js +189 -88
- package/src/client/components/core/Input.js +34 -19
- package/src/client/components/core/LoadingAnimation.js +5 -10
- package/src/client/components/core/Modal.js +280 -123
- package/src/client/components/core/ObjectLayerEngine.js +470 -104
- package/src/client/components/core/ObjectLayerEngineModal.js +1 -0
- package/src/client/components/core/Panel.js +9 -2
- package/src/client/components/core/PanelForm.js +234 -76
- package/src/client/components/core/Router.js +15 -15
- package/src/client/components/core/ToolTip.js +83 -19
- package/src/client/components/core/Translate.js +1 -1
- package/src/client/components/core/VanillaJs.js +7 -3
- package/src/client/components/core/windowGetDimensions.js +202 -0
- package/src/client/components/default/MenuDefault.js +105 -41
- package/src/client/components/default/RoutesDefault.js +2 -0
- package/src/client/services/default/default.management.js +1 -0
- package/src/client/services/document/document.service.js +97 -0
- package/src/client/services/file/file.service.js +2 -0
- package/src/client/ssr/Render.js +1 -1
- package/src/client/ssr/head/DefaultScripts.js +2 -0
- package/src/client/ssr/head/Seo.js +1 -0
- package/src/index.js +1 -1
- package/src/mailer/EmailRender.js +1 -1
- package/src/server/auth.js +68 -17
- package/src/server/client-build.js +2 -3
- package/src/server/client-formatted.js +40 -12
- package/src/server/conf.js +5 -1
- package/src/server/crypto.js +195 -76
- package/src/server/object-layer.js +196 -0
- package/src/server/peer.js +47 -5
- package/src/server/process.js +85 -1
- package/src/server/runtime.js +23 -23
- package/src/server/ssr.js +52 -10
- package/src/server/valkey.js +89 -1
- package/test/crypto.test.js +117 -0
package/.env.development
CHANGED
|
@@ -1,13 +1,45 @@
|
|
|
1
1
|
DEPLOY_ID=dd-default
|
|
2
|
-
DEFAULT_DEPLOY_ID=dd-default
|
|
3
2
|
NODE_ENV=development
|
|
4
3
|
PORT=4000
|
|
5
4
|
JWT_SECRET=test
|
|
6
5
|
REFRESH_EXPIRE_MINUTES=5
|
|
7
6
|
ACCESS_EXPIRE_MINUTES=1440
|
|
8
7
|
NODE_OPTIONS=--max-old-space-size=8192
|
|
9
|
-
|
|
8
|
+
TIME_ZONE=changethis
|
|
9
|
+
GITHUB_TOKEN=changethis
|
|
10
|
+
GITHUB_USERNAME=changethis
|
|
11
|
+
GITHUB_BACKUP_REPO=changethis
|
|
12
|
+
GITHUB_DNS_REPO=changethis
|
|
13
|
+
DEFAULT_DEPLOY_ID=dd-default
|
|
10
14
|
DEFAULT_DEPLOY_HOST=default.net
|
|
11
15
|
DEFAULT_DEPLOY_PATH=/
|
|
16
|
+
MARIADB_HOST=changethis
|
|
17
|
+
MARIADB_USER=changethis
|
|
18
|
+
MARIADB_PASSWORD=changethis
|
|
19
|
+
DD_LAMPP_TEST_DB_0=changethis
|
|
20
|
+
WIFI=changethis
|
|
21
|
+
ROUTER=changethis
|
|
22
|
+
CLOUDINARY_CLOUD_NAME=changethis
|
|
23
|
+
CLOUDINARY_API_KEY=changethis
|
|
24
|
+
CLOUDINARY_API_SECRET=changethis
|
|
25
|
+
DB_PG_MAAS_NAME=changethis
|
|
26
|
+
DB_PG_MAAS_PASS=changethis
|
|
27
|
+
DB_PG_MAAS_USER=changethis
|
|
28
|
+
DB_PG_MAAS_HOST=127.0.0.1
|
|
29
|
+
DB_PG_MAAS_PORT=5432
|
|
30
|
+
MAAS_ADMIN_USERNAME=changethis
|
|
31
|
+
MAAS_API_KEY=changethis
|
|
32
|
+
MAAS_ADMIN_EMAIL=admin@default.net
|
|
33
|
+
MAAS_ADMIN_PASS=changethis
|
|
34
|
+
TFTP_ROOT=changethis
|
|
35
|
+
NETMASK=255.255.255.0
|
|
36
|
+
RPI4_INTERFACE_NAME=changethis
|
|
37
|
+
RPI4_IP=192.168.1.192
|
|
38
|
+
MAAS_DNS=8.8.8.8
|
|
39
|
+
MAAS_NTP_SERVER=changethis
|
|
40
|
+
NFS_EXPORT_PATH=changethis
|
|
41
|
+
RPI4_MAC_ADDRESS=changethis
|
|
42
|
+
NVIDIA_API_KEY=changethis
|
|
12
43
|
DEFAULT_ADMIN_EMAIL=admin@default.net
|
|
13
|
-
DEFAULT_ADMIN_PASSWORD=changethis
|
|
44
|
+
DEFAULT_ADMIN_PASSWORD=changethis
|
|
45
|
+
BASE_API=api
|
package/.env.production
CHANGED
|
@@ -1,13 +1,50 @@
|
|
|
1
1
|
DEPLOY_ID=dd-default
|
|
2
|
-
DEFAULT_DEPLOY_ID=dd-default
|
|
3
2
|
NODE_ENV=production
|
|
4
3
|
PORT=3000
|
|
5
4
|
JWT_SECRET=test
|
|
6
5
|
REFRESH_EXPIRE_MINUTES=5
|
|
7
6
|
ACCESS_EXPIRE_MINUTES=1440
|
|
8
7
|
NODE_OPTIONS=--max-old-space-size=8192
|
|
9
|
-
|
|
8
|
+
TIME_ZONE=changethis
|
|
9
|
+
GITHUB_TOKEN=changethis
|
|
10
|
+
GITHUB_USERNAME=changethis
|
|
11
|
+
GITHUB_BACKUP_REPO=changethis
|
|
12
|
+
GITHUB_DNS_REPO=changethis
|
|
13
|
+
DEFAULT_DEPLOY_ID=dd-default
|
|
10
14
|
DEFAULT_DEPLOY_HOST=default.net
|
|
11
15
|
DEFAULT_DEPLOY_PATH=/
|
|
16
|
+
MARIADB_HOST=changethis
|
|
17
|
+
MARIADB_USER=changethis
|
|
18
|
+
MARIADB_PASSWORD=changethis
|
|
19
|
+
DD_LAMPP_TEST_DB_0=changethis
|
|
20
|
+
WIFI=changethis
|
|
21
|
+
ROUTER=changethis
|
|
22
|
+
CLOUDINARY_CLOUD_NAME=changethis
|
|
23
|
+
CLOUDINARY_API_KEY=changethis
|
|
24
|
+
CLOUDINARY_API_SECRET=changethis
|
|
25
|
+
DB_PG_MAAS_NAME=changethis
|
|
26
|
+
DB_PG_MAAS_PASS=changethis
|
|
27
|
+
DB_PG_MAAS_USER=changethis
|
|
28
|
+
DB_PG_MAAS_HOST=127.0.0.1
|
|
29
|
+
DB_PG_MAAS_PORT=5432
|
|
30
|
+
MAAS_ADMIN_USERNAME=changethis
|
|
31
|
+
MAAS_API_KEY=changethis
|
|
32
|
+
MAAS_ADMIN_EMAIL=admin@default.net
|
|
33
|
+
MAAS_ADMIN_PASS=changethis
|
|
34
|
+
TFTP_ROOT=changethis
|
|
35
|
+
NETMASK=255.255.255.0
|
|
36
|
+
RPI4_INTERFACE_NAME=changethis
|
|
37
|
+
RPI4_IP=192.168.1.192
|
|
38
|
+
MAAS_DNS=8.8.8.8
|
|
39
|
+
MAAS_NTP_SERVER=changethis
|
|
40
|
+
NFS_EXPORT_PATH=changethis
|
|
41
|
+
RPI4_MAC_ADDRESS=changethis
|
|
42
|
+
NVIDIA_API_KEY=changethis
|
|
12
43
|
DEFAULT_ADMIN_EMAIL=admin@default.net
|
|
13
|
-
DEFAULT_ADMIN_PASSWORD=changethis
|
|
44
|
+
DEFAULT_ADMIN_PASSWORD=changethis
|
|
45
|
+
DEFAULT_SSH_USER=changethis
|
|
46
|
+
DEFAULT_SSH_HOST=changethis
|
|
47
|
+
DEFAULT_SSH_KEY_PATH=changethis
|
|
48
|
+
BASE_API=api
|
|
49
|
+
CERTBOT_LIVE_PATH=changethis
|
|
50
|
+
CERTBOT_LIVE_PATH_WINDOWS=changethis
|
package/.env.test
CHANGED
|
@@ -1,13 +1,45 @@
|
|
|
1
1
|
DEPLOY_ID=dd-default
|
|
2
|
-
DEFAULT_DEPLOY_ID=dd-default
|
|
3
2
|
NODE_ENV=test
|
|
4
3
|
PORT=5000
|
|
5
4
|
JWT_SECRET=test
|
|
6
5
|
REFRESH_EXPIRE_MINUTES=5
|
|
7
6
|
ACCESS_EXPIRE_MINUTES=1440
|
|
8
7
|
NODE_OPTIONS=--max-old-space-size=8192
|
|
9
|
-
|
|
8
|
+
TIME_ZONE=changethis
|
|
9
|
+
GITHUB_TOKEN=changethis
|
|
10
|
+
GITHUB_USERNAME=changethis
|
|
11
|
+
GITHUB_BACKUP_REPO=changethis
|
|
12
|
+
GITHUB_DNS_REPO=changethis
|
|
13
|
+
DEFAULT_DEPLOY_ID=dd-default
|
|
10
14
|
DEFAULT_DEPLOY_HOST=default.net
|
|
11
15
|
DEFAULT_DEPLOY_PATH=/
|
|
16
|
+
MARIADB_HOST=changethis
|
|
17
|
+
MARIADB_USER=changethis
|
|
18
|
+
MARIADB_PASSWORD=changethis
|
|
19
|
+
DD_LAMPP_TEST_DB_0=changethis
|
|
20
|
+
WIFI=changethis
|
|
21
|
+
ROUTER=changethis
|
|
22
|
+
CLOUDINARY_CLOUD_NAME=changethis
|
|
23
|
+
CLOUDINARY_API_KEY=changethis
|
|
24
|
+
CLOUDINARY_API_SECRET=changethis
|
|
25
|
+
DB_PG_MAAS_NAME=changethis
|
|
26
|
+
DB_PG_MAAS_PASS=changethis
|
|
27
|
+
DB_PG_MAAS_USER=changethis
|
|
28
|
+
DB_PG_MAAS_HOST=127.0.0.1
|
|
29
|
+
DB_PG_MAAS_PORT=5432
|
|
30
|
+
MAAS_ADMIN_USERNAME=changethis
|
|
31
|
+
MAAS_API_KEY=changethis
|
|
32
|
+
MAAS_ADMIN_EMAIL=admin@default.net
|
|
33
|
+
MAAS_ADMIN_PASS=changethis
|
|
34
|
+
TFTP_ROOT=changethis
|
|
35
|
+
NETMASK=255.255.255.0
|
|
36
|
+
RPI4_INTERFACE_NAME=changethis
|
|
37
|
+
RPI4_IP=192.168.1.192
|
|
38
|
+
MAAS_DNS=8.8.8.8
|
|
39
|
+
MAAS_NTP_SERVER=changethis
|
|
40
|
+
NFS_EXPORT_PATH=changethis
|
|
41
|
+
RPI4_MAC_ADDRESS=changethis
|
|
42
|
+
NVIDIA_API_KEY=changethis
|
|
12
43
|
DEFAULT_ADMIN_EMAIL=admin@default.net
|
|
13
|
-
DEFAULT_ADMIN_PASSWORD=changethis
|
|
44
|
+
DEFAULT_ADMIN_PASSWORD=changethis
|
|
45
|
+
BASE_API=api
|
|
@@ -2,7 +2,7 @@ name: CD | Release deployment | remote ssh
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
workflow_run:
|
|
5
|
-
workflows: [
|
|
5
|
+
workflows: ['CI | Publish npm package']
|
|
6
6
|
types:
|
|
7
7
|
- completed
|
|
8
8
|
|
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
cd /home/dd/engine
|
|
32
32
|
npm install -g underpost
|
|
33
33
|
underpost run secret
|
|
34
|
-
|
|
34
|
+
underpost run pull
|
|
35
35
|
underpost run secret
|
|
36
|
-
underpost
|
|
36
|
+
underpost cmt . --empty ci docker-image-engine
|
|
37
37
|
underpost run ssh-deploy engine-test
|
package/README.md
CHANGED
|
@@ -50,6 +50,15 @@
|
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
53
62
|
|
|
54
63
|
|
|
55
64
|
|
|
@@ -63,7 +72,7 @@
|
|
|
63
72
|
<!-- badges -->
|
|
64
73
|
|
|
65
74
|
|
|
66
|
-
[](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [](https://github.com/underpostnet/engine/actions/workflows/coverall.yml) [](https://www.npmjs.com/package/underpost) [](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [](https://github.com/underpostnet/engine/actions/workflows/coverall.yml) [](https://www.npmjs.com/package/underpost) [](https://socket.dev/npm/package/underpost/overview/2.8.882) [](https://coveralls.io/github/underpostnet/engine?branch=master) [](https://www.npmjs.org/package/underpost) [](https://www.npmjs.com/package/underpost)
|
|
67
76
|
|
|
68
77
|
|
|
69
78
|
<!-- end-badges -->
|
|
@@ -102,6 +111,15 @@
|
|
|
102
111
|
|
|
103
112
|
|
|
104
113
|
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
105
123
|
|
|
106
124
|
|
|
107
125
|
|
|
@@ -156,7 +174,7 @@ Run dev client server
|
|
|
156
174
|
npm run dev
|
|
157
175
|
```
|
|
158
176
|
<!-- -->
|
|
159
|
-
## underpost ci/cd cli v2.8.
|
|
177
|
+
## underpost ci/cd cli v2.8.882
|
|
160
178
|
|
|
161
179
|
### Usage: `underpost [options] [command]`
|
|
162
180
|
```
|
package/bin/deploy.js
CHANGED
|
@@ -469,6 +469,7 @@ try {
|
|
|
469
469
|
shellExec(`node bin new --deploy-id dd-default`);
|
|
470
470
|
console.log(fs.existsSync(`./engine-private/conf/dd-default`));
|
|
471
471
|
shellExec(`sudo rm -rf ./engine-private/conf/dd-default`);
|
|
472
|
+
shellExec(`node bin/deploy build-env`);
|
|
472
473
|
break;
|
|
473
474
|
}
|
|
474
475
|
|
|
@@ -535,6 +536,45 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
|
|
|
535
536
|
|
|
536
537
|
break;
|
|
537
538
|
}
|
|
539
|
+
case 'build-env': {
|
|
540
|
+
const buildEnv = (privateEnvPath, originEnv, env) => {
|
|
541
|
+
const privateEnv = dotenv.parse(fs.readFileSync(privateEnvPath, 'utf8'));
|
|
542
|
+
for (const key of Object.keys(privateEnv)) {
|
|
543
|
+
if (key in env) {
|
|
544
|
+
console.warn(`Key ${key} already exists in origin env`);
|
|
545
|
+
continue;
|
|
546
|
+
}
|
|
547
|
+
if (key in originEnv) {
|
|
548
|
+
console.warn(`Key ${key} already exists in origin env`);
|
|
549
|
+
env[key] = originEnv[key];
|
|
550
|
+
continue;
|
|
551
|
+
}
|
|
552
|
+
env[key] =
|
|
553
|
+
`${key}`.toUpperCase().match('API') ||
|
|
554
|
+
`${key}`.toUpperCase().match('KEY') ||
|
|
555
|
+
`${key}`.toUpperCase().match('SECRET') ||
|
|
556
|
+
`${key}`.toUpperCase().match('TOKEN') ||
|
|
557
|
+
`${key}`.toUpperCase().match('PASSWORD') ||
|
|
558
|
+
`${key}`.toUpperCase().match('MAC')
|
|
559
|
+
? 'changethis'
|
|
560
|
+
: isNaN(parseFloat(privateEnv[key]))
|
|
561
|
+
? `${privateEnv[key]}`.match(`@`)
|
|
562
|
+
? 'admin@default.net'
|
|
563
|
+
: 'changethis'
|
|
564
|
+
: privateEnv[key];
|
|
565
|
+
}
|
|
566
|
+
return env;
|
|
567
|
+
};
|
|
568
|
+
for (let envPath of ['.env.development', '.env.production', '.env.test']) {
|
|
569
|
+
const originEnv = dotenv.parse(fs.readFileSync(`./${envPath}`, 'utf8'));
|
|
570
|
+
|
|
571
|
+
let env = {};
|
|
572
|
+
env = buildEnv(`./engine-private/conf/dd-cron/${envPath}`, originEnv, env);
|
|
573
|
+
env = buildEnv(`./engine-private/conf/dd-core/${envPath}`, originEnv, env);
|
|
574
|
+
writeEnv(envPath, env);
|
|
575
|
+
}
|
|
576
|
+
break;
|
|
577
|
+
}
|
|
538
578
|
|
|
539
579
|
case 'update-default-conf': {
|
|
540
580
|
const defaultServer = DefaultConf.server['default.net']['/'];
|
package/cli.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## underpost ci/cd cli v2.8.
|
|
1
|
+
## underpost ci/cd cli v2.8.882
|
|
2
2
|
|
|
3
3
|
### Usage: `underpost [options] [command]`
|
|
4
4
|
```
|
|
@@ -619,6 +619,8 @@ Options:
|
|
|
619
619
|
--image-name <image-name> Optional: Specifies the image name for test execution.
|
|
620
620
|
--container-name <container-name> Optional: Specifies the container name for test execution.
|
|
621
621
|
--namespace <namespace> Optional: Specifies the namespace for test execution.
|
|
622
|
+
--kubeadm Flag to indicate Kubeadm cluster type context
|
|
623
|
+
--k3s Flag to indicate K3s cluster type context
|
|
622
624
|
-h, --help display help for command
|
|
623
625
|
|
|
624
626
|
```
|
package/conf.js
CHANGED
|
@@ -64,6 +64,7 @@ const DefaultConf = /**/ {
|
|
|
64
64
|
'404',
|
|
65
65
|
'500',
|
|
66
66
|
'Pagination',
|
|
67
|
+
'windowGetDimensions',
|
|
67
68
|
],
|
|
68
69
|
default: [
|
|
69
70
|
'MenuDefault',
|
|
@@ -92,6 +93,16 @@ const DefaultConf = /**/ {
|
|
|
92
93
|
{ path: '/default-management', client: 'Default', ssr: 'Default' },
|
|
93
94
|
{ client: 'Default', ssr: 'Default', path: '/404', title: '404 Not Found' },
|
|
94
95
|
{ client: 'Default', ssr: 'Default', path: '/500', title: '500 Server Error' },
|
|
96
|
+
{
|
|
97
|
+
path: '/blog',
|
|
98
|
+
client: 'Default',
|
|
99
|
+
ssr: 'Default',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
path: '/chat',
|
|
103
|
+
client: 'Default',
|
|
104
|
+
ssr: 'Default',
|
|
105
|
+
},
|
|
95
106
|
],
|
|
96
107
|
dists: [
|
|
97
108
|
{
|
|
@@ -108,7 +119,22 @@ const DefaultConf = /**/ {
|
|
|
108
119
|
import_name_build: '/dist/sortablejs/sortable.complete.esm.js',
|
|
109
120
|
},
|
|
110
121
|
{ folder: './node_modules/validator', public_folder: '/dist/validator' },
|
|
111
|
-
{
|
|
122
|
+
{
|
|
123
|
+
folder: './node_modules/easymde/dist',
|
|
124
|
+
public_folder: '/dist/easymde',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
folder: './node_modules/marked/lib',
|
|
128
|
+
public_folder: '/dist/marked',
|
|
129
|
+
import_name: 'marked',
|
|
130
|
+
import_name_build: '/dist/marked/marked.esm.js',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
folder: './node_modules/vanilla-jsoneditor/standalone.js',
|
|
134
|
+
public_folder: '/dist/vanilla-jsoneditor/standalone.js',
|
|
135
|
+
import_name: 'vanilla-jsoneditor',
|
|
136
|
+
import_name_build: '/dist/vanilla-jsoneditor/standalone.js',
|
|
137
|
+
},
|
|
112
138
|
{
|
|
113
139
|
import_name: 'ag-grid-community',
|
|
114
140
|
import_name_build: '/dist/ag-grid-community/ag-grid-community.min.js',
|
|
@@ -125,7 +151,7 @@ const DefaultConf = /**/ {
|
|
|
125
151
|
},
|
|
126
152
|
{ folder: './node_modules/peerjs/dist', public_folder: '/dist/peerjs' },
|
|
127
153
|
],
|
|
128
|
-
services: ['default', 'core', 'user', 'test', 'file'],
|
|
154
|
+
services: ['default', 'core', 'user', 'test', 'file', 'document'],
|
|
129
155
|
},
|
|
130
156
|
},
|
|
131
157
|
ssr: {
|
|
@@ -145,7 +171,7 @@ const DefaultConf = /**/ {
|
|
|
145
171
|
'/': {
|
|
146
172
|
client: 'default',
|
|
147
173
|
runtime: 'nodejs',
|
|
148
|
-
apis: ['default', 'core', 'user', 'test', 'file'],
|
|
174
|
+
apis: ['default', 'core', 'user', 'test', 'file', 'document'],
|
|
149
175
|
origins: [],
|
|
150
176
|
minifyBuild: false,
|
|
151
177
|
iconsBuild: false,
|
|
@@ -17,7 +17,7 @@ spec:
|
|
|
17
17
|
spec:
|
|
18
18
|
containers:
|
|
19
19
|
- name: dd-default-development-blue
|
|
20
|
-
image: localhost/rockylinux9-underpost:v2.8.
|
|
20
|
+
image: localhost/rockylinux9-underpost:v2.8.882
|
|
21
21
|
# resources:
|
|
22
22
|
# requests:
|
|
23
23
|
# memory: "124Ki"
|
|
@@ -100,7 +100,7 @@ spec:
|
|
|
100
100
|
spec:
|
|
101
101
|
containers:
|
|
102
102
|
- name: dd-default-development-green
|
|
103
|
-
image: localhost/rockylinux9-underpost:v2.8.
|
|
103
|
+
image: localhost/rockylinux9-underpost:v2.8.882
|
|
104
104
|
# resources:
|
|
105
105
|
# requests:
|
|
106
106
|
# memory: "124Ki"
|
|
@@ -17,13 +17,13 @@ spec:
|
|
|
17
17
|
spec:
|
|
18
18
|
containers:
|
|
19
19
|
- name: dd-test-development-blue
|
|
20
|
-
image: localhost/rockylinux9-underpost:v2.8.
|
|
20
|
+
image: localhost/rockylinux9-underpost:v2.8.882
|
|
21
21
|
# resources:
|
|
22
22
|
# requests:
|
|
23
|
-
# memory: "
|
|
23
|
+
# memory: "96294Ki"
|
|
24
24
|
# cpu: "75m"
|
|
25
25
|
# limits:
|
|
26
|
-
# memory: "
|
|
26
|
+
# memory: "1540709Ki"
|
|
27
27
|
# cpu: "1200m"
|
|
28
28
|
command:
|
|
29
29
|
- /bin/sh
|
|
@@ -104,13 +104,13 @@ spec:
|
|
|
104
104
|
spec:
|
|
105
105
|
containers:
|
|
106
106
|
- name: dd-test-development-green
|
|
107
|
-
image: localhost/rockylinux9-underpost:v2.8.
|
|
107
|
+
image: localhost/rockylinux9-underpost:v2.8.882
|
|
108
108
|
# resources:
|
|
109
109
|
# requests:
|
|
110
|
-
# memory: "
|
|
110
|
+
# memory: "96294Ki"
|
|
111
111
|
# cpu: "75m"
|
|
112
112
|
# limits:
|
|
113
|
-
# memory: "
|
|
113
|
+
# memory: "1540709Ki"
|
|
114
114
|
# cpu: "1200m"
|
|
115
115
|
command:
|
|
116
116
|
- /bin/sh
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"type": "module",
|
|
3
3
|
"main": "src/index.js",
|
|
4
4
|
"name": "underpost",
|
|
5
|
-
"version": "2.8.
|
|
5
|
+
"version": "2.8.882",
|
|
6
6
|
"description": "pwa api rest template",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"start": "env-cmd -f .env.production node --max-old-space-size=8192 src/server",
|
|
@@ -51,7 +51,6 @@
|
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@fortawesome/fontawesome-free": "^6.4.2",
|
|
53
53
|
"@fullcalendar/rrule": "^6.1.15",
|
|
54
|
-
"@loadingio/css-spinner": "^2.0.2",
|
|
55
54
|
"@neodrag/vanilla": "^2.0.3",
|
|
56
55
|
"adm-zip": "^0.5.10",
|
|
57
56
|
"ag-grid-community": "^31.3.4",
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { loggerFactory } from '../../server/logger.js';
|
|
2
|
+
import { DocumentService } from './document.service.js';
|
|
3
|
+
const logger = loggerFactory(import.meta);
|
|
4
|
+
|
|
5
|
+
const DocumentController = {
|
|
6
|
+
post: async (req, res, options) => {
|
|
7
|
+
try {
|
|
8
|
+
return res.status(200).json({
|
|
9
|
+
status: 'success',
|
|
10
|
+
data: await DocumentService.post(req, res, options),
|
|
11
|
+
});
|
|
12
|
+
} catch (error) {
|
|
13
|
+
logger.error(error, error.stack);
|
|
14
|
+
return res.status(400).json({
|
|
15
|
+
status: 'error',
|
|
16
|
+
message: error.message,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
get: async (req, res, options) => {
|
|
21
|
+
try {
|
|
22
|
+
return res.status(200).json({
|
|
23
|
+
status: 'success',
|
|
24
|
+
data: await DocumentService.get(req, res, options),
|
|
25
|
+
});
|
|
26
|
+
} catch (error) {
|
|
27
|
+
logger.error(error, error.stack);
|
|
28
|
+
return res.status(400).json({
|
|
29
|
+
status: 'error',
|
|
30
|
+
message: error.message,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
delete: async (req, res, options) => {
|
|
35
|
+
try {
|
|
36
|
+
const result = await DocumentService.delete(req, res, options);
|
|
37
|
+
return res.status(200).json({
|
|
38
|
+
status: 'success',
|
|
39
|
+
data: result,
|
|
40
|
+
});
|
|
41
|
+
} catch (error) {
|
|
42
|
+
logger.error(error, error.stack);
|
|
43
|
+
return res.status(400).json({
|
|
44
|
+
status: 'error',
|
|
45
|
+
message: error.message,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
put: async (req, res, options) => {
|
|
50
|
+
try {
|
|
51
|
+
const result = await DocumentService.put(req, res, options);
|
|
52
|
+
return res.status(200).json({
|
|
53
|
+
status: 'success',
|
|
54
|
+
data: result,
|
|
55
|
+
});
|
|
56
|
+
} catch (error) {
|
|
57
|
+
logger.error(error, error.stack);
|
|
58
|
+
return res.status(400).json({
|
|
59
|
+
status: 'error',
|
|
60
|
+
message: error.message,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export { DocumentController };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Schema, model, Types } from 'mongoose';
|
|
2
|
+
|
|
3
|
+
// https://mongoosejs.com/docs/2.7.x/docs/schematypes.html
|
|
4
|
+
|
|
5
|
+
const DocumentSchema = new Schema(
|
|
6
|
+
{
|
|
7
|
+
userId: {
|
|
8
|
+
type: Schema.Types.ObjectId,
|
|
9
|
+
ref: 'User',
|
|
10
|
+
},
|
|
11
|
+
location: { type: String },
|
|
12
|
+
title: { type: String },
|
|
13
|
+
tags: [{ type: String }],
|
|
14
|
+
fileId: {
|
|
15
|
+
type: Schema.Types.ObjectId,
|
|
16
|
+
ref: 'File',
|
|
17
|
+
},
|
|
18
|
+
mdFileId: {
|
|
19
|
+
type: Schema.Types.ObjectId,
|
|
20
|
+
ref: 'File',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
timestamps: true,
|
|
25
|
+
},
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
const DocumentModel = model('Document', DocumentSchema);
|
|
29
|
+
|
|
30
|
+
const ProviderSchema = DocumentSchema;
|
|
31
|
+
|
|
32
|
+
const DocumentDto = {
|
|
33
|
+
populate: {
|
|
34
|
+
file: () => {
|
|
35
|
+
return {
|
|
36
|
+
path: 'fileId',
|
|
37
|
+
model: 'File',
|
|
38
|
+
select: '_id name mimetype',
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
user: () => {
|
|
42
|
+
return {
|
|
43
|
+
path: 'userId',
|
|
44
|
+
model: 'User',
|
|
45
|
+
select: '_id email username',
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export { DocumentSchema, DocumentModel, ProviderSchema, DocumentDto };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { loggerFactory } from '../../server/logger.js';
|
|
2
|
+
import { DocumentController } from './document.controller.js';
|
|
3
|
+
import express from 'express';
|
|
4
|
+
import fs from 'fs-extra';
|
|
5
|
+
const logger = loggerFactory(import.meta);
|
|
6
|
+
|
|
7
|
+
const DocumentRouter = (options) => {
|
|
8
|
+
const router = express.Router();
|
|
9
|
+
const authMiddleware = options.authMiddleware;
|
|
10
|
+
router.post(`/:id`, authMiddleware, async (req, res) => await DocumentController.post(req, res, options));
|
|
11
|
+
router.post(`/`, authMiddleware, async (req, res) => await DocumentController.post(req, res, options));
|
|
12
|
+
router.get(`/public`, async (req, res) => await DocumentController.get(req, res, options));
|
|
13
|
+
router.get(`/:id`, authMiddleware, async (req, res) => await DocumentController.get(req, res, options));
|
|
14
|
+
router.get(`/`, authMiddleware, async (req, res) => await DocumentController.get(req, res, options));
|
|
15
|
+
router.put(`/:id`, authMiddleware, async (req, res) => await DocumentController.put(req, res, options));
|
|
16
|
+
router.put(`/`, authMiddleware, async (req, res) => await DocumentController.put(req, res, options));
|
|
17
|
+
router.delete(`/:id`, authMiddleware, async (req, res) => await DocumentController.delete(req, res, options));
|
|
18
|
+
router.delete(`/`, authMiddleware, async (req, res) => await DocumentController.delete(req, res, options));
|
|
19
|
+
return router;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const ApiRouter = DocumentRouter;
|
|
23
|
+
|
|
24
|
+
export { ApiRouter, DocumentRouter };
|