Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[18.0][MIG] auth_api_key: Migration to 18.0 #701

Open
wants to merge 76 commits into
base: 18.0
Choose a base branch
from

Conversation

thienvh332
Copy link

@thienvh332 thienvh332 commented Oct 9, 2024

OCA - Port:

Summary:

This PR migrates the auth_api_key module to Odoo 18.0.

Background:

Since Odoo 14.0, native API keys (res.users.apikey) have been supported, allowing users to authenticate XMLRPC/JSONRPC calls using their API key instead of a password. In Odoo 18.0, the native API key feature has been enhanced.

Some special features of the module:

  • Support for Bearer tokens in the Authorization header (auth="bearer")
  • Mandatory expiration dates for non-admin users' API keys
  • Deactivation of API keys for inactive users
  • Only the user itself can manage his api keys

Why keep auth_api_key:

The auth_api_key module, introduced in Odoo 10.0, offers unique advantages over native API keys.

Some special features of the module:

  • API keys remain usable even when the user is inactive (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 users.

Given these advantages, particularly in use case like system user authentication, we have decided to retain and migrate the auth_api_key module to Odoo 18.0.

lmignon and others added 30 commits October 9, 2024 17:00
Get rid of keychain dependency
Api key is now based on the new version of server env
Key belong to a specifiv database that can be requested based on the
domain name.

Just setup the db_filter with "%d^" to filter based on domain name
Add a migration script to create the auth.api.key records from keys defined into the cfg file
Provides a specific serction name builder to continue reading the key info from the same section as the one expected by the previous version
TDu and others added 21 commits October 9, 2024 17:00
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: server-auth-15.0/server-auth-15.0-auth_api_key
Translate-URL: https://translation.odoo-community.org/projects/server-auth-15-0/server-auth-15-0-auth_api_key/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: server-auth-16.0/server-auth-16.0-auth_api_key
Translate-URL: https://translation.odoo-community.org/projects/server-auth-16-0/server-auth-16-0-auth_api_key/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: server-auth-17.0/server-auth-17.0-auth_api_key
Translate-URL: https://translation.odoo-community.org/projects/server-auth-17-0/server-auth-17-0-auth_api_key/
Currently translated at 100.0% (17 of 17 strings)

Translation: server-auth-17.0/server-auth-17.0-auth_api_key
Translate-URL: https://translation.odoo-community.org/projects/server-auth-17-0/server-auth-17-0-auth_api_key/it/
Currently translated at 100.0% (17 of 17 strings)

Translation: server-auth-17.0/server-auth-17.0-auth_api_key
Translate-URL: https://translation.odoo-community.org/projects/server-auth-17-0/server-auth-17-0-auth_api_key/it/
An archived user should not have an active api key anymore.
But to stay backward compatible the migration script will
keep all key active.
@thienvh332 thienvh332 marked this pull request as ready for review October 9, 2024 10:07
Copy link
Contributor

@simahawk simahawk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@thienvh332 LG but please report the rationale to keep this module as is in the description of the module, thanks :)
(in separate commmit that we can backport)

@simahawk
Copy link
Contributor

/ocabot migration auth_api_key

@OCA-git-bot OCA-git-bot added this to the 18.0 milestone Oct 10, 2024
@OCA-git-bot OCA-git-bot mentioned this pull request Oct 10, 2024
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.