diff --git a/views/ngXosViews/subscriberPortal/bs-config.js b/views/ngXosViews/subscriberPortal/bs-config.js
index 70f476a..3418583 100644
--- a/views/ngXosViews/subscriberPortal/bs-config.js
+++ b/views/ngXosViews/subscriberPortal/bs-config.js
@@ -17,47 +17,47 @@
 var environment = process.env.NODE_ENV;
 
 if (environment){
-    var conf = require(`./env/${environment}.js`);
+  var conf = require(`./env/${environment}.js`);
 }
 else{
-    var conf = require('./env/default.js')
+  var conf = require('./env/default.js')
 }
 
 var proxy = httpProxy.createProxyServer({
-    target: conf.host || 'http://0.0.0.0:9999'
+  target: conf.host || 'http://0.0.0.0:9999'
 });
 
 proxy.on('error', function(error, req, res) {
-    res.writeHead(500, {
-        'Content-Type': 'text/plain'
-    });
-    console.error('[Proxy]', error);
+  res.writeHead(500, {
+    'Content-Type': 'text/plain'
+  });
+  console.error('[Proxy]', error);
 });
 
 module.exports = {
-    "files": [
-        './src/**/*'
-    ],
-    "server": {
-        baseDir: './src',
-        middleware: function(req, res, next){
-            if(
-              req.url.indexOf('/xos/') !== -1 ||
-              req.url.indexOf('/xoslib/') !== -1 ||
-              req.url.indexOf('/hpcapi/') !== -1 ||
-              req.url.indexOf('/rs/') !== -1
-            ){
-                if(conf.xoscsrftoken && conf.xossessionid){
-                    req.headers.cookie = `xoscsrftoken=${conf.xoscsrftoken}; xossessionid=${conf.xossessionid}`;
-                    req.headers['x-csrftoken'] = conf.xoscsrftoken;
-                }
-                proxy.web(req, res);
-            }
-            else{
-                next();
-            }
+  "files": [
+    './src/**/*'
+  ],
+  "server": {
+    baseDir: './src',
+    middleware: function(req, res, next){
+      if(
+        req.url.indexOf('/xos/') !== -1 ||
+        req.url.indexOf('/xoslib/') !== -1 ||
+        req.url.indexOf('/hpcapi/') !== -1 ||
+        req.url.indexOf('/rs/') !== -1
+      ){
+        if(conf.xoscsrftoken && conf.xossessionid){
+          req.headers.cookie = `xoscsrftoken=${conf.xoscsrftoken}; xossessionid=${conf.xossessionid}`;
+          req.headers['x-csrftoken'] = conf.xoscsrftoken;
         }
-    },
-    "port": 3000,
-    "open": "local"
+        proxy.web(req, res);
+      }
+      else{
+        next();
+      }
+    }
+  },
+  "port": 3000,
+  "open": "local"
 };
\ No newline at end of file
