Odoo IT Asset Management Module — Enterprise Security & Lifecycle Tracking
Custom Odoo Module · Python · Fernet AES · 23 Models · 10,000+ Lines · App Store Published

Laptops were assigned informally. Credentials lived in a WhatsApp group. Nobody knew what to reclaim.
IT infrastructure across a multi-branch holding company is invisible by default. No system tracked what was assigned, to whom, or when licenses expired. Security audits were manual exercises. Offboarding was incomplete because there was no record to work from.
THE STANDARD APPROACH FAILS BECAUSE:
Storing passwords in plain fields is a security failure. The module required field-level encryption using a key that never touches the database. Second challenge: dynamic custom field framework for evolving asset schemas.
"Fernet AES encryption with the key stored separately from credential records — database access never equals credential access."
— KEY ARCHITECTURAL DECISION
TECHNICAL DECISIONS // 5 MADE
Fernet AES encryption — credentials encrypted before database write
Field-level masking in UI with authenticated reveal
Dynamic custom field framework for evolving asset schemas
Automated offboarding checklist and execution wizard
SOC 2 and ISO 27001 aligned design patterns

Full lifecycle tracking with chain-of-custody
Asset Lifecycle
FULL CHAIN OF CUSTODY- Asset registry with category hierarchy and dynamic custom fields
- Lifecycle state machine: procurement → assignment → maintenance → retirement
- Barcode generation and printing for physical asset labeling
- Purchase order linking — asset created automatically from PO line
- Assignment and transfer workflows with complete audit trail
- Built as a fully installable Odoo module compatible with odoo Community and Enterprise
- 23 custom models across asset, license, credential, service, and audit domains
- Custom OWL/QWeb views with field-level permission enforcement
- Odoo wizard-based offboarding — single action triggers full asset reclaim workflow
- Full model security CSV and record rules for granular RBAC
Credential Vault
FERNET AES / FIPS 140-2- Fernet encryption — credentials encrypted before database write
- Encryption key stored as Odoo system parameter, never in credential records
- Field-level masking in UI — password visible only on authenticated reveal
- Every access logged with timestamp, user, and IP
- Granular access control — grant and revoke per credential
License Management
SEAT TRACKING- License registry with seat capacity tracking
- Per-employee assignment with over-allocation prevention
- Expiration monitoring with automated alerts
- License-to-service and license-to-credential linking