diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPApp.java
index 61fcfae..0a24e12 100644
--- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPApp.java
+++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/domain/EPApp.java
@@ -46,6 +46,9 @@
 import org.hibernate.validator.constraints.SafeHtml;
 import org.onap.portalsdk.core.domain.support.DomainVo;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonProperty.Access;
+
 /**
  * Model for all columns in the fn_app table.
  */
@@ -85,6 +88,7 @@
 	private String appBasicAuthUsername;
 
 	@SafeHtml
+	@JsonProperty(access = Access.WRITE_ONLY)
 	private String appBasicAuthPassword;
 
 	@Lob
diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java
index 3d2432c..53b8518 100644
--- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java
+++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java
@@ -943,6 +943,8 @@
 		if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) {
 			if (modifiedOnboardingApp.getId() != null) {
 				updateApp(modifiedOnboardingApp.getId(), modifiedOnboardingApp, fieldsValidator, user);
+				logger.info(EELFLoggerDelegate.auditLogger, "Updated " + modifiedOnboardingApp.getAppName() + 
+						" onboarding application details by user " + user.getLoginId());
 			} else {
 				fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
 			}
@@ -959,6 +961,8 @@
 		if (fieldsValidator.httpStatusCode.intValue() == HttpServletResponse.SC_OK) {
 			if (newOnboardingApp.getId() == null) {
 				updateApp(null, newOnboardingApp, fieldsValidator, user);
+				logger.info(EELFLoggerDelegate.auditLogger, "Added " + newOnboardingApp.getAppName() + 
+						" Onboarding application by user " + user.getLoginId());
 			} else {
 				fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
 			}
diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingApp.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingApp.java
index d1b2a56..099f971 100644
--- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingApp.java
+++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/transport/OnboardingApp.java
@@ -40,6 +40,9 @@
 import org.hibernate.validator.constraints.SafeHtml;
 import org.onap.portalapp.portal.domain.EpAppType;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonProperty.Access;
+
 /**
  * Model of rows in the fn_app table; serialized as a message add or update an
  * on-boarded application.
@@ -79,6 +82,7 @@
 	@SafeHtml
 	private String appBasicAuthUsername;
 	@SafeHtml
+	@JsonProperty(access = Access.WRITE_ONLY)
 	private String appBasicAuthPassword;
 	@SafeHtml
 	private String thumbnail;
diff --git a/portal-FE-os/src/app/pages/pages.module.ts b/portal-FE-os/src/app/pages/pages.module.ts
index c63614a..a921257 100644
--- a/portal-FE-os/src/app/pages/pages.module.ts
+++ b/portal-FE-os/src/app/pages/pages.module.ts
@@ -56,7 +56,7 @@
 import { GridsterModule } from 'angular-gridster2';
 import { InformationModalComponent } from '../modals/information-modal/information-modal.component';
 import { NgMaterialModule } from '../ng-material-module';
-import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
+import { NgbModalConfig, NgbModule } from '@ng-bootstrap/ng-bootstrap';
 import { NewPortalAdminComponent } from './portal-admins/new-portal-admin/new-portal-admin.component';
 import { NotificationHistoryComponent } from './notification-history/notification-history.component';
 import { PagesComponent } from './pages.component';
@@ -272,8 +272,10 @@
 })
 export class PagesModule {
 
-  constructor(public ngbModalService: NgbModal) {
+  constructor(public ngbModalService: NgbModal, configModal: NgbModalConfig) {
     this.addSchdulerEventListners();
+    configModal.backdrop = 'static';
+    configModal.keyboard = false;
   }
 
 
