diff --git a/runtimes/nodejs/.env.template b/runtimes/nodejs/.env.template index 8bdf67929d..36ea540803 100644 --- a/runtimes/nodejs/.env.template +++ b/runtimes/nodejs/.env.template @@ -1,5 +1,9 @@ -DB_URI=mongodb://root:password123@localhost:27017/?authSource=admin&replicaSet=laf&writeConcern=majority&directConnection=true -SERVER_SALT=abcdefg1234567!@#$%^&sadfqwef&*^*#!@^ -LOG_LEVEL=trace -ENABLE_CLOUD_FUNCTION_LOG = always -FLAGS=--max_old_space_size=256 \ No newline at end of file +DB_URI=mongodb://tgvsxb:wNE5eARjN5mJUXMDlBxUpoM12qk9B4JS1JKkukSkkM1oXj1KnCaX5pGVlXQ5oe4Q@mongo.laf-system.svc.cluster.local:27017/tgvsxb?authSource=tgvsxb&replicaSet=rs0&writeConcern=majority&directConnection=true +APP_ID=tgvsxb +OSS_ACCESS_KEY=tgvsxb +OSS_ACCESS_SECRET=IlV2xfR2YEPM4ULvHhRLqBAR0sRaAGxbibtxjvbcS4uoLazV3b0NKyXSHNrcT8hi +OSS_INTERNAL_ENDPOINT=laf-minio.laf-system.svc.cluster.local:9000 +OSS_EXTERNAL_ENDPOINT=laf-minio.laf-system.svc.cluster.local:9000 +OSS_REGION=default +FLAGS=--max_old_space_size=204 +SERVER_SECRET=RJIDKwdN9psSqPILtpCC9lLmsrlvSEQUkWCjvFVd48yzJZmGl6Rq5jw0CjyuuzeO \ No newline at end of file diff --git a/runtimes/nodejs/.prettierrc b/runtimes/nodejs/.prettierrc new file mode 100644 index 0000000000..5a6fd01584 --- /dev/null +++ b/runtimes/nodejs/.prettierrc @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "semi": false +} \ No newline at end of file diff --git a/runtimes/nodejs/package-lock.json b/runtimes/nodejs/package-lock.json index 1c5f5b6ca3..eec7c40109 100644 --- a/runtimes/nodejs/package-lock.json +++ b/runtimes/nodejs/package-lock.json @@ -24,11 +24,11 @@ "fs-extra": "^9.1.0", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.21", - "log4js": "^6.3.0", + "log4js": "^6.7.1", "minio": "^7.0.28", "mongodb": "^4.1.3", "mongodb-uri": "^0.9.7", - "multer": "^1.4.4", + "multer": "^1.4.5-lts.1", "node-modules-utils": "^0.8.2", "nodemailer": "^6.6.3", "validator": "^13.7.0", @@ -2155,38 +2155,16 @@ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" }, "node_modules/busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", "dependencies": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" + "streamsearch": "^1.1.0" }, "engines": { - "node": ">=0.8.0" + "node": ">=10.16.0" } }, - "node_modules/busboy/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/busboy/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/busboy/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "node_modules/byline": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", @@ -2495,9 +2473,9 @@ } }, "node_modules/date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "engines": { "node": ">=4.0" } @@ -2615,39 +2593,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg==", - "dependencies": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/dicer/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/dicer/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/dicer/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -3088,9 +3033,9 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" }, "node_modules/follow-redirects": { "version": "1.14.8", @@ -4188,24 +4133,24 @@ "integrity": "sha512-bwKX88k2JhCV9D1vtE8+naDKlLiGrSmf8zi/Y9ivFHwbmRfA8RxS/aVJ+sIht2XOwqoNr4xUPUkGZpc1sHFEKg==" }, "node_modules/log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.7.1.tgz", + "integrity": "sha512-lzbd0Eq1HRdWM2abSD7mk6YIVY0AogGJzb/z+lqzRk+8+XJP+M6L1MS5FUSc3jjGru4dbKjEMJmqlsoYYpuivQ==", "dependencies": { - "date-format": "^4.0.3", - "debug": "^4.3.3", - "flatted": "^3.2.4", + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", "rfdc": "^1.3.0", - "streamroller": "^3.0.2" + "streamroller": "^3.1.3" }, "engines": { "node": ">=8.0" } }, "node_modules/log4js/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -4489,22 +4434,20 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", - "deprecated": "Multer 1.x is affected by CVE-2022-24434. This is fixed in v1.4.4-lts.1 which drops support for versions of Node.js before 6. Please upgrade to at least Node.js 6 and version 1.4.4-lts.1 of Multer. If you need support for older versions of Node.js, we are open to accepting patches that would fix the CVE on the main 1.x release line, whilst maintaining compatibility with Node.js 0.10.", + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", "dependencies": { "append-field": "^1.0.0", - "busboy": "^0.2.11", + "busboy": "^1.0.0", "concat-stream": "^1.5.2", "mkdirp": "^0.5.4", "object-assign": "^4.1.1", - "on-finished": "^2.3.0", "type-is": "^1.6.4", "xtend": "^4.0.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">= 6.0.0" } }, "node_modules/mysql2": { @@ -5551,22 +5494,22 @@ } }, "node_modules/streamroller": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", - "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.3.tgz", + "integrity": "sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w==", "dependencies": { - "date-format": "^4.0.3", - "debug": "^4.1.1", - "fs-extra": "^10.0.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { "node": ">=8.0" } }, "node_modules/streamroller/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -5580,16 +5523,24 @@ } }, "node_modules/streamroller/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=12" + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, "node_modules/streamroller/node_modules/ms": { @@ -5597,12 +5548,20 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/streamsearch": { + "node_modules/streamroller/node_modules/universalify": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "engines": { - "node": ">=0.8.0" + "node": ">= 4.0.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" } }, "node_modules/string_decoder": { @@ -7992,35 +7951,11 @@ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" }, "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } + "streamsearch": "^1.1.0" } }, "byline": { @@ -8276,9 +8211,9 @@ } }, "date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==" + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==" }, "dayjs": { "version": "1.10.7", @@ -8368,38 +8303,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg==", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -8760,9 +8663,9 @@ } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" }, "follow-redirects": { "version": "1.14.8", @@ -9633,21 +9536,21 @@ "integrity": "sha512-bwKX88k2JhCV9D1vtE8+naDKlLiGrSmf8zi/Y9ivFHwbmRfA8RxS/aVJ+sIht2XOwqoNr4xUPUkGZpc1sHFEKg==" }, "log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.7.1.tgz", + "integrity": "sha512-lzbd0Eq1HRdWM2abSD7mk6YIVY0AogGJzb/z+lqzRk+8+XJP+M6L1MS5FUSc3jjGru4dbKjEMJmqlsoYYpuivQ==", "requires": { - "date-format": "^4.0.3", - "debug": "^4.3.3", - "flatted": "^3.2.4", + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", "rfdc": "^1.3.0", - "streamroller": "^3.0.2" + "streamroller": "^3.1.3" }, "dependencies": { "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -9867,16 +9770,15 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", "requires": { "append-field": "^1.0.0", - "busboy": "^0.2.11", + "busboy": "^1.0.0", "concat-stream": "^1.5.2", "mkdirp": "^0.5.4", "object-assign": "^4.1.1", - "on-finished": "^2.3.0", "type-is": "^1.6.4", "xtend": "^4.0.0" } @@ -10715,44 +10617,57 @@ "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==" }, "streamroller": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", - "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.3.tgz", + "integrity": "sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w==", "requires": { - "date-format": "^4.0.3", - "debug": "^4.1.1", - "fs-extra": "^10.0.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "dependencies": { "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "requires": { "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" } } }, "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" }, "string_decoder": { "version": "1.1.1", diff --git a/runtimes/nodejs/package.json b/runtimes/nodejs/package.json index eec91ce72e..c90cd73a50 100644 --- a/runtimes/nodejs/package.json +++ b/runtimes/nodejs/package.json @@ -38,11 +38,11 @@ "fs-extra": "^9.1.0", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.21", - "log4js": "^6.3.0", + "log4js": "^6.7.1", "minio": "^7.0.28", "mongodb": "^4.1.3", "mongodb-uri": "^0.9.7", - "multer": "^1.4.4", + "multer": "^1.4.5-lts.1", "node-modules-utils": "^0.8.2", "nodemailer": "^6.6.3", "validator": "^13.7.0", diff --git a/runtimes/nodejs/src/cloud-sdk/index.ts b/runtimes/nodejs/src/cloud-sdk/index.ts index fc77b52952..a74b3fe302 100644 --- a/runtimes/nodejs/src/cloud-sdk/index.ts +++ b/runtimes/nodejs/src/cloud-sdk/index.ts @@ -6,7 +6,6 @@ import { DatabaseAgent } from "../db"; import request from "axios"; import { SchedulerInstance } from "../support/scheduler"; import { getToken, parseToken } from "../support/token"; -import { addFunctionLog } from "../support/function-log"; import { WebSocket } from "ws"; import { WebSocketAgent } from "../support/ws"; import Config from "../config"; @@ -108,7 +107,7 @@ export interface CloudSdkInterface { env: { DB_URI?: string; - SERVER_SECRET_SALT?: string; + SERVER_SECRET?: string; APP_ID?: string; OSS_ACCESS_KEY?: string; OSS_ACCESS_SECRET?: string; @@ -155,7 +154,7 @@ export function create() { appid: Config.APP_ID, env: { DB_URI: Config.DB_URI, - SERVER_SECRET_SALT: Config.SERVER_SECRET, + SERVER_SECRET: Config.SERVER_SECRET, APP_ID: process.env.APP_ID, OSS_ACCESS_KEY: process.env.APP_ID, OSS_ACCESS_SECRET: process.env.OSS_ACCESS_SECRET, @@ -194,17 +193,6 @@ async function invokeInFunction(name: string, param?: FunctionContext) { const result = await func.invoke(param); - await addFunctionLog({ - requestId: param.requestId, - method: param.method, - func_id: new mongodb.ObjectId(func.id), - func_name: name, - logs: result.logs, - time_usage: result.time_usage, - data: result.data, - error: result.error, - }); - if (result.error) { throw result.error; } diff --git a/runtimes/nodejs/src/handler/debug-func.ts b/runtimes/nodejs/src/handler/debug-func.ts index 1ae0a1dfac..4ee1ed9522 100644 --- a/runtimes/nodejs/src/handler/debug-func.ts +++ b/runtimes/nodejs/src/handler/debug-func.ts @@ -8,8 +8,6 @@ import { Request, Response } from 'express' import { FunctionContext } from '../support/function-engine' import { logger } from '../support/logger' -import { addFunctionLog } from '../support/function-log' -import { ObjectId } from 'bson' import { CloudFunction } from '../support/function-engine' /** @@ -48,25 +46,10 @@ export async function handleDebugFunction(req: Request, res: Response) { } const result = await func.invoke(ctx) - // log this execution to db - await addFunctionLog({ - requestId: requestId, - method: req.method, - func_id: new ObjectId(func.id), - func_name: func_name, - logs: result.logs, - time_usage: result.time_usage, - created_by: req['auth']?.uid, - data: result.data, - error: result.error, - debug: true - }) - if (result.error) { logger.error(requestId, `debug function ${func_name} error: `, result) return res.send({ error: 'invoke function got error: ' + result.error.toString(), - logs: result.logs, time_usage: result.time_usage, requestId }) diff --git a/runtimes/nodejs/src/handler/invoke-func.ts b/runtimes/nodejs/src/handler/invoke-func.ts index b57fc135ee..f8f3161bb3 100644 --- a/runtimes/nodejs/src/handler/invoke-func.ts +++ b/runtimes/nodejs/src/handler/invoke-func.ts @@ -7,11 +7,8 @@ import { Request, Response } from "express"; import { FunctionContext } from "../support/function-engine"; -import Config from "../config"; import { logger } from "../support/logger"; -import { addFunctionLog } from "../support/function-log"; import { CloudFunction } from "../support/function-engine"; -import { ObjectId } from "mongodb"; const DEFAULT_FUNCTION_NAME = "__default__"; @@ -58,22 +55,6 @@ export async function handleInvokeFunction(req: Request, res: Response) { }; const result = await func.invoke(ctx); - // log this execution to db - if (Config.ENABLE_CLOUD_FUNCTION_LOG === "always") { - await addFunctionLog({ - requestId: requestId, - method: req.method, - func_id: new ObjectId(func.id), - func_name: func_name, - logs: result.logs, - time_usage: result.time_usage, - created_by: req["auth"]?.uid, - data: result.data, - error: result.error, - debug: false, - }); - } - if (result.error) { logger.error( requestId, diff --git a/runtimes/nodejs/src/index.ts b/runtimes/nodejs/src/index.ts index 4a75050ac2..513dc1f2be 100644 --- a/runtimes/nodejs/src/index.ts +++ b/runtimes/nodejs/src/index.ts @@ -15,9 +15,10 @@ import { generateUUID } from './support/utils' import { WebSocketAgent } from './support/ws' import { DatabaseAgent } from './db' import { SchedulerInstance } from './support/scheduler' -// const xmlparser = require('express-xml-bodyparser') import * as xmlparser from 'express-xml-bodyparser' +import "./support/function-log" + /** * Just for generating declaration type files for `@/cloud-sdk` which used in cloud function */ diff --git a/runtimes/nodejs/src/support/function-engine/console.ts b/runtimes/nodejs/src/support/function-engine/console.ts index b2e770f125..ce6b76e489 100644 --- a/runtimes/nodejs/src/support/function-engine/console.ts +++ b/runtimes/nodejs/src/support/function-engine/console.ts @@ -1,17 +1,22 @@ import * as util from 'util' -import * as dayjs from 'dayjs' export class FunctionConsole { - private _logs: string[] = [] + requestId: string = '' - get logs() { - return this._logs + static write: (message: string, requestId: string) => void = console.log + + constructor(requestId: string) { + this.requestId = requestId } private _log(...params: any[]) { - const date = dayjs().format("YYYY/MM/DD HH:mm:ss") - const r = util.format("[%s] -", date, ...params) - this._logs.push(r) + const content = params + .map((param) => { + return util.inspect(param, { depth: 30 }) + }) + .join(' ') + + FunctionConsole.write(content, this.requestId) } debug(...params: any[]) { diff --git a/runtimes/nodejs/src/support/function-engine/engine.ts b/runtimes/nodejs/src/support/function-engine/engine.ts index fccfa18b0a..3dc4f7d4b3 100644 --- a/runtimes/nodejs/src/support/function-engine/engine.ts +++ b/runtimes/nodejs/src/support/function-engine/engine.ts @@ -4,8 +4,12 @@ import { URL } from 'node:url' import * as vm from 'vm' import { nanosecond2ms } from '../utils' import { FunctionConsole } from './console' -import { FunctionContext, FunctionResult, RequireFuncType, RuntimeContext } from './types' - +import { + FunctionContext, + FunctionResult, + RequireFuncType, + RuntimeContext, +} from './types' /** * Default require function @@ -18,7 +22,6 @@ const defaultRequireFunction: RequireFuncType = (module): any => { * Function engine */ export class FunctionEngine { - require_func: RequireFuncType constructor(require_func?: RequireFuncType) { @@ -27,9 +30,13 @@ export class FunctionEngine { /** * Execute function - * @returns + * @returns */ - async run(code: string, context: FunctionContext, options: vm.RunningScriptOptions): Promise { + async run( + code: string, + context: FunctionContext, + options: vm.RunningScriptOptions, + ): Promise { const sandbox = this.buildSandbox(context) const wrapped = this.wrap(code) const fconsole = sandbox.console @@ -48,34 +55,30 @@ export class FunctionEngine { const time_usage = nanosecond2ms(_end_time - _start_time) return { data, - logs: fconsole.logs, - time_usage + time_usage, } } catch (error) { - fconsole.log(error.message) - fconsole.log(error.stack) + fconsole.log(error.message, error.stack) const _end_time = process.hrtime.bigint() const time_usage = nanosecond2ms(_end_time - _start_time) return { error: error, - logs: fconsole.logs, - time_usage + time_usage, } } } - /** * build sandbox - * @returns + * @returns */ buildSandbox(functionContext: FunctionContext): RuntimeContext { - const fconsole = new FunctionConsole() + const fconsole = new FunctionConsole(functionContext.requestId) const _module = { - exports: {} + exports: {}, } const sandbox = { __context__: functionContext, @@ -114,4 +117,4 @@ export class FunctionEngine { ` return wrapped } -} \ No newline at end of file +} diff --git a/runtimes/nodejs/src/support/function-engine/trigger-scheduler.ts b/runtimes/nodejs/src/support/function-engine/trigger-scheduler.ts index fab3a09514..5d60258c30 100644 --- a/runtimes/nodejs/src/support/function-engine/trigger-scheduler.ts +++ b/runtimes/nodejs/src/support/function-engine/trigger-scheduler.ts @@ -6,9 +6,6 @@ import { Trigger } from "./trigger" import assert = require('node:assert') import WebSocket = require('ws') import { IncomingMessage } from 'node:http' -import { addFunctionLog } from '../function-log' -import { ObjectId } from 'mongodb' - export class TriggerScheduler { private _triggers: Trigger[] = [] @@ -73,7 +70,7 @@ export class TriggerScheduler { method: 'trigger', requestId: `trigger_${tri.id}` } - this.executeFunction(tri.func_id, param, tri) + this.executeFunction(tri.func_id, param) } } @@ -111,29 +108,16 @@ export class TriggerScheduler { socket, headers: request?.headers } - this.executeFunction(tri.func_id, param, tri) + this.executeFunction(tri.func_id, param) } } /** * Execute function */ - protected async executeFunction(func_id: string, param: FunctionContext, trigger: Trigger) { + protected async executeFunction(func_id: string, param: FunctionContext) { const func = await this.getFunctionById(func_id) - const result = await func.invoke(param) - - // save function log - result.logs.unshift(`invoked by trigger: ${trigger.name} (${trigger.id})`) - await addFunctionLog({ - requestId: `trigger_${trigger.id}`, - method: param.method, - func_id: new ObjectId(func_id), - func_name: func.name, - logs: result.logs, - time_usage: result.time_usage, - created_by: `trigger_${trigger.id}`, - trigger_id: trigger.id - }) + await func.invoke(param) } /** @@ -188,7 +172,7 @@ export class TriggerScheduler { requestId: `trigger_${tri.id}` } // execute function - this.executeFunction(tri.func_id, param, tri) + this.executeFunction(tri.func_id, param) // update last exec time tri.last_exec_time = Date.now() diff --git a/runtimes/nodejs/src/support/function-engine/types.ts b/runtimes/nodejs/src/support/function-engine/types.ts index 00d7c77575..fbb7f6c4cf 100644 --- a/runtimes/nodejs/src/support/function-engine/types.ts +++ b/runtimes/nodejs/src/support/function-engine/types.ts @@ -45,11 +45,10 @@ export interface FunctionContext { } /** - * 运行函数返回的结果对象 + * Result object returned by the running function */ export interface FunctionResult { data?: any; - logs: any[]; error?: Error; time_usage: number; } @@ -89,26 +88,6 @@ export interface ICloudFunctionData { createdBy: string; } -// export interface ICloudFunctionData { -// _id: ObjectId -// description: string -// tags: string[] -// label: string -// name: string -// triggers: any[] -// version: number -// hash: string -// status: FunctionStatus -// enableHTTP: boolean -// appid: string -// debugParams: string -// code: string -// compiledCode: string -// created_at: Date -// updated_at: Date -// created_by: any -// } - /** Object containing file metadata and access information. */ interface File { /** Name of the form field associated with this file. */ diff --git a/runtimes/nodejs/src/support/function-log.ts b/runtimes/nodejs/src/support/function-log.ts index 70de1251e2..47d90c0ac3 100644 --- a/runtimes/nodejs/src/support/function-log.ts +++ b/runtimes/nodejs/src/support/function-log.ts @@ -1,49 +1,32 @@ - /* * @Author: Maslow * @Date: 2021-07-30 10:30:29 * @LastEditTime: 2022-02-03 00:58:33 - * @Description: + * @Description: */ -import { Constants } from "../constants" -import { DatabaseAgent } from "../db" -import { ObjectId } from 'mongodb' - +import { Constants } from '../constants' +import { DatabaseAgent } from '../db' +import { FunctionConsole } from './function-engine' -export interface CloudFunctionLogStruct { - requestId: string - method: string - func_id: ObjectId - trigger_id?: string - func_name: string - logs: string[] - time_usage: number - data?: any - error?: Error - debug?: boolean - created_at?: Date - created_by?: any +export interface IFunctionLog { + request_id: string + data: string + created_at: Date } -/** - * Add function execution log - * @param data - * @returns - */ -export async function addFunctionLog(data: CloudFunctionLogStruct): Promise { +FunctionConsole.write = async (message: string, request_id: string) => { const db = DatabaseAgent.db - - if (!data) return null - if (typeof data.error === 'object') { - data.error = data.error.toString() as any + if (!db) return + + const collection = db.collection( + Constants.function_log_collection, + ) + const doc = { + request_id: request_id, + data: message, + created_at: new Date(), } - const r = await db.collection(Constants.function_log_collection) - .insertOne({ - ...data, - created_at: new Date() - }) - - return r.insertedId -} \ No newline at end of file + await collection.insertOne(doc) +} diff --git a/runtimes/nodejs/src/support/init.ts b/runtimes/nodejs/src/support/init.ts index 959206f3b6..090a4a4d2a 100644 --- a/runtimes/nodejs/src/support/init.ts +++ b/runtimes/nodejs/src/support/init.ts @@ -6,9 +6,8 @@ import { execSync } from 'child_process' import Config from '../config' import { logger } from './logger' - /** - * Create a internal package named '@' in node_modules, the package is used for loading typings in WebIDE。 + * Create a internal package named '@' in node_modules, the package is used for loading typings in WebIDE。 */ export function createCloudFunctionDeclarationPackage() { const source = path.resolve(__dirname, '../../dist') @@ -43,26 +42,26 @@ export function initCloudSdkPackage() { } } - interface AppConfigItem { _id: ObjectId key: string value: { - name: string, + name: string version: string }[] } /** * Get extra npm packages - * @returns + * @returns */ export async function getExtraPackages() { - const { DatabaseAgent } = require('../db') // init.ts should not import db globally, because init.ts would be referenced in build time + const { DatabaseAgent } = require('../db') // init.ts should not import db globally, because init.ts would be referenced in build time await DatabaseAgent.accessor.ready const db = DatabaseAgent.db - const doc: AppConfigItem = await db.collection(Constants.config_collection) + const doc: AppConfigItem = await db + .collection(Constants.config_collection) .findOne({ key: 'packages' }) return doc?.value ?? [] @@ -70,18 +69,17 @@ export async function getExtraPackages() { /** * Install packages - * @param packages - * @returns + * @param packages + * @returns */ -export function installPackages(packages: { name: string, version: string }[]) { +export function installPackages(packages: { name: string; version: string }[]) { if (!packages?.length) { return } - const names = packages - .map(pkg => { - return pkg.version ? `${pkg.name}@${pkg.version}` : `${pkg.name}` - }) + const names = packages.map((pkg) => { + return pkg.version ? `${pkg.name}@${pkg.version}` : `${pkg.name}` + }) const cmd_str = names.join(' ') const flags = Config.NPM_INSTALL_FLAGS @@ -92,8 +90,8 @@ export function installPackages(packages: { name: string, version: string }[]) { /** * Check if node module exists - * @param moduleName - * @returns + * @param moduleName + * @returns */ export function moduleExists(mod: string) { try { @@ -106,24 +104,22 @@ export function moduleExists(mod: string) { /** * Create necessary indexes of collections - * @param data - * @returns + * @param data + * @returns */ export async function ensureCollectionIndexes(): Promise { - const { DatabaseAgent } = require('../db') // init.ts should not import db globally, because init.ts would be referenced in build time - + // init.ts should not import db globally, because init.ts would be referenced in build time + const { DatabaseAgent } = require('../db') const db = DatabaseAgent.db - await db.collection(Constants.function_log_collection) - .createIndexes([ - { - key: { created_at: 1 }, - expireAfterSeconds: Config.FUNCTION_LOG_EXPIRED_TIME - }, - { - key: { requestId: 1 } - }, - { key: { func_id: 1 } } - ]) + await db.collection(Constants.function_log_collection).createIndexes([ + { + key: { created_at: 1 }, + expireAfterSeconds: Config.FUNCTION_LOG_EXPIRED_TIME, + }, + // { + // key: { request_id: 1 } + // }, + ]) return true -} \ No newline at end of file +} diff --git a/runtimes/nodejs/src/support/logger.ts b/runtimes/nodejs/src/support/logger.ts index 3155bfac3f..a7814150d7 100644 --- a/runtimes/nodejs/src/support/logger.ts +++ b/runtimes/nodejs/src/support/logger.ts @@ -19,7 +19,6 @@ export function createLogger(category: string, level?: string): LoggerInterface const logger = log4js.getLogger(category) logger.level = level ?? Config.LOG_LEVEL - // logger.info(`${category} logging level is ${logger.level}`) return logger as any } diff --git a/server/src/instance/instance.service.ts b/server/src/instance/instance.service.ts index dc9c3bc942..00bbe0559c 100644 --- a/server/src/instance/instance.service.ts +++ b/server/src/instance/instance.service.ts @@ -1,7 +1,7 @@ import { V1Deployment } from '@kubernetes/client-node' import { Injectable, Logger } from '@nestjs/common' import { GetApplicationNamespaceById } from '../utils/getter' -import { ResourceLabels } from '../constants' +import { ResourceLabels, ServerConfig } from '../constants' import { DatabaseCoreService } from '../core/database.cr.service' import { KubernetesService } from '../core/kubernetes.service' import { OSSUserCoreService } from '../core/oss-user.cr.service' @@ -57,7 +57,7 @@ export class InstanceService { { name: 'OSS_ACCESS_KEY', value: oss.status?.accessKey }, { name: 'OSS_ACCESS_SECRET', value: oss.status?.secretKey }, { name: 'OSS_INTERNAL_ENDPOINT', value: oss.status?.endpoint }, - { name: 'OSS_EXTERNAL_ENDPOINT', value: oss.status?.endpoint }, + { name: 'OSS_EXTERNAL_ENDPOINT', value: ServerConfig.OSS_ENDPOINT }, { name: 'OSS_REGION', value: oss.status?.region }, { name: 'FLAGS', value: `--max_old_space_size=${max_old_space_size}` }, ]