> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cognite.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reliability and Maintenance Data Model reference

> Deploy a standardized reliability and maintenance data model aligned with ISO 14224 and NORSOK Z-008 for CDF maintenance, root cause analysis, and condition-based maintenance use cases.

The **RMDM deployment pack** (`dp:models:rmdm`) provides a standardized data model for maintenance and reliability use cases in Cognite Data Fusion. It extends Cognite's Core Data Model (CDM) and Industry Data Model (IDM) with maintenance, equipment, and failure-analysis concepts aligned with ISO 14224 and NORSOK Z-008. Deploy RMDM to establish a consistent foundation for troubleshooting, root cause analysis (RCA), and condition-based maintenance without designing a maintenance data model from scratch.

<Note>
  RMDM is a cherry-pickable module (`dp:models:rmdm`) inside the single **Data models** deployment pack (`dp:models`). "Data models" is one pack — selecting it in the Toolkit lets you choose the model(s) you need, such as RMDM, without deploying the others.
</Note>

## Who it's for

**Target personas:**

* **Data engineers** — deploy and configure RMDM with the Cognite Toolkit.
* **Data modelers** — extend the maintenance and failure-analysis model.
* **Subject matter experts** — reliability and maintenance engineers who own RCA and condition-based maintenance workflows.

**Use this pack when:**

* You are setting up a new CDF project for reliability or maintenance use cases and need a standardized data model without building it from scratch.
* Your project requires RCA, CBM, or failure analysis workflows.
* You need to integrate maintenance data from CMMS platforms, historians, DCS systems, and engineering databases into a unified, queryable structure.
* You are extending an existing CDF project with a standardized maintenance, equipment, and failure-analysis data model aligned with ISO 14224 and NORSOK Z-008.

**When not to use this pack:**

* If your project is manufacturing-focused, use the [ISA Data Model](/cdf/deploy/cdf_toolkit/references/packages/isa_data_model) deployment pack instead.
* If your project is oil and gas operations with AVEVA, SAP, and PI source systems, use the [Oil and Gas Data Model](/cdf/deploy/cdf_toolkit/references/packages/oil_gas_data_model) deployment pack instead.

## What's included

| Component              | Description                                                                                                                                                                                                           | Optional? |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| `rmdm`                 | Enterprise module — owns containers, views, space, and the composed RMDM data model. Deployed to the `rmdm` space. Treated as the durable contract.                                                                   | No        |
| Equipment views        | Asset, Equipment, EquipmentClass, EquipmentType, and EquipmentFunction — extending CDM types (`CogniteAsset`, `CogniteEquipment`, `CogniteEquipmentType`, `CogniteDescribable`). Asset is the central navigation hub. | No        |
| Maintenance views      | MaintenanceOrder and Notification extending IDM types (`CogniteMaintenanceOrder`, `CogniteNotification`). Linked to equipment and failure analysis views.                                                             | No        |
| Failure analysis views | FailureMode, FailureCause, FailureMechanism, and FailureNotification — ISO 14224 failure taxonomy as first-class views. FailureNotification extends Notification with failure mode, cause, and mechanism links.       | No        |
| Supporting views       | TimeSeriesExtension (extends `CogniteTimeSeries`) and FileExtension (extends `CogniteFile`) — time series and document metadata linked to equipment and maintenance entities.                                         | No        |

## Prerequisites

Verify all of the following before you start:

* Cognite Toolkit version **0.8 or later** is installed. See [Setting up](/cdf/deploy/cdf_toolkit/guides/setup).
* A `cdf.toml` file exists in your project root. If it is missing, run `cdf modules init` and select **Create toml file (required)**.
* Authentication is configured and verified — run `cdf auth init` and `cdf auth verify` using a local `.env` file. See [Authentication and authorization](/cdf/deploy/cdf_toolkit/guides/auth).
* Your CDF project has **Data Modeling** enabled.

## Install and deploy

You can add RMDM to an existing Toolkit project or start a new project from scratch.

<Tabs>
  <Tab title="Add to an existing project">
    Add the module from your project directory:

    ```sh theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
    cdf modules add -d rmdm
    ```
  </Tab>

  <Tab title="Start a new project">
    1. In an empty directory, initialize a project:

       ```sh theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
       cdf modules init .
       ```

    2. In the interactive menu, choose **Data models**, use **Space** to select **RMDM**, then press **Enter** to confirm.
  </Tab>
</Tabs>

The Toolkit creates the module under `modules/datamodels/rmdm/` and updates your `config.<env>.yaml` files. Then build and deploy:

<Steps>
  <Step title="Build deployment artifacts">
    ```sh theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
    cdf build
    ```

    The Toolkit substitutes template variables and writes artifacts to the `build/` directory. If you need to change the project name or any variables marked `<change_me>`, edit `config.<env>.yaml` first — see [Configure, build, and deploy modules](/cdf/deploy/cdf_toolkit/guides/usage).
  </Step>

  <Step title="Dry-run the deployment">
    ```sh theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
    cdf deploy --dry-run
    ```

    Inspect the output and confirm that configurations look correct before deploying.
  </Step>

  <Step title="Deploy to CDF">
    ```sh theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
    cdf deploy
    ```

    The Toolkit deploys only configurations that have changed since the last run.
  </Step>

  <Step title="Set up CI/CD (optional)">
    For governed production deployments, automate build, dry-run, and deploy in a pipeline. See [Set up CI/CD pipelines](/cdf/deploy/cdf_toolkit/guides/cicd/index).
  </Step>
</Steps>

After deployment, your project should include:

```text theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
modules/
└── datamodels/
    └── rmdm/
```

## Verify the deployment

After deploying, confirm success with these checks:

1. The `cdf deploy` command finishes without errors and reports successful deployment of spaces, containers, views, and data models.
2. In CDF, navigate to **Data Modeling > Spaces** and verify that the `rmdm` space exists.
3. Navigate to **Data Modeling > Data Models** and verify that the RMDM data model is available.
4. Open the RMDM data model and verify that entities such as `Equipment`, `FailureMode`, `FailureCause`, and `MaintenanceOrder` are present.
5. Navigate to **Data Modeling > Containers** and verify that the expected RMDM containers have been deployed.
6. Navigate to **Data Modeling > Views** and verify that the expected RMDM views have been deployed.

The deployment is successful when the RMDM space, data model, containers, and views are visible in CDF and can be opened without errors.

## Configuration reference

Parameters are set in `config.dev.yaml` at the project root. Default values work for an initial test deployment.

Each parameter takes its default unless you override it. Where the default is `—`, you must provide your own value before deploying.

| Parameter             | Description                                               | Default   |
| --------------------- | --------------------------------------------------------- | --------- |
| `project`             | CDF project external ID to deploy to.                     | —         |
| `space`               | CDF space for the RMDM data model — containers and views. | `rmdm`    |
| `dm_version`          | Version identifier for the RMDM data model.               | `1_0_0`   |
| `dataset_external_id` | CDF dataset used for resources and lineage tracking.      | `ds_rmdm` |

## Architecture

RMDM is deployed as a single Cognite Toolkit module containing a dedicated space, data model, 13 containers, and 13 views. The module is schema-only — it defines the data structure and CDM/IDM extensions, and does not bundle transformations or a workflow. Data instances are populated separately using transformations or the CDF API once source systems are connected.

### How the views connect

`Asset` is the central hub: it forms a self-referencing hierarchy (`parent`/`children`) and is referenced by equipment, maintenance orders, notifications, time series, and files. `Equipment` carries the equipment classification (`EquipmentType`, `EquipmentClass`), and the ISO 14224 failure taxonomy attaches through `EquipmentClass.failureModes` and through `FailureNotification`. The diagram below shows the direct relations between views, labeled with the property that defines each relation.

```mermaid theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
flowchart TD
    Asset["Asset · CogniteAsset"]
    Equipment["Equipment · CogniteEquipment"]
    EquipmentType["EquipmentType · CogniteEquipmentType"]
    EquipmentClass["EquipmentClass · CogniteDescribable"]
    FailureMode["FailureMode · CogniteDescribable"]
    FailureMechanism["FailureMechanism · CogniteDescribable"]
    MaintenanceOrder["MaintenanceOrder · CogniteMaintenanceOrder"]
    Notification["Notification · CogniteNotification"]
    FailureNotification["FailureNotification"]
    TimeSeriesExtension["TimeSeriesExtension · CogniteTimeSeries"]
    FileExtension["FileExtension · CogniteFile"]

    Asset -->|parent| Asset
    Equipment -->|asset| Asset
    Equipment -->|equipmentType| EquipmentType
    Equipment -->|equipmentClass| EquipmentClass
    Equipment -->|files| FileExtension
    EquipmentType -->|equipmentClass| EquipmentClass
    EquipmentClass -->|failureModes| FailureMode
    MaintenanceOrder -->|mainAsset| Asset
    MaintenanceOrder -->|equipment| Equipment
    Notification -->|asset| Asset
    Notification -->|equipment| Equipment
    Notification -->|maintenanceOrder| MaintenanceOrder
    FailureNotification -.->|implements| Notification
    FailureNotification -->|failureMode| FailureMode
    FailureNotification -->|failureMechanism| FailureMechanism
    TimeSeriesExtension -->|assets| Asset
    TimeSeriesExtension -->|equipment| Equipment
    FileExtension -->|assets| Asset
```

The diagram shows direct relations only; the corresponding reverse relations (for example, `Asset.equipment` or `Asset.maintenanceOrders`) are the inverse of these edges. `EquipmentFunction` and `FailureCause` are standalone classification views — other views reference them as code or property values rather than through view relations.

### CDM extensions (`cdf_cdm`)

| View                | Extends              | Purpose                                                                                                                                              |
| ------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Asset               | CogniteAsset         | Central asset and functional location node — the navigation hub linking equipment, maintenance orders, notifications, and time series.               |
| Equipment           | CogniteEquipment     | Physical equipment with class, type, function code, and service start date. Carries reverse relations to maintenance orders, time series, and files. |
| EquipmentType       | CogniteEquipmentType | Standard equipment type definition linked from Equipment.                                                                                            |
| EquipmentClass      | CogniteDescribable   | ISO 14224 equipment class classification with code and description.                                                                                  |
| EquipmentFunction   | CogniteDescribable   | Functional category of equipment with code and description.                                                                                          |
| FailureMode         | CogniteDescribable   | ISO 14224 failure mode — the observable way in which equipment fails. Linked to failure notifications.                                               |
| FailureCause        | CogniteDescribable   | Root cause classification for failure analysis. Linked from FailureNotification.                                                                     |
| FailureMechanism    | CogniteDescribable   | Physical or chemical process that caused the failure. Linked from FailureNotification.                                                               |
| TimeSeriesExtension | CogniteTimeSeries    | Time series data linked to equipment — sensor readings, process values, and historian data.                                                          |
| FileExtension       | CogniteFile          | Documents and file metadata linked to equipment and maintenance entities.                                                                            |

### IDM extensions (`cdf_idm`)

| View             | Extends                 | Purpose                                                                              |
| ---------------- | ----------------------- | ------------------------------------------------------------------------------------ |
| MaintenanceOrder | CogniteMaintenanceOrder | Maintenance work orders with scheduling, priority, and direct relation to Equipment. |
| Notification     | CogniteNotification     | Maintenance notifications linked to Asset.                                           |

### Domain-specific views

| View                | Purpose                                                                                                                                                                                  |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| FailureNotification | Failure-specific notification extending Notification with direct relations to FailureMode, FailureCause, and FailureMechanism — the primary view for RCA and failure analysis workflows. |

### Key design decisions

**Schema-only module.** RMDM deploys the data structure and CDM/IDM extensions only — no transformations or workflow are bundled. This keeps the module lightweight and applicable across any source system combination. Transformations and a workflow can be added per project once the source schema is known.

**Single asset hierarchy via `Asset`.** Only `Asset` implements `CogniteAsset`. All other entities (Equipment, MaintenanceOrder, FailureNotification) link to assets via direct relations, preserving a clean single-hierarchy navigation pattern in CDF applications.

**ISO 14224 failure taxonomy as first-class views.** `FailureMode`, `FailureCause`, and `FailureMechanism` are independent views with their own containers — not properties on `Notification`. This allows reuse across multiple notifications and enables RCA aggregations across the failure taxonomy without duplicating data.

## Troubleshooting

| Symptom                                            | Likely cause                                                                                              | Resolution                                                                                                            |
| -------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `cdf auth verify` fails with 401 Unauthorized      | Missing or incorrect credentials in `.env` file.                                                          | Run `cdf auth init`, re-enter credentials, then re-run `cdf auth verify`.                                             |
| Module not found during `cdf modules add`          | `[library.cognite]` not configured in `cdf.toml`, or `[library.toolkit-data]` still present alongside it. | Replace `[library.toolkit-data]` with `[library.cognite]` in `cdf.toml`. The two sections cannot coexist.             |
| `cdf deploy` fails with "Insufficient permissions" | Toolkit service account is missing required CDF capabilities.                                             | Add `spaces:write`, `datamodels:write`, and `datasets:write` to the CDF group used by the Toolkit.                    |
| `cdf build` fails with validation errors           | Project configuration issue or incompatible Toolkit version.                                              | Review the build output and resolve reported errors. Ensure Toolkit version is 0.8 or later.                          |
| Views show no instances after deployment           | No data has been ingested into the RMDM space yet.                                                        | RMDM deploys the schema only — populate instances using transformations or the CDF API once source data is available. |

For issues not covered here, contact Cognite support.

## Support

| Field                  | Details                                                                     |
| ---------------------- | --------------------------------------------------------------------------- |
| Team                   | Cognite Value Delivery Team                                                 |
| Documentation          | [Cognite product documentation](/)                                          |
| Questions and feedback | [Deployment Packs group on Cognite Hub](https://hub.cognite.com/groups/578) |
| Version                | 1.0.0                                                                       |
| Last updated           | 2026                                                                        |
