From 530c10dacce9b1e38c01487da48f03488c02a618 Mon Sep 17 00:00:00 2001 From: Carina Ursu Date: Wed, 12 Apr 2023 13:13:58 -0700 Subject: [PATCH] fix: passthrough runtime env vars (#741) Signed-off-by: Carina Ursu --- package.json | 3 +- website/src/assets/index.html | 5 -- website/src/client.tsx | 2 +- website/src/server/router.ts | 11 +++- website/webpack.config.ts | 1 - yarn.lock | 116 +++++++++++++++++++++++++++++++++- 6 files changed, 127 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index b8a993008..bcf3d0666 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "start": "yarn workspace @flyteconsole/client-app start", "build": "yarn workspace @flyteconsole/client-app build", "build:prod": "yarn workspace @flyteconsole/client-app build:prod", - "start:prod": "yarn build:prod && yarn workspace @flyteconsole/client-app start:prod", + "start:prod": "yarn workspace @flyteconsole/client-app start:prod", "build:storybook": "build-storybook", "generate:package": "yarn workspace @flyteconsole/generator start", "lint": "eslint . --ext .js,.jsx,.ts,.tsx", @@ -75,6 +75,7 @@ "@typescript-eslint/parser": "^5.48.2", "babel-loader": "^8.2.5", "chalk": "^4", + "cheerio": "^1.0.0-rc.12", "compression-webpack-plugin": "^9.2.0", "cookie-parser": "^1.4.3", "copy-webpack-plugin": "^11.0.0", diff --git a/website/src/assets/index.html b/website/src/assets/index.html index d55223a5c..298661077 100644 --- a/website/src/assets/index.html +++ b/website/src/assets/index.html @@ -31,11 +31,6 @@ href="<%= htmlWebpackPlugin.options.publicPath %>apple-touch-icon.png" /> - <% if (htmlWebpackPlugin.options.processEnv) { %> - - <% } %>
<% if (htmlWebpackPlugin.options.cdnSettings) { %> diff --git a/website/src/client.tsx b/website/src/client.tsx index f7f4dcec7..f28f9f8c4 100644 --- a/website/src/client.tsx +++ b/website/src/client.tsx @@ -5,7 +5,7 @@ import { env } from '@flyteorg/common'; import { App } from '@flyteorg/console'; const WrappedApp = () => { - return ; + return ; }; const render = (Component: React.FC) => { diff --git a/website/src/server/router.ts b/website/src/server/router.ts index e08e9b274..dd6402c62 100644 --- a/website/src/server/router.ts +++ b/website/src/server/router.ts @@ -1,6 +1,8 @@ import express, { Request, Response, Router } from 'express'; import fs from 'fs'; import path from 'path'; +import * as cheerio from 'cheerio'; +import { processEnv } from '../../env'; const router: Router = express.Router(); @@ -17,7 +19,14 @@ router.get('/*', (_req: Request, res: Response) => { throw new ReferenceError('Could not find index.html to render'); } - res.status(200).send(html); + // populate the app content... + const $ = cheerio.load(html); + // Populate process.env into window.env + $('head').append( + $(``), + ); + + res.status(200).send($.html()); }); export default router; diff --git a/website/webpack.config.ts b/website/webpack.config.ts index b2d383386..d84a2ce0c 100644 --- a/website/webpack.config.ts +++ b/website/webpack.config.ts @@ -39,7 +39,6 @@ module.exports = (_env: any, argv: { mode: Mode }) => { DEFAULT_HTML_WPC_OPTS, { ...webpackConfig.htmlWebpackOptions, - processEnv: JSON.stringify(processEnv), ...(shouldLoadReactFromCDN ? { cdnSettings: { diff --git a/yarn.lock b/yarn.lock index 37a604265..14ded1881 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8056,6 +8056,35 @@ __metadata: languageName: node linkType: hard +"cheerio-select@npm:^2.1.0": + version: 2.1.0 + resolution: "cheerio-select@npm:2.1.0" + dependencies: + boolbase: ^1.0.0 + css-select: ^5.1.0 + css-what: ^6.1.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + checksum: 843d6d479922f28a6c5342c935aff1347491156814de63c585a6eb73baf7bb4185c1b4383a1195dca0f12e3946d737c7763bcef0b9544c515d905c5c44c5308b + languageName: node + linkType: hard + +"cheerio@npm:^1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "cheerio@npm:1.0.0-rc.12" + dependencies: + cheerio-select: ^2.1.0 + dom-serializer: ^2.0.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + htmlparser2: ^8.0.1 + parse5: ^7.0.0 + parse5-htmlparser2-tree-adapter: ^7.0.0 + checksum: 5d4c1b7a53cf22d3a2eddc0aff70cf23cbb30d01a4c79013e703a012475c02461aa1fcd99127e8d83a02216386ed6942b2c8103845fd0812300dd199e6e7e054 + languageName: node + linkType: hard + "chokidar@npm:^2.1.8": version: 2.1.8 resolution: "chokidar@npm:2.1.8" @@ -9102,6 +9131,19 @@ __metadata: languageName: node linkType: hard +"css-select@npm:^5.1.0": + version: 5.1.0 + resolution: "css-select@npm:5.1.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^6.1.0 + domhandler: ^5.0.2 + domutils: ^3.0.1 + nth-check: ^2.0.1 + checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda + languageName: node + linkType: hard + "css-vendor@npm:^2.0.8": version: 2.0.8 resolution: "css-vendor@npm:2.0.8" @@ -9112,7 +9154,7 @@ __metadata: languageName: node linkType: hard -"css-what@npm:^6.0.1": +"css-what@npm:^6.0.1, css-what@npm:^6.1.0": version: 6.1.0 resolution: "css-what@npm:6.1.0" checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe @@ -10104,6 +10146,17 @@ __metadata: languageName: node linkType: hard +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 + languageName: node + linkType: hard + "dom-walk@npm:^0.1.0": version: 0.1.2 resolution: "dom-walk@npm:0.1.2" @@ -10125,7 +10178,7 @@ __metadata: languageName: node linkType: hard -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 @@ -10150,6 +10203,15 @@ __metadata: languageName: node linkType: hard +"domhandler@npm:^5.0.1, domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" + dependencies: + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c + languageName: node + linkType: hard + "domutils@npm:^2.5.2, domutils@npm:^2.8.0": version: 2.8.0 resolution: "domutils@npm:2.8.0" @@ -10161,6 +10223,17 @@ __metadata: languageName: node linkType: hard +"domutils@npm:^3.0.1": + version: 3.0.1 + resolution: "domutils@npm:3.0.1" + dependencies: + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.1 + checksum: 23aa7a840572d395220e173cb6263b0d028596e3950100520870a125af33ff819e6f609e1606d6f7d73bd9e7feb03bb404286e57a39063b5384c62b724d987b3 + languageName: node + linkType: hard + "dot-case@npm:^3.0.4": version: 3.0.4 resolution: "dot-case@npm:3.0.4" @@ -10358,6 +10431,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^4.2.0, entities@npm:^4.4.0": + version: 4.4.0 + resolution: "entities@npm:4.4.0" + checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -11554,6 +11634,7 @@ __metadata: "@typescript-eslint/parser": ^5.48.2 babel-loader: ^8.2.5 chalk: ^4 + cheerio: ^1.0.0-rc.12 compression-webpack-plugin: ^9.2.0 cookie-parser: ^1.4.3 copy-webpack-plugin: ^11.0.0 @@ -12729,6 +12810,18 @@ __metadata: languageName: node linkType: hard +"htmlparser2@npm:^8.0.1": + version: 8.0.2 + resolution: "htmlparser2@npm:8.0.2" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + entities: ^4.4.0 + checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.0": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -17467,6 +17560,16 @@ __metadata: languageName: node linkType: hard +"parse5-htmlparser2-tree-adapter@npm:^7.0.0": + version: 7.0.0 + resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0" + dependencies: + domhandler: ^5.0.2 + parse5: ^7.0.0 + checksum: fc5d01e07733142a1baf81de5c2a9c41426c04b7ab29dd218acb80cd34a63177c90aff4a4aee66cf9f1d0aeecff1389adb7452ad6f8af0a5888e3e9ad6ef733d + languageName: node + linkType: hard + "parse5@npm:6.0.1, parse5@npm:^6.0.0": version: 6.0.1 resolution: "parse5@npm:6.0.1" @@ -17474,6 +17577,15 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^7.0.0": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: ^4.4.0 + checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + languageName: node + linkType: hard + "parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3"