template. Set template: true on a hub model to mark the hub model as abstract, as an abstract model doesn’t need a live connection.
Syntax
Properties
string[]
One or more model names this model extends.
<model_name> is the referenced model’s name as shown in the model IDE, not its internal ID. Model names referenced by extends should be unique within your organization.Views, topics, relationships, access grants, schema include/exclude lists, and other model-level configuration are inherited from the listed models.Model inheritance and overrides
These rules control how Omni merges a base model into the current model:- The current model’s own definitions always win. If the current model and a base model define a view or topic with the same name, the current model’s version replaces the base model’s version. Omni does not merge the two versions field by field.
- The current model inherits anything it does not define itself.
- When
extendslists more than one base model, list order sets priority. The first model in the list wins any conflict with a later model. For example,extends: [model_a, model_b]resolvesmodel_bfirst, then layersmodel_aon top of it. If both models define the same item,model_awins. - A model can extend a model that itself extends another model. Omni resolves each level in the chain before merging; if circular references are detected, Omni skips them.
- A base model can use a different connection than the current model. If the base model references a schema that isn’t active on the current model’s connection, Omni activates that schema automatically. Omni does not activate offloaded schemas this way.
extendsdoes not carry over from a base model. If a base model has its ownextendslist, the current model does not inherit that list. Setextendsexplicitly on each model that needs it.extendsdoes not include virtual schemas. Models usingextendsshould define any virtual schemas that are used on the base model.
extends, switch to Fully Resolved browse mode on a branch. This mode shows the full resolved model, including all content inherited from base models.
Examples
Basic inheritance
In this example,spoke_model inherits hub_model’s included_views. The extended model also inherits any topics defined in hub_model, as it doesn’t define any of its own topics.
spoke_model
hub_model
Override an inherited property
In this example,spoke_model_emea sets its own week_start_day to sunday, overriding the value set in hub_model.
spoke_model_emea
hub_model
Extend multiple base models
In this example,core_hub and regional_hub both define an orders view. In spoke_model_combined, the orders view in core_hub wins because core_hub is listed first in extends.
spoke_model_combined
core_hub
regional_hub
Related
- template — mark a base model as abstract
- Fully Resolved browse mode — view everything a branch inherits through
extends - Shared extension models — a separate, UI-driven feature for per-tenant model variants
- extends - Topics and extends - Views — inheritance for one topic or view at a time

