From 6b7c88fd891714ad9b0444376fa5a3df59391764 Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Wed, 10 May 2023 17:21:56 +0200 Subject: [PATCH 01/11] Use another reverse proxy for plugins --- tdrive/backend/node/package.json | 2 +- .../src/services/applications-api/index.ts | 17 ++-- tdrive/backend/node/yarn.lock | 81 +++++++++++++++---- 3 files changed, 72 insertions(+), 28 deletions(-) diff --git a/tdrive/backend/node/package.json b/tdrive/backend/node/package.json index 2a448719..70573b50 100644 --- a/tdrive/backend/node/package.json +++ b/tdrive/backend/node/package.json @@ -118,6 +118,7 @@ "@elastic/elasticsearch": "7", "@fastify/caching": "^7.0.0", "@fastify/formbody": "^6.0.0", + "@fastify/http-proxy": "^9.1.0", "@fastify/static": "^5.0.1", "@ffprobe-installer/ffprobe": "^1.4.1", "@sentry/node": "^6.19.7", @@ -140,7 +141,6 @@ "deep-object-diff": "^1.1.0", "emoji-name-map": "^1.2.9", "eta": "^1.12.3", - "fast-proxy": "^2.1.0", "fastify": "^3.29.4", "fastify-cors": "^4.1.0", "fastify-formbody": "^5.0.0", diff --git a/tdrive/backend/node/src/services/applications-api/index.ts b/tdrive/backend/node/src/services/applications-api/index.ts index 8fa658e7..57fffa24 100644 --- a/tdrive/backend/node/src/services/applications-api/index.ts +++ b/tdrive/backend/node/src/services/applications-api/index.ts @@ -1,5 +1,5 @@ import config from "config"; -import FastProxy from "fast-proxy"; +import FastProxy from "@fastify/http-proxy"; import { Prefix, TdriveService } from "../../core/platform/framework"; import WebServerAPI from "../../core/platform/services/webserver/provider"; import Application from "../applications/entities/application"; @@ -20,16 +20,13 @@ export default class ApplicationsApiService extends TdriveService { //Redirect requests from /plugins/* to the plugin server (if installed) const apps = config.get("applications.plugins") || []; for (const app of apps) { - const domain = app.internal_domain; - const prefix = app.external_prefix; + const domain = app.internal_domain.replace(/(\/$|^\/)/gm, ""); + const prefix = app.external_prefix.replace(/(\/$|^\/)/gm, ""); if (domain && prefix) { - const { proxy, close } = FastProxy({ - base: domain, - }); - console.log("Listening at ", "/" + prefix.replace(/(\/$|^\/)/gm, "") + "/*"); - fastify.addHook("onClose", close); - fastify.all("/" + prefix.replace(/(\/$|^\/)/gm, "") + "/*", (req, rep) => { - proxy(req.raw, rep.raw, req.url, {}); + console.log("Listening at ", "/" + prefix + "/*"); + fastify.register(FastProxy, { + upstream: domain + "/" + prefix, + prefix: "/" + prefix, }); } } diff --git a/tdrive/backend/node/yarn.lock b/tdrive/backend/node/yarn.lock index bc3a4165..3c937233 100644 --- a/tdrive/backend/node/yarn.lock +++ b/tdrive/backend/node/yarn.lock @@ -1105,6 +1105,11 @@ resolved "https://registry.npmjs.org/@fastify/error/-/error-2.0.0.tgz" integrity sha512-wI3fpfDT0t7p8E6dA2eTECzzOd+bZsZCJ2Hcv+Onn2b7ZwK3RwD27uW2QDaMtQhAfWQQP+WNK7nKf0twLsBf9w== +"@fastify/error@^3.0.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.2.0.tgz#9010e0acfe07965f5fc7d2b367f58f042d0f4106" + integrity sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ== + "@fastify/formbody@^6.0.0": version "6.0.1" resolved "https://registry.npmjs.org/@fastify/formbody/-/formbody-6.0.1.tgz" @@ -1112,6 +1117,28 @@ dependencies: fastify-plugin "^3.0.0" +"@fastify/http-proxy@^9.1.0": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@fastify/http-proxy/-/http-proxy-9.1.0.tgz#594849d9778e342da92c919c4cc8b8ac9fe5eeb3" + integrity sha512-vgHCTDKOqLB437zQJiLWFFnsrYfFZ6Lfwu/xXQoKqRUKIPDt+xG6LBRtf8s5MNqfFVoTE7kw1U/0qdRGDsMp4Q== + dependencies: + "@fastify/reply-from" "^9.0.0" + fastify-plugin "^4.5.0" + ws "^8.4.2" + +"@fastify/reply-from@^9.0.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@fastify/reply-from/-/reply-from-9.0.1.tgz#aa918519c2f9c1a7399ddfa6b6437303af51d2a7" + integrity sha512-q9vFNUiXZTY1x8omDPe59os2MYq+3y7KgO/kZoXpZlnud+45Nd8Ot/svEvrUATzjkizIggfS4K8LR9zXDyZZKg== + dependencies: + "@fastify/error" "^3.0.0" + end-of-stream "^1.4.4" + fast-querystring "^1.0.0" + fastify-plugin "^4.0.0" + pump "^3.0.0" + tiny-lru "^10.0.0" + undici "^5.19.1" + "@fastify/static@^5.0.1": version "5.0.2" resolved "https://registry.npmjs.org/@fastify/static/-/static-5.0.2.tgz" @@ -3075,6 +3102,13 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -4696,16 +4730,12 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-proxy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-proxy/-/fast-proxy-2.1.0.tgz#f4544e1db5fa72cb584a6a28497717cc88c561a6" - integrity sha512-ihCPWH8j4pfSIULx6evT39RzZjCkGScCVn2BRyJElDu3v96NCWjPJPX8Olnzxv30mMQUEEijonTKroqCVpXjUQ== +fast-querystring@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.1.tgz#f4c56ef56b1a954880cfd8c01b83f9e1a3d3fda2" + integrity sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q== dependencies: - end-of-stream "^1.4.4" - pump "^3.0.0" - semver "^7.3.5" - tiny-lru "^7.0.6" - undici "^3.3.6" + fast-decode-uri-component "^1.0.1" fast-redact@^3.0.0: version "3.1.1" @@ -4804,6 +4834,11 @@ fastify-plugin@^3.0.0, fastify-plugin@^3.0.1: resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-3.0.1.tgz#79e84c29f401020f38b524f59f2402103fd21ed2" integrity sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA== +fastify-plugin@^4.0.0, fastify-plugin@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.0.tgz#8b853923a0bba6ab6921bb8f35b81224e6988d91" + integrity sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg== + fastify-sensible@=3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/fastify-sensible/-/fastify-sensible-3.0.1.tgz#9577ecb1c499b72b80ffabf6fae3b2d2b26f2dbc" @@ -9313,6 +9348,11 @@ stream-wormhole@^1.1.0: resolved "https://registry.yarnpkg.com/stream-wormhole/-/stream-wormhole-1.1.0.tgz#300aff46ced553cfec642a05251885417693c33d" integrity sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew== +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + string-argv@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz#c5b7bc03fb2b11983ba3a72333dd0559e77e4738" @@ -9576,10 +9616,10 @@ through@2, through@~2.3, through@~2.3.1: resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -tiny-lru@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-7.0.6.tgz#b0c3cdede1e5882aa2d1ae21cb2ceccf2a331f24" - integrity sha512-zNYO0Kvgn5rXzWpL0y3RS09sMK67eGaQj9805jlK9G6pSadfriTczzLHFXa/xcW4mIRfmlB9HyQ/+SgL0V1uow== +tiny-lru@^10.0.0: + version "10.4.1" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-10.4.1.tgz#dec67a62115a4cb31d2065b8116d010daac362fe" + integrity sha512-buLIzw7ppqymuO3pt10jHk/6QMeZLbidihMQU+N6sogF6EnBzG0qtDWIHuhw1x3dyNgVL/KTGIZsTK81+yCzLg== tiny-lru@^8.0.1: version "8.0.2" @@ -9858,10 +9898,12 @@ undefsafe@^2.0.2: resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== -undici@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/undici/-/undici-3.3.6.tgz#06d3b97b7eeff46bce6f8a71079c09f64dd59dc1" - integrity sha512-/j3YTZ5AobMB4ZrTY72mzM54uFUX32v0R/JRW9G2vOyF1uSKYAx+WT8dMsAcRS13TOFISv094TxIyWYk+WEPsA== +undici@^5.19.1: + version "5.22.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.0.tgz#5e205d82a5aecc003fc4388ccd3d2c6e8674a0ad" + integrity sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA== + dependencies: + busboy "^1.6.0" unfetch@^4.2.0: version "4.2.0" @@ -10258,6 +10300,11 @@ ws@^7.4.2, ws@^7.4.6: resolved "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz" integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== +ws@^8.4.2: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + ws@~7.4.2: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" From 521f9d6684dc4c84cf0bee1ad3f586d2195190d4 Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Wed, 10 May 2023 17:30:49 +0200 Subject: [PATCH 02/11] Fix package.json --- tdrive/backend/node/package.json | 2 +- tdrive/backend/node/yarn.lock | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tdrive/backend/node/package.json b/tdrive/backend/node/package.json index d81d6c8d..51cb68fd 100644 --- a/tdrive/backend/node/package.json +++ b/tdrive/backend/node/package.json @@ -79,7 +79,7 @@ "@types/lodash": "^4.14.165", "@types/minio": "^7.0.7", "@types/mongodb": "^4.0.7", - "@types/node": "^14.11.2", + "@types/node": "^20.1.2", "@types/node-cron": "^3.0.0", "@types/node-fetch": "^2.5.12", "@types/node-uuid": "^0.0.28", diff --git a/tdrive/backend/node/yarn.lock b/tdrive/backend/node/yarn.lock index 3c937233..79303f8b 100644 --- a/tdrive/backend/node/yarn.lock +++ b/tdrive/backend/node/yarn.lock @@ -1994,7 +1994,7 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=8", "@types/node@^14.0.1", "@types/node@^14.11.2": +"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=8", "@types/node@^14.0.1": version "14.18.21" resolved "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz" integrity sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q== @@ -2004,6 +2004,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== +"@types/node@^20.1.2": + version "20.1.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.2.tgz#8fd63447e3f99aba6c3168fd2ec4580d5b97886f" + integrity sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g== + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" From 175a92cb7d436a4b0e534a14d17afcbd3587d77c Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Wed, 10 May 2023 17:51:38 +0200 Subject: [PATCH 03/11] Change import fast-proxy to require --- tdrive/backend/node/src/services/applications-api/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tdrive/backend/node/src/services/applications-api/index.ts b/tdrive/backend/node/src/services/applications-api/index.ts index 57fffa24..e0b2ccd0 100644 --- a/tdrive/backend/node/src/services/applications-api/index.ts +++ b/tdrive/backend/node/src/services/applications-api/index.ts @@ -1,5 +1,4 @@ import config from "config"; -import FastProxy from "@fastify/http-proxy"; import { Prefix, TdriveService } from "../../core/platform/framework"; import WebServerAPI from "../../core/platform/services/webserver/provider"; import Application from "../applications/entities/application"; @@ -24,7 +23,7 @@ export default class ApplicationsApiService extends TdriveService { const prefix = app.external_prefix.replace(/(\/$|^\/)/gm, ""); if (domain && prefix) { console.log("Listening at ", "/" + prefix + "/*"); - fastify.register(FastProxy, { + fastify.register(require("@fastify/http-proxy"), { upstream: domain + "/" + prefix, prefix: "/" + prefix, }); From f9be7ba1b14c81d06153989fab6f67bba4909f4a Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Thu, 11 May 2023 10:11:34 +0200 Subject: [PATCH 04/11] Fix linter --- tdrive/backend/node/src/services/applications-api/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tdrive/backend/node/src/services/applications-api/index.ts b/tdrive/backend/node/src/services/applications-api/index.ts index e0b2ccd0..d9dfd724 100644 --- a/tdrive/backend/node/src/services/applications-api/index.ts +++ b/tdrive/backend/node/src/services/applications-api/index.ts @@ -3,6 +3,7 @@ import { Prefix, TdriveService } from "../../core/platform/framework"; import WebServerAPI from "../../core/platform/services/webserver/provider"; import Application from "../applications/entities/application"; import web from "./web/index"; +const httpProxy = require("@fastify/http-proxy"); @Prefix("/api") export default class ApplicationsApiService extends TdriveService { @@ -23,7 +24,7 @@ export default class ApplicationsApiService extends TdriveService { const prefix = app.external_prefix.replace(/(\/$|^\/)/gm, ""); if (domain && prefix) { console.log("Listening at ", "/" + prefix + "/*"); - fastify.register(require("@fastify/http-proxy"), { + fastify.register(httpProxy, { upstream: domain + "/" + prefix, prefix: "/" + prefix, }); From 2cd3a755fdedab4ddb22fbe646ef631a8603c336 Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Thu, 11 May 2023 10:12:19 +0200 Subject: [PATCH 05/11] Also try with an import --- tdrive/backend/node/src/services/applications-api/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tdrive/backend/node/src/services/applications-api/index.ts b/tdrive/backend/node/src/services/applications-api/index.ts index d9dfd724..967c51d2 100644 --- a/tdrive/backend/node/src/services/applications-api/index.ts +++ b/tdrive/backend/node/src/services/applications-api/index.ts @@ -3,7 +3,7 @@ import { Prefix, TdriveService } from "../../core/platform/framework"; import WebServerAPI from "../../core/platform/services/webserver/provider"; import Application from "../applications/entities/application"; import web from "./web/index"; -const httpProxy = require("@fastify/http-proxy"); +import httpProxy from "@fastify/http-proxy"; @Prefix("/api") export default class ApplicationsApiService extends TdriveService { From 5ee4d036d776fb4b066cb90c87bf98c9eda17db7 Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Thu, 11 May 2023 10:33:16 +0200 Subject: [PATCH 06/11] Try another version of types/node --- tdrive/backend/node/package.json | 2 +- tdrive/backend/node/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tdrive/backend/node/package.json b/tdrive/backend/node/package.json index 51cb68fd..42d07abd 100644 --- a/tdrive/backend/node/package.json +++ b/tdrive/backend/node/package.json @@ -79,7 +79,7 @@ "@types/lodash": "^4.14.165", "@types/minio": "^7.0.7", "@types/mongodb": "^4.0.7", - "@types/node": "^20.1.2", + "@types/node": "18", "@types/node-cron": "^3.0.0", "@types/node-fetch": "^2.5.12", "@types/node-uuid": "^0.0.28", diff --git a/tdrive/backend/node/yarn.lock b/tdrive/backend/node/yarn.lock index 79303f8b..43013e89 100644 --- a/tdrive/backend/node/yarn.lock +++ b/tdrive/backend/node/yarn.lock @@ -1999,16 +1999,16 @@ resolved "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz" integrity sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q== +"@types/node@18": + version "18.16.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.7.tgz#86d0ba2541f808cb78d4dc5d3e40242a349d6db8" + integrity sha512-MFg7ua/bRtnA1hYE3pVyWxGd/r7aMqjNOdHvlSsXV3n8iaeGKkOaPzpJh6/ovf4bEXWcojkeMJpTsq3mzXW4IQ== + "@types/node@^15.0.1": version "15.14.9" resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== -"@types/node@^20.1.2": - version "20.1.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.2.tgz#8fd63447e3f99aba6c3168fd2ec4580d5b97886f" - integrity sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g== - "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" From cf3012ce7229d93ce9fcbba24d0f7f66c734109b Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Thu, 11 May 2023 10:50:06 +0200 Subject: [PATCH 07/11] Try version 16 --- tdrive/backend/node/package.json | 2 +- tdrive/backend/node/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tdrive/backend/node/package.json b/tdrive/backend/node/package.json index 42d07abd..5b8cd344 100644 --- a/tdrive/backend/node/package.json +++ b/tdrive/backend/node/package.json @@ -79,7 +79,7 @@ "@types/lodash": "^4.14.165", "@types/minio": "^7.0.7", "@types/mongodb": "^4.0.7", - "@types/node": "18", + "@types/node": "16", "@types/node-cron": "^3.0.0", "@types/node-fetch": "^2.5.12", "@types/node-uuid": "^0.0.28", diff --git a/tdrive/backend/node/yarn.lock b/tdrive/backend/node/yarn.lock index 43013e89..73e08e02 100644 --- a/tdrive/backend/node/yarn.lock +++ b/tdrive/backend/node/yarn.lock @@ -1999,10 +1999,10 @@ resolved "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz" integrity sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q== -"@types/node@18": - version "18.16.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.7.tgz#86d0ba2541f808cb78d4dc5d3e40242a349d6db8" - integrity sha512-MFg7ua/bRtnA1hYE3pVyWxGd/r7aMqjNOdHvlSsXV3n8iaeGKkOaPzpJh6/ovf4bEXWcojkeMJpTsq3mzXW4IQ== +"@types/node@16": + version "16.18.28" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.28.tgz#f674e1577827c5282e5005c3fa99ea06df835c49" + integrity sha512-SNMfiPqsiPoYfmyi+2qnDO4nZyMIOCab/CW+Slcml0lhIzkOizYzWtt/A7tgB3TSitd+YJKi8fSC2Cpm/VCp7A== "@types/node@^15.0.1": version "15.14.9" From def9d1ff9d147b43822a43e5bd026624b9cc5534 Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Thu, 11 May 2023 10:53:32 +0200 Subject: [PATCH 08/11] Change proxy version to 7.1 --- tdrive/backend/node/package.json | 4 +- tdrive/backend/node/yarn.lock | 88 ++++++++++++++++---------------- 2 files changed, 45 insertions(+), 47 deletions(-) diff --git a/tdrive/backend/node/package.json b/tdrive/backend/node/package.json index 5b8cd344..2dfd9229 100644 --- a/tdrive/backend/node/package.json +++ b/tdrive/backend/node/package.json @@ -79,7 +79,7 @@ "@types/lodash": "^4.14.165", "@types/minio": "^7.0.7", "@types/mongodb": "^4.0.7", - "@types/node": "16", + "@types/node": "20", "@types/node-cron": "^3.0.0", "@types/node-fetch": "^2.5.12", "@types/node-uuid": "^0.0.28", @@ -119,7 +119,7 @@ "@elastic/elasticsearch": "7", "@fastify/caching": "^7.0.0", "@fastify/formbody": "^6.0.0", - "@fastify/http-proxy": "^9.1.0", + "@fastify/http-proxy": "7.1.0", "@fastify/static": "^5.0.1", "@ffprobe-installer/ffprobe": "^1.4.1", "@sentry/node": "^6.19.7", diff --git a/tdrive/backend/node/yarn.lock b/tdrive/backend/node/yarn.lock index 73e08e02..cf703a81 100644 --- a/tdrive/backend/node/yarn.lock +++ b/tdrive/backend/node/yarn.lock @@ -1105,11 +1105,6 @@ resolved "https://registry.npmjs.org/@fastify/error/-/error-2.0.0.tgz" integrity sha512-wI3fpfDT0t7p8E6dA2eTECzzOd+bZsZCJ2Hcv+Onn2b7ZwK3RwD27uW2QDaMtQhAfWQQP+WNK7nKf0twLsBf9w== -"@fastify/error@^3.0.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.2.0.tgz#9010e0acfe07965f5fc7d2b367f58f042d0f4106" - integrity sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ== - "@fastify/formbody@^6.0.0": version "6.0.1" resolved "https://registry.npmjs.org/@fastify/formbody/-/formbody-6.0.1.tgz" @@ -1117,27 +1112,26 @@ dependencies: fastify-plugin "^3.0.0" -"@fastify/http-proxy@^9.1.0": - version "9.1.0" - resolved "https://registry.yarnpkg.com/@fastify/http-proxy/-/http-proxy-9.1.0.tgz#594849d9778e342da92c919c4cc8b8ac9fe5eeb3" - integrity sha512-vgHCTDKOqLB437zQJiLWFFnsrYfFZ6Lfwu/xXQoKqRUKIPDt+xG6LBRtf8s5MNqfFVoTE7kw1U/0qdRGDsMp4Q== +"@fastify/http-proxy@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@fastify/http-proxy/-/http-proxy-7.1.0.tgz#96b05e757ec9ebcc9fc8590911ca38a0cc62d373" + integrity sha512-G15TPeO657N8n4mhlGvbKneZH3exiV8fjbSoJgzcgwzaEmidc+4v3Xg/loTp21palsq+hQPlzVl0eHSzDTAuKA== dependencies: - "@fastify/reply-from" "^9.0.0" - fastify-plugin "^4.5.0" + "@fastify/reply-from" "^7.0.0" ws "^8.4.2" -"@fastify/reply-from@^9.0.0": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@fastify/reply-from/-/reply-from-9.0.1.tgz#aa918519c2f9c1a7399ddfa6b6437303af51d2a7" - integrity sha512-q9vFNUiXZTY1x8omDPe59os2MYq+3y7KgO/kZoXpZlnud+45Nd8Ot/svEvrUATzjkizIggfS4K8LR9zXDyZZKg== +"@fastify/reply-from@^7.0.0": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@fastify/reply-from/-/reply-from-7.0.1.tgz#ae3798f307bfa1d14b83878cd442f5f7083fabb5" + integrity sha512-ikp6GpmEJ7AVxcDdSVE9MhpUtC9KnImQDegc5ePZ+H7QZcraIjotP7YndwT/fP8lYj2Qr1h4RtuFNU8Wdwleuw== dependencies: - "@fastify/error" "^3.0.0" end-of-stream "^1.4.4" - fast-querystring "^1.0.0" - fastify-plugin "^4.0.0" + fastify-plugin "^3.0.0" + http-errors "^2.0.0" pump "^3.0.0" - tiny-lru "^10.0.0" - undici "^5.19.1" + semver "^7.3.5" + tiny-lru "^8.0.1" + undici "^5.0.0" "@fastify/static@^5.0.1": version "5.0.2" @@ -1999,10 +1993,10 @@ resolved "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz" integrity sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q== -"@types/node@16": - version "16.18.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.28.tgz#f674e1577827c5282e5005c3fa99ea06df835c49" - integrity sha512-SNMfiPqsiPoYfmyi+2qnDO4nZyMIOCab/CW+Slcml0lhIzkOizYzWtt/A7tgB3TSitd+YJKi8fSC2Cpm/VCp7A== +"@types/node@20": + version "20.1.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.2.tgz#8fd63447e3f99aba6c3168fd2ec4580d5b97886f" + integrity sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g== "@types/node@^15.0.1": version "15.14.9" @@ -3987,6 +3981,11 @@ denque@^2.0.1: resolved "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz" integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ== +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" @@ -4735,13 +4734,6 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-querystring@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.1.tgz#f4c56ef56b1a954880cfd8c01b83f9e1a3d3fda2" - integrity sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q== - dependencies: - fast-decode-uri-component "^1.0.1" - fast-redact@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.1.tgz" @@ -4839,11 +4831,6 @@ fastify-plugin@^3.0.0, fastify-plugin@^3.0.1: resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-3.0.1.tgz#79e84c29f401020f38b524f59f2402103fd21ed2" integrity sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA== -fastify-plugin@^4.0.0, fastify-plugin@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.0.tgz#8b853923a0bba6ab6921bb8f35b81224e6988d91" - integrity sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg== - fastify-sensible@=3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/fastify-sensible/-/fastify-sensible-3.0.1.tgz#9577ecb1c499b72b80ffabf6fae3b2d2b26f2dbc" @@ -5654,6 +5641,17 @@ http-errors@1.8.1, http-errors@^1.7.3, http-errors@^1.8.0: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" +http-errors@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -9318,6 +9316,11 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" @@ -9621,11 +9624,6 @@ through@2, through@~2.3, through@~2.3.1: resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -tiny-lru@^10.0.0: - version "10.4.1" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-10.4.1.tgz#dec67a62115a4cb31d2065b8116d010daac362fe" - integrity sha512-buLIzw7ppqymuO3pt10jHk/6QMeZLbidihMQU+N6sogF6EnBzG0qtDWIHuhw1x3dyNgVL/KTGIZsTK81+yCzLg== - tiny-lru@^8.0.1: version "8.0.2" resolved "https://registry.npmjs.org/tiny-lru/-/tiny-lru-8.0.2.tgz" @@ -9903,10 +9901,10 @@ undefsafe@^2.0.2: resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== -undici@^5.19.1: - version "5.22.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.0.tgz#5e205d82a5aecc003fc4388ccd3d2c6e8674a0ad" - integrity sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA== +undici@^5.0.0: + version "5.22.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b" + integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw== dependencies: busboy "^1.6.0" From 56cc84c34ea8c4c6c83d5ad1f5a698ad965bd305 Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Thu, 11 May 2023 11:02:18 +0200 Subject: [PATCH 09/11] Try to fix tests --- tdrive/backend/node/package.json | 1 + tdrive/backend/node/test/e2e/utils.api.ts | 4 ++++ tdrive/backend/node/yarn.lock | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/tdrive/backend/node/package.json b/tdrive/backend/node/package.json index 2dfd9229..8fafbfa5 100644 --- a/tdrive/backend/node/package.json +++ b/tdrive/backend/node/package.json @@ -172,6 +172,7 @@ "mongodb": "^4.1.0", "multistream": "^4.1.0", "njwt": "^2.0.0", + "node-abort-controller": "^3.1.1", "node-cache": "^5.1.2", "node-cron": "^3.0.0", "node-fetch": "^2.6.7", diff --git a/tdrive/backend/node/test/e2e/utils.api.ts b/tdrive/backend/node/test/e2e/utils.api.ts index b7ef87ab..18719d63 100644 --- a/tdrive/backend/node/test/e2e/utils.api.ts +++ b/tdrive/backend/node/test/e2e/utils.api.ts @@ -1,6 +1,10 @@ import { TestPlatform } from "./setup"; import { InjectPayload, Response } from "light-my-request"; import { logger as log } from "../../src/core/platform/framework"; +import { AbortSignal } from "node-abort-controller"; + +// fix for Reference error AbortSignal in `lru-cache` +global.AbortSignal = AbortSignal as any; declare global { interface ApiResponse extends Response { diff --git a/tdrive/backend/node/yarn.lock b/tdrive/backend/node/yarn.lock index cf703a81..85955f61 100644 --- a/tdrive/backend/node/yarn.lock +++ b/tdrive/backend/node/yarn.lock @@ -7522,6 +7522,11 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" +node-abort-controller@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + node-addon-api@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" From 6a1582a6d450745ea5caae8e18fd37f989f63273 Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Thu, 11 May 2023 12:18:49 +0200 Subject: [PATCH 10/11] Move to http-proxy --- tdrive/backend/node/package.json | 3 +- .../src/services/applications-api/index.ts | 20 ++-- tdrive/backend/node/test/e2e/utils.api.ts | 4 - tdrive/backend/node/yarn.lock | 92 ++++++------------- 4 files changed, 42 insertions(+), 77 deletions(-) diff --git a/tdrive/backend/node/package.json b/tdrive/backend/node/package.json index 8fafbfa5..a67376e7 100644 --- a/tdrive/backend/node/package.json +++ b/tdrive/backend/node/package.json @@ -119,12 +119,12 @@ "@elastic/elasticsearch": "7", "@fastify/caching": "^7.0.0", "@fastify/formbody": "^6.0.0", - "@fastify/http-proxy": "7.1.0", "@fastify/static": "^5.0.1", "@ffprobe-installer/ffprobe": "^1.4.1", "@sentry/node": "^6.19.7", "@sentry/tracing": "^6.19.7", "@socket.io/redis-adapter": "^7.1.0", + "@types/http-proxy": "^1.17.11", "@types/pdf-parse": "^1.1.1", "@types/redis": "^4.0.11", "@types/sharp": "^0.29.5", @@ -161,6 +161,7 @@ "get-website-favicon": "^0.0.7", "html-metadata-parser": "^2.0.4", "html-to-text": "^8.2.1", + "http-proxy": "^1.18.1", "idtoken-verifier": "^2.2.3", "jsonwebtoken": "^8.5.1", "jwks-rsa": "^3.0.1", diff --git a/tdrive/backend/node/src/services/applications-api/index.ts b/tdrive/backend/node/src/services/applications-api/index.ts index 967c51d2..c58ea5d1 100644 --- a/tdrive/backend/node/src/services/applications-api/index.ts +++ b/tdrive/backend/node/src/services/applications-api/index.ts @@ -1,9 +1,11 @@ import config from "config"; +import httpProxy from "http-proxy"; import { Prefix, TdriveService } from "../../core/platform/framework"; import WebServerAPI from "../../core/platform/services/webserver/provider"; import Application from "../applications/entities/application"; import web from "./web/index"; -import httpProxy from "@fastify/http-proxy"; + +var proxy = httpProxy.createProxyServer({}); @Prefix("/api") export default class ApplicationsApiService extends TdriveService { @@ -23,11 +25,17 @@ export default class ApplicationsApiService extends TdriveService { const domain = app.internal_domain.replace(/(\/$|^\/)/gm, ""); const prefix = app.external_prefix.replace(/(\/$|^\/)/gm, ""); if (domain && prefix) { - console.log("Listening at ", "/" + prefix + "/*"); - fastify.register(httpProxy, { - upstream: domain + "/" + prefix, - prefix: "/" + prefix, - }); + try { + fastify.all("/" + prefix + "/*", (req, rep) => { + proxy.web(req.raw, rep.raw, { + target: domain, + }); + }); + console.log("Listening at ", "/" + prefix + "/*"); + } catch (e) { + console.log(e); + console.log("Can't listen to ", "/" + prefix + "/*"); + } } } diff --git a/tdrive/backend/node/test/e2e/utils.api.ts b/tdrive/backend/node/test/e2e/utils.api.ts index 18719d63..b7ef87ab 100644 --- a/tdrive/backend/node/test/e2e/utils.api.ts +++ b/tdrive/backend/node/test/e2e/utils.api.ts @@ -1,10 +1,6 @@ import { TestPlatform } from "./setup"; import { InjectPayload, Response } from "light-my-request"; import { logger as log } from "../../src/core/platform/framework"; -import { AbortSignal } from "node-abort-controller"; - -// fix for Reference error AbortSignal in `lru-cache` -global.AbortSignal = AbortSignal as any; declare global { interface ApiResponse extends Response { diff --git a/tdrive/backend/node/yarn.lock b/tdrive/backend/node/yarn.lock index 85955f61..dbc3d173 100644 --- a/tdrive/backend/node/yarn.lock +++ b/tdrive/backend/node/yarn.lock @@ -1112,27 +1112,6 @@ dependencies: fastify-plugin "^3.0.0" -"@fastify/http-proxy@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@fastify/http-proxy/-/http-proxy-7.1.0.tgz#96b05e757ec9ebcc9fc8590911ca38a0cc62d373" - integrity sha512-G15TPeO657N8n4mhlGvbKneZH3exiV8fjbSoJgzcgwzaEmidc+4v3Xg/loTp21palsq+hQPlzVl0eHSzDTAuKA== - dependencies: - "@fastify/reply-from" "^7.0.0" - ws "^8.4.2" - -"@fastify/reply-from@^7.0.0": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@fastify/reply-from/-/reply-from-7.0.1.tgz#ae3798f307bfa1d14b83878cd442f5f7083fabb5" - integrity sha512-ikp6GpmEJ7AVxcDdSVE9MhpUtC9KnImQDegc5ePZ+H7QZcraIjotP7YndwT/fP8lYj2Qr1h4RtuFNU8Wdwleuw== - dependencies: - end-of-stream "^1.4.4" - fastify-plugin "^3.0.0" - http-errors "^2.0.0" - pump "^3.0.0" - semver "^7.3.5" - tiny-lru "^8.0.1" - undici "^5.0.0" - "@fastify/static@^5.0.1": version "5.0.2" resolved "https://registry.npmjs.org/@fastify/static/-/static-5.0.2.tgz" @@ -1869,6 +1848,13 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== +"@types/http-proxy@^1.17.11": + version "1.17.11" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" + integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== + dependencies: + "@types/node" "*" + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" @@ -3101,13 +3087,6 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -3981,11 +3960,6 @@ denque@^2.0.1: resolved "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz" integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ== -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" @@ -4557,6 +4531,11 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -5055,6 +5034,11 @@ follow-redirects@1.5.10: dependencies: debug "=3.1.0" +follow-redirects@^1.0.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + follow-redirects@^1.14.0, follow-redirects@^1.14.4: version "1.15.1" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz" @@ -5641,17 +5625,6 @@ http-errors@1.8.1, http-errors@^1.7.3, http-errors@^1.8.0: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -http-errors@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -5661,6 +5634,15 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" @@ -9321,11 +9303,6 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" @@ -9361,11 +9338,6 @@ stream-wormhole@^1.1.0: resolved "https://registry.yarnpkg.com/stream-wormhole/-/stream-wormhole-1.1.0.tgz#300aff46ced553cfec642a05251885417693c33d" integrity sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew== -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - string-argv@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz#c5b7bc03fb2b11983ba3a72333dd0559e77e4738" @@ -9906,13 +9878,6 @@ undefsafe@^2.0.2: resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== -undici@^5.0.0: - version "5.22.1" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b" - integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw== - dependencies: - busboy "^1.6.0" - unfetch@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" @@ -10308,11 +10273,6 @@ ws@^7.4.2, ws@^7.4.6: resolved "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz" integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== -ws@^8.4.2: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - ws@~7.4.2: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" From 15e9922c21e13abf64f8d3aa25604a688fd3990e Mon Sep 17 00:00:00 2001 From: Romaric Mourgues Date: Thu, 11 May 2023 12:22:43 +0200 Subject: [PATCH 11/11] Add proxyReq listener --- .../node/src/services/applications-api/index.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tdrive/backend/node/src/services/applications-api/index.ts b/tdrive/backend/node/src/services/applications-api/index.ts index c58ea5d1..4b56ca73 100644 --- a/tdrive/backend/node/src/services/applications-api/index.ts +++ b/tdrive/backend/node/src/services/applications-api/index.ts @@ -5,7 +5,16 @@ import WebServerAPI from "../../core/platform/services/webserver/provider"; import Application from "../applications/entities/application"; import web from "./web/index"; -var proxy = httpProxy.createProxyServer({}); +const proxy = httpProxy.createProxyServer({}); +// https://github.com/http-party/node-http-proxy/issues/1471 +proxy.on("proxyReq", (proxyReq, req: any) => { + if (req.body && ["POST", "PATCH", "PUT"].includes(req.method)) { + const bodyData = JSON.stringify(req.body); + proxyReq.setHeader("content-type", "application/json"); + proxyReq.setHeader("content-length", Buffer.byteLength(bodyData)); + proxyReq.write(bodyData); + } +}); @Prefix("/api") export default class ApplicationsApiService extends TdriveService {