Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata-docs
diff --git a/Admin-Maintenance.md b/Admin-Maintenance.md
new file mode 100644
index 0000000..c3b8a83
--- /dev/null
+++ b/Admin-Maintenance.md
@@ -0,0 +1,48 @@
+## Gateway Maintenance
+
+<br><b class="blue">Q1.</b> One of my gateway users wants me to investigate his FAILED experiment. How should I proceed?
+<br><b class="blue">Answer:</b> To investigate a specific FAILED experiment or failed experiment within a time frame,<br>
+1. Navigate to AdminDashboard &#8658; Experiment Statistics <br>
+2. Search the experiment by using the experiment ID or by giving the Creation Time 'To' and 'From' <br>
+3. You could also use pre-defined selection criteria ('Get Experiments from Last 24 Hours' OR 'Get Experiments from Last Week') <br>
+
+<br><b class="blue">Q2.</b> One of the resources used by my gateway is not available for the day. How to stop user job submissions?
+<br><b class="blue">Answer:</b> To temporarily stop users submitting jobs to a particular resource...<br>
+1. Navigate to AdminDashboard &#8658; Compute Resources (Browse)<br>
+2. Un-check the  'Enabled' box for the specific resource. This disables job submissions for the resource<br>
+3. To enable job submission simply check the box and back in track!<br>
+
+<br><b class="blue">Q3.</b> How to upgrade access for a gateway user?
+<br><b class="blue">Answer:</b> User access can be upgraded or downgraded by changing the assigned user role.<br>
+1. Navigate to Admin Dashboard &#8658; Users (Browse)<br>
+2. Search for the specific user and click 'Check All Roles'<br>
+3. From this you can remove/add roles.<br>
+4. For each modification user will receive an email with 'Your Privileges has Changed!'<br>
+
+<br><b class="blue">Q4.</b> Gateway users who has role 'gateway-user' cannot access experiment creation. Seems like privileges are not accessible.!
+<br><b class="blue">Answer:</b> User roles are given through PGA Admin Dashboard. If the roles are set correctly then check pga_config.php<br>
+1. To check the config file use
+<pre><code>vi /var/www/html/airavata-php-gateway/app/config/pga_config.php</code></pre>
+2. Roles attached to users should exists in the config file against correct role attribute type
+<pre><code>
+        /**
+         * Admin Role Name
+         */
+        'admin-role-name' => 'admin',
+        /**
+         * Read only Admin Role Name
+         */
+        'read-only-admin-role-name' => 'admin-read-only',
+        /**
+         * Gateway user role
+         */
+        'user-role-name' => 'airavata-user',
+</code></pre>
+
+<br><b class="blue">Q5.</b> I have ran out of allocation for my current community account used in gateway for a resource. What should I do?
+<br><b class="blue">Answer:</b><br> 
+1. If you have another community account you could update the information in Admin Dashboard &#8658; Gateway Profile under Compute Resource Preferences.<br>
+2. Select the resource and modify account information and save.<br>
+3. Login to the resource as the new user and update the authorized_keys with the public key assigned to the resource.<br>
+
+
diff --git a/Airavata-Installation.md b/Airavata-Installation.md
index 3a2e628..69ab14d 100644
--- a/Airavata-Installation.md
+++ b/Airavata-Installation.md
@@ -44,7 +44,7 @@
 10. Create databases required for Airavata
 <pre><code>create database app_catalog;</code></pre>
 <pre><code>create database experiment_catalog;</code></pre>
-<pre><code>create database data_catalog;</code></pre>
+<pre><code>create database replica_catalog;</code></pre>
 <pre><code>create database credential_store;</code></pre>
 <pre><code>create database workflow_catalog;</code></pre>
 11. Grant permission to these databases for a new user which would be used by Airavata<br>
@@ -83,75 +83,47 @@
 Now copy the mysql.jar to lib  directory (<a href="http://dev.mysql.com/downloads/connector/j/" target="_blank">Download mysql.jar</a>).
 9. Navigate to bin folder which contains file airavata-server.properties and open it;
 <pre><code>vi apache-airavata-server-0.16-SNAPSHOT/bin</code></pre>
-10. Update relevant necessary properties to run Airavata locally.<br>
-Change as required. Refer for more details;<a href="../Installations/airavata-properties.md"> Airavata Property File</a>.
-	- API Server Registry Configuration
-		- Comment out the derby DB properties
-		- Change MySQL configurations
-			- registry.jdbc.url=jdbc:mysql://localhost:3306/experiment_catalog (replace 'localhost' with correct server name if the DB is in a different server)
-			- registry.jdbc.user=airavata
-			- registry.jdbc.password=airavata
-			- default.registry.gateway=php_reference_gateway
-   	- Application Catalog DB Configuration
-   		- Comment out the derby DB properties
-   		- Change MySQL configurations
-   			- appcatalog.jdbc.url=jdbc:mysql://localhost:3306/app_catalog
-          	- appcatalog.jdbc.user=airavata
-         	- appcatalog.jdbc.password=airavata
-    - Data Catalog DB Configuration
-    	- Comment out the derby DB properties
-        - Change MySQL configurations
-    		- datacatalog.jdbc.url=jdbc:mysql://localhost:3306/data_catalog
-        	- datacatalog.jdbc.user=airavata
-        	- datacatalog.jdbc.password=airavata
-	- Workflow Catalog DB Configuration
-		- Comment out the derby DB properties
-        - Change MySQL configurations
-			- workflowcatalog.jdbc.url=jdbc:mysql://localhost:3306/workflow_catalog
-      		- workflowcatalog.jdbc.user=airavata
-      		- workflowcatalog.jdbc.password=airavata
+10. Update relevant necessary properties in airavata-server.properties file.<br>
+Change as required. For more details refer; <a href="../airavata-properties">Airavata Property File</a>.
+	- In sections; API Server Registry Configuration, Application Catalog DB Configuration, Data Catalog DB Configuration, Workflow Catalog DB Configuration, Credential Store Module Configuration<br>
+		- Comment out derby DB properties.<br>
+		- Change MySQL configurations as per the databases created above.
+	- Make sure gateway ID is properly defined;<br> 
+		default.registry.gateway=php_reference_gateway
 	- Server module Configuration
-		- Make sure all servers required to start are added as given
-			- servers=apiserver,orchestrator,gfac,credentialstore
+		- Make sure all servers required to start are added as given <br>
+			servers=apiserver,orchestrator,gfac,credentialstore
 	- API Server SSL Configurations
-		- Give the correct path for key generation file. This is in the bin directory and it is shipped default with Airavata.
-			- apiserver.keystore=/home/airavata/LocalAiravata/apache-airavata-server-0.16-SNAPSHOT/bin/airavata.jks
+		- Give the correct path for key generation file. This is in the bin directory and it is shipped default with Airavata.<br>
+		apiserver.keystore=/home/airavata/LocalAiravata/apache-airavata-server-0.16-SNAPSHOT/bin/airavata.jks
 	- Credential Store module Configuration
-		- Make sure its set to 'true' in
-			- start.credential.store=true
-		- Add the path to SSH key generation file
-			- E.g.: credential.store.keystore.url=/home/airavata/LocalAiravata/airavata-sym.jks
-		- Comment out the derby DB properties
-        - Change MySQL configurations
-        	- credential.store.jdbc.url=jdbc:mysql://localhost:3306/credential_store
-            - credential.store.jdbc.user=airavata
-            - credential.store.jdbc.password=airavata
-		- credential.store.keystore.url=/home/airavata/production-deployment/airavata_sym.jks
+		- Make sure its set to 'true' in<br>
+		start.credential.store=true
+		- Add the path to SSH key generation file <br>
+		E.g.: credential.store.keystore.url=/home/airavata/LocalAiravata/airavata-sym.jks
 	-  API Security Configuration
-		- Make sure
-			- api.secured=false
-			- TLS.enabled=false
+		- Make sure <br>
+		api.secured=false<br>
+		TLS.enabled=false
 	-  Monitoring Module Configuration
-      	- Add your email address, username and password for email monitoring. This is the email account the job status change emails will be received from compute resources.
-                 email.based.monitor.host=imap.gmail.com
-                 email.based.monitor.address=jobs@sample.org
-                 email.based.monitor.password=SamplePassword
+      	- Add your email address, username and password for email monitoring.<br> This is the email account the job status change emails will be received from compute resources.
+		 email.based.monitor.host=imap.gmail.com<br>
+		 email.based.monitor.address=jobs@sample.org<br>
+		 email.based.monitor.password=SamplePassword<br>
 	-  Zookeeper Server Configuration
-		- For 'Production' scenario make;
-			- embedded.zk=false
+		- For 'Production' scenario make;<br>
+		embedded.zk=false
 	- AMQP Notification Configuration
-		- Users can use RabbitMQ as 'Guest' users. This is the easy method. For this uncomment
-			- rabbitmq.broker.url=amqp://localhost:5672
-		- To use as a 'Production' user
-			- Navigate to RabbitMQ bin folder.
-			- Make sure the RabbitMQ server is running. For production use <pre><code>rabbitmq-server -detached</code></pre> to start.
-			- Create a virtual-host and user with a password. Follow documentation in <a href="http://blog.dtzq.com/2012/06/rabbitmq-users-and-virtual-hosts.html" target="_blank">RabbitMQ Users & VirtualHost</a>
-			- To create a user; <pre><code>rabbitmqctl add_user airavata airavata</code></pre>
-			- To create a vitrual-host <pre><code>rabbitmqctl add_vhost messaging</code></pre>
-			- Provide permission to created username; 'airavata'  to the created vhost <pre><code>rabbitmqctl set_permissions -p messaging airavata ".*" ".*" ".*”</code></pre>
-			- Uncomment rabbitmq.broker.url=amqp://airavata:airavata@localhost:5672/messaging.
-			- If you need to stop RabbitMQ use <pre><code>rabbitmqctl stop</code></pre>
-			  If the RabbitMQ server stopped then the above user creation, vhost cretion and permission granting commmands need to run again after restarting the servers.
+		- Users can use RabbitMQ as 'Guest' users. This is the easy method. For this uncomment <br>
+		rabbitmq.broker.url=amqp://localhost:5672
+		- To use as a 'Production' user <br>
+		Navigate to RabbitMQ bin folder.<br>
+		Make sure the RabbitMQ server is running. For production use <pre><code>rabbitmq-server -detached</code></pre>
+		Create a virtual-host and user with a password. Follow documentation in <a href="http://blog.dtzq.com/2012/06/rabbitmq-users-and-virtual-hosts.html" target="_blank">RabbitMQ Users & VirtualHost</a>
+		To create a user; <pre><code>rabbitmqctl add_user airavata airavata</code></pre>
+		To create a vitrual-host <pre><code>rabbitmqctl add_vhost messaging</code></pre>
+		Provide permission to created username; 'airavata' to the created vhost <pre><code>rabbitmqctl set_permissions -p messaging airavata ".*" ".*" ".*”</code></pre>
+		Uncomment rabbitmq.broker.url=amqp://airavata:airavata@localhost:5672/messaging.
 11. Download and install Zookeeper. Use <a href="http://www.us.apache.org/dist/zookeeper/zookeeper-3.4.8/" target="_blank">Download Zookeeper</a> <br> You can download and install Zookeeper in the above created local folder; LocalAiravata
 12. Start Zookeeper
     - Copy the sample config file to zoo.cfg:  cp conf/zoo_sample.cfg conf/zoo.cfg
diff --git a/Airavata-Upgrades.md b/Airavata-Upgrades.md
new file mode 100644
index 0000000..a06446e
--- /dev/null
+++ b/Airavata-Upgrades.md
@@ -0,0 +1,41 @@
+## Airavata Update
+
+1. In order to update Airavata with latest master code; go to the folder (Created in installation; LocalAiravata) initially created to clone Airavata.
+2. Within your local folder navigate to folder 'airavata' and execute <pre><code>git pull </code></pre>
+Hint: If you are in the wrong folder you would probably get message <pre><code>'fatal: Not a git repository (or any of the parent directories): .git'</code></pre>
+3. Now build the code 
+<pre><code> mvn clean install</code></pre>
+Hint: To avoid the 'tests on install' run <pre><code>mvn clean install -Dmaven.test.skip=true</code></pre>
+4. Once the build is success, stop the running Airavata server. You can either stop the java server using 
+<pre><code>kill -9 &#60;process ID&#62;</code></pre>
+OR<br>
+Navigate to bin folder where airavata server exists (LocalAiravata/apache-airavata-server-0.15-SNAPSHOT/bin). and stop the server
+<pre><code>./airavata-server.sh stop -force</code></pre>
+5. For references, back up the currently existing release
+<pre><code>mv apache-airavata-server-0.15-SNAPSHOT apache-airavata-server-0.15-SNAPSHOT-bk</code></pre>
+6. Copy the new release to your local folder (LocalAiravata)
+<pre><code>cp /&#60;path to created folder&#62;/LocalAiravata/airavata/distribution/target/apache-airavata-server-0.16-SNAPSHOT-bin.tar.gz .</code></pre>
+7. Un-tar the copied new release
+<pre><code>tar -xvf apache-airavata-server-0.16-SNAPSHOT-bin.tar.gz</code></pre>
+8. Navigate to the new bin folder and back up airavata-server.properties and gfac-config.yaml files.
+9. Copy your previously used airavata-server.properties from the backed up release to bin folder (This is the easiest way to get the properties file updated. If you prefer, you can change the new file manually. &#9786;)
+<pre><code>/&#60;your local path&#62;/LocalAiravata/LocalAiravata/apache-airavata-server-0.16-SNAPSHOT-bk/bin/airavata-server.properties .</code></pre>
+10. Copy your previously used gfac-config.yaml from the backed up release
+<pre><code>cp /&#60;your local path&#62;/LocalAiravata/apache-airavata-server-0.16-SNAPSHOT-bk/bin/gfac-config.yaml .</code></pre>
+11. Now compare with the new airavata-server.properties and gfac-config.yaml and make necessary changes in the copied files.
+Try <pre><code> diff airavata-server.properties airavata-server.properties-bk</code></pre>
+12. Check the path correctness of credential store keystore in airavata-server.properties file.
+<pre><code>credential.store.keystore.url=/&#60;your local path&#62;/LocalAiravata/airavata_sym.jks</code></pre>
+13. Go to lib folder and copy mySQL jar (mysql-connector-java-5.1.38-bin.jar) from old backed up lib to the new lib
+<pre><code>  cp /home/airavata/LocalAiravata/apache-airavata-server-0.16-SNAPSHOT-bk/lib/mysql-connector-java-5.1.38-bin.jar .</code></pre>
+14. Now restart airavata server in bin folder
+<pre><code>./airavata-server.sh start</code></pre>
+15. Airavata ready for job submissions!
+16. For PGA updating steps try <a href="../PGA-Upgrades">PGA Update</a>
+
+
+
+
+ 
+
+
diff --git a/Contact-Us.md b/Contact-Us.md
index 180d798..3dc27d4 100644
--- a/Contact-Us.md
+++ b/Contact-Us.md
@@ -9,4 +9,5 @@
 Issue Reporting
 Any issue encounterered with Airavata or our gateway please log through;
 <a href="https://issues.apache.org/jira/browse/AIRAVATA-1889?jql=project%20%3D%20AIRAVATA" target="_blank">Airavata JIRA</a>
+<br></br>
 NOTE: If you don't have an account in Apache JIRA you have to create one prior to submitting issues.
diff --git a/Gateway-Configurations.md b/Gateway-Configurations.md
index c187cdd..698033a 100644
--- a/Gateway-Configurations.md
+++ b/Gateway-Configurations.md
@@ -1,8 +1,8 @@
 ## PGA Configurations
 ### You Need to Have
-1. Airavata & PGA installed and running
-2. Tenant created in WSO2 IS hosted by you or SGG
-3. Administrator privileges to the gateway with username and password
+1. Airavata & PGA installed and running.
+2. Tenant created in WSO2 IS hosted by you or Airavata team.
+3. Administrator privileges to the gateway.
 <br>
 <br>
 ### Apache Airavata Component Configuration
@@ -17,49 +17,46 @@
 		- Application Deployment<br>
 	- <a href= "#Credentials">Credential Store</a>
 		- Generate Credential Store Token + SSH Key.
-		- Add these to authorized key files and into preferences.
+		- Add these to authorized key files and into resource preferences.
 <br>
 <br>
 ###<h3 id="CompResource">Compute Resources</h3>
-1. Navigate to Admin Dashboard --> Compute Resources --> Register
+1. Navigate to Admin Dashboard &#8658; Compute Resources &#8658; Register
 2. Add Host Name, Description and create the resource.
-3. Then add data storage information in
-	- Data Movement Interfaces
-4. And Save.
-5. Similarly you can add multiple storage resources in to your gateway by selecting 'Register' from the left-hand-side menu.
-6. To view the added resources navigate to Admin Dashboard --> Storage Resources --> Browse
-7. All the resources will be listed. Gateway admin can view, edit, delete them.
-NOTE: Currently enabling and disabling storage resources is not an active feature.
-<br>
-<br>
-###<h3 id="StoreResource">Storage Resources</h3>
-1. Navigate to Admin Dashboard --> Storage Resources --> Register
-2. Add Storage Name, Description and create the resource.
-3. Then keep adding information on rest of the tabs appeared.
-	- Queues
-	- File Systems (Not required at the moment)
+3. Then keep adding information on rest of the appeared tabs.
+	- Queues (Queue name is uniqie and cannot be updated. Can delete and create new if required)
+	- File Systems (This is only for information capturing for future use. Currently this information is not used)
 	- Job Submission Interfaces
 	- Data Movement Interfaces
-4. And Save.
 5. Similarly you can add multiple compute resources in to your gateway by selecting 'Register' from the left-hand-side menu.
-6. To view the added compute resources navigate to Admin Dashboard --> Compute Resource --> Browse
+6. To view the added compute resources navigate to Admin Dashboard &#8658; Compute Resource &#8658; Browse
 7. All the resources will be listed. Gateway admin can view, edit, delete and enable and disable them.
 <br>
 <br>
+###<h3 id="StoreResource">Storage Resources</h3>
+1. Navigate to Admin Dashboard &#8658; Storage Resources &#8658; Register
+2. Add Storage Name, Description and create the resource.
+3. Then add data storage information in
+	- Data Movement Interfaces
+5. Similarly you can add multiple storage resources in to your gateway by selecting 'Register' from the left-hand-side menu.
+6. To view the added resources navigate to Admin Dashboard &#8658; Storage Resources &#8658; Browse
+7. All the resources will be listed. Gateway admin can view, edit, delete them.
+<br>
+<br>
 ###<h3 id="Preference">GatewayPreferences for Resources</h3>
-1. Navigate Admin Dashboard --> Gateway Preferences
+1. Navigate Admin Dashboard &#8658; Gateway Profile
 2. Both compute resource and storage resource specific preferences are defined here.
-3. To add compute resource related preferences click "Add a Compute Resource Preferences" and select the resource from the drop-down list.
-4. Add/select preferred options and click "Set preferences". Repeat this for all the resources used within the gateway.
-<br>Repeat this for every active enabled compute resource in the gateway.
-4. For each compute resource, gateway admin need to;
-  	- whether the preferences can be overridden by Airavata - Yes/No
+3. To add compute resource related preferences click "Add a Compute Resource Preference" and select the resource from the drop-down list.
+4. Add/select preferred options and click "Set preferences".
+<br>Repeat this for all the resources used within the gateway.
+4. For each compute resource, gateway admin need to specify;
+  	- Preferences can be overridden by Airavata - Yes/No?
   	- Resource login name
   	- Preferred job submission and data movement protocols
   	- Preferred queue
   	- Scratch location
   	- Project allocation number
-  	- Resource specific credential store token
+  	- Resource specific credential store token (When added Base Credential Store Token is not valid for the specific resource)
 5. For adding storage resource preference click "Add a Storage Resource Preferences", and rest is similar to adding a compute resource preference.
 6. For a gateway currently when a storage resource is selected, that resource ID need to be added in to the pga_config.php file in config folder of the hosted gateway.
 7. For storage resource preference, gateway admin need to add;
@@ -74,32 +71,30 @@
 2. Admin need to add application module, interface and deployment information in order to launch specific application jobs on compute resources.
 3. What each step means?
 	- <b class="blue">Application Module</b>
-		- Navigation: Admin Dashboard --> App Catalog --> Module
+		- Navigation: Admin Dashboard &#8658; App Catalog &#8658; Module
 		- This is the simple introduction of the application; Name, Version and Description.
-		- Click on 'Create a New Application Module' and provide information.
-		- Click Create.
-		- All available modules are also listed; admin has the option of searching for a particular module by providing the name in the search.
+		- Click 'Create a New Application Module', provide information and create. On creation Application Module ID will be generated for the module.
+		- All existing modules are listed; Search by name is available for a particular module.
 		- Gateway admin can edit, delete existing modules.
 		- Deleting a module will be restricted if it has application interfaces and deployments linked.
 	- <b class="blue">Application interface</b>
-		- Navigation: Admin Dashboard --> App Catalog --> Interface
-		- Application interface defines the required inputs, output produced and their characteristics.
-		- Click on 'Create a New Application Interface' and provide information.
-        - Click Create.
+		- Navigation: Admin Dashboard &#8658; App Catalog &#8658; Interface
+		- Application interface defines the required inputs, outputs produced and their characteristics.
+		- Click on 'Create a New Application Interface', provide information and create. On creation Application Interface ID will be generated for the module.
         - All available interfaces are also listed; admin has the option of searching for a particular interface by providing the name in the search.
         - Gateway admin can edit, delete existing interfaces.
         - Gateway admin cal also clone an existing interface in order to create a new similar interface with slight changes.
 	- <b class="blue">Application deployment</b>
-		- Navigation: Admin Dashboard --> App Catalog --> Deployment
+		- Navigation: Admin Dashboard &#8658; App Catalog &#8658; Deployment
 			- Application deployment describes application deployment details on a specific resource.
 			- For an application for each resource there is a separate deployment.
 <br>
 <br>
 ### <h3 id="Credentials">Credential Store</h3>
-1. Navigation: Admin Dashboard --> Credential Store
+1. Navigation: Admin Dashboard &#8658; Credential Store
 2. This interface is used to generate SSH key + token pairs.
 3. These generated keys can be added in to the authorized key files in each resource for SSH key based communication.
-4. When generated key can be either assigned at gateway level; one key + token pair  for all the resources OR have separate keys for each resource.
+4. Generated key can be either assigned at gateway level; one key + token pair  for all the resources OR have separate keys for each resource.
 5. SSH keys are used for communication with compute resources and storage resources.
 
 ### <h3 id="Preference">WSO2 IS Configuration</h3>
@@ -110,12 +105,12 @@
 5. Extract the downloaded IS binary archive to a location <IS_HOME>.
 6. Set JAVA_HOME variable and add jdk bin directory to the PATH variable.
 7. Open <IS_HOME>/repository/conf/carbon.xml and change the following property to false
-<HideAdminServiceWSDLs>false</HideAdminServiceWSDLs>
+&#60;HideAdminServiceWSDLs&#62;false&#60;/HideAdminServiceWSDLs&#62;
 8. Execute the following command to run the server
 sh <IS_HOME>/bin/wso2server.sh
 You should be able to login to the Identity Server Web App using your browser with url http://localhost:9443/carbon . Default admin credentials are username: admin, password: admin
-9. For more information regarding WSO2 Identity Server refer this https://docs.wso2.org/display/IS460/Deploying+in+Production
-Gateway admin will be provided with
+9. For more information regarding WSO2 Identity Server refer <a href="https://docs.wso2.org/display/IS460/Deploying+in+Production" target="_blank">WSO2 IS Server</a>
+<br>Gateway admin will be provided with;
 	- Domain URL for the Gateway
 	- Admin User name
 
diff --git a/Own-WSO2-IS-Configuration.md b/Own-WSO2-IS-Configuration.md
index ecd442a..b797db5 100644
--- a/Own-WSO2-IS-Configuration.md
+++ b/Own-WSO2-IS-Configuration.md
@@ -4,7 +4,7 @@
 2. Open &#60;IS_HOME&#62;/repository/conf/carbon.xml and set the HideAdminServiceWSDLs property to false.
 <pre><code>&#60;HideAdminServiceWSDLs&#62;false&#60;/HideAdminServiceWSDLs&#62;</code></pre>
 3. To enable self signup and account confirmation follow the below steps
-    - Open &#60;IS_HOME&#62;/repository/conf/claim-mgt.xml and add the following claims mappings in the &#60;Dialect dialectURI="http://wso2.org/claims"&#62; section
+    - Open &#60;IS_HOME&#62;/repository/conf/claim-config.xml and add the following claims mappings in the &#60;Dialect dialectURI="http://wso2.org/claims"&#62; section.
 <pre><code>&#60;Claim&#62;
           &#60;ClaimURI&#62;http://wso2.org/claims/identity/accountLocked&#60;/ClaimURI&#62;
           &#60;DisplayName&#62;Account Locked&#60;/DisplayName&#62;
@@ -23,7 +23,9 @@
           &#60;AttributeID&#62;uid&#60;/AttributeID&#62;
           &#60;Description&#62;Username&#60;/Description&#62;
 &#60;/Claim&#62;
-&#60;Claim&#62;
+</code></pre>
+    - Open &#60;IS_HOME&#62;/repository/conf/claim-config.xml and add the following claims mappings in the &#60;Dialect dialectURI="http://wso2.org/oidc/claim"&#62; section.
+<pre><code>&#60;Claim&#62;
           &#60;ClaimURI&#62;roles&#60;/ClaimURI&#62;
           &#60;DisplayName&#62;Roles&#60;/DisplayName&#62;
           &#60;AttributeID&#62;role&#60;/AttributeID&#62;
@@ -33,7 +35,7 @@
 <br>
 
     - Enable the Identity Listener by setting the following property to true in the &#60;IS_HOME&#62;/repository/conf/identity/identity.xml file.
-<pre><code>&#60;EventListener type="org.wso2.carbon.user.core.listener.UserOperationEventListener" name="org.wso2.carbon.identity.mgt.IdentityMgtEventListener" orderId="50" enable="true"/&#60;</code></pre>
+<pre><code>&#60;EventListener type="org.wso2.carbon.user.core.listener.UserOperationEventListener" name="org.wso2.carbon.identity.mgt.IdentityMgtEventListener" orderId="50" enable="true"/&#62;</code></pre>
 
     - Do the following configurations in the &#60;IS_HOME&#62;/repository/conf/identity/identity­-mgt.properties file.
 <pre><code>
diff --git a/PGA-Upgrades.md b/PGA-Upgrades.md
new file mode 100644
index 0000000..a5618c1
--- /dev/null
+++ b/PGA-Upgrades.md
@@ -0,0 +1,9 @@
+## PGA Code Update
+
+1. In your cloned gateway folder (airavata-php-gateway) get the latest updates from git
+<pre><code> git pull</code></pre>
+2. Do a composer update
+<pre><code> composer update </code></pre>
+This may take little time....
+3. You are all set with latest updates!
+4. 16. For PGA updating steps try <a href="../Airavata-Upgrades">Airavata Update</a>
diff --git a/User-Profiles.md b/User-Profiles.md
index dc2fcd1..4696cec 100644
--- a/User-Profiles.md
+++ b/User-Profiles.md
@@ -1,16 +1,18 @@
-# Apache Airavata User Profiles
+## Apache Airavata User Profiles
 
-### What Are Airavata User Profiles?
+### What Are Airavata User Roles?
 
-1. When using Airavata as the middleware between your gateway and computational resources first lets identify and understand the user profiles available and their potential.
-2. Knowing the profiles and the features of each will assist on shaping your gateway user hierarchy.
-3. There are 4 active user profiles in Airavata with different set of features at each level.
-4. 'Image - Airavata User Profiles' depicts the features available for each profile.
+1. Prior to using Airavata as the middleware between your gateway and computational resources, lets identify and understand the user roles available and their access levels.
+2. Knowing the roles and the features of each will assist on shaping your gateway user hierarchy.
+3. There are 4 active user roles in Airavata with different set of features at each level.
+	- Admin
+	- Admin-Read-Only
+	- Gateway-User
+	- User-Pending
 
+### What each User Role can do within PGA?
 
-### What each user Profile can do within PGA?
-
-- Admin	User
+1. Admin User
 	- Set up gateway preferences for Compute Resources and Storage Resources
 	- Generate SSH keys and their tokens using Credential Store in Admin Dashboard.
 	- Add the generated SSH token to Gateway Preferences.
@@ -19,17 +21,25 @@
 	- Create Applications and their deployments in to the gateway.
 <br><b>NOTE: If user hosts his own gateway; 'Gateway Admin' role will hold features of both Super Admin and Gateway Admin.</b></br><br>
 
-- Admin-Read-Only
+2. Admin-Read-Only
 	- Can view everything in Admin Dashboard but cannot Add, Edit or Delete any records from dashboard.
 	- Can monitor experiments through Experiments Statistics in Admin dashboard.
 	- Behalf of a gateway user can edit, cancel or clone an experiment.
-</br>
-<br>
-- General User
+<br></br>
+3. General User
 	- Create, launch their own experiments in using available applications and compute resources.
 	- Monitor progress of experiment execution.
 	- Group experiments by creating Projects.
 	- Request new features, applications and report bug, issue using Service Desk
 	- Password recovery.
+<br>
 </br>
+4. User-Pending
+	- This is the initial role assigned to users when account is created.
+	- Until gateway admin assigns a different role user has no real access to the gateway with this role.
+<br>
+</br>
+### How User Roles Work?
 
+1. Users can have one or many user roles assigned to them.
+2. Every time a role changes user will be notified through email about the privilege change.
\ No newline at end of file
diff --git a/airavata-properties.md b/airavata-properties.md
index eb148be..6612081 100644
--- a/airavata-properties.md
+++ b/airavata-properties.md
@@ -15,9 +15,9 @@
 3.  Data Catalog DB Configuration
     - Comment out the derby DB properties
     - Change MySQL configurations
-    	- datacatalog.jdbc.url=jdbc:mysql://localhost:3306/airavata_datacatalog
-        - datacatalog.jdbc.user=airavata
-        - datacatalog.jdbc.password=airavata
+    	- replicacatalog.jdbc.url=jdbc:mysql://localhost:3306/airavata_datacatalog
+        - replicacatalog.jdbc.user=airavata
+        - replicacatalog.jdbc.password=airavata
 4.  Workflow Catalog DB Configuration
 	- Comment out the derby DB properties
     - Change MySQL configurations
@@ -65,4 +65,4 @@
 		- Provide permission to created 'Username'  to the created vhost <pre><code>rabbitmqctl set_permissions -p messaging airavata ".*" ".*" ".*”</code></pre>
 		- Uncomment rabbitmq.broker.url=amqp://Username:Password@localhost:5672/Vhost. Add the created username, password and Vhost in the URL.
 		- If you need to stop RabbitMQ use <pre><code>rabbitmqctl stop</code></pre>
-		If the RabbitMQ server stopped then the above user creation, vhost cretion and permission granting commmands need to run again after restarting the servers.
+		- If the RabbitMQ server stopped then the above user creation, vhost creation and permission granting commands need to run again after restarting the servers.
diff --git a/mkdocs.yml b/mkdocs.yml
index fb52836..cba86f3 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,4 +1,6 @@
 site_name: Airavata Documentation
+ <div>0.16</div>
+
 docs_dir: .
 
 pages:
@@ -11,14 +13,19 @@
 - Configuration:
   - PGA: 'Gateway-Configurations.md'
   - WSO2 IS: 'WSO2-IS-Configuration.md'
+- Gateway Maintenance:
+  - Code Upgrades:
+      - Airavata: 'Airavata-Upgrades.md'
+      - PGA: 'PGA-Upgrades.md'
+  - Admin Dashboard: 'Admin-Maintenance.md'
 - Documentation:
-  - User Profiles: User-Profiles.md
-  - Applications: Application-CookBook.md
-  - Airavata API: AiravataApi.md
-- FAQ: FAQ.md
-- Contact Us: Contact-Us.md
+  - User Profiles: 'User-Profiles.md'
+  - Applications: 'Application-CookBook.md'
+  - Airavata API: 'AiravataApi.md'
+- FAQ: 'FAQ.md'
+- Contact Us: 'Contact-Us.md'
 
 theme: readthedocs
 
 extra_css:
-  - css/extra.css
\ No newline at end of file
+  - css/extra.css