diff --git a/openecomp-ui/src/sdc-app/config/Configuration.js b/openecomp-ui/src/sdc-app/config/Configuration.js
index b450d47..32de7dd 100644
--- a/openecomp-ui/src/sdc-app/config/Configuration.js
+++ b/openecomp-ui/src/sdc-app/config/Configuration.js
@@ -1,18 +1,19 @@
-/*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
+/*
+* Copyright © 2018 European Support Limited
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http: //www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 import configData from './config.json';
 
 class Configuration {
@@ -60,6 +61,10 @@
     if (DEBUG) {
         websocketPort = configuration.get('defaultDebugWebsocketPort');
     }
+    configuration.set(
+        'websocketProtocol',
+        configuration.get('defaultWebsocketProtocol')
+    );
     configuration.set('websocketPort', websocketPort);
     configuration.set(
         'websocketPath',
@@ -67,4 +72,11 @@
     );
 })(configuration);
 
+(function setDefaultNotificationsWorkerConfig(configuration) {
+    configuration.set(
+        'notificationsWorkerUpdateMillisecond',
+        configuration.get('defaultNotificationsWorkerUpdateMillisecond')
+    );
+})(configuration);
+
 export default configuration;
