TIP: You can type at any time to perform a new search.
Database Anonymization
anonymization · odoo/odoo
Security findings
Security warnings
access_ir_model_fields_anonymization_migration_fix— ACL grants write/create/unlink on 'model_ir_model_fields_anonymization_migration_fix' to every user (portal/public included): no group is set. Verify record rules and test access as an unrelated public/portal user. acl-global-write · source
Found by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
Migration considerations
view_ir_model_fields_anonymize_wizard_form— For a target of Odoo 17.0+: view 'view_ir_model_fields_anonymize_wizard_form' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · sourceview_ir_model_fields_anonymization_history_tree— View 'view_ir_model_fields_anonymization_history_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourceview_ir_model_fields_anonymization_tree— View 'view_ir_model_fields_anonymization_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Extra Tools
- Folder size
- 1.18 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-07 05:03:18
- Authors
- Maintainers
- None
- Committers
- Xavier Morel, Olivier Dony, Raphael Collet, Christophe Simonis, Martin Trigaux, Odoo Translation Bot, xmo-odoo, qdp-odoo, GitHub, Yannick Tivisse, Odoo Online
- Odoo dependencies
-
odoo/odoo:- base
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This module allows you to anonymize a database. =============================================== This module allows you to keep your data confidential for a given database. This process is useful, if you want to use the migration process and protect your own or your customer’s confidential data. The principle is that you run an anonymization tool which will hide your confidential data(they are replaced by ‘XXX’ characters). Then you can send the anonymized database to the migration team. Once you get back your migrated database, you restore it and reverse the anonymization process to recover your previous data.
Code Analysis
Views touched (6)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_ir_model_fields_anonymization_form |
ir.model.fields.anonymization.form | ir.model.fields.anonymization | form | New |
view_ir_model_fields_anonymization_history_form |
ir.model.fields.anonymization.history.form | ir.model.fields.anonymization.history | form | New |
view_ir_model_fields_anonymization_history_tree |
ir.model.fields.anonymization.history.tree | ir.model.fields.anonymization.history | tree | New |
view_ir_model_fields_anonymization_tree |
ir.model.fields.anonymization.tree | ir.model.fields.anonymization | tree | New |
view_ir_model_fields_anonymize_wizard_form |
ir.model.fields.anonymize.wizard.form | ir.model.fields.anonymize.wizard | form | New |
view_ir_model_fields_nonymization_kanban |
ir.model.fields.anonymization.kanban | ir.model.fields.anonymization | kanban | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (5)
-
field_idMany2one → ir.model.fieldsondelete='set null'string='Field' args: 'ir.model.fields' -
field_nameCharrequired=True -
model_idMany2one → ir.modelondelete='set null'string='Object' args: 'ir.model' -
model_nameCharrequired=True args: 'Object Name' -
stateSelectiondefault='clear'readonly=Truerequired=Trueselection=FIELD_STATESstring='Status'
-
create(self, vals)@api.model -
unlink(self)@api.multi -
write(self, vals)@api.multi
New fields (6)
-
dateDatetimereadonly=Truerequired=True -
directionSelectionreadonly=Truerequired=Trueselection=ANONYMIZATION_DIRECTION -
field_idsMany2many → ir.model.fields.anonymizationreadonly=Truestring='Fields' args: 'ir.model.fields.anonymization', 'anonymized_field_to_history_rel', 'field_id', 'history_id' -
filepathCharreadonly=True args: 'File path' -
msgTextreadonly=True args: 'Message' -
stateSelectionreadonly=Truerequired=Trueselection=ANONYMIZATION_HISTORY_STATEstring='Status'
No public methods.
New fields (6)
-
field_nameCharargs: 'Field' -
model_nameCharargs: 'Model' -
queryText -
query_typeSelectionselection=[('sql', 'sql'), ('python', 'python')]string='Query' -
sequenceInteger -
target_versionCharargs: 'Target Version'
No public methods.
New fields (6)
-
file_exportBinaryargs: 'Export' -
file_importBinaryhelp="This is the file created by the anonymization process. It should have the extension '.json' or '.pickle'." args: 'Import' -
msgTextargs: 'Message' -
nameCharargs: 'File Name' -
stateSelectioncompute='_compute_state'selection=WIZARD_ANONYMIZATION_STATESstring='Status' -
summaryTextcompute='_compute_summary'
-
anonymize_database(self)@api.multiSets the 'anonymized' state to defined fields -
default_get(self, fields_list)@api.model -
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)@api.model -
reverse_anonymize_database(self)@api.multiSet the 'clear' state to defined fields
Loading…
Loading…
Loading…
Loading…
Loading…