-let path = require('path');
-
const mockApis = require('./configurations/mock.json').sdcConfig;
const proxy = require('http-proxy-middleware');
const devPort = 9000;
+
const fePort = 8181;
-const loclahost = "192.168.33.10"; // "localhost"
+const feHost = "localhost";
+const protocol="http";
+const isDirectToFE = true;
-module.exports = function(env) {
+const portalCookieValue = "randomValue"; //for dev solely, in production - the webseal would add the cookie by itself.
- // Set default role
- if (!env) {
- env = {
- role: "designer"
- };
- }
- console.log("Starting dev server with role: " + env.role);
+module.exports = function (env) {
- const ServerConfig = {
- port: devPort,
- historyApiFallback: true,
- inline: true,
- stats: {
- colors: true,
- exclude: ['node_modules']
- },
- setup: server => {
- let userType = mockApis.userTypes[env.role];
+ // Set default user role
+ if (!env) {
+ env = {
+ role: "designer"
+ };
+ }
+ console.log("Starting dev server with role: " + 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);
- next();
-}
-];
+ const serverConfig = {
+ port: devPort,
+ historyApiFallback: true,
+ inline: true,
+ stats: {
+ colors: true,
+ exclude: ['node_modules']
+ },
+ setup: server => {
+ let userType = mockApis.userTypes[env.role];
- // Redirect all '/sdc1/feProxy/rest' to feHost
- middlewares.push(
- proxy(['/sdc1/feProxy/rest'],{
- target: 'http://' + loclahost + ':' + fePort,
- changeOrigin: true,
- secure: false
- }));
+ 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 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 all '/sdc1/feProxy/rest' to feHost
+ let feProxyOptions = {
+ target: protocol + '://' + feHost + ':' + fePort,
+ changeOrigin: true,
+ secure: false,
+ logLevel: 'debug'
+ }
+ if (!isDirectToFE) {
+ feProxyOptions.pathRewrite= {
+ '^/sdc1/feProxy/rest' : '/sdc2/rest'
+ }
+ }
+ middlewares.push(
+ proxy(['/sdc1/feProxy/rest'], feProxyOptions));
- // 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 all '/sdc1/feProxy/uicache' to feHost
+ middlewares.push(
+ proxy(['/sdc1/feProxy/uicache'], {
+ target: protocol + '://' + feHost + ':' + fePort,
+ changeOrigin: true,
+ secure: false
+ }));
- server.use(middlewares);
-}
-};
+ // Redirect all '/sdc1/rest' to feHost
+ middlewares.push(
+ proxy(['/sdc1/rest'],{
+ target: protocol + '://' + feHost + ':' + fePort,
+ changeOrigin: true,
+ secure: false
+ }));
+
+ // Redirect dcae urls to feHost
+ middlewares.push(
+ proxy(['/dcae','/sdc1/feProxy/dcae-api'], {
+ target: protocol + '://' + 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(; )?/, '');
+ }
+ }
+ }));
- return ServerConfig;
-}
\ No newline at end of file
+ // Redirect onboarding urls to feHost
+ middlewares.push(
+ proxy(['/onboarding', '/sdc1/feProxy/onboarding-api'], {
+ target: protocol + '://' + 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 workflow urls to feHost
+ middlewares.push(
+ proxy(['/wf', '/sdc1/feProxy/wf'], {
+ target: protocol + '://' + feHost + ':' + fePort,
+ changeOrigin: true,
+ logLevel: 'debug',
+ secure: false,
+ onProxyRes: (proxyRes, req, res) => {
+ let setCookie = proxyRes.headers['set-cookie'];
+ if (setCookie) {
+ setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, '');
+ }
+ }
+ }));
+ server.use(middlewares);
+ }
+ };
+
+ return serverConfig;
+};