.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 AT&T Intellectual Property.  All rights reserved.


ONAP Portal
===========
The ONAP Portal integrates different ONAP applications in one place.
The Portal platform provides common management services and
connectivity, while the applications run separately.

From the Portal, users access applications. Administrators
onboard and manage applications and widgets, and manage user access.

The Portal SDK for application developers includes bundled tools,
technologies, and built-in capabilities such as services, APIs,
and UI controls. Existing applications can migrate to the Portal
with the provided APIs and libraries.
See :ref:`Portal SDK <portal-sdk>`

Access the ONAP Portal
----------------------

Access the ONAP Portal using a browser such as Mozilla Firefox or
Google Chrome. The URL is dependent on a specific ONAP platform
deployment.

From the Portal, users access applications directly or by
function using the Manage menu.

.. figure:: onap-portal-home.png
   :width: 900 px
   :height: 600 px


Roles in the ONAP Portal
------------------------
The Portal displays different menus for the following roles:

* User

* Portal Administrator

* Application Administrator

* Governor

* Operator

Each application also defines a distinct set of user roles.
See Users.

See also
--------

* `Applications in the Portal <https://wiki.onap.org/x/h4sP>`_
