dbm-graph-api 1.1.12 → 1.1.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dbm-graph-api",
3
- "version": "1.1.12",
3
+ "version": "1.1.13",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -13,7 +13,7 @@
13
13
  "dependencies": {
14
14
  "@aws-sdk/client-s3": "^3.741.0",
15
15
  "@aws-sdk/s3-request-presigner": "^3.741.0",
16
- "dbm": "^1.1.8",
16
+ "dbm": "^1.1.9",
17
17
  "mime": "^4.0.6",
18
18
  "sharp": "^0.33.5",
19
19
  "ws": "^8.18.0"
@@ -0,0 +1,35 @@
1
+ import Dbm from "dbm";
2
+ import { exec } from 'node:child_process';
3
+ import { createHash } from 'node:crypto';
4
+
5
+ export default class RestartServer extends Dbm.core.BaseObject {
6
+ _construct() {
7
+ super._construct();
8
+
9
+ this.item.requireProperty("salt", "]g[Qy-P?>KYEMf]Uf=:Hin5pA`oic6+s2wTn0&sqhdG)nFCZT)b[Osf5$w+0Z5a=");
10
+ this.item.requireProperty("restartKey", "c62b65e5eca50e92eb6c0f0cb1a74fc4ac43e0352b0d944389dddd27a2c62a47");
11
+ }
12
+
13
+ async performAction(aData, aEncodeSession) {
14
+ let returnObject = {};
15
+
16
+ let key = aData["key"];
17
+
18
+ let hash = createHash('sha256');
19
+ hash.update(key + this.item.salt);
20
+ let hashedKey = hash.digest('hex');
21
+
22
+ if(hashedKey !== this.item.restartKey) {
23
+ throw("Not allowed");
24
+ }
25
+
26
+ let database = Dbm.getInstance().repository.getItem("graphDatabase").controller;
27
+ database.restartConnection();
28
+
29
+ let connected = await database.testConnection();
30
+
31
+ returnObject["connected"] = connected;
32
+
33
+ return returnObject;
34
+ }
35
+ }
@@ -0,0 +1,52 @@
1
+ import Dbm from "dbm";
2
+ import { exec } from 'node:child_process';
3
+ import { createHash } from 'node:crypto';
4
+
5
+ export default class RestartServer extends Dbm.core.BaseObject {
6
+ _construct() {
7
+ super._construct();
8
+
9
+ this.item.requireProperty("salt", "]g[Qy-P?>KYEMf]Uf=:Hin5pA`oic6+s2wTn0&sqhdG)nFCZT)b[Osf5$w+0Z5a=");
10
+ this.item.requireProperty("restartKey", "c62b65e5eca50e92eb6c0f0cb1a74fc4ac43e0352b0d944389dddd27a2c62a47");
11
+ }
12
+
13
+ async performAction(aData, aEncodeSession) {
14
+ let returnObject = {};
15
+
16
+ let key = aData["key"];
17
+
18
+ let hash = createHash('sha256');
19
+ hash.update(key + this.item.salt);
20
+ let hashedKey = hash.digest('hex');
21
+
22
+ if(hashedKey !== this.item.restartKey) {
23
+ throw("Not allowed");
24
+ }
25
+
26
+ let processName = process.env.name;
27
+
28
+ if(processName) {
29
+ returnObject["processName"] = processName;
30
+
31
+ setTimeout(function() {
32
+ exec('pm2 restart ' + processName, (error, stdout, stderr) => {
33
+ if (error) {
34
+ console.warn(`Failed to restart: ${error.message}`);
35
+ }
36
+
37
+ if (stderr) {
38
+ console.warn(`PM2 stderr: ${stderr}`);
39
+ }
40
+ });
41
+ }, 200);
42
+
43
+ returnObject["success"] = true;
44
+ returnObject["message"] = "Trying to restart";
45
+ }
46
+ else {
47
+ returnObject["success"] = false;
48
+ }
49
+
50
+ return returnObject;
51
+ }
52
+ }
@@ -0,0 +1,2 @@
1
+ export {default as RestartServer} from "./RestartServer.js";
2
+ export {default as RestartDatabaseConnection} from "./RestartDatabaseConnection.js";
@@ -2,4 +2,5 @@ export {default as Example} from "./Example.js";
2
2
  export {default as IncomingWebhook} from "./IncomingWebhook.js";
3
3
 
4
4
  export * as cron from "./cron/index.js";
5
- export * as admin from "./admin/index.js";
5
+ export * as admin from "./admin/index.js";
6
+ export * as development from "./development/index.js";
@@ -5,6 +5,8 @@ export {default as SeoSummary} from "./SeoSummary.js";
5
5
  export {default as AltText} from "./AltText.js";
6
6
  export {default as Breadcrumb} from "./Breadcrumb.js";
7
7
 
8
+ export * as server from "./server/index.js";
9
+
8
10
  import UploadS3 from "./UploadS3.js";
9
11
 
10
12
  import { S3Client } from "@aws-sdk/client-s3";
@@ -0,0 +1,23 @@
1
+ import Dbm from "dbm";
2
+
3
+ export default class Status extends Dbm.core.BaseObject {
4
+ _construct() {
5
+ super._construct();
6
+ }
7
+
8
+ async getData(aData, aEncodeSession) {
9
+ let returnObject = {};
10
+
11
+ let database = Dbm.getInstance().repository.getItem("graphDatabase").controller;
12
+
13
+ let connected = await database.testConnection();
14
+
15
+ if(!connected) {
16
+ throw("No database connection");
17
+ }
18
+
19
+ returnObject["databaseConnection"] = connected;
20
+
21
+ return returnObject;
22
+ }
23
+ }
@@ -0,0 +1 @@
1
+ export {default as Status} from "./Status.js";
@@ -187,6 +187,8 @@ let fullDataSetup = function() {
187
187
  registerDataFunction("admin/freeUrl", new DbmGraphApi.data.FreeUrl());
188
188
  registerDataFunction("admin/seoSummary", new DbmGraphApi.data.SeoSummary());
189
189
  registerDataFunction("admin/altText", new DbmGraphApi.data.AltText());
190
+
191
+ registerDataFunction("server/status", new DbmGraphApi.data.server.Status());
190
192
  }
191
193
 
192
194
  export {fullDataSetup};
@@ -204,6 +206,9 @@ let fullActionSetup = function() {
204
206
  registerActionFunction("incomingWebhook", new DbmGraphApi.action.IncomingWebhook());
205
207
  registerActionFunction("cron/processActions", new DbmGraphApi.action.cron.ProcessActions());
206
208
  registerActionFunction("admin/addAndProcessAction", new DbmGraphApi.action.admin.AddAndProcessAction());
209
+
210
+ registerActionFunction("development/restartServer", new DbmGraphApi.action.development.RestartServer());
211
+ registerActionFunction("development/restartDatabaseConnection", new DbmGraphApi.action.development.RestartDatabaseConnection());
207
212
  }
208
213
 
209
214
  export {fullActionSetup};