Skip to main content
The Oil and Gas Data Model deployment pack (dp:models:cfihos_oil_and_gas_extension) provides a tag-centric data model for oil and gas operations that merges data from AVEVA, SAP, OPC UA, and PI into a single queryable structure. Built on the CFIHOS 2.0 standard and ISO 14224, it deploys as Cognite Toolkit modules that extend the Cognite Core Data Model (CDM) and Industry Data Model (IDM). The model favors simplicity and denormalization over strict normalization: related properties are flattened into fewer, wider views so a single query returns everything needed about an entity without complex joins.
The Oil and Gas model is delivered as cherry-pickable modules (dp:models:cfihos_oil_and_gas_extension and its search module) 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 without deploying the others.

Who it’s for

Target personas:
  • Data engineers — deploy and configure the model with the Cognite Toolkit.
  • Data modelers — extend the CFIHOS 2.0 / ISO 14224 model for your project.
  • Subject matter experts — reliability and maintenance engineers who validate equipment and failure data.
Use this pack when:
  • You are setting up a new CDF project for oil and gas or energy operations and need a CFIHOS-compliant data model without building it from scratch.
  • You need to integrate data from AVEVA, SAP, OPC UA, and PI (or similar sources) into a unified, queryable structure.
  • You want AI-readable views, denormalized search models, and CDM/IDM compliance out of the box.
  • You are extending an existing CDF project with a standardized equipment and maintenance data model.
  • You want a reference model to compare against an existing data model.
When not to use this pack:
  • If your project does not use data sources similar to AVEVA, SAP, OPC UA, or PI and requires a fundamentally different source schema — this model will need significant adaptation.
  • If your project is manufacturing-focused, use the ISA Data Model deployment pack instead.

What’s included

Prerequisites

Verify all of the following before you start:
  • Cognite Toolkit version 0.8 or later is installed. See Setting up.
  • 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.
  • The data plugin is enabled in cdf.toml — required for the cdf data upload step that loads the seed data after deployment:
  • You can enable feature flags for your CDF project in Cognite Unleash, or can request it from your CDF administrator.

Install and deploy

You can add the CFIHOS modules to an existing Toolkit project or start a new project from scratch.
Add the modules from your project directory:
The Toolkit creates the modules under modules/datamodels/ and updates your config.<env>.yaml files. Then build and deploy:
1

Build deployment artifacts

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.
2

Dry-run the deployment

Inspect the output and confirm that configurations look correct before deploying.
3

Deploy to CDF

The Toolkit deploys only configurations that have changed since the last run.
4

Set up CI/CD (optional)

For governed production deployments, automate build, dry-run, and deploy in a pipeline. See Set up CI/CD pipelines.
After deployment, your project should include:
To test and validate the model end-to-end, upload the included seed data (RAW tables and files) that the wf_cfihos_oil_and_gas workflow reads from:
The data plugin must be enabled in cdf.toml (see Prerequisites) before running cdf data upload. Skip this step if you are populating the model from your own source systems instead of the seed data.
After deploying, enable the FDX_VIEW_SWITCHER feature flag in Cognite Unleash for your CDF project. This enables view navigation, relationship visualization, and enhanced data model exploration in the CDF UI.
Feature flags are project-specific — make sure you enable FDX_VIEW_SWITCHER for the correct CDF project. Contact your CDF administrator if you do not have Unleash access.

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, data models, transformations, and the workflow.
  2. In CDF, navigate to Data Modeling > Spaces and verify that the enterprise and search spaces (dm_dom_oil_and_gas and dm_sol_oil_and_gas_search by default, or your configured names) both exist.
  3. Navigate to Data Modeling > Data Models and verify that both the CFIHOS Oil and Gas enterprise model and the search solution model are listed and can be opened.
  4. Open the CFIHOS enterprise data model and verify that key views are present: Tag, Equipment, WorkOrder, WorkOrderOperation, Notification, Files, TimeSeriesData, FailureMode, and FunctionalLocationProperties.
  5. Navigate to Data Modeling > Containers and verify that the expected CFIHOS containers have been deployed in the enterprise space.
  6. If you uploaded the seed data, navigate to Integrate > Staging (RAW) and confirm the seed tables are present.
  7. Navigate to Workflows > wf_cfihos_oil_and_gas, trigger the workflow, and confirm it completes without errors. All transformations should show a successful execution status.
The deployment is successful when both spaces exist, all views are accessible in CDF, and the workflow has completed 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. Enterprise module (cfihos_oil_and_gas_extension) — set in its default.config.yaml: Search module (cfihos_oil_and_gas_extension_search) — set in its default.config.yaml:
The enterprise module and the search module version independently. Bumping search_dm_version does not require a change to dm_version, and vice versa. Deploy the enterprise module before the search module — the search views map to the enterprise containers.

Architecture

The model splits into two independently versioned modules. The enterprise module owns the containers (the durable contract) and CDM/IDM-implementing views. The search module maps to those enterprise containers and hosts solution-shaped views with reverse relations. Both modules expose views named Tag, Equipment, WorkOrder, and others — they live in different spaces so there is no collision, and consumers get consistent view names whether they read the enterprise or the search model.

How the views connect

Tag is the central asset node and the single CogniteAsset implementer. In the enterprise model, the equipment, work-management, time series, file, and context views all hold the direct relation to Tag, while Tag itself carries only its hierarchy (parent) and a few context relations. The matching reverse relations (Tag.workOrders, Tag.timeSeries, and others) live on the search module’s Tag view. The diagram below shows the enterprise direct relations, labeled with the property that defines each relation. The diagram shows direct relations only; their reverse relations live on the search module. The 17 CFIHOS equipment class views (Compressor, Valve, Pump, HeatExchanger, and others) attach through the polymorphic Tag.classSpecific relation, which omits a fixed source so it can point to any class view. MaintenanceAndIntegrity shares the Tag container key rather than defining a view relation, so it is omitted here.

CDM extensions (cdf_cdm)

IDM extensions (cdf_idm)

Domain-specific views (no CDM/IDM base)

Record containers (no view)

Key design decisions

Denormalization over joins. PI and OPC UA properties are merged into TimeSeriesData with pi_ and opcua_ prefixes. A single query returns source tag, point type, data type, and engineering units without additional lookups. The same principle applies to Files (document, revision, and file flattened) and Equipment (equipment and equipment type denormalized together). Single CogniteAsset. Only Tag implements CogniteAsset. This avoids UI navigation conflicts in CDF applications (Industrial Canvas, Asset Explorer) that expect one asset hierarchy. Equipment, functional locations, and other entities link to tags via direct relations. Polymorphic equipment classes. The classSpecificProperties direct relation on Tag omits a source view — it can point to any of the 17 CFIHOS equipment class views. A dedicated connection transformation populates this relation by matching Tag.externalId to class-specific node IDs.
Naming note — labels vs tags: Because the CogniteAsset view is named Tag in this model, the inherited tags property from CogniteDescribable creates a naming conflict. The view exposes this property as labels. In transformations, queries, and API access, always use labels — never tags — when referring to the text-based label list. Using tags may be interpreted as a reference to the Tag view itself, leading to errors or unexpected results.

Troubleshooting

For issues not covered here, contact Cognite support.

Support

Last modified on July 6, 2026