.. SPDX-FileCopyrightText: 2024 Univention GmbH
..
.. SPDX-License-Identifier: AGPL-3.0-only

.. _data-flow-complete:

Complete flow
=============

This section provides an overview of the flows between
the components in Nubus for Kubernetes,
external directories, and third-party applications.
The figures show the access relationships, small black dotted lines,
and the flow relationships, bold dashed colorful lines.
The focus of this section is on the flow relationships.
The section uses the following structure:

* Level 1 - Breakdown on the functional component level
* Level 2 - Breakdown on the data object types between the functional components

This section considers the following object types:

* *Directory objects*
* *UDM objects*
* *Event objects*

.. seealso::

   :ref:`data-objects-directory` in data objects section
      for information about *Directory objects*.

   :ref:`data-objects-udm` in data objects section
      for information about *UDM objects*.

   :ref:`data-objects-event` in data objects section
      for information about *Event objects*.

.. _data-flow-complete-functional-level:

Functional components level
---------------------------

This section describes the flow relationships on the functional component level
for the object types :ref:`data-objects-directory`, :ref:`data-objects-udm`, and :ref:`data-objects-event`.
You find the visualization in :numref:`data-flow-complete-figure`.
The description order follows the creation process of the objects,
starting with the *Directory object*,
following with the :ref:`data-objects-udm`,
and finally the :ref:`data-objects-event`.

.. _data-flow-complete-level-directory-object:

Directory objects, orange line
 * Flow from :ref:`component-identity-store-directory-service` to:

   * :ref:`component-directory-manager` and back
   * :ref:`overview-components-management-ui` and back
   * :ref:`component-provisioning-service`
   * :ref:`overview-components-portal-service`
   * *Third-party applications not part of Nubus for Kubernetes*
   * :ref:`overview-components-connectors-nubus-directory-importer`

 * Flow from *External Directory service* to :ref:`overview-components-connectors-nubus-directory-importer`.

.. _data-flow-complete-level-udm-object:

UDM objects, blue line
   * Flow from :ref:`overview-components-management-ui` to :ref:`component-directory-manager` and back.
   * Flow from :ref:`overview-components-connectors-nubus-directory-importer` to :ref:`component-directory-manager`.
   * Flow from :ref:`component-directory-manager` to:

     * :ref:`component-authorization-service`
     * :ref:`overview-components-portal-service`
     * *Third-party application not part of Nubus*
     * :ref:`component-provisioning-service`

.. _component-data-level-event-object:

Event objects, black line
   * Flow from :ref:`component-provisioning-service` to:

     * *Consumer of Provisioning Service*
     * *Portal Service*
     * *End User Self Service*

.. _data-flow-complete-figure:

.. figure:: /images/Data_flow_between_components.*
   :target: ../_images/Data_flow_between_components.svg
   :alt: ArchiMate flow relationships between functional components

   ArchiMate flow relationships between functional components

.. _data-flow-complete-behavior-level:

Behavior level
--------------

This section describes the object flow relations on the functional level in
:numref:`data-flow-complete-details-figure`.
The structure of the section is identical to the previous section
:ref:`data-flow-complete-functional-level`.

.. _data-flow-complete-functional-level-directory-object:

Directory objects, orange line
  * Flow from *LDAP Server* to:

    * *UDM Library* in *Directory Manager*
    * *Keycloak* in *Identity Provider*
    * *Portal Consumer* in *Portal Service*
    * *UMC Server* in *Management UI*
    * *Nubus Directory Importer*
    * *Third-party application not part of Nubus*

  * Flow to components in *Identity Store and Directory Service*:

    * From *LDAP Primary* to *LDAP Server*
    * From *UMC Server* to *LDAP Primary*
    * From *UDM Library* to *LDAP Primary*

  * Flow from *LDAP Primary* to *UDM Listener* in *Provisioning Service*
  * Flow from *UDM Listener* to *UDM Transformer* in *Provisioning Service*

.. _data-flow-complete-functional-level-udm-object:

UDM objects, blue line
 * Flow from *UMC Server* to *UDM Library*

 * Flow from *UDM Library* to:

   * *UMC Server*
   * *UDM HTTP REST API* and back

 * Flow from *UDM HTTP REST API* to:

   * *Portal Consumer* in *Portal Service*
   * *Guardian Authorization HTTP REST API* in *Authorization Service*
   * *Prefill Service* in *Provisioning Service*

 * Flow to *UDM HTTP REST API* from:

   * *Nubus Directory Importer*
   * *Third-party application not part of Nubus*

.. _data-flow-complete-functional-level-event-object:

Event objects, black line
 * Flow from *UDM Transformer* to *Dispatcher*

 * Flow from *Dispatcher* to *Events and Consumer API*

 * Flow from *Events and Consumer API* to:

   * *Consumer of Provisioning Service*
   * *Portal Consumer*

 * Flow from *Prefill Service* to *Events and Consumer API*

.. _data-flow-complete-details-figure:

.. figure:: /images/Data_flow_between_components_details.*
   :target: ../_images/Data_flow_between_components_details.svg
   :alt: ArchiMate flow relationships on functional level

   ArchiMate flow relationships on functional level
