underpost 2.8.85 → 2.8.87

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.
Files changed (70) hide show
  1. package/.env.development +7 -2
  2. package/.env.production +7 -2
  3. package/.env.test +7 -2
  4. package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -1
  5. package/.github/workflows/release.cd.yml +37 -0
  6. package/README.md +7 -24
  7. package/bin/build.js +1 -0
  8. package/bin/db.js +1 -3
  9. package/bin/deploy.js +43 -368
  10. package/bin/file.js +16 -3
  11. package/bin/util.js +1 -56
  12. package/cli.md +46 -21
  13. package/conf.js +3 -3
  14. package/manifests/deployment/{dd-template-development → dd-default-development}/deployment.yaml +16 -16
  15. package/manifests/deployment/{dd-template-development → dd-default-development}/proxy.yaml +3 -3
  16. package/manifests/deployment/mongo-express/deployment.yaml +12 -12
  17. package/manifests/grafana/deployment.yaml +57 -0
  18. package/manifests/grafana/kustomization.yaml +7 -0
  19. package/manifests/grafana/pvc.yaml +12 -0
  20. package/manifests/grafana/service.yaml +14 -0
  21. package/manifests/maas/nvim.sh +91 -0
  22. package/manifests/maas/ssh-cluster-info.sh +14 -0
  23. package/manifests/prometheus/deployment.yaml +82 -0
  24. package/package.json +3 -12
  25. package/src/api/file/file.service.js +28 -8
  26. package/src/api/user/user.router.js +31 -5
  27. package/src/api/user/user.service.js +11 -38
  28. package/src/cli/cluster.js +45 -25
  29. package/src/cli/cron.js +12 -45
  30. package/src/cli/db.js +149 -19
  31. package/src/cli/deploy.js +41 -110
  32. package/src/cli/fs.js +1 -0
  33. package/src/cli/index.js +24 -7
  34. package/src/cli/monitor.js +1 -4
  35. package/src/cli/repository.js +15 -6
  36. package/src/cli/run.js +94 -16
  37. package/src/client/Default.index.js +0 -2
  38. package/src/client/components/core/Account.js +6 -2
  39. package/src/client/components/core/Content.js +11 -7
  40. package/src/client/components/core/Css.js +5 -1
  41. package/src/client/components/core/CssCore.js +12 -0
  42. package/src/client/components/core/FullScreen.js +19 -28
  43. package/src/client/components/core/Input.js +7 -1
  44. package/src/client/components/core/LogIn.js +3 -0
  45. package/src/client/components/core/LogOut.js +1 -1
  46. package/src/client/components/core/Modal.js +32 -43
  47. package/src/client/components/core/ObjectLayerEngine.js +229 -4
  48. package/src/client/components/core/ObjectLayerEngineModal.js +441 -0
  49. package/src/client/components/core/Recover.js +5 -2
  50. package/src/client/components/core/Scroll.js +65 -120
  51. package/src/client/components/core/SignUp.js +1 -0
  52. package/src/client/components/core/ToggleSwitch.js +15 -1
  53. package/src/client/components/core/VanillaJs.js +48 -2
  54. package/src/client/components/default/MenuDefault.js +2 -2
  55. package/src/client/components/default/RoutesDefault.js +3 -3
  56. package/src/client/public/default/assets/mailer/api-user-default-avatar.png +0 -0
  57. package/src/index.js +1 -1
  58. package/src/mailer/MailerProvider.js +37 -0
  59. package/src/server/client-build-docs.js +1 -1
  60. package/src/server/client-build-live.js +1 -1
  61. package/src/server/client-build.js +4 -12
  62. package/src/server/client-dev-server.js +1 -1
  63. package/src/server/client-icons.js +6 -78
  64. package/src/server/conf.js +83 -408
  65. package/src/server/proxy.js +2 -3
  66. package/src/server/runtime.js +1 -2
  67. package/src/server/start.js +5 -5
  68. package/test/api.test.js +3 -2
  69. package/docker-compose.yml +0 -67
  70. package/prometheus.yml +0 -36
@@ -79,11 +79,11 @@ class UnderpostStartUp {
79
79
  }
80
80
  }),
81
81
 
82
- async callback(deployId = 'default', env = 'development', options = { build: false, run: false }) {
82
+ async callback(deployId = 'dd-default', env = 'development', options = { build: false, run: false }) {
83
83
  if (options.build === true) await UnderpostStartUp.API.build(deployId, env);
84
84
  if (options.run === true) await UnderpostStartUp.API.run(deployId, env);
85
85
  },
86
- async build(deployId = 'default', env = 'development') {
86
+ async build(deployId = 'dd-default', env = 'development') {
87
87
  const buildBasePath = `/home/dd`;
88
88
  const repoName = `engine-${deployId.split('-')[1]}`;
89
89
  shellExec(`cd ${buildBasePath} && underpost clone underpostnet/${repoName}`);
@@ -100,19 +100,19 @@ class UnderpostStartUp {
100
100
  }
101
101
  shellExec(`node bin/deploy build-full-client ${deployId}`);
102
102
  },
103
- async run(deployId = 'default', env = 'development') {
103
+ async run(deployId = 'dd-default', env = 'development') {
104
104
  const runCmd = env === 'production' ? 'run prod-img' : 'run dev-img';
105
105
  if (fs.existsSync(`./engine-private/replica`)) {
106
106
  const replicas = await fs.readdir(`./engine-private/replica`);
107
107
  for (const replica of replicas) {
108
108
  if (!replica.match(deployId)) continue;
109
109
  shellExec(`node bin/deploy conf ${replica} ${env}`);
110
- shellExec(`npm ${runCmd} deploy deploy-id:${replica}`, { async: true });
110
+ shellExec(`npm ${runCmd} ${replica}`, { async: true });
111
111
  await awaitDeployMonitor(true);
112
112
  }
113
113
  }
114
114
  shellExec(`node bin/deploy conf ${deployId} ${env}`);
115
- shellExec(`npm ${runCmd} deploy deploy-id:${deployId}`, { async: true });
115
+ shellExec(`npm ${runCmd} ${deployId}`, { async: true });
116
116
  await awaitDeployMonitor(true);
117
117
  UnderpostRootEnv.API.set('container-status', `${deployId}-${env}-running-deployment`);
118
118
  },
package/test/api.test.js CHANGED
@@ -21,12 +21,13 @@ const BASE_URL =
21
21
 
22
22
  describe(`GET 'Test' API Request `, async () => {
23
23
  {
24
- const url = `${BASE_URL}/test/youtube-id/?url=https://www.youtube.com/watch?v=o4f42SbyDMk`;
24
+ const youtubeId = '2aib-pmgUdQ';
25
+ const url = `${BASE_URL}/test/youtube-id/?url=https://www.youtube.com/watch?v=${youtubeId}`;
25
26
  it(`youtube id from raw youtube url`, async () => {
26
27
  logger.info('request info', { url });
27
28
  const res = await axios.get(url);
28
29
  logger.info('response', res.data);
29
- return expect(res.data.data).equal('o4f42SbyDMk');
30
+ return expect(res.data.data).equal(youtubeId);
30
31
  });
31
32
  }
32
33
  {
@@ -1,67 +0,0 @@
1
- # https://docs.docker.com/compose/compose-file/compose-file-v3
2
- # https://docs.docker.com/engine/reference/commandline/compose/
3
- version: '3'
4
- services:
5
- prometheus:
6
- image: prom/prometheus
7
- ports:
8
- - 9090:9090
9
- volumes:
10
- - ./prometheus_data:/prometheus
11
- - ./prometheus.yml:/etc/prometheus/prometheus.yml
12
- command:
13
- - '--config.file=/etc/prometheus/prometheus.yml'
14
- networks:
15
- - load-balancer
16
-
17
- grafana:
18
- image: grafana/grafana
19
- ports:
20
- - 3000:3000
21
- volumes:
22
- - ./grafana_data:/var/lib/grafana
23
- # - ./grafana.ini:/etc/grafana/grafana.ini
24
- networks:
25
- - load-balancer
26
- depends_on:
27
- - prometheus
28
-
29
- underpost-engine:
30
- build:
31
- dockerfile: ./Dockerfile
32
- context: . # workdir path
33
- # image: underpost-engine
34
- # container_name: <name> ignore for replicas
35
- ports:
36
- - '22'
37
- - '80' # host port allocated dynamically, host ports are unique independent of replicas
38
- - '443'
39
- - '3306'
40
- - '27017'
41
- - '4001-4002:3001'
42
- - '3002-3020'
43
- volumes:
44
- - ./logs:/code/logs
45
- deploy:
46
- mode: replicated
47
- replicas: 2
48
- restart_policy:
49
- condition: on-failure
50
- delay: 5s
51
- max_attempts: 3
52
- window: 120s
53
- resources:
54
- limits:
55
- cpus: '2'
56
- memory: 400M
57
- reservations:
58
- cpus: '0.25'
59
- memory: 20M
60
- labels: # labels in Compose file instead of Dockerfile
61
- engine.version: '2.8.85'
62
- networks:
63
- - load-balancer
64
-
65
- networks:
66
- load-balancer:
67
- driver: bridge
package/prometheus.yml DELETED
@@ -1,36 +0,0 @@
1
- # my global config
2
- global:
3
- scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
4
- evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
5
- # scrape_timeout is set to the global default (10s).
6
-
7
- # Alertmanager configuration
8
- alerting:
9
- alertmanagers:
10
- - static_configs:
11
- - targets:
12
- # - alertmanager:9093
13
-
14
- # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
15
- rule_files:
16
- # - "first_rules.yml"
17
- # - "second_rules.yml"
18
-
19
- # A scrape configuration containing exactly one endpoint to scrape:
20
- # Here it's Prometheus itself.
21
- scrape_configs:
22
- # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
23
- - job_name: 'prometheus_service'
24
-
25
- # metrics_path defaults to '/metrics'
26
- # scheme defaults to 'http'.
27
-
28
- static_configs:
29
- - targets: ['host.docker.internal:9090']
30
-
31
- - job_name: 'nodejs_service'
32
- static_configs:
33
- - targets: ['host.docker.internal:4001', 'host.docker.internal:4002']
34
- # - targets: ['localhost:4001', 'localhost:4002']
35
- # - targets: ["host.docker.internal:3002"] # Windows
36
- # - targets: ["docker.for.mac.localhost:9090"] # macOs