@platformatic/gateway 3.43.0 → 3.44.0
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/lib/proxy.js +9 -5
- package/package.json +7 -7
- package/schema.json +1 -1
package/lib/proxy.js
CHANGED
|
@@ -2,6 +2,7 @@ import httpProxy from '@fastify/http-proxy'
|
|
|
2
2
|
import { ensureLoggableError, loadModule } from '@platformatic/foundation'
|
|
3
3
|
import fp from 'fastify-plugin'
|
|
4
4
|
import { createRequire } from 'node:module'
|
|
5
|
+
import { resolve } from 'node:path'
|
|
5
6
|
import { workerData } from 'node:worker_threads'
|
|
6
7
|
import { getGlobalDispatcher } from 'undici'
|
|
7
8
|
import { initMetrics } from './metrics.js'
|
|
@@ -19,7 +20,7 @@ function isLocalApplication (application) {
|
|
|
19
20
|
return application.origin.endsWith('.plt.local')
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
async function resolveApplicationProxyParameters (application) {
|
|
23
|
+
async function resolveApplicationProxyParameters (application, root) {
|
|
23
24
|
// Get meta information from the application, if any, to eventually hook up to a TCP port
|
|
24
25
|
// Only fetch meta for local applications - remote applications won't be in the runtime
|
|
25
26
|
let allMeta = {}
|
|
@@ -47,13 +48,15 @@ async function resolveApplicationProxyParameters (application) {
|
|
|
47
48
|
internalRewriteLocationHeader = false
|
|
48
49
|
}
|
|
49
50
|
|
|
51
|
+
const require = createRequire(import.meta.filename)
|
|
52
|
+
|
|
50
53
|
if (application.proxy?.custom) {
|
|
51
|
-
const custom = await loadModule(
|
|
54
|
+
const custom = await loadModule(require, resolve(root, application.proxy.custom.path))
|
|
52
55
|
application.proxy.custom = custom
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
if (application.proxy?.ws?.hooks) {
|
|
56
|
-
const hooks = await loadModule(
|
|
59
|
+
const hooks = await loadModule(require, resolve(root, application.proxy.ws.hooks.path))
|
|
57
60
|
application.proxy.ws.hooks = hooks
|
|
58
61
|
}
|
|
59
62
|
|
|
@@ -77,6 +80,7 @@ let metrics
|
|
|
77
80
|
async function proxyPlugin (app, opts) {
|
|
78
81
|
const meta = { proxies: {} }
|
|
79
82
|
const hostnameLessProxies = []
|
|
83
|
+
const root = opts.capability?.root ?? import.meta.dirname
|
|
80
84
|
|
|
81
85
|
for (const application of opts.applications) {
|
|
82
86
|
if (!application.proxy) {
|
|
@@ -87,7 +91,7 @@ async function proxyPlugin (app, opts) {
|
|
|
87
91
|
}
|
|
88
92
|
}
|
|
89
93
|
|
|
90
|
-
const parameters = await resolveApplicationProxyParameters(application)
|
|
94
|
+
const parameters = await resolveApplicationProxyParameters(application, root)
|
|
91
95
|
const {
|
|
92
96
|
prefix,
|
|
93
97
|
origin,
|
|
@@ -181,7 +185,7 @@ async function proxyPlugin (app, opts) {
|
|
|
181
185
|
prefix,
|
|
182
186
|
rewritePrefix,
|
|
183
187
|
upstream,
|
|
184
|
-
preRewrite,
|
|
188
|
+
preRewrite: application.proxy?.custom?.preRewrite ?? preRewrite,
|
|
185
189
|
preValidation: application.proxy?.custom?.preValidation,
|
|
186
190
|
|
|
187
191
|
websocket: true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platformatic/gateway",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.44.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"typescript": "^5.5.4",
|
|
33
33
|
"why-is-node-running": "2",
|
|
34
34
|
"ws": "^8.16.0",
|
|
35
|
-
"@platformatic/db": "3.
|
|
35
|
+
"@platformatic/db": "3.44.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@fastify/error": "^4.0.0",
|
|
@@ -63,11 +63,11 @@
|
|
|
63
63
|
"rfdc": "^1.3.1",
|
|
64
64
|
"semgrator": "^0.3.0",
|
|
65
65
|
"undici": "^7.0.0",
|
|
66
|
-
"@platformatic/basic": "3.
|
|
67
|
-
"@platformatic/
|
|
68
|
-
"@platformatic/
|
|
69
|
-
"@platformatic/service": "3.
|
|
70
|
-
"@platformatic/
|
|
66
|
+
"@platformatic/basic": "3.44.0",
|
|
67
|
+
"@platformatic/foundation": "^3.44.0",
|
|
68
|
+
"@platformatic/scalar-theme": "3.44.0",
|
|
69
|
+
"@platformatic/service": "3.44.0",
|
|
70
|
+
"@platformatic/telemetry": "3.44.0"
|
|
71
71
|
},
|
|
72
72
|
"engines": {
|
|
73
73
|
"node": ">=22.19.0"
|
package/schema.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://schemas.platformatic.dev/@platformatic/gateway/3.
|
|
2
|
+
"$id": "https://schemas.platformatic.dev/@platformatic/gateway/3.44.0.json",
|
|
3
3
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
4
|
"title": "Platformatic Gateway Config",
|
|
5
5
|
"type": "object",
|