Skip to Content

Extra Tools app for Odoo

RPC & API Key Access Control

Decide which users may reach the database over XML-RPC, JSON-RPC or an API key: a per-user allowlist that denies by default, an API-key-only mode, a global kill switch, and an audit log of every allowed and blocked API login.

Extra ToolsOPL-1Odoo 19Odoo 18Odoo 17
RPC & API Key Access Control for Odoo, settings
Price$44.99
LicenseOPL-1
Odoov19 · v18 · v17
CategoryExtra Tools

Overview

RPC & API Key Access Control.

RPC and API Key Access Control for Odoo puts a policy gate on every external API authentication path. Each user gets an API Access Allowed toggle: turn it off and that user is blocked at the door before their password is even checked. A second toggle, API Keys Only, forces the user to authenticate with an API key instead of a password. The module ships in Monitor mode so you can see who would be blocked before you enforce anything. When you switch to Enforce, every denied call raises AccessDenied. A global kill switch blocks every external API call in one click. Settings users are exempt so you can never lock yourself out, and every attempt is written to a searchable audit log with automatic retention cleanup. Two gates cover every external path: Gate A on res.users.check catches XML-RPC and JSON-RPC password logins, and Gate B on ir.http._authenticate_explicit catches API key bearer and Outlook plugin authentications. The audit log folds identical outcomes in a five-minute window onto one row with a hit count, so a brute-force attack writes one entry, not ten thousand. Works on Odoo 17, 18 and 19, Community and Enterprise editions, with no external dependencies.

How it works

Built around what you actually do.

Every screen below is the module running in Odoo, not a mockup.

01

Three operating modes - Disabled, Monitor and Enforce - so you can see the impact before you switch

  • Per-user API Access Allowed toggle on every user form, no new groups or complex rules
  • API Keys Only mode per user - require an API key and refuse password-based API authentication
  • Dual-gate architecture - Gate A catches XML-RPC and JSON-RPC, Gate B catches API key and Outlook authentications
RPC & API Key Access Control for Odoo, user form
User form

02

Global kill switch blocks every external API call in one click

  • Settings users permanently exempt so you can never lock yourself out
  • Full audit log of every allowed and blocked API login with user, protocol, auth method and reason
  • DoS-resistant audit log - identical outcomes fold onto one row with a hit count via atomic ON CONFLICT
RPC & API Key Access Control for Odoo, audit log list
Audit log list

03

Configurable log retention with automatic daily cleanup

  • Audit log protected by CSV ACL - only the Administration group can read it
  • Works on Odoo 17, 18 and 19, Community and Enterprise, with zero external dependencies
RPC & API Key Access Control for Odoo, audit log form
Audit log form

Questions

About RPC & API Key Access Control.

Does this block web UI logins?

No. The module only gates external API authentication: XML-RPC, JSON-RPC, API key bearer tokens and Outlook plugin keys. Regular web login through /web/login is not affected, and the API-keys-only toggle only applies to API calls, not the web UI.

Can I lock myself out?

No. Any user in the Administration / Settings group is permanently exempt from the gate. As long as at least one admin account can log in, you can always reach the settings and the user forms to fix a misconfiguration.

Does the audit log record every failed password attempt?

Yes, every call that reaches the gate is recorded. However, identical outcomes for the same user in the same five-minute window fold onto a single row with an incrementing hit count, so a brute-force attack writes one entry, not ten thousand.

What happens if the audit log table has a problem?

Nothing that affects authentication. The audit writer opens its own database connection, and every failure is caught and logged to the server log only. A deadlock on the log table or a full disk will never surface as an AccessDenied for a legitimate user.

Does it work with Odoo Online and Odoo.sh?

Yes. The module has no external dependencies and uses only core Odoo APIs. It works on Odoo Online, Odoo.sh, and on-premise deployments running Odoo 17, 18 or 19, Community and Enterprise editions.

On the Odoo Store

Get RPC & API Key Access Control on the Odoo Store.

Pick your Odoo version and install it in a click, with free updates and real support behind it.

Get it on the Odoo Store