Ardoq’s flexible metamodel makes it easy to establish your workspaces. But flexibility can also lead to inconsistency, which can slow down adoption and make it harder for new contributors to work in your main repository.
Metamodel Constraints gives admins more control over the metamodel by defining the valid relationships in your data. This helps:
Ensure consistency in how components are connected
Simplify collaboration by guiding users toward correct reference types
Reduce cleanup work caused by incorrect or inconsistent references
This feature is available to Ardoq administrators only.
How It Works
In the first version, Metamodel Constraints gives administrators an overview of how data in their repository is connected.
Ardoq automatically surfaces how your data is connected by showing all existing source–reference–target types. Each of these will be marked with a Defined (“In Use”/“Unused”) or Undefined status. You can mark a constraint as Defined, making it an intentional part of your metamodel, and use the Undefined status to uncover connections that do not conform with your intended design. You then have the option to clean up the data so that it better reflects your intended design.
To make it easier to get started, the initial list of constraints is pre-populated with reference types from the installed Ardoq Solutions in your organization. This provides a useful baseline that you can review and refine according to your needs.
Future iterations of this feature will build on this foundation by moving from documentation to enforcement. Metamodel Constraints will gradually play a role in guiding and restricting reference creation, helping you ensure consistency. For example, it will help you narrow down the options available when creating Viewpoints, improve precision when filtering in Data Inventory, and limit reference creation in Views so that users can only establish relationships that align with your defined constraints.
Constraint Statuses and Actions
Status | Description | Actions |
| The source–reference–target type exists in your data but is not yet defined as a metamodel constraint. | Add as a Defined constraint (+) or review existing references (🔍).
|
| A constraint is defined but no current data matches it. | Delete the constraint if it’s not needed. |
| A constraint is defined and there is data that conforms to it. | Remove (-) the constraint if you want to make it Undefined or see the instances that use this constraint (🔍) |
You can also create a new constraint (that is not yet present in your data) using the (Create) button in the top-left corner.
Working With the Constraints Table
Grouping
The constraints table allows you to group content in different columns to get a clearer overview. To do this, drag a column header to the top of the table, and the rows will automatically group by that field.
For example, if you group by Source Type, you will see all constraints related to a specific source organized together.
Filtering
For a more focused view, you can apply filters to the constraints table. Filters can be added individually or combined with other filters and groupings.
You can filter by:
Component Type
Reference TypeSolution
Status (Defined – In Use, Defined – Unused, Undefined)
For instance, you can filter to see only Undefined constraints where the Component Type is Person, helping you quickly identify where cleanup or constraint definition is needed.
Note: The Component Type filter applies to both the Source Type and Target Type columns. This means results may include constraints where the component type appears in either column.
How To Access Metamodel Constraints
To open Metamodel Constraints, go to Preferences → Organization settings → Metamodel constraints in the left-hand menu.