blob: b8821cd9d1542c6b8c6ea9792075e42be289e50c [file] [log] [blame]
Michael Landoed64b5e2017-06-09 03:19:04 +03001let path = require('path');
2
3const mockApis = require('./configurations/mock.json').sdcConfig;
4const proxy = require('http-proxy-middleware');
5const devPort = 9000;
6const fePort = 8181;
Arielkeaaf8012018-07-31 12:59:36 +03007const localhost = "localhost";
Michael Landoed64b5e2017-06-09 03:19:04 +03008
9module.exports = function(env) {
10
Michael Landoa5445102018-03-04 14:53:33 +020011 // Set default role
12 if (!env) {
13 env = {
14 role: "designer"
15 };
16 }
17 console.log("Starting dev server with role: " + env.role);
Michael Landoed64b5e2017-06-09 03:19:04 +030018
Michael Landoa5445102018-03-04 14:53:33 +020019 const ServerConfig = {
20 port: devPort,
21 historyApiFallback: true,
22 inline: true,
23 stats: {
24 colors: true,
25 exclude: ['node_modules']
26 },
27 setup: server => {
Arielkeaaf8012018-07-31 12:59:36 +030028 let userType = mockApis.userTypes[env.role];
Michael Landoed64b5e2017-06-09 03:19:04 +030029
Arielkeaaf8012018-07-31 12:59:36 +030030 let middlewares = [
31 (req, res, next) => {
32 res.cookie(mockApis.cookie.userIdSuffix, req.headers[mockApis.cookie.userIdSuffix] || userType.userId);
33 res.cookie(mockApis.cookie.userEmail, req.headers[mockApis.cookie.userEmail] || userType.email);
34 res.cookie(mockApis.cookie.userFirstName, req.headers[mockApis.cookie.userFirstName] || userType.firstName);
35 res.cookie(mockApis.cookie.userLastName, req.headers[mockApis.cookie.userLastName] || userType.lastName);
36 next();
37 }
38 ];
Michael Landoa5445102018-03-04 14:53:33 +020039
Arielkeaaf8012018-07-31 12:59:36 +030040 // Redirect all '/sdc1/feProxy/rest' to feHost
41 middlewares.push(
42 proxy(['/sdc1/feProxy/rest'], {
43 target: 'http://' + localhost + ':' + fePort,
44 changeOrigin: true,
45 secure: false
46 }));
Michael Landoa5445102018-03-04 14:53:33 +020047
Arielkeaaf8012018-07-31 12:59:36 +030048 // Redirect all '/sdc1/rest' to feHost
49 middlewares.push(
50 proxy(['/sdc1/rest'],{
51 target: 'http://' + localhost + ':' + fePort,
52 changeOrigin: true,
53 secure: false
54 }));
Idan Amitfad1d732018-03-13 19:59:46 +020055
Arielkeaaf8012018-07-31 12:59:36 +030056 // Redirect dcae urls to feHost
57 middlewares.push(
58 proxy(['/dcae','/sdc1/feProxy/dcae-api'], {
59 target: 'http://' + localhost + ':' + fePort,
60 changeOrigin: true,
61 secure: false,
62 onProxyRes: (proxyRes, req, res) => {
63 let setCookie = proxyRes.headers['set-cookie'];
64 if (setCookie) {
65 setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, '');
66 }
67 }
68 }));
Michael Landoa5445102018-03-04 14:53:33 +020069
Arielkeaaf8012018-07-31 12:59:36 +030070 // Redirect onboarding urls to feHost
71 middlewares.push(
72 proxy(['/onboarding', '/sdc1/feProxy/onboarding-api'], {
73 target: 'http://' + localhost + ':' + fePort,
74 changeOrigin: true,
75 secure: false,
76 onProxyRes: (proxyRes, req, res) => {
77 let setCookie = proxyRes.headers['set-cookie'];
78 if (setCookie) {
79 setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, '');
80 }
81 }
82 }));
Michael Landoa5445102018-03-04 14:53:33 +020083
Arielkeaaf8012018-07-31 12:59:36 +030084 // Redirect workflow urls to feHost
85 middlewares.push(
86 proxy(['/sdc1/feProxy/wf', '/wf'], {
87 target: 'http://' + localhost + ':' + fePort,
88 changeOrigin: true,
89 secure: false,
90 onProxyRes: (proxyRes, req, res) => {
91 let setCookie = proxyRes.headers['set-cookie'];
92 if (setCookie) {
93 setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, '');
94 }
95 }
96 }));
97
98 server.use(middlewares);
99 }
100 };
Michael Landoa5445102018-03-04 14:53:33 +0200101
102 return ServerConfig;
Idan Amitfad1d732018-03-13 19:59:46 +0200103}