.. _IAGOS.apps.workflow.transfer: **************************** IAGOS.apps.workflow.transfer **************************** Overview ======== .. figure:: ../graphics/transfer.PNG :width: 100% The **TansferHandler** handles the communication between the application and external systems. It is used by the **ImportManager** and the **ExportManager**. The handler combines the three components **TransferType**, **ConnectionHandler** and **DataProvider**. The component **TransferType** defines the transfer protocol *(e.g., REST)*. Note that the transfer type is an interface that could be extended with new protocols if needed. The **ConnectionHandler** handles the authentication and the connection to the external systems. Note that the authentication method often differs between the systems for security purposes. Therefore the component provides an interface that allows adding new authentication methods. In many use cases, only the authentication method differs. Assume you have to request a token for authentication; you can use *OAuth2* or connect directly with your credentials. But after the token is requested, the REST requests would be the same. Thus the type and authentication are split into two components which can be combined individually. Finally, there is the component **DataProvider**. It records only some information about the external data provider. Interfaces ========== Interface - TransferType ------------------------ .. automodule:: IAGOS.apps.workflow.transfer.transfer_types.base :members: Interface - ConnectionHandler ----------------------------- .. automodule:: IAGOS.apps.workflow.transfer.connection_handler.base :members: ConnectionHandler ================= .. autoclass:: IAGOS.apps.workflow.transfer.models.ConnectionHandler :members: :show-inheritance: DataProvider ============ .. autoclass:: IAGOS.apps.workflow.transfer.models.DataProvider :members: :show-inheritance: TransferHandler =============== .. autoclass:: IAGOS.apps.workflow.transfer.models.TransferHandler :members: :show-inheritance: TransferType ============ .. autoclass:: IAGOS.apps.workflow.transfer.models.TransferType :members: :show-inheritance: