Export Audit Log
by Farhan Ashraf https://apps.odoo.com/apps/modules/browse?author=Farhan+AshrafExport Audit Log
Who exported what, when — a complete trail of data exports.
Export rights in Odoo are all-or-nothing: a user either has the "Allow Export" group or not, and once they have it there is zero trace of what left the database. This module records every export made through Odoo's standard export path — the list-view export dialog and its CSV / XLSX downloads — in a read-only audit log.
- One log entry per export: user, model (technical name and label), record count, the exact exported field list, timestamp. Odoo internally exports grouped lists group by group and very large lists in batches; those chunks are coalesced into a single entry, so the record count is the real total.
- Read-only list under Settings > Export Audit Log, visible to Settings / Administration users only.
- Tamper-resistant: nobody can create or edit log rows from the UI or the ORM — they are written exclusively by the export hook. Administrators may delete rows. The exporting user's login is stored on the row itself, so the trail survives even if the user record is later deleted.
- Retention: a daily scheduled action purges entries older than a configurable number of days (default 180; 0 keeps logs forever).
- Fail-safe: if writing the audit row ever fails, the export still succeeds and a warning goes to the server log. Logging never breaks exports.
- Superuser exports are logged too — that is the point of an audit trail.
- Filters (today, last 7 / 30 days, large exports) and group-by user, model or date.
Screenshots
Any export made through the standard dialog is recorded the moment it runs.
The audit trail: who exported, which model, how many records, which fields, when.
Ready-made filters (today, last 7/30 days, large exports) and group-by user, model or date.
Each entry keeps the full exported field list. Entries are read-only: nobody can create or edit them.
One setting: how long to keep the log. A daily scheduled action purges older entries; 0 keeps them forever.
Installation
- Copy
data_export_audit_loginto your addons path. - Update the app list (developer mode: Apps > Update Apps List).
- Install Export Audit Log.
Configuration
- Open Settings > General Settings, section Export Audit.
- Set Export Log Retention (days) — default 180, 0 keeps logs forever.
- Save.
Usage
- Any user exports records from a list view (Export button in the action menu).
- Open Settings > Export Audit Log (Administration / Settings group required) to review who exported what.
- Filter by user or model, group by date, or delete entries you no longer need.
Limitations (honest ones)
- Only exports going through the standard export path (
export_data) are logged: the list-view export dialog and its CSV / XLSX downloads. - Report PDF downloads, raw RPC / API reads (
search_readand friends) and database-level dumps are not captured. - Combine it with a restrictive "Allow Export" group policy for real coverage of data leaving your system.
Questions, ideas, bug reports? — f.ashraf.dev1@gmail.com
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 303 |
| Technical Name |
data_export_audit_log |
| License | LGPL-3 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Farhan+Ashraf |
Please log in to comment on this module