Document Control Management | Controlled Documents, Revisions, Approvals, Distribution, Records, Portal Access, Website Downloads, and Document Editor | ISO Standards Compliance Document Management System
by Binary Bridge Technology Services https://bbtech.ae$ 760.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Website (website) |
| Lines of code | 8985 |
| Technical Name |
bb_document_control |
| License | OPL-1 |
| Website | https://bbtech.ae |
| Versions | 18.0 19.0 |
Document Control Management
Control documents, approvals, revisions, records, website downloads, and audit activity from one professional Odoo workspace.
Built For Controlled Business Processes
A focused document control solution for teams that need approvals, revision control, distribution, retention, and public access without depending on a larger IMS suite.
Document Controllers
Manage controlled copies, effective documents, revisions, and distributions
Approvers
Review pending documents, confirm approvals, and keep workflow ownership clear
Compliance Teams
Maintain standards, clauses, controls, records, evidence, and logs
Portal Users
Access published public documents and controlled website downloads
Document Control Dashboard
Monitor pending approvals, acknowledgements, overdue reviews, draft records, workflow records, obsolete documents, website publications, and revision activity.

Dashboard overview with KPI cards and lifecycle counts

Charts for document status, categories, approvals, and review windows

Recent documents, pending approvals, due reviews, records, and revisions
Everything Needed For Document Control
The application covers the full controlled-document process from master data setup to publication, audit logs, and controlled records.
Documents
- Document numbering, title, owner, controller, reviewer, and approver fields
- Draft, review, approved, effective, obsolete, archived, and cancelled workflow states
- Revision history, review dates, effective dates, and controlled file handling
- Controlled downloads with watermark-ready document copies
Records
- Record templates for repeatable evidence and operational records
- Controlled records linked to documents, owners, dates, and categories
- Draft and workflow states for controlled-record management
- Record categories for reporting and filtering
Website & Portal
- Publish effective documents to website download pages
- Create public document categories and portal views
- Serve safe public downloads while keeping internal records controlled
- Track website publication status from backend lists
Configuration
- Entities, departments, processes, standards, clauses, and controls
- Document categories, public categories, and record categories
- OnlyOffice-style editor settings and document preview configuration
- Excel import tools with validation logs
From Draft To Controlled Release
A clear workflow keeps the document owner, reviewer, approver, controller, files, and revision history aligned.
Create Draft
Capture document number, title, category, department, process, owner, reviewer, approver, revision, and review date.
Review
Route approval lines and responsibility assignments to the correct users before release.
Approve
Approve the document, confirm controlled files, and prepare the effective release.
Distribute
Issue controlled documents to users, departments, sites, portal users, or public website categories.
Revise Or Retire
Create revisions, preserve history, replace controlled versions, or obsolete outdated documents.
Complete Feature List
📄 Document Management
- Document numbering and categories
- Owner, controller, reviewer, and approver fields
- State workflow and lifecycle dashboard
- Effective date, review date, and revision tracking
- Controlled downloads and document history
✅ Approvals & Distribution
- Approval lines and workflow responsibility
- Pending approval dashboard views
- Document distribution records
- Acknowledgement and issued-copy tracking
- Obsolete and withdrawn status handling
📝 Controlled Records
- Record templates
- Controlled record forms and workflow fields
- Record categories and retention context
- Linked document references
- Record reporting support
🔍 Audit & Logs
- Activity logs
- Document logs
- File and import tracking
- Operational history for document control work
- Review overdue and upcoming review monitoring
🌐 Portal & Website
- Public document categories
- Published website document list
- Public document view pages
- Portal access to effective documents
- Safe website download experience
⚙ Configuration & Import
- Settings and document editor setup
- Excel import wizard with attachments
- Import validation logs
- Core masters for ISO-style classification
- Website and public document setup
📄 Documents & Workflow
Create, review, approve, revise, distribute, and download controlled documents with complete metadata and file tracking.

Documents kanban by lifecycle state

Document identity, numbering, ownership, and status

Document metadata, review controls, and access settings

Files, approvers, notes, and related workflow details

Detailed controlled document form with actions and relationships

Revision form with revision date, files, and change notes

Distribution issue, acknowledgement, and withdrawal tracking

Controlled download flow for safe document copies
🛠 Files, Editor & Settings
View, edit, configure, and manage document files from the Odoo backend while preserving controlled versions.

View and edit document files from the backend

Online editing window for supported file types

Editor settings wizard for document handling

Document editor server configuration

System settings for document control options
🔍 Import, Logs & Audit Trail
Bulk-load document data, connect attachments, validate imports, and inspect logs for operational traceability.

Excel import wizard with attachment folder mapping

Import log rows with validation results and linked documents

Activity log list for user and workflow actions

Document-specific log history for audit support
🌐 Website & Public Document Portal
Publish selected effective documents to website pages and organize public access with dedicated categories and lists.

Public document detail view for approved published content

Portal-facing public document page with metadata and downloads

Public document category setup

Backend list of website-published documents

Published website document management view
📝 Controlled Records
Create templates and controlled records to manage evidence, operational records, ownership, and retention context.

Record template setup with category and retention context

Controlled record form with owner, document link, and status

Record categories for controlled-record organization
🛡 Core Masters & Classifications
Maintain organizational structure, process masters, standards, clauses, controls, and categories used across documents and records.

Entities with company, address, and hierarchy details

Department setup with managers, sites, and company context

Process master with owner, inputs, outputs, and interactions

Standards with issuing body, version, and management system type

Standard clauses with references and summaries

Sub-clauses for detailed compliance mapping

Controls linked to standards, clauses, and evidence guidance

Document categories with code, parent, and publication options
Installation & First Setup
- Install the Document Control Management application in Odoo 19.
- Open Document Control and review Dashboard, Documents & Records, Core Masters, Document Import, and Configuration.
- Create entities, departments, processes, standards, clauses, controls, document categories, and record categories.
- Configure website publication and document editor settings if those features are used.
- Start creating documents manually or use the import wizard for bulk migration.
Technical Specifications
- Target version: Odoo 19.0
- Core dependencies: base, mail, web, portal, and website
- Python dependencies: requests, pypdf, reportlab, and openpyxl
- Backend assets include the OWL dashboard and chart canvas integration
- License: OPL-1
Professional Document Control Inside Odoo
Document Control Management gives Odoo users a dedicated workspace for controlled documents, revision control, approvals, records, public downloads, and compliance activity tracking.
Binary Bridge Technology Services
Odoo implementation, customization, integration, and business application development for growing teams.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Website (website) |
| Lines of code | 8985 |
| Technical Name |
bb_document_control |
| License | OPL-1 |
| Website | https://bbtech.ae |
Document Control - ONLYOFFICE Document Editor Setup
Module: bb_document_control
This documentation explains how to connect the Document Control module with an ONLYOFFICE Docs server, configure Odoo settings, and guide users through previewing, editing, locking, and saving document files.
Odoo Document Editor Setup
This section explains how to configure the online document editor inside Odoo.
Prerequisites
Before configuring the editor, make sure that:
- The bb_document_control module is installed and upgraded in Odoo.
- ONLYOFFICE Docs is available from a public or private URL reachable by users' browsers.
- ONLYOFFICE can reach the public Odoo URL.
- You have the Document Control Manager or Administrator group.
- Users who need to edit controlled documents have the Document Controller or Manager group.
Open Document Editor Settings
Go to:
Document Control > Configuration > Settings > Document Editor Settings
The settings wizard stores values in Odoo system parameters.
Configure Editor Provider
Set the following fields:
| Field | Value |
|---|---|
| IMS Document Editor | ONLYOFFICE Docs |
| ONLYOFFICE Server URL | Base URL of the ONLYOFFICE server, for example https://docs.example.com |
| ONLYOFFICE JWT Secret | The same JWT secret used by the ONLYOFFICE server |
| Force New Revision on Controlled Edit | Recommended: enabled |
| Allow PDF Online Editing | Enable only if your ONLYOFFICE edition supports the expected PDF editing flow |
| Max Upload Size (MB) | Maximum file size users may upload |
After entering the values, click Save.
Configure Odoo Public URL for ONLYOFFICE
ONLYOFFICE must be able to download files from Odoo and send save callbacks back to Odoo. If the Odoo web.base.url is internal, uses localhost, or uses a port that is not reachable from ONLYOFFICE, set this system parameter manually:
bb_document_control.ims_onlyoffice_odoo_public_url = https://odoo.example.com
Path:
Settings > Technical > Parameters > System Parameters
Note
Developer mode must be active to access Technical settings.
Use the URL that ONLYOFFICE can reach from its server or container.
Supported File Behavior
| File Type | Preview | Edit |
|---|---|---|
| Images: png, jpg, jpeg, gif, webp, bmp, svg | Odoo preview | No |
| Odoo preview, or ONLYOFFICE if configured | Only if PDF editing is enabled | |
| Text: txt, csv, log, md | Odoo preview | ONLYOFFICE when configured |
| Office: doc, docx, odt, rtf, xls, xlsx, ods, ppt, pptx, odp | ONLYOFFICE required | ONLYOFFICE required |
| Archives and binary files | No preview | No |
If ONLYOFFICE is not configured, Office files show an unsupported preview message and users should download the file instead.
File Buttons
Open a document and go to the Files / Online Documents tab.
Common buttons are:
- View - opens a preview or ONLYOFFICE viewer.
- Download - downloads the original file.
- Edit - opens ONLYOFFICE in edit mode if the file type is supported.
- Set Primary - marks the file as the main document file.
- New Version - copies the file into a new file version.
Editing Controlled Documents
Approved and effective documents are protected.
When Force New Revision on Controlled Edit is enabled:
- A Document Controller or Manager clicks Edit.
- The module creates a draft revision copy.
- The original controlled file remains unchanged.
- The document returns to draft revision status for the next review and approval cycle.
When this option is disabled, approved and effective files cannot be edited directly.
File Locks
The file model supports locking:
- Lock prevents other users from editing the file.
- Unlock releases the file.
- Managers can unlock files locked by another user.
Use locking when more than one controller may edit the same source document.
Save Callback
ONLYOFFICE saves edited files back to:
/ims/document/file/<file_id>/onlyoffice/callback
The module validates:
- The database context.
- The callback access token.
- The JWT signature when a JWT secret is configured.
If saves do not return to Odoo, check that ONLYOFFICE can reach the Odoo public URL and that the JWT secret matches.
Recommended Test
- Open Document Control > Documents & Records > Documents > All Documents.
- Create a draft document or open an existing draft document.
- Add a .docx file on the Files / Online Documents tab.
- Click View.
- Confirm that the file opens in ONLYOFFICE.
- Click Edit.
- Make a small change.
- Close the editor and wait for ONLYOFFICE to save.
- Reopen the file and confirm that the content changed.
- Check the file Activity Log for view, edit open, and edit save entries.
System Parameters Used by the Module
| Parameter | Purpose |
|---|---|
| bb_document_control.ims_editor_provider | Stores the editor provider value: onlyoffice or none |
| bb_document_control.ims_onlyoffice_url | Base URL of ONLYOFFICE Docs |
| bb_document_control.ims_onlyoffice_jwt_secret | JWT secret shared with ONLYOFFICE |
| bb_document_control.ims_editor_force_new_revision | Creates draft revision copies for controlled edits |
| bb_document_control.ims_editor_allow_pdf_edit | Enables PDF edit support |
| bb_document_control.ims_editor_max_file_size_mb | Upload size limit |
| bb_document_control.ims_onlyoffice_odoo_public_url | Public Odoo URL reachable by ONLYOFFICE |
ONLYOFFICE Server Setup
This section explains how to deploy an ONLYOFFICE Docs server for the online document editor used by Document Control Management.
What ONLYOFFICE Does
The module uses ONLYOFFICE Docs to preview and edit Office files in the browser.
The integration flow is:
- An Odoo user clicks View or Edit on a document file.
- Odoo opens /ims/document/file/<file_id>/viewer or /ims/document/file/<file_id>/editor.
- The browser loads the ONLYOFFICE Docs JavaScript API from the configured ONLYOFFICE server.
- ONLYOFFICE fetches the file from Odoo using a signed URL.
- When the user saves, ONLYOFFICE posts the edited file back to Odoo using the callback URL.
Because of this, the ONLYOFFICE server must be able to reach the public Odoo URL.
Requirements
- A Linux server or VM for ONLYOFFICE Docs.
- Docker installed.
- At least 4 GB RAM and enough disk space for document cache and logs.
- A DNS name for ONLYOFFICE, for example docs.example.com.
- HTTPS certificate for production use.
- Network access from ONLYOFFICE Docs to the Odoo public URL.
- Network access from users' browsers to both Odoo and ONLYOFFICE.
Official references:
- ONLYOFFICE Docker installation
- ONLYOFFICE JWT configuration
Recommended Docker Run Command
Use a fixed JWT secret. ONLYOFFICE Docs 7.2 and later enables JWT by default and may generate a random secret if you do not provide one. A random regenerated secret can break integrations after container rebuilds or restarts.
docker run -d \ --name onlyoffice-documentserver \ --restart=always \ -p 80:80 \ -e JWT_ENABLED=true \ -e JWT_SECRET='replace_with_a_long_random_secret' \ -e JWT_HEADER='Authorization' \ onlyoffice/documentserver
For HTTPS directly in the container:
docker run -d \ --name onlyoffice-documentserver \ --restart=always \ -p 80:80 \ -p 443:443 \ -e LETS_ENCRYPT_DOMAIN='docs.example.com' \ -e LETS_ENCRYPT_MAIL='admin@example.com' \ -e JWT_ENABLED=true \ -e JWT_SECRET='replace_with_a_long_random_secret' \ -e JWT_HEADER='Authorization' \ onlyoffice/documentserver
Recommended Docker Compose
services: onlyoffice-documentserver: image: onlyoffice/documentserver:latest container_name: onlyoffice-documentserver restart: always ports: - "80:80" environment: JWT_ENABLED: "true" JWT_SECRET: "replace_with_a_long_random_secret" JWT_HEADER: "Authorization" volumes: - onlyoffice_logs:/var/log/onlyoffice - onlyoffice_data:/var/www/onlyoffice/Data - onlyoffice_lib:/var/lib/onlyoffice volumes: onlyoffice_logs: onlyoffice_data: onlyoffice_lib:
If you use a reverse proxy such as Nginx, put HTTPS on the public proxy and forward traffic to the ONLYOFFICE container.
Reverse Proxy Checklist
Use this checklist when https://docs.example.com is handled by Nginx, Apache, Cloudflare, or another proxy.
- WebSocket upgrade headers are allowed.
- Large request bodies are allowed for Office files.
- Proxy timeout is long enough for file conversion and save callbacks.
- HTTPS certificate is valid and trusted by browsers.
- The public URL opens the ONLYOFFICE welcome page.
- The Odoo server and user browsers can reach the same ONLYOFFICE URL.
Example Nginx notes:
client_max_body_size 200m; proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Important
Adjust these snippets to your server layout before using them.
Verify ONLYOFFICE
Open this URL in a browser:
https://docs.example.com
You should see the ONLYOFFICE Docs welcome page.
Then check logs if needed:
docker logs onlyoffice-documentserver --tail 100
Network Rules
The integration needs traffic in the following directions:
| Direction | Required Access |
|---|---|
| Browser to Odoo | Users must be able to open Odoo normally. |
| Browser to ONLYOFFICE | Users must be able to load the ONLYOFFICE editor JavaScript. |
| ONLYOFFICE to Odoo | ONLYOFFICE must be able to download file content and post callbacks. |
| Odoo to ONLYOFFICE | Odoo builds editor URLs and users open them in the browser. |
Do not use localhost as the Odoo URL unless ONLYOFFICE runs in the same network namespace as Odoo. In most deployments, localhost from inside the ONLYOFFICE container means the ONLYOFFICE container itself, not the Odoo server.
Security Recommendations
- Use HTTPS for both Odoo and ONLYOFFICE.
- Keep JWT enabled.
- Use a long random JWT secret.
- Store the same JWT secret in Odoo Document Editor Settings.
- Restrict the ONLYOFFICE server firewall to trusted traffic where possible.
- Keep ONLYOFFICE Docs updated.
- Back up the volumes for logs, data, and cache if you need operational traceability.
Odoo-Specific Notes
The module generates ONLYOFFICE URLs like:
/ims/document/file/<file_id>/content?db=<database>&access_token=<token>&download=0 /ims/document/file/<file_id>/onlyoffice/callback?db=<database>&access_token=<token>
The db query parameter is important on multi-database Odoo hosts.
If ONLYOFFICE cannot reach Odoo, set this Odoo system parameter:
bb_document_control.ims_onlyoffice_odoo_public_url = https://odoo.example.com
Set it under Settings > Technical > Parameters > System Parameters in developer mode.
Next Step
After ONLYOFFICE is running, configure Odoo using:
bb_document_control/docs/ODOO_DOCUMENT_EDITOR_SETUP.md
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module