3.7 KiB
Disable Odoo Online Services
Version: 18.0.1.0.0
License: LGPL-3
Odoo Version: 18.0
Overview
This module comprehensively disables all external communications between your Odoo instance and Odoo's servers. It prevents:
- License/subscription checks
- User count reporting
- IAP (In-App Purchase) credit checks
- Publisher warranty communications
- Partner autocomplete/enrichment
- Expiration warnings in the UI
Features
1. IAP JSON-RPC Blocking
Patches the core iap_jsonrpc function to prevent all IAP API calls:
- Returns fake successful responses
- Logs all blocked calls
- Provides unlimited credits for services that check
2. License Parameter Protection
Protects critical ir.config_parameter values:
database.expiration_date→ Always returns2099-12-31 23:59:59database.expiration_reason→ Always returnsrenewaldatabase.enterprise_code→ Always returnsPERMANENT_LOCAL
3. Session Info Patching
Modifies session_info() to prevent frontend warnings:
- Sets expiration date to 2099
- Sets
warningtoFalse - Removes "already linked" subscription prompts
4. User Creation Protection
Logs user creation without triggering subscription checks:
- Blocks any external validation
- Logs permission changes
5. Publisher Warranty Block
Disables all warranty-related server communication:
_get_sys_logs()→ Returns empty responseupdate_notification()→ Returns success without calling server
6. Cron Job Blocking
Blocks scheduled actions that contact Odoo:
- Publisher Warranty Check
- Database Auto-Expiration Check
- Various IAP-related crons
Installation
- Copy the module to your Odoo addons directory
- Restart Odoo
- Go to Apps → Update Apps List
- Search for "Disable Odoo Online Services"
- Click Install
Verification
Check that blocking is active:
docker logs odoo-container 2>&1 | grep -i "BLOCKED\|DISABLED"
Expected output:
IAP JSON-RPC calls have been DISABLED globally
Module update_list: Scanning local addons only (Odoo Apps store disabled)
Publisher warranty update_notification BLOCKED
Creating 1 user(s) - subscription check DISABLED
Configuration
No configuration required. The module automatically:
- Sets permanent expiration values on install (via
_post_init_hook) - Patches all necessary functions when loaded
- Protects values from being changed
Technical Details
Files
| File | Purpose |
|---|---|
models/disable_iap_tools.py |
Patches iap_jsonrpc globally |
models/disable_online_services.py |
Blocks publisher warranty, cron jobs |
models/disable_database_expiration.py |
Protects ir.config_parameter |
models/disable_session_leaks.py |
Patches session info, user creation |
models/disable_partner_autocomplete.py |
Blocks partner enrichment |
models/disable_all_external.py |
Additional external call blocks |
Blocked Endpoints
All redirected to http://localhost:65535:
iap.endpointpublisher_warranty_urlpartner_autocomplete.endpointiap_extract_endpointolg.endpointmail.media_library_endpointsms.endpointcrm.iap_lead_mining.endpoint- And many more...
Dependencies
basewebiapmailbase_setup
Compatibility
- Odoo 18.0 Community Edition
- Odoo 18.0 Enterprise Edition
Disclaimer
This module is intended for legitimate use cases such as:
- Air-gapped environments
- Development/testing instances
- Self-hosted deployments with proper licensing
Ensure you comply with Odoo's licensing terms for your use case.
Changelog
1.0.0 (2025-12-29)
- Initial release
- IAP blocking
- Publisher warranty blocking
- Session info patching
- User creation protection
- Config parameter protection