Fix documentation
[nonrtric.git] / docs / overview.rst
index 26e755f..0aebe30 100644 (file)
@@ -2,7 +2,7 @@
 .. SPDX-License-Identifier: CC-BY-4.0
 .. Copyright (C) 2021 Nordix
 
-.. |archpic| image:: ./images/nonrtric-architecture-E.png
+.. |archpic| image:: ./images/nonrtric-architecture-F.png
   :alt: Image: O-RAN SC - NONRTRIC Overall Architecture
 
 Summary
@@ -28,23 +28,24 @@ NONRTRIC components
 
 These are the components that make up the Non-RT-RIC:
 
-- Non-RT-RIC Control Panel
-- Information Coordinator Service
-- A1 Policy Management Service
-- A1 Policy Controller / Adapter
-- Near-RT RIC A1 Simulator
-- Non-RT-RIC (Spring Cloud) Service Gateway
-- Non-RT-RIC (Kong) Service Exposure Prototyping
-- DMaaP/Kafka Information Producer Adapters
-- Initial Non-RT-RIC App Catalogue
-- Initial K8S Helm Chart LCM Manager
-- Test Framework
-- Use Cases
+* `Non-RT-RIC Control Panel <#non-rt-ric-control-panel-nonrtric-dashboard>`_. :doc:`Documentation site <controlpanel:index>`.
+* `Information Coordinator Service <#information-coordination-service>`_. :doc:`Documentation site <informationcoordinatorservice:index>`.
+* `A1 Policy Management Service <#a1-policy-management-service-from-onap-ccsdk>`_. :doc:`Documentation site <a1policymanagementservice:index>`.
+* `A1 Policy Controller / Adapter <#a1-sdnc-controller-a1-adapter-controller-plugin>`_.
+* `Near-RT RIC A1 Simulator <#a1-interface-near-rt-ric-simulator>`_. :doc:`Documentation site <simulator:index>`.
+* `Non-RT-RIC (Spring Cloud) Service Gateway <#non-rt-ric-spring-cloud-service-gateway>`_.
+* `Non-RT-RIC (Kong) Service Exposure Prototyping <#non-rt-ric-kong-service-exposure-prototyping>`_.
+* `DMaaP/Kafka Information Producer Adapters <#dmaap-kafka-information-producer-adapters>`_. :doc:`Documentation site adapter <dmaapadapter:index>`. :doc:`Documentation site mediator <dmaapmediatorproducer:index>`.
+* `Initial Non-RT-RIC App Catalogue <#initial-non-rt-ric-app-catalogue>`_. :doc:`Documentation site <rappcatalogue:index>`.
+* `Initial K8S Helm Chart LCM Manager <#id5>`_. :doc:`Documentation site <helmmanager:index>`.
+* `Authentication Support <#id6>`_. :doc:`Documentation site <authtokenfetch:index>`.
+* `Service Management & Exposure (SME) <#service-management-and-exposure>`_. :doc:`Documentation site <sme:index>`.
+* `Test Framework <#id7>`_.
+* `Use Cases: <#non-rt-ric-use-cases>`_
+
+  * "Helloworld" O-RU Fronthaul Recovery use case. :doc:`Documentation site <orufhrecovery:index>`.
+  * "Helloworld" O-DU Slice Assurance use case. :doc:`Documentation site <ransliceassurance:index>`.
 
-  + "Helloworld" O-RU Fronthaul Recovery use case
-  + "Helloworld" O-DU Slice Assurance use case
-
-The source code for "E" Release is in the `NONRTRIC <https://gerrit.o-ran-sc.org/r/admin/repos/nonrtric>`_, `NONRTRIC-ControlPanel <https://gerrit.o-ran-sc.org/r/admin/repos/portal/nonrtric-controlpanel>`_, and `Near-RT-RIC A1-Simulator <https://gerrit.o-ran-sc.org/r/admin/repos/sim/a1-interface>`_ Gerrit source repositories (E-Release Branch).
 
 Non-RT-RIC Control Panel / NONRTRIC Dashboard
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -62,7 +63,7 @@ Implementation:
 - Frontend: Angular framework
 - Repo: *portal/nonrtric-controlpanel*
 - `Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_ to set up in your local environment.
-- Documentation at the `NONRTRIC-Portal documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-portal-nonrtric-controlpanel>`_.
+- Documentation at the :doc:`NONRTRIC-Portal documentation site <controlpanel:index>`.
 
 Information Coordination Service
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -77,13 +78,13 @@ Maintains a registry of:
 - Information Consumers
 - Information Jobs
 
-The service is not involved in data delivery and hence does not put restrictions on this. 
+The service is not involved in data delivery and hence does not put restrictions on this.
 
 Implementation:
 
 - Implemented as a Java Spring Boot application.
 - Repo: *nonrtric/plt/informationcoordinatorservice*.
-- Documentation at the `Information Coordination Service site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-informationcoordinatorservice/en/latest/>`_
+- Documentation at the :doc:`Information Coordination Service site <informationcoordinatorservice:index>`.
 
 A1 Policy Management Service (from ONAP CCSDK)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -110,6 +111,8 @@ Implementation:
 
 - Implemented as a Java Spring Boot application.
 - Wiki: `A1 Policy Management Service in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_ .
+- Repo: *nonrtric/plt/a1policymanagementservice*.
+- Documentation at the :doc:`A1 Policy Management Service documentation site <a1policymanagementservice:index>`.
 
 A1/SDNC Controller & A1 Adapter (Controller plugin)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -141,7 +144,7 @@ Implementation:
 
 - Implemented as a Python application.
 - Repo: *sim/a1-interface*.
-- Documentation at the `A1 Simulator documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface>`_
+- Documentation at the :doc:`A1 Simulator documentation site <simulator:index>`.
 
 Non-RT-RIC (Spring Cloud) Service Gateway
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -183,8 +186,8 @@ There are two alternative implementations to allow Information Consumers to cons
 
 Implementation:
 
-- Implementation in Java Spring (DMaaP Adapter), repo: *nonrtric/plt/dmaapadapter*, see `DMaaP Adapter documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-dmaapadapter/en/latest/>`_.
-- Implemention in Go (DMaaP Mediator Producer), repo: *nonrtric/plt/dmaapmediatorproducer*, see `DMaaP Mediator Producer documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-dmaapmediatorproducer>`_.
+- Implementation in Java Spring (DMaaP Adapter), repo: *nonrtric/plt/dmaapadapter*, see :doc:`DMaaP Adapter documentation site <dmaapadapter:index>`.
+- Implementation in Go (DMaaP Mediator Producer), repo: *nonrtric/plt/dmaapmediatorproducer*, see :doc:`DMaaP Mediator Producer documentation site <dmaapmediatorproducer:index>`.
 
 Initial Non-RT-RIC App Catalogue
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -199,7 +202,7 @@ Implementation:
 
 - Implemented as a Java Spring Boot application.
 - Repo: *nonrtric/plt/rappcatalogue*
-- Documentation at the `rApp Catalogue documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-rappcatalogue>`_.
+- Documentation at the :doc:`rApp Catalogue documentation site <rappcatalogue:index>`.
 
 Initial K8S Helm Chart LCM Manager
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -217,25 +220,80 @@ Implementation:
 
 - Implemented as a Java Spring Boot application.
 - Repo: *nonrtric/plt/helmmanager*
-- Documentation at the `Helm Manager documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-helmmanager>`_.
+- Documentation at the :doc:`Helm Manager documentation site <helmmanager:index>`.
+
+Service Management and Exposure
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+An initial implementation of the CAPIF Core service. It implements the following CAPIF APIs:
+
+- API Provider Management
+- Publish Service
+- Discover Service
+- API Invoker Management
+- Security
+- Events
+
+Implementation:
+
+- Implemented in Go
+- Repo: *nonrtric/plt/sme*
+- Documentation at the :doc:`Service Management & Exposure (SME) documentation site <sme:index>`.
+
+Authentication Support
+~~~~~~~~~~~~~~~~~~~~~~
+
+The auth-token-fetch provides support for authentication.
+It is intended to be used as a sidecar and does the authentication procedure, gets and saves the access token
+in the local file system. This includes refresh of the token before it expires.
+This means that the service only needs to read the token from a file.
+
+It is tested using Keycloak as authentication provider.
+
+.. image:: ./AuthSupport.png
+   :width: 500pt
+
+So, a service just needs to read the token file and for instance insert it in the authorization header when using HTTP.
+The file needs to be re-read if it has been updated.
+
+The auth-token-fetch is configured by the following environment variables.
+
+* CERT_PATH - the file path of the cert to use for TSL, example: security/tls.crt
+* CERT_KEY_PATH - the file path of the private key file for the cert, example: "security/tls.key"
+* ROOT_CA_CERTS_PATH - the file path of the trust store.
+* CREDS_GRANT_TYPE - the grant_type used for authentication, example: client_credentials
+* CREDS_CLIENT_SECRET - the secret/private shared key used for authentication
+* CREDS_CLIENT_ID - the client id used for authentication
+* OUTPUT_FILE - the path where the fetched authorization token is stored, example: "/tmp/authToken.txt"
+* AUTH_SERVICE_URL - the URL to the authentication service (Keycloak)
+* REFRESH_MARGIN_SECONDS - how long in advance before the authorization token expires it is refreshed
 
 Test Framework
 ~~~~~~~~~~~~~~
 
 A full test environment with extensive test cases/scripts can be found in the ``test`` directory in the *nonrtric* source code.
 
-Use Cases
-~~~~~~~~~
+Non-RT-RIC Use Cases
+~~~~~~~~~~~~~~~~~~~~
 
 "Helloworld" O-RU Fronthaul Recovery use case
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 A very simplified closed-loop rApp use case to re-establish front-haul connections between O-DUs and O-RUs if they fail. Not intended to to be 'real-world'.
 
+Implementation:
+
+- One version implemented in Python, one in Go as an Information Coordination Service Consumer, and one as an apex policy.
+- Repo: *nonrtric/rapp/orufhrecovery*
+- Documentation at the :doc:`O-RU Fronthaul Recovery documentation site <orufhrecovery:index>`.
+
 "Helloworld" O-DU Slice Assurance use case
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 A very simplified closed-loop rApp use case to re-prioritize a RAN slice's radio resource allocation priority if sufficient throughput cannot be maintained. Not intended to to be 'real-world'.
-* Repo: *nonrtric/rapp/ransliceassurance*
 
-More details available at the `documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-rapp-ransliceassurance>`__.
+Implementation:
+
+- One version implemented in Go as a micro service, one in Go as an Information Coordination Service Consumer.
+- Repo: *nonrtric/rapp/ransliceassurance*
+- Documentation at the :doc:`O-DU Slice Assurance documentation site <ransliceassurance:index>`.