odoo-addon-base-external-system-http 16.0.1.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. odoo/addons/base_external_system_http/README.rst +133 -0
  2. odoo/addons/base_external_system_http/__init__.py +2 -0
  3. odoo/addons/base_external_system_http/__manifest__.py +25 -0
  4. odoo/addons/base_external_system_http/demo/external_system_demo.xml +16 -0
  5. odoo/addons/base_external_system_http/demo/external_system_endpoint_demo.xml +14 -0
  6. odoo/addons/base_external_system_http/i18n/base_external_system_http.pot +317 -0
  7. odoo/addons/base_external_system_http/models/__init__.py +4 -0
  8. odoo/addons/base_external_system_http/models/external_system.py +17 -0
  9. odoo/addons/base_external_system_http/models/external_system_adapter_http.py +157 -0
  10. odoo/addons/base_external_system_http/models/external_system_endpoint.py +19 -0
  11. odoo/addons/base_external_system_http/readme/CONTRIBUTORS.rst +2 -0
  12. odoo/addons/base_external_system_http/readme/DESCRIPTION.rst +8 -0
  13. odoo/addons/base_external_system_http/readme/ROADMAP.rst +2 -0
  14. odoo/addons/base_external_system_http/readme/USAGE.rst +24 -0
  15. odoo/addons/base_external_system_http/security/ir.model.access.csv +4 -0
  16. odoo/addons/base_external_system_http/static/description/icon.png +0 -0
  17. odoo/addons/base_external_system_http/static/description/index.html +469 -0
  18. odoo/addons/base_external_system_http/tests/__init__.py +2 -0
  19. odoo/addons/base_external_system_http/tests/test_external_system_http.py +196 -0
  20. odoo/addons/base_external_system_http/views/external_system.xml +22 -0
  21. odoo_addon_base_external_system_http-16.0.1.1.0.dist-info/METADATA +149 -0
  22. odoo_addon_base_external_system_http-16.0.1.1.0.dist-info/RECORD +24 -0
  23. odoo_addon_base_external_system_http-16.0.1.1.0.dist-info/WHEEL +5 -0
  24. odoo_addon_base_external_system_http-16.0.1.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,133 @@
1
+ .. image:: https://odoo-community.org/readme-banner-image
2
+ :target: https://odoo-community.org/get-involved?utm_source=readme
3
+ :alt: Odoo Community Association
4
+
5
+ ====================
6
+ External System HTTP
7
+ ====================
8
+
9
+ ..
10
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
11
+ !! This file is generated by oca-gen-addon-readme !!
12
+ !! changes will be overwritten. !!
13
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14
+ !! source digest: sha256:aded32d357286363170f53aef61323cb32b58fef034fb05f9f60bf0d06ca3fda
15
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
+
17
+ .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
18
+ :target: https://odoo-community.org/page/development-status
19
+ :alt: Beta
20
+ .. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
21
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
22
+ :alt: License: AGPL-3
23
+ .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github
24
+ :target: https://github.com/OCA/server-backend/tree/16.0/base_external_system_http
25
+ :alt: OCA/server-backend
26
+ .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
27
+ :target: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-base_external_system_http
28
+ :alt: Translate me on Weblate
29
+ .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
30
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/server-backend&target_branch=16.0
31
+ :alt: Try me on Runboat
32
+
33
+ |badge1| |badge2| |badge3| |badge4| |badge5|
34
+
35
+ This module provides an HTTP(S) adapter for the ``base_external_system`` framework.
36
+
37
+ It allows Odoo to communicate with external systems over HTTP using a consistent
38
+ adapter interface, supporting GET, POST and PUT requests, endpoint resolution,
39
+ and connection testing.
40
+
41
+ The adapter itself acts as the client and is yielded via the standard
42
+ ``system.client()`` context manager.
43
+
44
+ **Table of contents**
45
+
46
+ .. contents::
47
+ :local:
48
+
49
+ Usage
50
+ =====
51
+
52
+ Create an external system record and optionally define endpoints.
53
+
54
+ Example configuration:
55
+
56
+ * Host: ``api.example.com``
57
+ * Remote path: ``/v1``
58
+
59
+ Define endpoints such as:
60
+
61
+ * ``status`` → ``/status``
62
+ * ``items`` → ``/items``
63
+
64
+ Use the adapter:
65
+
66
+ .. code-block:: python
67
+
68
+ with system.client() as client:
69
+ response = client.get(endpoint="status")
70
+ response = client.post(endpoint="items", json={"name": "Item"})
71
+ response = client.put(endpoint="items", json={"active": True})
72
+
73
+ Responses are returned as ``requests.Response`` objects.
74
+
75
+ Errors raise ``ValidationError`` with detailed messages.
76
+
77
+ Known issues / Roadmap
78
+ ======================
79
+
80
+ * Optional authentication helpers
81
+ * Optional persistent session support
82
+
83
+ Bug Tracker
84
+ ===========
85
+
86
+ Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-backend/issues>`_.
87
+ In case of trouble, please check there if your issue has already been reported.
88
+ If you spotted it first, help us to smash it by providing a detailed and welcomed
89
+ `feedback <https://github.com/OCA/server-backend/issues/new?body=module:%20base_external_system_http%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
90
+
91
+ Do not contact contributors directly about support or help with technical issues.
92
+
93
+ Credits
94
+ =======
95
+
96
+ Authors
97
+ ~~~~~~~
98
+
99
+ * Therp BV
100
+
101
+ Contributors
102
+ ~~~~~~~~~~~~
103
+
104
+ * Ronald Portier (Therp BV)
105
+ * Nikos Tsirintanis <ntsirintanis@therp.nl>
106
+
107
+ Maintainers
108
+ ~~~~~~~~~~~
109
+
110
+ This module is maintained by the OCA.
111
+
112
+ .. image:: https://odoo-community.org/logo.png
113
+ :alt: Odoo Community Association
114
+ :target: https://odoo-community.org
115
+
116
+ OCA, or the Odoo Community Association, is a nonprofit organization whose
117
+ mission is to support the collaborative development of Odoo features and
118
+ promote its widespread use.
119
+
120
+ .. |maintainer-NL66278| image:: https://github.com/NL66278.png?size=40px
121
+ :target: https://github.com/NL66278
122
+ :alt: NL66278
123
+ .. |maintainer-ntsirintanis| image:: https://github.com/ntsirintanis.png?size=40px
124
+ :target: https://github.com/ntsirintanis
125
+ :alt: ntsirintanis
126
+
127
+ Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
128
+
129
+ |maintainer-NL66278| |maintainer-ntsirintanis|
130
+
131
+ This module is part of the `OCA/server-backend <https://github.com/OCA/server-backend/tree/16.0/base_external_system_http>`_ project on GitHub.
132
+
133
+ You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
@@ -0,0 +1,2 @@
1
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
2
+ from . import models
@@ -0,0 +1,25 @@
1
+ # Copyright 2026 Therp BV <https://therp.nl>.
2
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3
+ {
4
+ "name": "External System HTTP",
5
+ "version": "16.0.1.1.0",
6
+ "author": "Therp BV, Odoo Community Association (OCA)",
7
+ "maintainers": ["NL66278", "ntsirintanis"],
8
+ "license": "AGPL-3",
9
+ "category": "Base",
10
+ "website": "https://github.com/OCA/server-backend",
11
+ "summary": "HTTP Connector for External Systems",
12
+ "depends": ["base_external_system"],
13
+ "data": [
14
+ "security/ir.model.access.csv",
15
+ "demo/external_system_demo.xml",
16
+ "demo/external_system_endpoint_demo.xml",
17
+ "views/external_system.xml",
18
+ ],
19
+ "demo": [
20
+ "demo/external_system_demo.xml",
21
+ "demo/external_system_endpoint_demo.xml",
22
+ ],
23
+ "installable": True,
24
+ "application": False,
25
+ }
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <!--
3
+ Copyright 2026 Therp BV.
4
+ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5
+ -->
6
+ <odoo>
7
+
8
+ <record id="external_system_github" model="external.system">
9
+ <field name="name">Example Connection to GitHub for Testing</field>
10
+ <field name="system_type">external.system.adapter.http</field>
11
+ <field name="host">github.com</field>
12
+ <field name="remote_path">/OCA</field>
13
+ <field name="company_ids" eval="[(5, 0), (4, ref('base.main_company'))]" />
14
+ </record>
15
+
16
+ </odoo>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <!--
3
+ Copyright 2026 Therp BV.
4
+ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5
+ -->
6
+ <odoo>
7
+
8
+ <record id="external_system_github_server_tools" model="external.system.endpoint">
9
+ <field name="system_id" ref="external_system_github" />
10
+ <field name="name">tools</field>
11
+ <field name="endpoint">/server-tools</field>
12
+ </record>
13
+
14
+ </odoo>
@@ -0,0 +1,317 @@
1
+ # Translation of Odoo Server.
2
+ # This file contains the translation of the following modules:
3
+ # * base_external_system_http
4
+ #
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: Odoo Server 16.0\n"
8
+ "Report-Msgid-Bugs-To: \n"
9
+ "Last-Translator: \n"
10
+ "Language-Team: \n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: \n"
14
+ "Plural-Forms: \n"
15
+
16
+ #. module: base_external_system_http
17
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__company_ids
18
+ msgid "Access to this system is restricted to these companies."
19
+ msgstr ""
20
+
21
+ #. module: base_external_system_http
22
+ #. odoo-python
23
+ #: code:addons/base_external_system_http/models/external_system_adapter_http.py:0
24
+ #, python-format
25
+ msgid ""
26
+ "Communication failure with %(endpoint)s (HTTP %(status)s).\n"
27
+ "\n"
28
+ "DETAIL: %(detail)s"
29
+ msgstr ""
30
+
31
+ #. module: base_external_system_http
32
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__company_ids
33
+ msgid "Companies"
34
+ msgstr ""
35
+
36
+ #. module: base_external_system_http
37
+ #: model_terms:ir.ui.view,arch_db:base_external_system_http.external_system_view_form
38
+ msgid "Configure http endpoints"
39
+ msgstr ""
40
+
41
+ #. module: base_external_system_http
42
+ #. odoo-python
43
+ #: code:addons/base_external_system_http/models/external_system_adapter_http.py:0
44
+ #, python-format
45
+ msgid ""
46
+ "Connection failed.\n"
47
+ "\n"
48
+ "DETAIL: %s"
49
+ msgstr ""
50
+
51
+ #. module: base_external_system_http
52
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__create_uid
53
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__create_uid
54
+ msgid "Created by"
55
+ msgstr ""
56
+
57
+ #. module: base_external_system_http
58
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__create_date
59
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__create_date
60
+ msgid "Created on"
61
+ msgstr ""
62
+
63
+ #. module: base_external_system_http
64
+ #. odoo-python
65
+ #: code:addons/base_external_system_http/models/external_system_adapter_http.py:0
66
+ #, python-format
67
+ msgid ""
68
+ "DELETE request failed for %(url)s.\n"
69
+ "\n"
70
+ "DETAIL: %(detail)s"
71
+ msgstr ""
72
+
73
+ #. module: base_external_system_http
74
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__display_name
75
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__display_name
76
+ msgid "Display Name"
77
+ msgstr ""
78
+
79
+ #. module: base_external_system_http
80
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__endpoint
81
+ msgid "Endpoint"
82
+ msgstr ""
83
+
84
+ #. module: base_external_system_http
85
+ #. odoo-python
86
+ #: code:addons/base_external_system_http/models/external_system_adapter_http.py:0
87
+ #, python-format
88
+ msgid "Endpoint %(endpoint)s not found on system %(system_name)s"
89
+ msgstr ""
90
+
91
+ #. module: base_external_system_http
92
+ #: model:ir.model,name:base_external_system_http.model_external_system_endpoint
93
+ msgid "Endpoint on remote system to get from or post to."
94
+ msgstr ""
95
+
96
+ #. module: base_external_system_http
97
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system__endpoint_ids
98
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__endpoint_ids
99
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_os__endpoint_ids
100
+ msgid "Endpoints"
101
+ msgstr ""
102
+
103
+ #. module: base_external_system_http
104
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system__endpoint_ids
105
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__endpoint_ids
106
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_os__endpoint_ids
107
+ msgid "Endpoints on remote system"
108
+ msgstr ""
109
+
110
+ #. module: base_external_system_http
111
+ #: model:ir.model,name:base_external_system_http.model_external_system
112
+ msgid "External System"
113
+ msgstr ""
114
+
115
+ #. module: base_external_system_http
116
+ #: model:ir.model,name:base_external_system_http.model_external_system_adapter_http
117
+ msgid "External System HTTP"
118
+ msgstr ""
119
+
120
+ #. module: base_external_system_http
121
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__fingerprint
122
+ msgid "Fingerprint"
123
+ msgstr ""
124
+
125
+ #. module: base_external_system_http
126
+ #. odoo-python
127
+ #: code:addons/base_external_system_http/models/external_system_adapter_http.py:0
128
+ #, python-format
129
+ msgid ""
130
+ "GET request failed for %(url)s.\n"
131
+ "\n"
132
+ "DETAIL: %(detail)s"
133
+ msgstr ""
134
+
135
+ #. module: base_external_system_http
136
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__host
137
+ msgid "Host"
138
+ msgstr ""
139
+
140
+ #. module: base_external_system_http
141
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__id
142
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__id
143
+ msgid "ID"
144
+ msgstr ""
145
+
146
+ #. module: base_external_system_http
147
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__ignore_fingerprint
148
+ msgid "Ignore Fingerprint"
149
+ msgstr ""
150
+
151
+ #. module: base_external_system_http
152
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__interface
153
+ msgid "Interface"
154
+ msgstr ""
155
+
156
+ #. module: base_external_system_http
157
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http____last_update
158
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint____last_update
159
+ msgid "Last Modified on"
160
+ msgstr ""
161
+
162
+ #. module: base_external_system_http
163
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__write_uid
164
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__write_uid
165
+ msgid "Last Updated by"
166
+ msgstr ""
167
+
168
+ #. module: base_external_system_http
169
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__write_date
170
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__write_date
171
+ msgid "Last Updated on"
172
+ msgstr ""
173
+
174
+ #. module: base_external_system_http
175
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__name
176
+ msgid "Logical name for endpoint"
177
+ msgstr ""
178
+
179
+ #. module: base_external_system_http
180
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__name
181
+ msgid "Name"
182
+ msgstr ""
183
+
184
+ #. module: base_external_system_http
185
+ #. odoo-python
186
+ #: code:addons/base_external_system_http/models/external_system_adapter_http.py:0
187
+ #, python-format
188
+ msgid ""
189
+ "POST request failed for %(url)s.\n"
190
+ "\n"
191
+ "DETAIL: %(detail)s"
192
+ msgstr ""
193
+
194
+ #. module: base_external_system_http
195
+ #. odoo-python
196
+ #: code:addons/base_external_system_http/models/external_system_adapter_http.py:0
197
+ #, python-format
198
+ msgid ""
199
+ "PUT request failed for %(url)s.\n"
200
+ "\n"
201
+ "DETAIL: %(detail)s"
202
+ msgstr ""
203
+
204
+ #. module: base_external_system_http
205
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__password
206
+ msgid "Password"
207
+ msgstr ""
208
+
209
+ #. module: base_external_system_http
210
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__port
211
+ msgid "Port"
212
+ msgstr ""
213
+
214
+ #. module: base_external_system_http
215
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__private_key
216
+ msgid "Private Key"
217
+ msgstr ""
218
+
219
+ #. module: base_external_system_http
220
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__private_key_password
221
+ msgid "Private Key Password"
222
+ msgstr ""
223
+
224
+ #. module: base_external_system_http
225
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__remote_path
226
+ msgid "Remote Path"
227
+ msgstr ""
228
+
229
+ #. module: base_external_system_http
230
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_endpoint__endpoint
231
+ msgid "Remote path to append to base url for endpoint"
232
+ msgstr ""
233
+
234
+ #. module: base_external_system_http
235
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__remote_path
236
+ msgid "Restrict to this directory path on the remote, if applicable."
237
+ msgstr ""
238
+
239
+ #. module: base_external_system_http
240
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__ignore_fingerprint
241
+ msgid ""
242
+ "Set this to `True` in order to ignore an invalid/unknown fingerprint from "
243
+ "the system."
244
+ msgstr ""
245
+
246
+ #. module: base_external_system_http
247
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__system_id
248
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_endpoint__system_id
249
+ msgid "System"
250
+ msgstr ""
251
+
252
+ #. module: base_external_system_http
253
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__system_type
254
+ msgid "System Type"
255
+ msgstr ""
256
+
257
+ #. module: base_external_system_http
258
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__name
259
+ msgid "This is the canonical (humanized) name for the system."
260
+ msgstr ""
261
+
262
+ #. module: base_external_system_http
263
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__host
264
+ msgid "This is the domain or IP address that the system can be reached at."
265
+ msgstr ""
266
+
267
+ #. module: base_external_system_http
268
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__fingerprint
269
+ msgid ""
270
+ "This is the fingerprint that is advertised by this system in order to "
271
+ "validate its identity."
272
+ msgstr ""
273
+
274
+ #. module: base_external_system_http
275
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__interface
276
+ msgid ""
277
+ "This is the interface that this system represents. It is created "
278
+ "automatically upon creation of the external system."
279
+ msgstr ""
280
+
281
+ #. module: base_external_system_http
282
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__password
283
+ msgid ""
284
+ "This is the password that is used for authenticating to this system, if "
285
+ "applicable."
286
+ msgstr ""
287
+
288
+ #. module: base_external_system_http
289
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__private_key_password
290
+ msgid ""
291
+ "This is the password to unlock the private key that was provided for this "
292
+ "sytem."
293
+ msgstr ""
294
+
295
+ #. module: base_external_system_http
296
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__port
297
+ msgid "This is the port number that the system is listening on."
298
+ msgstr ""
299
+
300
+ #. module: base_external_system_http
301
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__private_key
302
+ msgid ""
303
+ "This is the private key that is used for authenticating to this system, if "
304
+ "applicable."
305
+ msgstr ""
306
+
307
+ #. module: base_external_system_http
308
+ #: model:ir.model.fields,help:base_external_system_http.field_external_system_adapter_http__username
309
+ msgid ""
310
+ "This is the username that is used for authenticating to this system, if "
311
+ "applicable."
312
+ msgstr ""
313
+
314
+ #. module: base_external_system_http
315
+ #: model:ir.model.fields,field_description:base_external_system_http.field_external_system_adapter_http__username
316
+ msgid "Username"
317
+ msgstr ""
@@ -0,0 +1,4 @@
1
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
2
+ from . import external_system_endpoint # Must be before external_system!
3
+ from . import external_system
4
+ from . import external_system_adapter_http
@@ -0,0 +1,17 @@
1
+ # Copyright 2026 Therp BV <https://therp.nl>.
2
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3
+
4
+ from odoo import fields, models
5
+
6
+
7
+ class ExternalSystem(models.Model):
8
+ """Extend base external system"""
9
+
10
+ _inherit = "external.system"
11
+
12
+ endpoint_ids = fields.One2many(
13
+ comodel_name="external.system.endpoint",
14
+ inverse_name="system_id",
15
+ string="Endpoints",
16
+ help="Endpoints on remote system",
17
+ )