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
c4de717
New generic module du define REST services
lmignon Jan 31, 2018
5ddfae4
auth_api_key: New module to provide authentication by api_key
lmignon Jan 31, 2018
806d56a
auth_api_key: Remove useless code
lmignon Feb 2, 2018
0c349e5
Update the auth_api_key for keychan 10.0.2 (renamed method)
RobinetDenisAcsone Feb 19, 2018
0f7f881
Fix the authentification method and show the user_id on the form
RobinetDenisAcsone Feb 19, 2018
920ab7e
refactor code in order to use generic code from base_rest instead of …
sebastienbeau Feb 25, 2018
42d9d6d
fix wrong name in selection box
sebastienbeau Aug 29, 2018
70c8b57
Since keychain 10.0.2.0.1 there is a default validation method
hparfr Oct 17, 2018
0974071
Keychain removed
qgroulard Nov 6, 2018
0c059b0
Update Readme with more details
qgroulard Nov 8, 2018
cc9159c
Quick fix CONFIGURE.rst
qgroulard Nov 8, 2018
1eeaea8
Developmet status: Beta
qgroulard Nov 8, 2018
9ca0b0e
[FIX] auth_api_key: fix api and flake8
lmignon Nov 13, 2018
acdbd98
[MIG] server_auth from 10 to 12
sbidoul Nov 20, 2018
ca95c5a
auth_api_key: add description to model
sbidoul Nov 20, 2018
a09eed2
[CHG] auth_api_key is LGPL
sbidoul Nov 21, 2018
f75eafb
Use consteq to compare keys
ap-wtioit Nov 30, 2018
55ba60d
[UPD] README.rst
OCA-git-bot Feb 14, 2019
2858a7d
[IMP] ADD possibility to save api keys in database by using server.en…
mourad-ehm Jul 18, 2019
03245a7
[FIX] login_name error
mourad-ehm Jul 18, 2019
d80c996
[IMP] make auth_api_key compatible in multi-db
sebastienbeau Jul 19, 2019
38369f8
[UPD] README.rst
OCA-git-bot Jul 29, 2019
4507eea
[FIX] auth_api_key: Fix tests according to last changes and add views…
lmignon Sep 20, 2019
68d20f3
[IMP] auth_api_key: Ensures backward compatibility
lmignon Sep 27, 2019
798dc99
[FIX] auth_api_key: Cache must be cleared if the user_id is modified
lmignon Sep 27, 2019
2de4e63
[IMP] auth_api_key: Improves key field description
lmignon Sep 27, 2019
285b1b4
[UPD] README.rst
OCA-git-bot Sep 28, 2019
63f1db5
[IMP] auth_api_key: black, isort
Oct 17, 2019
f95ffae
[MIG] auth_api_key: Migration to 13.0
Oct 17, 2019
9c272c5
[UPD] Update auth_api_key.pot
oca-travis Oct 29, 2019
87a9fd2
[UPD] README.rst
OCA-git-bot Oct 29, 2019
f3e870c
pre-commit update
OCA-git-bot Mar 14, 2020
f23166b
[MIG] auth_api_key: Migration to 14.0
chafique-delli Oct 12, 2020
912817c
[UPD] Update auth_api_key.pot
oca-travis Dec 21, 2020
793ecab
[UPD] README.rst
OCA-git-bot Dec 21, 2020
505874a
Added translation using Weblate (Italian)
primes2h Feb 12, 2021
4f887e1
Translated using Weblate (Italian)
primes2h Feb 12, 2021
76d0f90
[14.0][IMP] auth_api_key: Allow to search on every key even if void
rousseldenis Sep 9, 2021
88d3bab
auth_api_key 14.0.1.0.1
OCA-git-bot Sep 10, 2021
79b979c
auth_api_key: drop old migration
simahawk Sep 24, 2021
0a73a8d
auth_api_key: get rid of server env
simahawk Sep 24, 2021
4215c60
auth_api_key: 14.0.2.0.0
simahawk Sep 24, 2021
b07e058
[UPD] Update auth_api_key.pot
oca-travis Sep 27, 2021
faa432b
[UPD] README.rst
OCA-git-bot Sep 27, 2021
fec2b1c
auth_api_key 14.0.2.0.1
OCA-git-bot Sep 27, 2021
20482df
Update translation files
oca-transbot Sep 27, 2021
4023d2c
[MIG] auth_api_key: Migration to 15.0
yankinmax Nov 24, 2021
2786620
[UPD] Update auth_api_key.pot
Nov 30, 2021
b7f1aa5
auth_api_key: fix archived user allowed key
TDu Jul 22, 2022
56ed978
[UPD] Update auth_api_key.pot
Jul 26, 2022
bd41720
auth_api_key 15.0.1.1.0
OCA-git-bot Jul 26, 2022
8e82d7e
Update translation files
oca-transbot Jul 26, 2022
c6e78a8
Revert "Merge PR #398 into 15.0"
TDu Jul 26, 2022
928639a
Revert "[UPD] Update auth_api_key.pot"
TDu Jul 26, 2022
213f21c
Revert "Update translation files"
TDu Jul 26, 2022
5a21de5
auth_api_key 15.0.1.1.1
OCA-git-bot Jul 28, 2022
2f5a478
Update translation files
oca-transbot Jul 28, 2022
406b090
[IMP] auth_api_key: pre-commit stuff
benoit-bertholon Nov 29, 2022
0c6e5ad
[MIG] auth_api_key: Migration to 16.0
benoit-bertholon Nov 29, 2022
b50e9aa
[UPD] Update auth_api_key.pot
Dec 5, 2022
395cd03
[UPD] README.rst
OCA-git-bot Dec 5, 2022
5db1568
Update translation files
weblate Dec 5, 2022
a3baa52
[UPD] README.rst
OCA-git-bot Sep 3, 2023
2d9a54c
[IMP] auth_api_key: pre-commit auto fixes
chrisb-c01 Dec 16, 2023
930e42b
[MIG] auth_api_key: Migration to 17.0
chrisb-c01 Dec 16, 2023
6a59f27
[UPD] Update auth_api_key.pot
Jan 26, 2024
71df9ae
[BOT] post-merge updates
OCA-git-bot Jan 26, 2024
8f0f02d
Update translation files
weblate Feb 3, 2024
95b0f54
Translated using Weblate (Italian)
mymage Apr 3, 2024
bc07fb0
Translated using Weblate (Italian)
mymage Aug 17, 2024
4db0ba1
[14.0] auth_api_key: allow to update api key from form view and hide …
petrus-v Jun 26, 2023
26064b3
auth_api_key: archive key when user is archived
TDu Mar 21, 2023
2eef980
auth_api_key: add option to auto archive key with user
TDu Mar 27, 2023
56dc525
[IMP] auth_api_key: apply pre-commit auto fixes
thienvh332 Oct 8, 2024
5aa9e6e
[MIG] auth_api_key: Migration to 18.0
thienvh332 Oct 8, 2024
5cbdecd
[UDP] auth_api_key: Update description for reason to keep this module
thienvh332 Oct 10, 2024
a67c49c
[UPD] Update auth_api_key.pot
Oct 11, 2024
612a78c
[BOT] post-merge updates
OCA-git-bot Oct 11, 2024
dda3451
Update translation files
weblate Oct 11, 2024
fa9417b
Translated using Weblate (Italian)
mymage Oct 13, 2024
28d657b
[IMP] update dotfiles
OCA-git-bot Oct 20, 2024
4d44844
Added translation using Weblate (Chinese (Simplified) (zh_CN))
xtanuiha Apr 13, 2025
d4c0139
[18.0][FIX] auth_api_key: Use 401 for unauthorized user
anusriNPS Jun 16, 2025
d38d3cc
[BOT] post-merge updates
OCA-git-bot Jun 16, 2025
be66a28
[IMP] auth_api_key: pre-commit auto fixes
arantxa-s73 Dec 4, 2025
340780e
[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