Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
6d4aeac
New generic module du define REST services
lmignon Jan 31, 2018
ff4acae
auth_api_key: New module to provide authentication by api_key
lmignon Jan 31, 2018
94ccd6d
auth_api_key: Remove useless code
lmignon Feb 2, 2018
797c58b
Update the auth_api_key for keychan 10.0.2 (renamed method)
RobinetDenisAcsone Feb 19, 2018
2004abb
Fix the authentification method and show the user_id on the form
RobinetDenisAcsone Feb 19, 2018
1b66b96
refactor code in order to use generic code from base_rest instead of …
sebastienbeau Feb 25, 2018
706d4cb
fix wrong name in selection box
sebastienbeau Aug 29, 2018
fc37c17
Since keychain 10.0.2.0.1 there is a default validation method
hparfr Oct 17, 2018
e193ff3
Keychain removed
qgroulard Nov 6, 2018
1cac307
Update Readme with more details
qgroulard Nov 8, 2018
b127a1d
Quick fix CONFIGURE.rst
qgroulard Nov 8, 2018
f2e0082
Developmet status: Beta
qgroulard Nov 8, 2018
3b47652
[FIX] auth_api_key: fix api and flake8
lmignon Nov 13, 2018
8c04947
[MIG] server_auth from 10 to 12
sbidoul Nov 20, 2018
99104fc
auth_api_key: add description to model
sbidoul Nov 20, 2018
4ed8355
[CHG] auth_api_key is LGPL
sbidoul Nov 21, 2018
fa693f8
Use consteq to compare keys
ap-wtioit Nov 30, 2018
cadcccd
[UPD] README.rst
OCA-git-bot Feb 14, 2019
878b650
[IMP] ADD possibility to save api keys in database by using server.en…
mourad-ehm Jul 18, 2019
b992b8c
[FIX] login_name error
mourad-ehm Jul 18, 2019
537b848
[IMP] make auth_api_key compatible in multi-db
sebastienbeau Jul 19, 2019
bdba651
[UPD] README.rst
OCA-git-bot Jul 29, 2019
3c9555b
[FIX] auth_api_key: Fix tests according to last changes and add views…
lmignon Sep 20, 2019
9eaba55
[IMP] auth_api_key: Ensures backward compatibility
lmignon Sep 27, 2019
35375c6
[FIX] auth_api_key: Cache must be cleared if the user_id is modified
lmignon Sep 27, 2019
02f1105
[IMP] auth_api_key: Improves key field description
lmignon Sep 27, 2019
5429deb
[UPD] README.rst
OCA-git-bot Sep 28, 2019
8e1f826
[IMP] auth_api_key: black, isort
Oct 17, 2019
88b8431
[MIG] auth_api_key: Migration to 13.0
Oct 17, 2019
a418f6f
[UPD] Update auth_api_key.pot
oca-travis Oct 29, 2019
58b5ba9
[UPD] README.rst
OCA-git-bot Oct 29, 2019
33336bc
pre-commit update
OCA-git-bot Mar 14, 2020
e217a59
[MIG] auth_api_key: Migration to 14.0
chafique-delli Oct 12, 2020
e7ad7b0
[UPD] Update auth_api_key.pot
oca-travis Dec 21, 2020
3e6d2d9
[UPD] README.rst
OCA-git-bot Dec 21, 2020
65deaf4
Added translation using Weblate (Italian)
primes2h Feb 12, 2021
2845d9e
Translated using Weblate (Italian)
primes2h Feb 12, 2021
1c15974
[14.0][IMP] auth_api_key: Allow to search on every key even if void
rousseldenis Sep 9, 2021
3e942bb
auth_api_key 14.0.1.0.1
OCA-git-bot Sep 10, 2021
61a8c4b
auth_api_key: drop old migration
simahawk Sep 24, 2021
ac43aca
auth_api_key: get rid of server env
simahawk Sep 24, 2021
6c112e7
auth_api_key: 14.0.2.0.0
simahawk Sep 24, 2021
f647c7c
[UPD] Update auth_api_key.pot
oca-travis Sep 27, 2021
8b84f6a
[UPD] README.rst
OCA-git-bot Sep 27, 2021
f495d02
auth_api_key 14.0.2.0.1
OCA-git-bot Sep 27, 2021
9a6ec72
Update translation files
oca-transbot Sep 27, 2021
1f84066
[MIG] auth_api_key: Migration to 15.0
yankinmax Nov 24, 2021
6924461
[UPD] Update auth_api_key.pot
Nov 30, 2021
37d8b46
auth_api_key: fix archived user allowed key
TDu Jul 22, 2022
e9b416f
[UPD] Update auth_api_key.pot
Jul 26, 2022
c099852
auth_api_key 15.0.1.1.0
OCA-git-bot Jul 26, 2022
9d5344f
Update translation files
oca-transbot Jul 26, 2022
dfdb10e
Revert "Merge PR #398 into 15.0"
TDu Jul 26, 2022
dc88d98
Revert "[UPD] Update auth_api_key.pot"
TDu Jul 26, 2022
572927e
Revert "Update translation files"
TDu Jul 26, 2022
6892662
auth_api_key 15.0.1.1.1
OCA-git-bot Jul 28, 2022
83670fd
Update translation files
oca-transbot Jul 28, 2022
28aad3b
[IMP] auth_api_key: pre-commit stuff
benoit-bertholon Nov 29, 2022
800c40b
[MIG] auth_api_key: Migration to 16.0
benoit-bertholon Nov 29, 2022
2d7f33d
[UPD] Update auth_api_key.pot
Dec 5, 2022
c1a5d49
[UPD] README.rst
OCA-git-bot Dec 5, 2022
1cca89c
Update translation files
weblate Dec 5, 2022
a9e3311
[UPD] README.rst
OCA-git-bot Sep 3, 2023
4d25945
[IMP] auth_api_key: pre-commit auto fixes
chrisb-c01 Dec 16, 2023
2e54316
[MIG] auth_api_key: Migration to 17.0
chrisb-c01 Dec 16, 2023
afdd45e
[UPD] Update auth_api_key.pot
Jan 26, 2024
7026779
[BOT] post-merge updates
OCA-git-bot Jan 26, 2024
26c88d2
Update translation files
weblate Feb 3, 2024
f04cd88
Translated using Weblate (Italian)
mymage Apr 3, 2024
3820c3a
Translated using Weblate (Italian)
mymage Aug 17, 2024
2e0ee49
[14.0] auth_api_key: allow to update api key from form view and hide …
petrus-v Jun 26, 2023
aef0601
auth_api_key: archive key when user is archived
TDu Mar 21, 2023
9d25bd8
auth_api_key: add option to auto archive key with user
TDu Mar 27, 2023
6bf684a
[IMP] auth_api_key: apply pre-commit auto fixes
thienvh332 Oct 8, 2024
91360bb
[MIG] auth_api_key: Migration to 18.0
thienvh332 Oct 8, 2024
09b34b6
[UDP] auth_api_key: Update description for reason to keep this module
thienvh332 Oct 10, 2024
0da0c0a
[UPD] Update auth_api_key.pot
Oct 11, 2024
8b5d193
[BOT] post-merge updates
OCA-git-bot Oct 11, 2024
f316806
Update translation files
weblate Oct 11, 2024
a4aa117
Translated using Weblate (Italian)
mymage Oct 13, 2024
9e144ff
[IMP] update dotfiles
OCA-git-bot Oct 20, 2024
f94d02d
Added translation using Weblate (Chinese (Simplified) (zh_CN))
xtanuiha Apr 13, 2025
e7143b6
[18.0][FIX] auth_api_key: Use 401 for unauthorized user
anusriNPS Jun 16, 2025
b0c7a06
[BOT] post-merge updates
OCA-git-bot Jun 16, 2025
48dca0d
[IMP] auth_api_key: pre-commit auto fixes
arantxa-s73 Dec 4, 2025
a4d0eca
[MIG] auth_api_key: Migration to 19.0
arantxa-s73 Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 140 additions & 0 deletions auth_api_key/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

============
Auth Api Key
============

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:78e3946b0dbb81bb6fbf6c434aaf5214faec00449a765c2f41e321b65024ba05
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--auth-lightgray.png?logo=github
:target: https://github.com/OCA/server-auth/tree/19.0/auth_api_key
:alt: OCA/server-auth
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-auth-19-0/server-auth-19-0-auth_api_key
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-auth&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Authenticate http requests from an API key.

API keys are codes passed in (in the http header API-KEY) by programs
calling an API in order to identify -in this case- the calling program's
user.

Take care while using this kind of mechanism since information into http
headers are visible in clear. Thus, use it only to authenticate requests
from known sources.

For unknown sources, it is a good practice to filter out this header at
proxy level.

Odoo allows users to authenticate ``XMLRPC/JSONRPC`` calls using their
API key instead of a password by native API keys (``res.users.apikey``).
However, ``auth_api_key`` has some special features of its own such as:

- API keys remain usable even when the user is inactive, if enabled via
settings (e.g., for system users in a shopinvader case).
- Supports dual authentication via Basic Auth and API_KEY in separate
HTTP headers.
- Admins can manage API keys for all users

Given these advantages, particularly in use case like system user
authentication, we have decided to keep the ``auth_api_key`` module

**Table of contents**

.. contents::
:local:

Configuration
=============

The api key menu is available into Settings > Technical in debug mode.
By default, when you create an API key, the key is saved into the
database.

If you want to manage them via serve environment settings use
auth_api_key_server_env.

Usage
=====

To apply this authentication system to your http request you must set
'api_key' as value for the 'auth' parameter of your route definition
into your controller.

.. code:: python

class MyController(Controller):

@route('/my_service', auth='api_key', ...)
def my_service(self, *args, **kwargs):
pass

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-auth/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-auth/issues/new?body=module:%20auth_api_key%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* ACSONE SA/NV

Contributors
------------

- Denis Robinet <denis.robinet@acsone.eu>
- Laurent Mignon <laurent.mignon@acsone.eu>
- Quentin Groulard <quentin.groulard@acsone.eu>
- Sébastien Beau <sebastien.beau@akretion.com>
- Chafique Delli <chafique.delli@akretion.com>
- Thien Vo Hong <thienvh@trobz.com>

Other credits
-------------

The migration of this module from 17.0 to 18.0 was financially supported
by Camptocamp.

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/server-auth <https://github.com/OCA/server-auth/tree/19.0/auth_api_key>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions auth_api_key/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
19 changes: 19 additions & 0 deletions auth_api_key/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Copyright 2018 ACSONE SA/NV
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

{
"name": "Auth Api Key",
"summary": """
Authenticate http requests from an API key""",
"version": "19.0.1.0.1",
"license": "LGPL-3",
"author": "ACSONE SA/NV,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-auth",
"development_status": "Production/Stable",
"depends": ["base_setup"],
"data": [
"security/ir.model.access.csv",
"views/auth_api_key.xml",
"views/res_config_settings.xml",
],
}
140 changes: 140 additions & 0 deletions auth_api_key/i18n/auth_api_key.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * auth_api_key
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: auth_api_key
#: model:ir.model,name:auth_api_key.model_auth_api_key
msgid "API Key"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__active
msgid "Active"
msgstr ""

#. module: auth_api_key
#: model:ir.model.constraint,message:auth_api_key.constraint_auth_api_key_name_uniq
msgid "Api Key name must be unique."
msgstr ""

#. module: auth_api_key
#: model_terms:ir.ui.view,arch_db:auth_api_key.auth_api_key_form_view
msgid "Archived"
msgstr ""

#. module: auth_api_key
#: model:ir.actions.act_window,name:auth_api_key.auth_api_key_act_window
#: model:ir.ui.menu,name:auth_api_key.auth_api_key_menu
msgid "Auth Api Key"
msgstr ""

#. module: auth_api_key
#: model:ir.model,name:auth_api_key.model_res_company
msgid "Companies"
msgstr ""

#. module: auth_api_key
#: model:ir.model,name:auth_api_key.model_res_config_settings
msgid "Config Settings"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__create_uid
msgid "Created by"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__create_date
msgid "Created on"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_res_company__archived_user_disable_auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_res_config_settings__archived_user_disable_auth_api_key
msgid "Disable API key for archived user"
msgstr ""

#. module: auth_api_key
#: model_terms:ir.ui.view,arch_db:auth_api_key.res_config_settings_view_form
msgid "Disable API key when archiving user"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__display_name
msgid "Display Name"
msgstr ""

#. module: auth_api_key
#: model:ir.model,name:auth_api_key.model_ir_http
msgid "HTTP Routing"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__id
msgid "ID"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,help:auth_api_key.field_res_company__archived_user_disable_auth_api_key
#: model:ir.model.fields,help:auth_api_key.field_res_config_settings__archived_user_disable_auth_api_key
msgid ""
"If checked, when a user is archived/unactivated the same change is "
"propagated to his related api key. It is not retroactive (nothing is done "
"when enabling/disabling this option)."
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__key
msgid "Key"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__write_uid
msgid "Last Updated by"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__write_date
msgid "Last Updated on"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__name
msgid "Name"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,help:auth_api_key.field_auth_api_key__key
msgid ""
"The API key. Enter a dummy value in this field if it is\n"
" obtained from the server environment configuration."
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,help:auth_api_key.field_auth_api_key__user_id
msgid ""
"The user used to process the requests authenticated by\n"
" the api key"
msgstr ""

#. module: auth_api_key
#: model:ir.model.fields,field_description:auth_api_key.field_auth_api_key__user_id
msgid "User"
msgstr ""

#. module: auth_api_key
#. odoo-python
#: code:addons/auth_api_key/models/auth_api_key.py:0
msgid "User is not allowed"
msgstr ""
Loading