Enhance operations to associate workflows
[sdc.git] / catalog-ui / webpack.server.js
1 let path = require('path');
2
3 const mockApis = require('./configurations/mock.json').sdcConfig;
4 const proxy = require('http-proxy-middleware');
5 const devPort = 9000;
6 const fePort = 8181;
7 const localhost = "localhost";
8
9 module.exports = function(env) {
10
11         // Set default role
12         if (!env) {
13                 env = {
14                         role: "designer"
15                 };
16         }
17         console.log("Starting dev server with role: " + env.role);
18
19         const ServerConfig = {
20                 port: devPort,
21                 historyApiFallback: true,
22                 inline: true,
23                 stats: {
24                         colors: true,
25                         exclude: ['node_modules']
26                 },
27                 setup: server => {
28                         let userType = mockApis.userTypes[env.role];
29
30                         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                         ];
39
40                         // 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                                 }));
47
48                         // 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                                 }));
55
56                         // 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                         }));
69
70                         // 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                         }));
83
84                         // 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         };
101
102         return ServerConfig;
103 }