Skip to main content
These guidelines establish naming standards for Cognite Data Fusion (CDF) resources. This reference covers external IDs, separators, capitalization (snake_case, PascalCase, camelCase), type prefixes, and validation patterns. Consistent naming ensures maintainability, scalability, and compatibility with automation tools such as the Cognite Toolkit. The conventions apply to data models, building blocks, and core resource types across the CDF project lifecycle.
These conventions are guidelines only. Adjust them to your organizational needs and standards.

Scope and prerequisites

This document governs naming for all artifacts generated during a CDF project. It applies to resource definitions (schema) and instances (data). Artifacts in scope:
  • Data modeling: Data models, spaces and instance spaces, views, containers, instances, edges, and properties
  • Core resources: Time series, streams, records, 3D models and revisions, 3D scenes, locations, and files
  • Building blocks: CDF projects, extraction pipelines, hosted extractors, data workflows, Raw databases, transformations, functions, data sets, entity matching pipelines, access groups, app registrations, charts, canvases, Streamlit applications, and Atlas AI agents
Artifacts out of scope:
  • Legacy CDF asset-centric data model types unless mapped to the new framework
  • Code repository directory structure and Cognite Toolkit module names (governed by separate standards)
You need administrative or write access to the CDF project to create and manage resources. Familiarity with the Cognite Toolkit configuration and templating system is assumed for the implementation section. A git-based workflow is recommended for managing configuration files.

Glossary

A generic term for a CDF resource type (for example, a time series) or a CDF building block (for example, a transformation).
A semantic element used to categorize or group artifacts. Concepts are the atomic units of a name (for example, Source System, Location, Data Domain).
A unique, machine-readable string used to programmatically address an artifact. Ideally immutable once created.
A human-understandable label for an artifact, intended for display in user interfaces. Balances uniqueness with readability.
A combination of one or more tokens that identifies the physical or organizational scope (Region, Country, Site, Asset, Area, or Unit).
A specific segment of a name or identifier derived from a concept.
A character (typically underscore or colon) used to delimit tokens within an identifier.
A high-level categorization of data based on business function (for example, Maintenance, Operations, Quality).

Naming philosophy

In CDF, naming is the primary interface for navigation, governance, and context. A well-constructed name serves as a semantic address, allowing you to infer content, context, provenance, and intended use without querying metadata. The architecture follows a hierarchical tokenization strategy. Treat a name as a sequence of ordered concepts (tokens), flowing from general to specific.
  1. Type prefix: Technical class of the object (for example, ep for extraction pipeline)
  2. Scope/location: Boundary of the data (for example, valhall)
  3. Source: Origin of the data (for example, sap)
  4. Content/intent: Specific function (for example, maintenance)
  5. Suffix: Sub-component (for example, source)
This structure ensures resources group logically when sorted and supports efficient prefix searching.

Anti-patterns to avoid

Anti-patterns to avoid:
  • Ambiguity and generic naming: Avoid generic names like my_script, test_pipeline, data_loader, or transformation_1. These provide no context for scope, ownership, function, or lifecycle. In a shared environment, test_pipeline is meaningless and increases the risk of accidental deletion.
  • Semantic drift and casing chaos: In many systems, PumpID and pumpid are distinct identifiers. Inconsistent capitalization leads to “split-brain” scenarios where data is written to one but read from another, causing silent data loss. Identifiers that differ only by capitalization are prohibited.
  • Unsafe characters: Do not use spaces, special characters (for example, &, %, /, ), or non-ASCII characters in external IDs. They break downstream tools, require escaping in YAML/JSON, and may be misinterpreted by CLIs. External IDs must be variable-name-safe: alphanumerics and underscore only.
  • Implicit context: Do not omit location or source because “everyone knows we are on Project X.” Projects scale and merge. A pipeline named sap_assets collides when a second site also running SAP is added. Use explicit context (for example, valhall_sap_assets).
  • Hardcoded randomness: Random GUIDs/UUIDs guarantee uniqueness but sacrifice debuggability. A human operator cannot determine if job_a1b2 is critical without a lookup table. Semantic naming provides immediate situational awareness during incident response.

General principles

All naming in CDF should adhere to these core principles. Apply them consistently across all resource types and layers. The following table lists each principle and its rationale.
PrincipleRationale
ConsistencyCreate a register (Excel or YAML enum) for concept values. Share with stakeholders to prevent variation sprawl (for example, NY, NewYork, NYC for the same location).
UniquenessInclude sufficient concepts to make identifiers globally unique, even when moved across folders or projects.
Readability balanceUse the minimum number of concepts for uniqueness and clarity. Avoid unwieldy identifiers.
Ordered conceptsMaintain the same concept order across artifacts (for example, Type_Location_Source). Predictability allows correct guessing.
Standardized languageUse English, singular forms (Pump, not Pumps), and present tense (Calculate, not Calculated).
EssentialismUse only essential words. Avoid articles, conjunctions, and prepositions unless required. Use FlowRate instead of TheRateOfFlow.
Semantic parityUse the same identifier and name for the same concept across objects. If Description is used in one model, do not use Desc or Comment elsewhere.
Casing integrityDo not create names or identifiers that differ only by capitalization. If asset_id exists, Asset_Id is prohibited.
Building block prefixingPrefix building block identifiers with the type (for example, ep_, ds_) for filtering and sorting.
Instance neutralityFor data instances, do not use a type prefix. A pump instance is P-101, not asset_P-101.

Anatomy of a name or identifier

A name or identifier has these components:
  1. Artifact type abbreviation: (0:1) Optional or mandatory prefix depending on resource type
  2. Artifact type: (0:1) For example, Transformation
  3. Concepts: (1:n) Semantic tokens defining the object
  4. Separators: (1:n) Delimiters between tokens

Separator tokens

ContextSeparatorExampleRationale
External ID (machine-readable)Underscore (_)ep_valhall_sap_maintenanceURL-safe, filesystem-safe, variable-name-safe in Python, SQL, JavaScript. No escaping in standard configs.
Name (human-readable)Colon (:), hyphen (-), or underscore (_)Valhall : SAP : Maintenance ExtractionImproves visual separation in dashboards for easier scanning.

Concepts and token standardization

Typical concepts in CDF names:
  • Source system: Originating technology (for example, sap, pi, sharepoint)
  • Enterprise: Top-level company code (for example, cognite, celanese)
  • Location: Physical or organizational scope
  • Industry segment: For example, upstream, manufacturing, grid
  • Industry functions/processes: For example, maintenance, operations, quality
  • Resource categorization: For example, Asset, Material, WorkOrder
  • Data model categorization: src (Source), dom (Domain), sol (Solution)
  • Access role/persona: For example, planner, engineer, admin

Location strategy

Location is often the most critical concept for scalability. It is typically a composite token:
  • Region/country: eu, us, no
  • Site: Production facility (manufacturing terminology)
  • Asset: Production facility (oil and gas terminology)
  • Area: One area of a facility
  • Unit/zone/line: Most granular physical scope
If an artifact applies to all locations (for example, a global reference data model), use the token all or similar. This preserves the token structure (for example, ep_all_sap_assets) and allows consistent parsing.

Data modeling resource types

Data modeling uses strict capitalization and suffixing to distinguish layers (Source, Domain, Solution). See Designing scalable data models for the layered architecture (source, enterprise, solution) that these abbreviations map to. Data model type abbreviations:
  • src: Source data model (mirrors source system schema) – see layered architecture
  • dm: Data model (generic)
  • dom: Domain object model (enterprise-wide canonical model)
  • sol: Solution data model (app-specific consumption model)
  • inst: Instances – see spaces and instances

Data models

Data model names can have up to 255 characters. They must explicitly state their layer.
AttributeConventionExample
External ID{General naming}_src/dom/solProcess_Industry_Data_Model_DOM
Name{General naming} SRC/DOM/SOLProcess industry data model DOM
CapitalizationPascalCase for IDGeneral principles for naming

Spaces

Spaces function as namespaces for data models. Space names can have up to 255 characters. Data model spaces:
AttributeConventionExample
Identifierdm_{src/dom/sol}_{general naming}dm_dom_maintenance_management
Name{General naming} DM - SRC/DOM/SOLMaintenance management - DM - DOM
Capitalizationsnake_case for IDGeneral principles for naming
Data model instance spaces (see spaces and instances):
AttributeConventionExample
External IDinst_{general naming}inst_yggdrasil
Name{General naming} - INSTYggdrasil instance space - INST
Capitalizationsnake_case for IDGeneral principles for naming

Views, containers, and edges

Views, containers, and edges define the schema structure. Use PascalCase, similar to class definitions.
AttributeConventionExample
External ID{General naming}FailureCause
Name{General naming}Failure cause container
CapitalizationPascalCase for IDGeneral principles for naming

Properties

Properties represent attributes of a view or container. Use camelCase, similar to variable definitions.
AttributeConventionExample
Identifier{General naming}errorCode
DescriptionFollow AI-friendly description practicesError code returned by the sensor
CapitalizationcamelCaseSame as identifier

Core resource types

These resources often originate from source systems. The naming strategy prioritizes traceability.

Time series, streams, and records

ResourceExternal ID patternComponents
Time series{Source System}{Site}{Original ID}Originating system (pi, sap), site/asset
Streams{Source System}{Site}{Concept}Originating system, site/asset
Records{Source System}{Site}{Machine}_{ID}Originating system, site/asset, machine number
Use snake_case for generated prefixes.

3D models and revisions

3D revisions often have system-generated IDs. The model and scenes can be named.
ResourceExternal IDNameCapitalization
3D modelN/A (system){General naming}PascalCase for name
3D revisionN/A (system)N/A (system)System-generated
3D sceneN/A (system){General naming}snake_case for name

Location filters and files

ResourceExternal IDName
Location filterloc_{location}{General naming}
FileN/A (use source ID)N/A (use source name)

CDF building blocks

Building blocks must use type prefixes for filtering and sorting in the CDF portal and API. For names, do not use a prefix.

Building block prefixes

Building blockPrefix
CDF projectNone
CDF organizationNone
Extraction configurationsec
Extraction pipelineep
Raw databasesraw (optional)
Transformationstr
Data workflowswf
Functionsfn
Data setsds
Location filtersloc
Access groups (IDP, identity provider)gp_cdf
Access groups (Cognite)gp
App registrationsapp
ChartsNone
CanvasesNone

Detailed building block conventions

CDF project
  • Name: {enterprise}-{segment}-{region}-{country}-{project level}
  • Example: am-long-europe-dev
Extraction pipelines
  • External ID: ep_{data type}{location}{source system}
  • Example: ep_files_valhall_sharepoint (ID), Valhall Sharepoint File Extraction (name)
Hosted extractors
  • External ID: he_{data type}{location}{messaging provider}_{source system}
  • Example: he_timeseries_valhall_kafka_pi_source
Data workflows
  • External ID: wf_{location}{intent}{source data structure}_{target data structure}
  • Example: wf_all_sap_assets_to_cdm or wf_valhall_calculate_asset_downtime
Transformations
  • External ID: tr_{source data structure}_{location}to{target data structure}
  • Example: tr_sap_oid_to_cdm
Functions
  • External ID: fn_{source data structure}{location}{intent}_{target data structure}
  • Example: fn_timeseries_valhall_anomalydetection_alerts
Data sets
  • External ID: ds_{data type}_{location}
  • Example: ds_files_valhall
Access groups (IDP, identity provider, and CDF)
  • IDP external ID: gp_cdf_{location}{persona|resource type|data domain}{action}_{project level}
  • Example: gp_cdf_valhall_process_engineer_read_dev or gp_valhall_timeseries_read
  • CDF external ID: gp_{convention} (mirror the IDP name)
App registrations / service principals
  • External ID: app_{location}{persona}{source system}{data type}{action}_{project level}
  • Example: app_valhall_extractor_pi_timeseries_write_dev
Visualizations (charts, canvases, Streamlit)
  • External ID: N/A
  • Name: Follow general naming and capitalization guidelines

External standards

Align concepts with established international standards where possible:
StandardScopeRequirement
CFIHOS (Capital Facilities Information Handover Specification)Disciplines, document typeUse specific codes from CFIHOS standards
ISO 3166Country codesUse standard 2-letter codes (NO, US)
ISO 639-1/2Language codesUse standard language codes (en, no)
ISA-95 (Enterprise-Control System Integration)Manufacturing hierarchyUse levels (Site, Area, Line, Work Center) for equipment and location tokens

Implementation

Token construction workflow

1

Identify the artifact

Determine if the object is a building block or a resource. If a building block, look up the mandatory prefix (for example, Extraction Pipeline → ep_). If a resource, determine if the resource requires a prefix (Data Model → Yes, Time Series → No).
2

Identify the scope (location)

Determine the geographical or organizational scope. Is it specific to Plant A? Use token: planta. Is it global? Use token: all or global.
3

Identify the source

Where does the data originate? SAP ERP? Use token: sap. Manual input? Use token: manual.
4

Assemble and separate

Combine tokens using the underscore separator for external IDs. Example: ep + _ + planta + _ + sap = ep_planta_sap.

Toolkit integration

The Cognite Toolkit supports variable substitution for automated naming compliance. Define variables in the configuration file and use Jinja2 templating in resource definitions.
# config.yaml
variables:
  location: valhall
  source: sap
  prefix_ep: ep
  prefix_db: raw
Running the Toolkit generates ep_valhall_sap_assets automatically, preventing manual errors and ensuring the separator standard is applied across environments.

Governance and validation

Naming register (soft gate). Maintain a Naming Standards Register (Excel or YAML enum) listing approved codes for Locations, Sources, Personas, and Industry Segments. Require engineers to consult the register before creating names. Add new concepts through a formal approval process.
CI/CD linting (hard gate). Implement regex validation in the CI/CD pipeline. Scan configuration files for externalId fields and validate against defined patterns. Example: ^ep_[a-z0-9]+_[a-z0-9]+$ ensures ep_ prefix and snake_case. Reject pull requests that fail validation.

Handling exceptions

Exceptions should be rare and documented:
  • Brownfield constraints: If a legacy system requires a naming format that violates the standard, document the deviation in the Description or Metadata field of the artifact in CDF.
  • Customer requirements: If a client demands a specific convention (for example, for access groups to align with Active Directory), adhere to the client’s requirement and note the deviation in project documentation.

Validation checklist

Use this checklist before merging a pull request or deploying a resource:
CategoryChecklist itemCheck
SyntaxDo all external IDs use the underscore (_) separator?
SyntaxAre all external IDs snake_case unless specified otherwise (for example, PascalCase for data models)?
UniquenessDo IDs include sufficient location/source tokens to prevent global collisions?
PrefixesDo all building blocks (pipelines, data sets, groups) have the correct type prefix (ep_, ds_, gp_)?
Data modelingAre data models named using PascalCase (for example, MyModel)?
Data modelingDo data model IDs end with the correct suffix (_src, _dom, _sol)?
PropertiesAre data model properties named using camelCase (for example, pressureRating)?
NamesAre human-readable names standardized to English, singular, and present tense?
Token orderIs the token order consistent (for example, Type_Location_Source)?
External standardsAre ISO codes used for countries/languages and ISA-95 levels for equipment hierarchies?
RegisterHave all new concepts (sites, sources) been added to the central Naming Register?

Quick reference tables

The following tables provide a quick lookup for naming conventions by resource type. In the Name casing column, General means follow the general principles for capitalization (English, singular, present tense) described above. N/A means not applicable (for example, system-generated IDs or when the resource uses the source system’s identifier).

CDF building blocks

Building blockPrefixExternal ID casingName casingExample ID
CDF projectNonekebab-casekebab-caseam-long-europe-dev
OrganizationNonekebab-casekebab-casecognite
Extraction configecsnake_caseGeneralec_sap_maint
Extraction pipelineepsnake_caseGeneralep_valhall_sap
Hosted extractorhesnake_caseGeneralhe_ts_valhall_pi
Data workflowwfsnake_caseGeneralwf_valhall_calc
Raw databaserawsnake_caseGeneralraw_sap_assets
Transformationtrsnake_caseGeneraltr_sap_to_cdm
Functionfnsnake_caseGeneralfn_anomaly_detect
Data setdssnake_caseGeneralds_files_valhall
Entity matchingemsnake_caseGeneralem_sap_pi
Access group (IDP, identity provider)gp_cdfsnake_caseGeneralgp_cdf_read_all
Access group (CDF)gpsnake_caseGeneralgp_read_all
App registrationappsnake_caseGeneralapp_extractor_pi
Location filterlocsnake_caseGeneralloc_valhall
Atlas AI agentagentsnake_caseGeneralagent_maintenance

Data modeling

Resource typeExternal ID casingName casingSuffix ruleExample ID
Data modelPascalCaseGeneral_src, _dom, _solAssetModel_DOM
Spacesnake_caseGeneralNo suffixdm_dom_assets
ViewPascalCaseGeneralNo suffixPumpView
ContainerPascalCaseGeneralNo suffixPumpContainer
EdgePascalCaseGeneralNo suffixPumpEdge
Instancesnake_caseN/ANo suffixpump_101
PropertycamelCasecamelCaseNo suffixflowRate

Other resources

Resource typeExternal ID casingName casingExample ID
Time seriessnake_caseGeneralpi_valhall_2342
Recordssnake_caseGeneralsap_valhall_rec1
3D modelN/A (system)PascalCaseValhallModel
3D scenesnake_caseGeneralscene_deck_a
Location filtersnake_caseGeneralloc_valhall
FileN/A (use source)N/A (use source)N/A

Further reading

Last modified on March 6, 2026