Skip to Content

PMIS Host Service

Beta License: LGPL-3 PMISuite/stock-accounting Version: 18.0

Digital Assets maintains an inventory of hosts, application services, databases, and domains with stages, assignments, and chatter. It records infrastructure relationships; it does not provision servers, execute database operations, or update DNS.

Features

  • Everyday entry follows Host > Instance > Database > Website Domains. Add instances inline on a host, databases inline on an instance, and multiple website domains inline on a database. Open a row for its full details.

  • New instances default to the supplied Odoo application. Domains assigned to a database derive their instance and host automatically; neither needs to be selected again. Database and domain lists expose this complete hierarchy.

  • Technical administration, registration, stages, and lifecycle controls are available on Advanced tabs rather than crowding the main forms.

  • Hosts record operating system, IP address, provider, type, and optional parent host.

  • Services belong to hosts and can reference applications, databases, and served domains. Display names include service, host, and application names; sequence remains available for ordering.

  • Databases belong to instances. A database determines its domains' instance and host; moving it moves all linked domains, including registered and archived records. Domains without a database can select an instance directly using the same field. There is no parallel application-service link.

  • Smart buttons open the corresponding related records and show counts.

  • Register Assets guides application setup or individual host, database, and domain registration through details and review. It creates the requested records together or saves them as drafts, without changing existing assets.

  • Registration checks and operational lifecycle are independent of existing configurable stages. Forms explain missing registration information.

  • My Assets, Needs Registration, lifecycle, and archive filters support ongoing inventory maintenance. Responsible people can be reassigned.

  • Shared stages support a starting-stage default and folded kanban columns.

  • Assign to Me sets the current responsible user and assignment time. Selecting a responsible user in the form also updates the assignment time.

  • Copying a host copies its services and followers. Host follower subscription and unsubscription propagate to services according to message subtypes.

Configuration and access

The manifest depends on sale_crm, account, and product. Use Digital Assets > Register Assets for guided entry and Inventory for existing hosts, services, domains, and databases. Managers maintain Applications and Stages under Configuration. An application is a software catalog entry; a service is one deployed instance of that application.

Digital Assets User grants inventory read, create, and write access without requiring Sales access. Applications and stages are read-only, and deletion is reserved for Digital Assets Manager. Existing Sales access remains supported: Sales users can also create and maintain databases, with database deletion reserved for managers. The legacy Digital Assets group still implies Sales access.

Company fields describe ownership; the service company follows its host. This addon defines no company record rules, so these fields alone do not provide multi-company record isolation. The wizard only accepts active companies and same-company relationships. Registration completion also checks same-company links. Shared infrastructure across companies remains visible under existing access policy; such relationships must be reviewed before registration can be completed.

Usage

See the user manual for complete setup and user instructions, with screenshots of the workflow.

For the usual Odoo workflow, open Inventory > Hosts, create a named host, and add its instances in the Instances tab. Open an instance and add each database in Databases. Open a database and enter each website domain in Website Domains. Multiple websites and aliases are separate domain rows on the same database. The host and instance shown on a domain are read-only and follow database or host reassignment automatically. No separate web server or application routing link is needed for this workflow.

The Add Instance, Add Database, and Add Domain buttons offer guided entry with the parent prefilled. The registration wizard is optional; ordinary form and inline entry save drafts. Registration remains available on Advanced when completeness tracking is useful.

  1. Have a manager configure applications with their types, and stages including a starting stage. Web applications expose database actions; web servers expose served-domain actions. Application Registration Defaults provide reusable setup presets for database inclusion and engine type, domain inclusion, and new host type.

  2. Open Register Assets, choose an application setup or individual asset, and enter its name, company, and responsible person.

  3. For application setup, choose an existing host or enter a new host. Add an optional database and domain. The serving web service may use another host.

  4. Review the new and reused records and possible duplicate names. Register validates every new asset and opens the primary asset. Save Draft saves incomplete records. Cancel, including after review, creates no inventory.

  5. Use Add Service, Add Database, Add Served Domain, or Add Domain on existing records to continue with the relevant relationship prefilled. Relationship tabs support additional databases and domains.

  6. Complete drafts using their displayed checklist and Complete Registration. Use Reopen Registration before removing required registration details. Operational lifecycle can be Not Verified, Planned, In Service, Retiring, or Retired; it does not claim infrastructure has actually been provisioned.

Hosts require a type and responsible person to complete registration. Services require a classified application and responsible person. Databases require a consuming application service and responsible person. Domains require a valid hostname and responsible person, but may remain unlinked when parked. Related assets must belong to the same company. These checks also apply to ORM writes and imports of registered records; all newly saved assets require a name.

A database's Consuming Application Service identifies the application using it, not the database engine hosting it. Existing databases can be selected when registering an individual domain. The setup wizard creates one service and, optionally, one database and one domain; add further assets from their parent forms. It never silently transfers existing databases between services.

For bulk entry, use Odoo's standard import from the inventory lists, in host, service, database, then domain order. Export an import-compatible sample first and use external IDs for relationships. Import incomplete records as drafts, then review Needs Registration. Duplicate-name warnings are advisory in the wizard, not uniqueness constraints or automatic merging.

Archiving obsolete records

Hosts, services, databases, domains, applications, and stages support Odoo's Archive and Unarchive actions on forms and selected list records. Archived records display an Archived ribbon and are hidden from normal searches and new relationship selections. Use the Archived search filter to find and restore them; Active shows current records. Configuration archiving requires manager access, while asset users can archive the inventory records they can edit.

Archiving preserves identity, links, and history. It does not delete records, cascade to related assets, or change their lifecycle or registration state. For example, retiring a host and archiving it does not retire or archive its services automatically. Review each dependent asset separately. Unarchiving restores visibility without recertifying registration or changing lifecycle.

The registration wizard rejects archived dependencies and includes archived records in duplicate-name warnings. Existing relationships remain available for historical reference. Retired describes operational status; Archived controls whether a record appears in everyday inventory views.

Developer documentation

See the developer guide for the model relationships, registration extension hooks, transaction boundaries, access policy, archive semantics, view loading order, and focused validation commands. Python modules and methods document their contracts; XML comments explain configuration and view responsibilities. The manifest remains a literal dictionary for Odoo.

Release history is maintained in the changelog. Maintenance tasks are tracked in todo.md.

The upgrade to 18.0.1.2.0 replaces stored module-view references to application_service_id with service_id before XML loading validates inherited views. Independently maintained custom views must update their own references to the retired field.

Keep credentials outside this inventory. Recorded addresses and relationships are descriptive and are not checked against live infrastructure.

Bug Tracker

Bugs are tracked on PMISuite Repository Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.

Credits

Authors

Contributors

  • Matjaž Mozetič

Maintainers

LUXIM MATMOZ

Current maintainer:

sysadminmatmoz

Luxim is an independent R&D and deployment company focused on solving complex problems in the Odoo ecosystem.

Odoo Community Association

Luxim is an active member of OCA (Odoo Community Association).