| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 1481 |
| Technical Name |
db_browser |
| License | LGPL-3 |
| Website | https://ignify.co |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 1481 |
| Technical Name |
db_browser |
| License | LGPL-3 |
| Website | https://ignify.co |
DB Browser
Visual PostgreSQL database browser & editor for Odoo administrators
DB Browser gives Odoo system administrators direct access to any PostgreSQL database on the server — browse tables, edit records inline, run custom SQL queries — all from within the Odoo interface. No pgAdmin, no command line needed.
Key Features
Multi-Database Support
Switch between any PostgreSQL database on your server. All databases on the instance are listed in a single dropdown.
Table Browser
Browse all tables with live row counts. Search and filter tables by name in the sidebar. Paginated data viewer handles millions of rows.
Inline Record Editing
Double-click any cell to edit its value directly. Create new rows with a form modal. Delete multiple rows with checkbox selection.
SQL Editor
Write and execute arbitrary SQL queries. Results are displayed in a clean, sortable table. Supports SELECT, INSERT, UPDATE, DELETE.
Admin-Only Access
Fully restricted to Odoo system administrators (base.group_system). Unauthorised users receive a 403 error from all API endpoints.
Modern OWL Frontend
Built with Odoo 17/18/19's OWL component framework. Reactive state management, no full-page reloads, instant feedback.
Screenshots
Select Database - Switch Between Databases
Table Browser - Browse & Navigate Tables
New Record - Create Records with Form Modal
Inline Cell Editing - Double-click to Edit
SQL Editor - Execute Custom Queries
How It Works
- Install the DB Browser module from Apps.
- Navigate to DB Browser in the top menu (System Administrator only).
- Select a database from the dropdown to load its table list.
- Click a table to browse records — search, sort, paginate.
- Double-click a cell to edit inline. Use + New Row to insert records.
- Switch to the SQL Editor tab to run custom queries.
Technical Details
Architecture
- Frontend: OWL component (
db_browser_appclient action) - Backend: 8 REST HTTP endpoints (no RPC overhead)
- Direct DB access via
odoo.sql_db.db_connect() - SQL injection prevention via identifier validation regex
- All write operations logged at WARNING level in Odoo logs
API Endpoints
POST /db-browser/api/databases- list databasesPOST /db-browser/api/tables- list tables + row countsPOST /db-browser/api/columns- table schemaPOST /db-browser/api/records- paginated recordsPOST /db-browser/api/record/createPOST /db-browser/api/record/updatePOST /db-browser/api/record/deletePOST /db-browser/api/sql- execute SQL
Security
Built-in Protections
- Authentication required - all endpoints use
auth='user'; unauthenticated requests are rejected at the Odoo layer - Admin-only access - every endpoint calls
has_group('base.group_system')and returns HTTP 403 for non-administrators - SQL injection prevention - table and column identifiers are validated against a strict regex (
^[a-zA-Z_][a-zA-Z0-9_]*$); all data values use parameterized queries (%s) - Audit logging - every write operation (CREATE, UPDATE, DELETE, raw SQL) is logged at
WARNINGlevel in the Odoo server log with the target database, table, and affected values - No unauthenticated surfaces - the module registers no public routes; all endpoints require an active Odoo session
Security Audit
DB Browser has been fully audited by Skymap Global, a leading enterprise software and security consultancy. The audit covered authentication & authorisation controls, SQL injection attack surfaces, input validation, session handling, and logging completeness. No critical or high-severity findings were identified.
⚠️ Deployment Notice
This module provides direct read/write access to PostgreSQL databases. It is restricted to System Administrator accounts only. Do not grant system administrator access to untrusted users. All data modification operations are logged in the Odoo server log.
Support & Contact
ignify.co | td@ignify.co
Please log in to comment on this module