Fix dev config designer user in catalog-ui 31/102331/2
authorandre.schmid <andre.schmid@est.tech>
Mon, 17 Feb 2020 10:11:54 +0000 (10:11 +0000)
committerOfir Sonsino <ofir.sonsino@intl.att.com>
Wed, 26 Feb 2020 13:16:42 +0000 (13:16 +0000)
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 <andre.schmid@est.tech>
catalog-ui/README.md
catalog-ui/configurations/mock.json
catalog-ui/webpack.server.js

index c1f590a..39d5fca 100644 (file)
@@ -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 <role>
 
@@ -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).
index 89454c7..17cbbb7 100644 (file)
@@ -51,7 +51,7 @@
                 "xEcompRequestId": "ccccc"
             },
             "designer": {
-                "userId": "m08740",
+                "userId": "cs0008",
                 "email": "designer@sdc.com",
                 "firstName": "Carlos",
                 "lastName": "Santana",
index 1993617..b367577 100644 (file)
@@ -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;
+};