mirror of
https://github.com/OCA/server-backend.git
synced 2025-02-18 09:52:42 +02:00
[MIG] base_external_system: Migration to 12.0
This commit is contained in:
1
base_external_system/readme/CONFIGURE.rst
Normal file
1
base_external_system/readme/CONFIGURE.rst
Normal file
@@ -0,0 +1 @@
|
||||
Configure external systems in Settings => Technical => External Systems
|
||||
2
base_external_system/readme/CONTRIBUTORS.rst
Normal file
2
base_external_system/readme/CONTRIBUTORS.rst
Normal file
@@ -0,0 +1,2 @@
|
||||
* Dave Lasley <dave@laslabs.com>
|
||||
* Alexandre Díaz <alexandre.diaz@tecnativa.com>
|
||||
7
base_external_system/readme/DESCRIPTION.rst
Normal file
7
base_external_system/readme/DESCRIPTION.rst
Normal file
@@ -0,0 +1,7 @@
|
||||
This module provides an interface/adapter mechanism for the definition of remote
|
||||
systems.
|
||||
|
||||
Note that this module stores everything in plain text. In the interest of security,
|
||||
it is recommended you use another module (such as `keychain` or `red_october` to
|
||||
encrypt things like the password and private key). This is not done here in order
|
||||
to not force a specific security method.
|
||||
32
base_external_system/readme/USAGE.rst
Normal file
32
base_external_system/readme/USAGE.rst
Normal file
@@ -0,0 +1,32 @@
|
||||
The credentials for systems are stored in the ``external.system`` model, and are to
|
||||
be configured by the user. This model is the unified interface for the underlying
|
||||
adapters.
|
||||
|
||||
Using the Interface
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Given an ``external.system`` singleton called ``external_system``, you would do the
|
||||
following to get the underlying system client:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
with external_system.client() as client:
|
||||
client.do_something()
|
||||
|
||||
The client will be destroyed once the context has completed. Destruction takes place
|
||||
in the adapter's ``external_destroy_client`` method.
|
||||
|
||||
The only unified aspect of this interface is the client connection itself. Other more
|
||||
opinionated interface/adapter mechanisms can be implemented in other modules, such as
|
||||
the file system interface in `OCA/server-tools/external_file_location
|
||||
<https://github.com/OCA/server-tools/tree/9.0/external_file_location>`_.
|
||||
|
||||
Creating an Adapter
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Modules looking to add an external system adapter should inherit the
|
||||
``external.system.adapter`` model and override the following methods:
|
||||
|
||||
* ``external_get_client``: Returns a usable client for the system
|
||||
* ``external_destroy_client``: Destroy the connection, if applicable. Does not need
|
||||
to be defined if the connection destroys itself.
|
||||
Reference in New Issue
Block a user