From c5d39edc6a5c3f980e9341f3ef0a09b7d28f98a1 Mon Sep 17 00:00:00 2001 From: "andre.schmid" Date: Mon, 17 Feb 2020 10:11:54 +0000 Subject: Fix dev config designer user in catalog-ui The userId for the mocked user used in the catalog-ui development environment was incorrect. Small adjustments in the webpack.server.js file. Improves the README.md for better understanding of some configuration options. Change-Id: I231f4349a868a2544a6b1ab9e9deb68873850e2b Issue-ID: SDC-2779 Signed-off-by: andre.schmid --- catalog-ui/README.md | 25 +++++- catalog-ui/configurations/mock.json | 2 +- catalog-ui/webpack.server.js | 154 ++++++++++++++++++------------------ 3 files changed, 98 insertions(+), 83 deletions(-) diff --git a/catalog-ui/README.md b/catalog-ui/README.md index c1f590a946..39d5fca1e8 100644 --- a/catalog-ui/README.md +++ b/catalog-ui/README.md @@ -5,8 +5,9 @@ Run "npm start" for a dev server. Navigate to "http://localhost:9000/". The app will automatically reload if you change any of the source files. ---- Specify role --- -npm start -- --env.role designer +To Specify the user role: + +npm start --env.role designer npm run @@ -20,8 +21,24 @@ Run "npm run build:prod" to build the project. The build artifacts will be stored in the `dist/` directory. ## Configuration -Dev server is configured in webpack.server.js file. -App configuration dev.js or prod.js and menu.js are located in configuration folder and required by app.ts according to __ENV__ parameter from webpack. + +###webpack.server.js +Development server is configured in `/webpack.server.js` file. Configure the constants accordingly: +- const __devPort__: the webpack server port; +- const __feHost__: the catalog front-end container host; +- const __fePort__: the catalog front-end container port. + +The server will create a proxy to the front end calls based on the __feHost__ and __fePort__. +It will also create authorization cookies to those requests. The cookies and user information comes from the +`/configurations/mock.json` file under the nodes `sdcConfig.cookie` and `sdcConfig.userTypes` respectively. +The default user role is the node `sdcConfig.userTypes.designer` (configurable with the npm parameter --env.role). + +### + +###Application Configuration +Application configuration `dev.js` or `prod.js` and `menu.js` are located in `/configuration` folder and required by `app.ts` according to __ENV__ parameter from webpack. + + ## Running unit tests ## Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). diff --git a/catalog-ui/configurations/mock.json b/catalog-ui/configurations/mock.json index 89454c7d80..17cbbb76ed 100644 --- a/catalog-ui/configurations/mock.json +++ b/catalog-ui/configurations/mock.json @@ -51,7 +51,7 @@ "xEcompRequestId": "ccccc" }, "designer": { - "userId": "m08740", + "userId": "cs0008", "email": "designer@sdc.com", "firstName": "Carlos", "lastName": "Santana", diff --git a/catalog-ui/webpack.server.js b/catalog-ui/webpack.server.js index 1993617197..b3675773bf 100644 --- a/catalog-ui/webpack.server.js +++ b/catalog-ui/webpack.server.js @@ -1,91 +1,89 @@ -let path = require('path'); - const mockApis = require('./configurations/mock.json').sdcConfig; const proxy = require('http-proxy-middleware'); const devPort = 9000; -const fePort = 8287; -const loclahost = "localhost"; // "localhost" -const portalCookieValue = "randomValue"; //for dev solely, in production - the webseal would add the cookie byitself. +const fePort = 8181; +const feHost = "localhost"; +const portalCookieValue = "randomValue"; //for dev solely, in production - the webseal would add the cookie by itself. -module.exports = function(env) { +module.exports = function (env) { - // Set default role - if (!env) { - env = { - role: "designer" - }; - } - console.log("Starting dev server with role: " + env.role); + // Set default user role + if (!env) { + env = { + role: "designer" + }; + } + console.log("Starting dev server with role: " + env.role); - const ServerConfig = { - port: devPort, - historyApiFallback: true, - inline: true, - stats: { - colors: true, - exclude: ['node_modules'] - }, - setup: server => { - let userType = mockApis.userTypes[env.role]; + const serverConfig = { + port: devPort, + historyApiFallback: true, + inline: true, + stats: { + colors: true, + exclude: ['node_modules'] + }, + setup: server => { + let userType = mockApis.userTypes[env.role]; - let middlewares = [ - (req, res, next) => { - res.cookie(mockApis.cookie.userIdSuffix, req.headers[mockApis.cookie.userIdSuffix] || userType.userId); - res.cookie(mockApis.cookie.userEmail, req.headers[mockApis.cookie.userEmail] || userType.email); - res.cookie(mockApis.cookie.userFirstName, req.headers[mockApis.cookie.userFirstName] || userType.firstName); - res.cookie(mockApis.cookie.userLastName, req.headers[mockApis.cookie.userLastName] || userType.lastName); - res.cookie(mockApis.cookie.portalCookie, portalCookieValue); - next(); -} -]; + let middlewares = [ + (req, res, next) => { + res.cookie(mockApis.cookie.userIdSuffix, req.headers[mockApis.cookie.userIdSuffix] || userType.userId); + res.cookie(mockApis.cookie.userEmail, req.headers[mockApis.cookie.userEmail] || userType.email); + res.cookie(mockApis.cookie.userFirstName, req.headers[mockApis.cookie.userFirstName] || userType.firstName); + res.cookie(mockApis.cookie.userLastName, req.headers[mockApis.cookie.userLastName] || userType.lastName); + res.cookie(mockApis.cookie.portalCookie, portalCookieValue); + next(); + } + ]; - // Redirect all '/sdc1/feProxy/rest' to feHost - middlewares.push( - proxy(['/sdc1/feProxy/rest', '/sdc1/feProxy/uicache'],{ - target: 'http://' + loclahost + ':' + fePort, - changeOrigin: true, - secure: false - })); + // Redirect all '/sdc1/feProxy/rest' to feHost + middlewares.push( + proxy(['/sdc1/feProxy/rest', '/sdc1/feProxy/uicache'], { + target: 'http://' + feHost + ':' + fePort, + changeOrigin: true, + secure: false + })); - // Redirect all '/sdc1/rest' to feHost - middlewares.push( - proxy(['/sdc1/rest'],{ - target: 'http://' + loclahost + ':' + fePort, - changeOrigin: true, - secure: false - })); + // Redirect all '/sdc1/rest' to feHost + middlewares.push( + proxy(['/sdc1/rest'], { + target: 'http://' + feHost + ':' + fePort, + changeOrigin: true, + secure: false + })); - // Redirect dcae urls to feHost - middlewares.push( - proxy(['/dcae','/sdc1/feProxy/dcae-api'],{ - target: 'http://' + loclahost + ':' + fePort, - changeOrigin: true, - secure: false, - onProxyRes: (proxyRes, req, res) => { - let setCookie = proxyRes.headers['set-cookie']; - if (setCookie) { - setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, ''); - } -} -})); + // Redirect dcae urls to feHost + middlewares.push( + proxy(['/dcae', '/sdc1/feProxy/dcae-api'], { + target: 'http://' + feHost + ':' + fePort, + changeOrigin: true, + secure: false, + onProxyRes: (proxyRes, req, res) => { + let setCookie = proxyRes.headers['set-cookie']; + if (setCookie) { + setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, ''); + } + } + })); - // Redirect onboarding urls to feHost - middlewares.push( - proxy(['/onboarding','/sdc1/feProxy/onboarding-api'],{ - target: 'http://' + loclahost + ':' + fePort, - changeOrigin: true, - secure: false, - onProxyRes: (proxyRes, req, res) => { - let setCookie = proxyRes.headers['set-cookie']; - if (setCookie) { - setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, ''); - } -} -})); + // Redirect onboarding urls to feHost + middlewares.push( + proxy(['/onboarding', '/sdc1/feProxy/onboarding-api'], { + target: 'http://' + feHost + ':' + fePort, + changeOrigin: true, + secure: false, + onProxyRes: (proxyRes, req, res) => { + let setCookie = proxyRes.headers['set-cookie']; + if (setCookie) { + setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, ''); + } + } + })); - server.use(middlewares); -} -}; + server.use(middlewares); + } + }; - return ServerConfig; -} + return serverConfig; +}; -- cgit 1.2.3-korg