cyberia 3.0.3 → 3.1.3
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.production → .env.example} +20 -2
- package/.github/workflows/engine-cyberia.cd.yml +41 -10
- package/.github/workflows/engine-cyberia.ci.yml +53 -14
- package/.github/workflows/ghpkg.ci.yml +1 -1
- package/.github/workflows/gitlab.ci.yml +1 -1
- package/.github/workflows/hardhat.ci.yml +82 -0
- package/.github/workflows/npmpkg.ci.yml +37 -8
- package/.github/workflows/publish.ci.yml +5 -5
- package/.github/workflows/publish.cyberia.ci.yml +5 -5
- package/.github/workflows/pwa-microservices-template-page.cd.yml +3 -3
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/.github/workflows/release.cd.yml +3 -2
- package/.vscode/extensions.json +9 -8
- package/.vscode/settings.json +3 -2
- package/CHANGELOG.md +211 -1
- package/CLI-HELP.md +78 -53
- package/WHITE-PAPER.md +1540 -0
- package/bin/build.js +16 -10
- package/bin/cyberia.js +861 -4
- package/bin/deploy.js +103 -270
- package/bin/file.js +2 -1
- package/bin/index.js +861 -4
- package/bin/vs.js +3 -3
- package/conf.js +105 -97
- package/deployment.yaml +148 -4
- package/hardhat/.env.example +31 -0
- package/hardhat/README.md +531 -0
- package/hardhat/WHITE-PAPER.md +1540 -0
- package/hardhat/contracts/ObjectLayerToken.sol +391 -0
- package/hardhat/deployments/.gitkeep +0 -0
- package/hardhat/deployments/hardhat-ObjectLayerToken.json +11 -0
- package/hardhat/hardhat.config.js +136 -0
- package/hardhat/ignition/modules/ObjectLayerToken.js +21 -0
- package/hardhat/networks/besu-object-layer.network.json +138 -0
- package/hardhat/package-lock.json +7628 -0
- package/hardhat/package.json +45 -0
- package/hardhat/scripts/deployObjectLayerToken.js +98 -0
- package/hardhat/test/ObjectLayerToken.js +590 -0
- package/jsdoc.dd-cyberia.json +59 -0
- package/jsdoc.json +20 -13
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +490 -0
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +261 -0
- package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +132 -0
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/dd-test-development/deployment.yaml +52 -52
- package/manifests/deployment/dd-test-development/proxy.yaml +4 -4
- package/manifests/pv-pvc-dd.yaml +1 -1
- package/package.json +50 -44
- package/proxy.yaml +79 -7
- package/pv-pvc.yaml +132 -0
- package/scripts/k3s-node-setup.sh +1 -1
- package/scripts/ports-ls.sh +2 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +3 -1
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +1 -2
- package/src/api/document/document.service.js +1 -1
- package/src/api/file/file.controller.js +3 -1
- package/src/api/file/file.service.js +28 -5
- package/src/api/ipfs/ipfs.service.js +2 -2
- package/src/api/object-layer/object-layer.controller.js +6 -2
- package/src/api/object-layer/object-layer.model.js +12 -8
- package/src/api/object-layer/object-layer.router.js +668 -42
- package/src/api/object-layer/object-layer.service.js +6 -7
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +1 -2
- package/src/api/user/user.router.js +10 -5
- package/src/api/user/user.service.js +7 -7
- package/src/cli/baremetal.js +6 -10
- package/src/cli/cloud-init.js +0 -3
- package/src/cli/db.js +54 -71
- package/src/cli/deploy.js +64 -12
- package/src/cli/env.js +5 -5
- package/src/cli/fs.js +0 -2
- package/src/cli/image.js +0 -3
- package/src/cli/index.js +35 -13
- package/src/cli/monitor.js +5 -6
- package/src/cli/repository.js +329 -46
- package/src/cli/run.js +180 -120
- package/src/cli/secrets.js +1 -3
- package/src/cli/ssh.js +1 -1
- package/src/client/Itemledger.index.js +1 -959
- package/src/client/components/core/AgGrid.js +20 -5
- package/src/client/components/core/Alert.js +2 -2
- package/src/client/components/core/Content.js +22 -3
- package/src/client/components/core/Docs.js +30 -6
- package/src/client/components/core/FileExplorer.js +71 -4
- package/src/client/components/core/Input.js +1 -1
- package/src/client/components/core/Modal.js +20 -6
- package/src/client/components/core/RichText.js +1 -2
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +1 -0
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +44 -2
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +0 -1
- package/src/client/components/cyberia-portal/MenuCyberiaPortal.js +64 -2
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +1 -0
- package/src/client/components/underpost/CssUnderpost.js +59 -0
- package/src/client/components/underpost/LogInUnderpost.js +3 -0
- package/src/client/components/underpost/LogOutUnderpost.js +2 -0
- package/src/client/components/underpost/MenuUnderpost.js +99 -13
- package/src/client/components/underpost/RoutesUnderpost.js +2 -0
- package/src/client/public/cryptokoyn/assets/logo/base-icon.png +0 -0
- package/src/client/public/cryptokoyn/browserconfig.xml +12 -0
- package/src/client/public/cryptokoyn/microdata.json +85 -0
- package/src/client/public/cryptokoyn/site.webmanifest +57 -0
- package/src/client/public/cryptokoyn/sitemap +3 -3
- package/src/client/public/default/sitemap +3 -3
- package/src/client/public/itemledger/browserconfig.xml +2 -2
- package/src/client/public/itemledger/manifest.webmanifest +4 -4
- package/src/client/public/itemledger/microdata.json +71 -0
- package/src/client/public/itemledger/sitemap +3 -3
- package/src/client/public/itemledger/yandex-browser-manifest.json +2 -2
- package/src/client/public/test/sitemap +3 -3
- package/src/client/ssr/body/404.js +15 -11
- package/src/client/ssr/body/500.js +15 -11
- package/src/client/ssr/body/SwaggerDarkMode.js +285 -0
- package/src/client/ssr/head/PwaItemledger.js +60 -0
- package/src/client/ssr/offline/NoNetworkConnection.js +11 -10
- package/src/client/ssr/pages/Test.js +11 -10
- package/src/client.build.js +0 -3
- package/src/client.dev.js +0 -3
- package/src/db/DataBaseProvider.js +17 -2
- package/src/db/mariadb/MariaDB.js +14 -9
- package/src/db/mongo/MongooseDB.js +17 -1
- package/src/index.js +1 -1
- package/src/proxy.js +0 -3
- package/src/runtime/express/Express.js +15 -9
- package/src/runtime/lampp/Lampp.js +6 -13
- package/src/server/auth.js +12 -14
- package/src/server/backup.js +2 -3
- package/src/server/besu-genesis-generator.js +1630 -0
- package/src/server/client-build-docs.js +126 -17
- package/src/server/client-build-live.js +9 -18
- package/src/server/client-build.js +203 -75
- package/src/server/client-dev-server.js +14 -13
- package/src/server/conf.js +376 -164
- package/src/server/cron.js +2 -1
- package/src/server/dns.js +28 -12
- package/src/server/downloader.js +0 -2
- package/src/server/logger.js +27 -9
- package/src/server/object-layer.js +79 -6
- package/src/server/peer.js +0 -2
- package/src/server/process.js +1 -50
- package/src/server/proxy.js +4 -8
- package/src/server/runtime.js +5 -8
- package/src/server/ssr.js +0 -3
- package/src/server/start.js +19 -12
- package/src/server/tls.js +0 -2
- package/src/server.js +0 -4
- package/.env.development +0 -43
- package/.env.test +0 -43
- package/hardhat/contracts/CryptoKoyn.sol +0 -59
- package/hardhat/contracts/ItemLedger.sol +0 -73
- package/hardhat/contracts/Lock.sol +0 -34
- package/hardhat/hardhat.config.cjs +0 -45
- package/hardhat/ignition/modules/Lock.js +0 -18
- package/hardhat/networks/cryptokoyn-itemledger.network.json +0 -29
- package/hardhat/scripts/deployCryptokoyn.cjs +0 -25
- package/hardhat/scripts/deployItemledger.cjs +0 -25
- package/hardhat/test/Lock.js +0 -126
- package/hardhat/white-paper.md +0 -581
- package/white-paper.md +0 -581
package/package.json
CHANGED
|
@@ -2,25 +2,30 @@
|
|
|
2
2
|
"type": "module",
|
|
3
3
|
"main": "src/index.js",
|
|
4
4
|
"name": "cyberia",
|
|
5
|
-
"version": "3.
|
|
5
|
+
"version": "3.1.3",
|
|
6
6
|
"description": "Cyberia Engine - Object Layer and Assets Management Microservice",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"start": "
|
|
9
|
-
"build": "node bin
|
|
10
|
-
"test": "
|
|
11
|
-
"dev": "
|
|
12
|
-
"dev
|
|
13
|
-
"prod
|
|
14
|
-
"dev
|
|
15
|
-
"dev
|
|
16
|
-
"dev
|
|
8
|
+
"start": "node --max-old-space-size=8192 src/server dd-core",
|
|
9
|
+
"build": "node bin client",
|
|
10
|
+
"test": "NODE_ENV=test c8 mocha",
|
|
11
|
+
"dev": "NODE_ENV=development nodemon src/server",
|
|
12
|
+
"dev:container": "NODE_ENV=development node src/server",
|
|
13
|
+
"prod:container": "NODE_ENV=production node src/server",
|
|
14
|
+
"dev:api": "NODE_ENV=development nodemon --watch src --ignore src/client src/api",
|
|
15
|
+
"dev:client": "NODE_ENV=development node src/client.dev",
|
|
16
|
+
"dev:proxy": "NODE_ENV=development node src/proxy proxy",
|
|
17
17
|
"docs": "jsdoc -c jsdoc.json",
|
|
18
|
-
"install
|
|
19
|
-
"install
|
|
20
|
-
"install": "npm run install
|
|
18
|
+
"install:global": "npm install -g jsdoc && npm install -g prettier",
|
|
19
|
+
"install:test": "npm install -g mocha && npm install -g c8 && npm install -g coveralls",
|
|
20
|
+
"install": "npm run install:global && npm run install:test",
|
|
21
21
|
"prettier": "prettier --write .",
|
|
22
22
|
"fix": "npm audit fix --force && npm audit",
|
|
23
|
-
"baremetal": "node bin baremetal --dev --commission --ls --create-machine"
|
|
23
|
+
"baremetal": "node bin baremetal --dev --commission --ls --create-machine",
|
|
24
|
+
"security:secrets": "gitleaks detect --source . --config .gitleaks.toml --report-path ./gitleaks-report.json --report-format json --redact=0",
|
|
25
|
+
"security:secrets:ci": "gitleaks detect --source . --config .gitleaks.toml --redact=1",
|
|
26
|
+
"security:deps": "npm audit",
|
|
27
|
+
"security": "npm run security:secrets:ci && npm run security:deps",
|
|
28
|
+
"clean": "node bin env clean && node bin run clean"
|
|
24
29
|
},
|
|
25
30
|
"bin": {
|
|
26
31
|
"cyberia": "bin/index.js"
|
|
@@ -44,67 +49,68 @@
|
|
|
44
49
|
},
|
|
45
50
|
"homepage": "https://github.com/underpostnet/engine-cyberia#readme",
|
|
46
51
|
"dependencies": {
|
|
47
|
-
"@fortawesome/fontawesome-free": "^
|
|
48
|
-
"@fullcalendar/rrule": "^6.1.
|
|
49
|
-
"@neodrag/vanilla": "^2.
|
|
52
|
+
"@fortawesome/fontawesome-free": "^7.2.0",
|
|
53
|
+
"@fullcalendar/rrule": "^6.1.20",
|
|
54
|
+
"@neodrag/vanilla": "^2.3.1",
|
|
50
55
|
"adm-zip": "^0.5.10",
|
|
51
|
-
"ag-grid-community": "^
|
|
52
|
-
"axios": "^1.
|
|
53
|
-
"chai": "^
|
|
56
|
+
"ag-grid-community": "^35.1.0",
|
|
57
|
+
"axios": "^1.13.6",
|
|
58
|
+
"chai": "^6.2.2",
|
|
54
59
|
"clean-jsdoc-theme": "^4.3.0",
|
|
55
|
-
"clipboardy": "^
|
|
60
|
+
"clipboardy": "^5.3.1",
|
|
56
61
|
"cloudinary": "^2.5.1",
|
|
57
62
|
"colors": "^1.4.0",
|
|
58
|
-
"commander": "^
|
|
63
|
+
"commander": "^14.0.3",
|
|
59
64
|
"compression": "^1.7.4",
|
|
60
65
|
"cookie-parser": "^1.4.7",
|
|
61
|
-
"cors": "^2.8.
|
|
66
|
+
"cors": "^2.8.6",
|
|
62
67
|
"d3": "^7.9.0",
|
|
63
|
-
"dotenv": "^
|
|
68
|
+
"dotenv": "^17.3.1",
|
|
64
69
|
"easymde": "^2.18.0",
|
|
65
|
-
"
|
|
66
|
-
"express": "^
|
|
70
|
+
"escape-string-regexp": "^5.0.0",
|
|
71
|
+
"express": "^5.2.1",
|
|
67
72
|
"express-fileupload": "^1.4.3",
|
|
68
|
-
"express-rate-limit": "^8.1
|
|
69
|
-
"express-slow-down": "^3.
|
|
73
|
+
"express-rate-limit": "^8.3.1",
|
|
74
|
+
"express-slow-down": "^3.1.0",
|
|
70
75
|
"fast-json-stable-stringify": "^2.1.0",
|
|
71
76
|
"favicons": "^7.2.0",
|
|
72
|
-
"fs-extra": "^11.
|
|
77
|
+
"fs-extra": "^11.3.4",
|
|
73
78
|
"fullcalendar": "^6.1.15",
|
|
74
79
|
"helmet": "^8.1.0",
|
|
75
80
|
"html-minifier-terser": "^7.2.0",
|
|
76
|
-
"http-proxy-middleware": "^
|
|
81
|
+
"http-proxy-middleware": "^3.0.5",
|
|
77
82
|
"ignore-walk": "^8.0.0",
|
|
78
|
-
"iovalkey": "^0.
|
|
79
|
-
"json-colorizer": "^
|
|
80
|
-
"jsonwebtoken": "^9.0.
|
|
83
|
+
"iovalkey": "^0.3.3",
|
|
84
|
+
"json-colorizer": "^3.0.1",
|
|
85
|
+
"jsonwebtoken": "^9.0.3",
|
|
81
86
|
"mariadb": "^3.2.2",
|
|
82
|
-
"marked": "^
|
|
87
|
+
"marked": "^17.0.4",
|
|
83
88
|
"mocha": "^11.3.0",
|
|
84
|
-
"mongoose": "^
|
|
89
|
+
"mongoose": "^9.3.0",
|
|
85
90
|
"morgan": "^1.10.0",
|
|
86
|
-
"nodemailer": "^
|
|
91
|
+
"nodemailer": "^8.0.2",
|
|
87
92
|
"nodemon": "^3.0.1",
|
|
88
93
|
"peer": "^1.0.2",
|
|
89
|
-
"peerjs": "^1.5.
|
|
94
|
+
"peerjs": "^1.5.5",
|
|
90
95
|
"prom-client": "^15.1.2",
|
|
91
|
-
"read": "^
|
|
96
|
+
"read": "^5.0.1",
|
|
92
97
|
"rrule": "^2.8.1",
|
|
93
98
|
"shelljs": "^0.10.0",
|
|
94
|
-
"sitemap": "^
|
|
95
|
-
"socket.io": "^4.8.
|
|
99
|
+
"sitemap": "^9.0.1",
|
|
100
|
+
"socket.io": "^4.8.3",
|
|
96
101
|
"sortablejs": "^1.15.0",
|
|
97
102
|
"split-file": "^2.3.0",
|
|
98
|
-
"swagger-autogen": "^2.
|
|
103
|
+
"swagger-autogen": "^2.23.7",
|
|
99
104
|
"swagger-ui-express": "^5.0.0",
|
|
100
105
|
"uglify-js": "^3.17.4",
|
|
101
106
|
"validator": "^13.11.0",
|
|
102
|
-
"vanilla-jsoneditor": "^
|
|
103
|
-
"winston": "^3.
|
|
107
|
+
"vanilla-jsoneditor": "^3.11.0",
|
|
108
|
+
"winston": "^3.19.0",
|
|
104
109
|
"maxrects-packer": "^2.7.3",
|
|
105
110
|
"pngjs": "^7.0.0",
|
|
106
111
|
"jimp": "^1.6.0",
|
|
107
|
-
"sharp": "^0.32.5"
|
|
112
|
+
"sharp": "^0.32.5",
|
|
113
|
+
"ethers": "~6.16.0"
|
|
108
114
|
},
|
|
109
115
|
"publishConfig": {
|
|
110
116
|
"provenance": true,
|
package/proxy.yaml
CHANGED
|
@@ -74,6 +74,78 @@ spec:
|
|
|
74
74
|
port: 4009
|
|
75
75
|
weight: 100
|
|
76
76
|
|
|
77
|
+
- conditions:
|
|
78
|
+
- prefix: /r1
|
|
79
|
+
|
|
80
|
+
enableWebsockets: true
|
|
81
|
+
services:
|
|
82
|
+
- name: dd-cyberia-development-blue-service
|
|
83
|
+
port: 4010
|
|
84
|
+
weight: 100
|
|
85
|
+
|
|
86
|
+
- conditions:
|
|
87
|
+
- prefix: /r1/peer
|
|
88
|
+
|
|
89
|
+
enableWebsockets: true
|
|
90
|
+
services:
|
|
91
|
+
- name: dd-cyberia-development-blue-service
|
|
92
|
+
port: 4011
|
|
93
|
+
weight: 100
|
|
94
|
+
|
|
95
|
+
- conditions:
|
|
96
|
+
- prefix: /r2
|
|
97
|
+
|
|
98
|
+
enableWebsockets: true
|
|
99
|
+
services:
|
|
100
|
+
- name: dd-cyberia-development-blue-service
|
|
101
|
+
port: 4012
|
|
102
|
+
weight: 100
|
|
103
|
+
|
|
104
|
+
- conditions:
|
|
105
|
+
- prefix: /r2/peer
|
|
106
|
+
|
|
107
|
+
enableWebsockets: true
|
|
108
|
+
services:
|
|
109
|
+
- name: dd-cyberia-development-blue-service
|
|
110
|
+
port: 4013
|
|
111
|
+
weight: 100
|
|
112
|
+
|
|
113
|
+
- conditions:
|
|
114
|
+
- prefix: /r3
|
|
115
|
+
|
|
116
|
+
enableWebsockets: true
|
|
117
|
+
services:
|
|
118
|
+
- name: dd-cyberia-development-blue-service
|
|
119
|
+
port: 4014
|
|
120
|
+
weight: 100
|
|
121
|
+
|
|
122
|
+
- conditions:
|
|
123
|
+
- prefix: /r3/peer
|
|
124
|
+
|
|
125
|
+
enableWebsockets: true
|
|
126
|
+
services:
|
|
127
|
+
- name: dd-cyberia-development-blue-service
|
|
128
|
+
port: 4015
|
|
129
|
+
weight: 100
|
|
130
|
+
|
|
131
|
+
- conditions:
|
|
132
|
+
- prefix: /r4
|
|
133
|
+
|
|
134
|
+
enableWebsockets: true
|
|
135
|
+
services:
|
|
136
|
+
- name: dd-cyberia-development-blue-service
|
|
137
|
+
port: 4016
|
|
138
|
+
weight: 100
|
|
139
|
+
|
|
140
|
+
- conditions:
|
|
141
|
+
- prefix: /r4/peer
|
|
142
|
+
|
|
143
|
+
enableWebsockets: true
|
|
144
|
+
services:
|
|
145
|
+
- name: dd-cyberia-development-blue-service
|
|
146
|
+
port: 4017
|
|
147
|
+
weight: 100
|
|
148
|
+
|
|
77
149
|
---
|
|
78
150
|
apiVersion: projectcontour.io/v1
|
|
79
151
|
kind: HTTPProxy
|
|
@@ -90,7 +162,7 @@ spec:
|
|
|
90
162
|
enableWebsockets: true
|
|
91
163
|
services:
|
|
92
164
|
- name: dd-cyberia-development-blue-service
|
|
93
|
-
port:
|
|
165
|
+
port: 4018
|
|
94
166
|
weight: 100
|
|
95
167
|
|
|
96
168
|
---
|
|
@@ -109,7 +181,7 @@ spec:
|
|
|
109
181
|
enableWebsockets: true
|
|
110
182
|
services:
|
|
111
183
|
- name: dd-cyberia-development-blue-service
|
|
112
|
-
port:
|
|
184
|
+
port: 4019
|
|
113
185
|
weight: 100
|
|
114
186
|
|
|
115
187
|
- conditions:
|
|
@@ -118,7 +190,7 @@ spec:
|
|
|
118
190
|
enableWebsockets: true
|
|
119
191
|
services:
|
|
120
192
|
- name: dd-cyberia-development-blue-service
|
|
121
|
-
port:
|
|
193
|
+
port: 4020
|
|
122
194
|
weight: 100
|
|
123
195
|
|
|
124
196
|
---
|
|
@@ -137,7 +209,7 @@ spec:
|
|
|
137
209
|
enableWebsockets: true
|
|
138
210
|
services:
|
|
139
211
|
- name: dd-cyberia-development-blue-service
|
|
140
|
-
port:
|
|
212
|
+
port: 4021
|
|
141
213
|
weight: 100
|
|
142
214
|
|
|
143
215
|
---
|
|
@@ -156,7 +228,7 @@ spec:
|
|
|
156
228
|
enableWebsockets: true
|
|
157
229
|
services:
|
|
158
230
|
- name: dd-cyberia-development-blue-service
|
|
159
|
-
port:
|
|
231
|
+
port: 4022
|
|
160
232
|
weight: 100
|
|
161
233
|
|
|
162
234
|
- conditions:
|
|
@@ -165,7 +237,7 @@ spec:
|
|
|
165
237
|
enableWebsockets: true
|
|
166
238
|
services:
|
|
167
239
|
- name: dd-cyberia-development-blue-service
|
|
168
|
-
port:
|
|
240
|
+
port: 4023
|
|
169
241
|
weight: 100
|
|
170
242
|
|
|
171
243
|
---
|
|
@@ -184,6 +256,6 @@ spec:
|
|
|
184
256
|
enableWebsockets: true
|
|
185
257
|
services:
|
|
186
258
|
- name: dd-cyberia-development-blue-service
|
|
187
|
-
port:
|
|
259
|
+
port: 4024
|
|
188
260
|
weight: 100
|
|
189
261
|
|
package/pv-pvc.yaml
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
apiVersion: v1
|
|
3
|
+
kind: PersistentVolume
|
|
4
|
+
metadata:
|
|
5
|
+
name: pv-public-dd-cyberia-dd-cyberia-development-blue
|
|
6
|
+
spec:
|
|
7
|
+
capacity:
|
|
8
|
+
storage: 5Gi
|
|
9
|
+
accessModes:
|
|
10
|
+
- ReadWriteOnce
|
|
11
|
+
persistentVolumeReclaimPolicy: Retain
|
|
12
|
+
storageClassName: manual
|
|
13
|
+
claimRef:
|
|
14
|
+
apiVersion: v1
|
|
15
|
+
kind: PersistentVolumeClaim
|
|
16
|
+
name: pvc-public-dd-cyberia-dd-cyberia-development-blue
|
|
17
|
+
namespace: default
|
|
18
|
+
hostPath:
|
|
19
|
+
path: /home/dd/engine/volume/pv-public-dd-cyberia-dd-cyberia-development-blue
|
|
20
|
+
type: DirectoryOrCreate
|
|
21
|
+
---
|
|
22
|
+
apiVersion: v1
|
|
23
|
+
kind: PersistentVolumeClaim
|
|
24
|
+
metadata:
|
|
25
|
+
name: pvc-public-dd-cyberia-dd-cyberia-development-blue
|
|
26
|
+
spec:
|
|
27
|
+
accessModes:
|
|
28
|
+
- ReadWriteOnce
|
|
29
|
+
storageClassName: manual
|
|
30
|
+
volumeName: pv-public-dd-cyberia-dd-cyberia-development-blue
|
|
31
|
+
resources:
|
|
32
|
+
requests:
|
|
33
|
+
storage: 5Gi
|
|
34
|
+
---
|
|
35
|
+
apiVersion: v1
|
|
36
|
+
kind: PersistentVolume
|
|
37
|
+
metadata:
|
|
38
|
+
name: pv-public-dd-cyberia-underpost-dd-cyberia-development-blue
|
|
39
|
+
spec:
|
|
40
|
+
capacity:
|
|
41
|
+
storage: 5Gi
|
|
42
|
+
accessModes:
|
|
43
|
+
- ReadWriteOnce
|
|
44
|
+
persistentVolumeReclaimPolicy: Retain
|
|
45
|
+
storageClassName: manual
|
|
46
|
+
claimRef:
|
|
47
|
+
apiVersion: v1
|
|
48
|
+
kind: PersistentVolumeClaim
|
|
49
|
+
name: pvc-public-dd-cyberia-underpost-dd-cyberia-development-blue
|
|
50
|
+
namespace: default
|
|
51
|
+
hostPath:
|
|
52
|
+
path: /home/dd/engine/volume/pv-public-dd-cyberia-underpost-dd-cyberia-development-blue
|
|
53
|
+
type: DirectoryOrCreate
|
|
54
|
+
---
|
|
55
|
+
apiVersion: v1
|
|
56
|
+
kind: PersistentVolumeClaim
|
|
57
|
+
metadata:
|
|
58
|
+
name: pvc-public-dd-cyberia-underpost-dd-cyberia-development-blue
|
|
59
|
+
spec:
|
|
60
|
+
accessModes:
|
|
61
|
+
- ReadWriteOnce
|
|
62
|
+
storageClassName: manual
|
|
63
|
+
volumeName: pv-public-dd-cyberia-underpost-dd-cyberia-development-blue
|
|
64
|
+
resources:
|
|
65
|
+
requests:
|
|
66
|
+
storage: 5Gi
|
|
67
|
+
---
|
|
68
|
+
apiVersion: v1
|
|
69
|
+
kind: PersistentVolume
|
|
70
|
+
metadata:
|
|
71
|
+
name: pv-public-dd-cyberia-dd-cyberia-development-green
|
|
72
|
+
spec:
|
|
73
|
+
capacity:
|
|
74
|
+
storage: 5Gi
|
|
75
|
+
accessModes:
|
|
76
|
+
- ReadWriteOnce
|
|
77
|
+
persistentVolumeReclaimPolicy: Retain
|
|
78
|
+
storageClassName: manual
|
|
79
|
+
claimRef:
|
|
80
|
+
apiVersion: v1
|
|
81
|
+
kind: PersistentVolumeClaim
|
|
82
|
+
name: pvc-public-dd-cyberia-dd-cyberia-development-green
|
|
83
|
+
namespace: default
|
|
84
|
+
hostPath:
|
|
85
|
+
path: /home/dd/engine/volume/pv-public-dd-cyberia-dd-cyberia-development-green
|
|
86
|
+
type: DirectoryOrCreate
|
|
87
|
+
---
|
|
88
|
+
apiVersion: v1
|
|
89
|
+
kind: PersistentVolumeClaim
|
|
90
|
+
metadata:
|
|
91
|
+
name: pvc-public-dd-cyberia-dd-cyberia-development-green
|
|
92
|
+
spec:
|
|
93
|
+
accessModes:
|
|
94
|
+
- ReadWriteOnce
|
|
95
|
+
storageClassName: manual
|
|
96
|
+
volumeName: pv-public-dd-cyberia-dd-cyberia-development-green
|
|
97
|
+
resources:
|
|
98
|
+
requests:
|
|
99
|
+
storage: 5Gi
|
|
100
|
+
---
|
|
101
|
+
apiVersion: v1
|
|
102
|
+
kind: PersistentVolume
|
|
103
|
+
metadata:
|
|
104
|
+
name: pv-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
105
|
+
spec:
|
|
106
|
+
capacity:
|
|
107
|
+
storage: 5Gi
|
|
108
|
+
accessModes:
|
|
109
|
+
- ReadWriteOnce
|
|
110
|
+
persistentVolumeReclaimPolicy: Retain
|
|
111
|
+
storageClassName: manual
|
|
112
|
+
claimRef:
|
|
113
|
+
apiVersion: v1
|
|
114
|
+
kind: PersistentVolumeClaim
|
|
115
|
+
name: pvc-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
116
|
+
namespace: default
|
|
117
|
+
hostPath:
|
|
118
|
+
path: /home/dd/engine/volume/pv-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
119
|
+
type: DirectoryOrCreate
|
|
120
|
+
---
|
|
121
|
+
apiVersion: v1
|
|
122
|
+
kind: PersistentVolumeClaim
|
|
123
|
+
metadata:
|
|
124
|
+
name: pvc-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
125
|
+
spec:
|
|
126
|
+
accessModes:
|
|
127
|
+
- ReadWriteOnce
|
|
128
|
+
storageClassName: manual
|
|
129
|
+
volumeName: pv-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
130
|
+
resources:
|
|
131
|
+
requests:
|
|
132
|
+
storage: 5Gi
|
package/scripts/ports-ls.sh
CHANGED
|
@@ -3,6 +3,8 @@ set -euo pipefail
|
|
|
3
3
|
|
|
4
4
|
BASHRC="$HOME/.bashrc"
|
|
5
5
|
|
|
6
|
+
sudo dnf install -y iproute lsof nmap-ncat net-tools procps-ng
|
|
7
|
+
|
|
6
8
|
# Check whether a "ports" function is already defined
|
|
7
9
|
if grep -Eq '^\s*(function\s+ports|ports\s*\(\))' "$BASHRC"; then
|
|
8
10
|
echo "The 'ports' function already exists in $BASHRC. Nothing was changed."
|
|
@@ -51,7 +51,9 @@ const AtlasSpriteSheetController = {
|
|
|
51
51
|
},
|
|
52
52
|
get: async (req, res, options) => {
|
|
53
53
|
try {
|
|
54
|
-
|
|
54
|
+
if (req && req.headers && req.headers.origin) {
|
|
55
|
+
res.set('Access-Control-Allow-Origin', req.headers.origin);
|
|
56
|
+
} else res.setHeader('Access-Control-Allow-Origin', '*');
|
|
55
57
|
res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
|
|
56
58
|
const { page, limit } = req.query;
|
|
57
59
|
const result = await AtlasSpriteSheetService.get(
|
|
@@ -118,11 +118,10 @@ AtlasSpriteSheetSchema.index({ 'metadata.itemKey': 1 }, { unique: true });
|
|
|
118
118
|
AtlasSpriteSheetSchema.index({ fileId: 1 });
|
|
119
119
|
|
|
120
120
|
// Pre-save validation
|
|
121
|
-
AtlasSpriteSheetSchema.pre('save', function (
|
|
121
|
+
AtlasSpriteSheetSchema.pre('save', function () {
|
|
122
122
|
if (!this.fileId || !this.metadata) {
|
|
123
123
|
throw new Error('AtlasSpriteSheet missing required fields: fileId or metadata');
|
|
124
124
|
}
|
|
125
|
-
next();
|
|
126
125
|
});
|
|
127
126
|
|
|
128
127
|
const AtlasSpriteSheetModel = model('AtlasSpriteSheet', AtlasSpriteSheetSchema);
|
|
@@ -497,7 +497,7 @@ const DocumentService = {
|
|
|
497
497
|
req.body.isPublic = isPublic;
|
|
498
498
|
req.body.tags = tags;
|
|
499
499
|
|
|
500
|
-
return await Document.findByIdAndUpdate(req.params.id, req.body, {
|
|
500
|
+
return await Document.findByIdAndUpdate(req.params.id, req.body, { returnDocument: 'after' });
|
|
501
501
|
}
|
|
502
502
|
}
|
|
503
503
|
},
|
|
@@ -19,7 +19,9 @@ const FileController = {
|
|
|
19
19
|
},
|
|
20
20
|
get: async (req, res, options) => {
|
|
21
21
|
try {
|
|
22
|
-
|
|
22
|
+
if (req && req.headers && req.headers.origin) {
|
|
23
|
+
res.set('Access-Control-Allow-Origin', req.headers.origin);
|
|
24
|
+
} else res.setHeader('Access-Control-Allow-Origin', '*');
|
|
23
25
|
res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
|
|
24
26
|
const result = await FileService.get(req, res, options);
|
|
25
27
|
if (result instanceof Buffer) {
|
|
@@ -387,12 +387,35 @@ const FileService = {
|
|
|
387
387
|
if (doc.isPublic) return true;
|
|
388
388
|
|
|
389
389
|
// Otherwise, user must be authenticated and own the document
|
|
390
|
+
// Try bearer token first
|
|
390
391
|
const token = getBearerToken(req);
|
|
391
|
-
if (
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
392
|
+
if (token) {
|
|
393
|
+
try {
|
|
394
|
+
const payload = jwtVerify(token, options);
|
|
395
|
+
const user = await User.findOne({ _id: payload._id }).lean();
|
|
396
|
+
if (user && String(doc.userId) === String(user._id)) return true;
|
|
397
|
+
} catch (bearerErr) {
|
|
398
|
+
logger.warn('Bearer token verification failed, trying cookie session fallback:', bearerErr.message);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
// Fallback: check cookie-based session (refreshToken cookie)
|
|
403
|
+
const refreshToken = req.cookies?.refreshToken;
|
|
404
|
+
if (refreshToken) {
|
|
405
|
+
try {
|
|
406
|
+
const user = await User.findOne({ 'activeSessions.tokenHash': refreshToken }).lean();
|
|
407
|
+
if (user) {
|
|
408
|
+
const session = user.activeSessions.find((s) => s.tokenHash === refreshToken);
|
|
409
|
+
if (session && (!session.expiresAt || session.expiresAt >= new Date())) {
|
|
410
|
+
return String(doc.userId) === String(user._id);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
} catch (cookieErr) {
|
|
414
|
+
logger.warn('Cookie session verification failed:', cookieErr.message);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
return false;
|
|
396
419
|
} catch (err) {
|
|
397
420
|
console.log(err);
|
|
398
421
|
logger.error('Authorization check failed:', err);
|
|
@@ -24,7 +24,7 @@ const createPinRecord = async ({ cid, userId, options }) => {
|
|
|
24
24
|
const record = await Ipfs.findOneAndUpdate(
|
|
25
25
|
{ cid, userId },
|
|
26
26
|
{ cid, userId },
|
|
27
|
-
{ upsert: true,
|
|
27
|
+
{ upsert: true, returnDocument: 'after', setDefaultsOnInsert: true },
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
logger.info(`IPFS pin record upserted – CID: ${cid}, userId: ${userId}`);
|
|
@@ -107,7 +107,7 @@ const IpfsService = {
|
|
|
107
107
|
put: async (req, res, options) => {
|
|
108
108
|
/** @type {import('./ipfs.model.js').IpfsModel} */
|
|
109
109
|
const Ipfs = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Ipfs;
|
|
110
|
-
return await Ipfs.findByIdAndUpdate(req.params.id, req.body, {
|
|
110
|
+
return await Ipfs.findByIdAndUpdate(req.params.id, req.body, { returnDocument: 'after' });
|
|
111
111
|
},
|
|
112
112
|
|
|
113
113
|
delete: async (req, res, options) => {
|
|
@@ -21,7 +21,9 @@ const ObjectLayerController = {
|
|
|
21
21
|
},
|
|
22
22
|
get: async (req, res, options) => {
|
|
23
23
|
try {
|
|
24
|
-
|
|
24
|
+
if (req && req.headers && req.headers.origin) {
|
|
25
|
+
res.set('Access-Control-Allow-Origin', req.headers.origin);
|
|
26
|
+
} else res.setHeader('Access-Control-Allow-Origin', '*');
|
|
25
27
|
res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
|
|
26
28
|
const result = await ObjectLayerService.get(req, res, options);
|
|
27
29
|
return res.status(200).json({
|
|
@@ -39,7 +41,9 @@ const ObjectLayerController = {
|
|
|
39
41
|
generateWebp: async (req, res, options) => {
|
|
40
42
|
try {
|
|
41
43
|
const result = await ObjectLayerService.generateWebp(req, res, options);
|
|
42
|
-
|
|
44
|
+
if (req && req.headers && req.headers.origin) {
|
|
45
|
+
res.set('Access-Control-Allow-Origin', req.headers.origin);
|
|
46
|
+
} else res.setHeader('Access-Control-Allow-Origin', '*');
|
|
43
47
|
res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
|
|
44
48
|
res.setHeader('Content-Type', 'image/webp');
|
|
45
49
|
res.setHeader(
|
|
@@ -49,18 +49,22 @@ const ItemSchema = new Schema(
|
|
|
49
49
|
/**
|
|
50
50
|
* @typedef {Object} Ledger
|
|
51
51
|
* Blockchain protocol metadata linking the visual object-layer prefab to its economic reality.
|
|
52
|
-
*
|
|
53
|
-
*
|
|
52
|
+
* Uses ERC-1155 as the single multi-token standard for both fungible (CryptoKoyn) and
|
|
53
|
+
* non-fungible / semi-fungible Object Layer items within one contract.
|
|
54
|
+
* @property {string} type - The token standard or off-chain designation (ERC1155, OFF_CHAIN).
|
|
55
|
+
* @property {string} address - The Solidity smart contract address (ObjectLayerToken).
|
|
56
|
+
* @property {string} tokenId - The uint256 ERC-1155 token ID (derived from keccak256 of the item identifier).
|
|
54
57
|
* @memberof CyberiaObjectLayerModel
|
|
55
58
|
*/
|
|
56
59
|
const LedgerSchema = new Schema(
|
|
57
60
|
{
|
|
58
61
|
type: {
|
|
59
62
|
type: String,
|
|
60
|
-
enum: ['
|
|
63
|
+
enum: ['ERC1155', 'OFF_CHAIN'],
|
|
61
64
|
required: true,
|
|
62
65
|
},
|
|
63
|
-
address: { type: String }, //
|
|
66
|
+
address: { type: String }, // ObjectLayerToken ERC-1155 contract address
|
|
67
|
+
tokenId: { type: String, default: '' }, // uint256 ERC-1155 token ID (hex or decimal string)
|
|
64
68
|
},
|
|
65
69
|
{ _id: false },
|
|
66
70
|
);
|
|
@@ -96,8 +100,9 @@ const RenderSchema = new Schema(
|
|
|
96
100
|
* @property {string} data.item.description - Description of the item
|
|
97
101
|
* @property {boolean} data.item.activable - Whether the item can be activated
|
|
98
102
|
* @property {Object} data.ledger - Blockchain protocol metadata linking the visual object-layer prefab to its economic reality
|
|
99
|
-
* @property {string} data.ledger.type - The token standard or off-chain designation (
|
|
100
|
-
* @property {string} data.ledger.address - The
|
|
103
|
+
* @property {string} data.ledger.type - The token standard or off-chain designation (ERC1155, OFF_CHAIN).
|
|
104
|
+
* @property {string} data.ledger.address - The ObjectLayerToken ERC-1155 smart contract address.
|
|
105
|
+
* @property {string} data.ledger.tokenId - The uint256 ERC-1155 token ID (hex or decimal string).
|
|
101
106
|
* @property {Object} data.render - IPFS content identifiers for the consolidated atlas sprite sheet
|
|
102
107
|
* @property {string} data.render.cid - IPFS Content Identifier for the consolidated atlas sprite sheet PNG
|
|
103
108
|
* @property {string} data.render.metadataCid - IPFS Content Identifier for the atlas sprite sheet metadata JSON (fast-json-stable-stringify)
|
|
@@ -155,13 +160,12 @@ ObjectLayerSchema.index(
|
|
|
155
160
|
);
|
|
156
161
|
|
|
157
162
|
// Pre-save hook to ensure data consistency
|
|
158
|
-
ObjectLayerSchema.pre('save', function (
|
|
163
|
+
ObjectLayerSchema.pre('save', function () {
|
|
159
164
|
// Ensure all required fields are present
|
|
160
165
|
if (!this.data.stats || !this.data.item || !this.sha256) {
|
|
161
166
|
throw new Error('Missing required fields');
|
|
162
167
|
}
|
|
163
168
|
// cid (object layer data JSON) and data.render.cid (atlas PNG) are optional – default to ''
|
|
164
|
-
next();
|
|
165
169
|
});
|
|
166
170
|
|
|
167
171
|
// Create and export the model
|