Before you start
Make sure you have the following:- A project registered in the CDF application. It must be a Data Modeling only project.
- The CDF API and the CDF application registered in Microsoft Entra ID and Microsoft Entra ID and CDF groups set up to control access to CDF data.
- Assets in the CDF project populated in the
CogniteAssetconcept. - URLs in your allowlist.
- The Cognite Toolkit installed and configured. All location configuration and deployments in this guide use the Cognite Toolkit.
Enable Core Data Model (CDM) mode
To enable CDM mode for your project:Create the access group
infield-on-cdm-access and add the users who should have access.Verify access
infield-on-cdm-access group see the CDM version of InField when they open the application.How CDM configuration works
InField CDM configuration is stored as a Data Modeling Service (DMS) node in CDF. Each location you configure in InField is a separate node instance of theInFieldCDMLocationConfig view in the cdf_infield space, part of the InFieldOnCDM data model. The collection of all node instances forms the list of configured locations.
Each configuration node has the following top-level fields:
Set up access
You can use your existing identity provider (IdP) framework to manage access to InField and choose admin users. We support Microsoft Entra ID. For the required group names and capabilities, see Configure InField in the capabilities reference. Use the following name suggestions when creating user groups. Access is based on the group name, so you can create similar groups for different locations. Group names can differ from user to user, but thelocation and env placeholders are recommended for multi-site deployments.
Create data modeling spaces
InField stores asset data in data models. You need to create at least three spaces to store your data and data models.APM_Config is a legacy APM space and is not required for data modeling only projects on CDM. If you are migrating from APM, see the legacy configuration guide._source_data and _app_data spaces for each root location you want to configure in InField. For example, if you have two root locations named plant-a and plant-b, you will need to create four spaces in total:plant-a_source_dataplant-a_app_dataplant-b_source_dataplant-b_app_data
- Python SDK
- API
yourRootLocation with your root location/asset name in yourRootLocation_source_data and yourRootLocation_app_data.Create spaces
Create spaces
Prepare asset data
To display related data on the Asset explorer page, ensure data objects are connected to the corresponding assets in CDF. InField uses these relationships to find and display the relevant information for each asset.Configure locations
Deploy locations using the InField Quickstart deployment pack in the Cognite Toolkit.View mappings (viewMappings)
Views contain a group of properties that you can change for specific cases. By default, InField uses the Cognite process industries data model that extends the core data model to meet the needs of the process industries. You can customize entity definitions (or views), such as CogniteAsset and CogniteMaintenanceOrder, by extending them with properties that are specific to your operations. For example, to extend the CogniteMaintenanceOrder property, you can create a new view and add the Cost field.
You can map logical entity types to views defined in the cdf_idm (Process industries data model), cdf_cdm (Core data model), or your custom view space. View mappings are configured in the viewMappings object of the InFieldCDMLocationConfig node.
You can configure view mappings for seven entities. If you omit a mapping, InField uses the following default view for that entity.
viewMappings.asset to cdf_cdm / CogniteAsset / v1 instead of the app fallback (cdf_infield / Asset).observation uses a different shape: an array of ObservationViewConfig objects rather than a single view reference. Only the first entry is supported. See Configure observations.operation, notification, and maintenanceOrder entity types have standard views defined in the cdf_idm system space. To view and customize these views, go to CDF > Data fusion > Data models > find and select CogniteProcessIndustries.
Data storage (dataStorage)
The dataStorage field identifies the root asset for the location and the space where InField writes app data.
dataStorage.rootLocation is the instance ID of the root asset, not a data storage container. The spaces where source data (assets, work orders, notifications) is read from are configured separately in dataFilters.Instance space scoping (dataFilters)
Use dataFilters to restrict InField queries to specific DMS spaces per resource type. Each resource type has an instanceSpaces[] array. Only some resource types support multiple spaces.
Example: dataFilters configuration
Example: dataFilters configuration
instanceSpaces is the only field consumed by InField today for every resource type under dataFilters.Feature toggles (featureToggles)
Feature toggles let you enable or disable major app features for each location. All flags default to false if omitted, so only set the ones you want to turn on. Configure these in the featureToggles object of the location’s InFieldCDMLocationConfig node in the Cognite Toolkit.
Admin roles (accessManagement)
Use accessManagement to define which CDF groups have admin access to checklists and templates for this location.
Disciplines (disciplines)
Use disciplines to define the list of disciplines available for selection during onboarding and elsewhere in the InField UI. Each entry has an externalId and a name.
Configure schedules
The Schedules tab lets supervisors create and manage recurring inspection rounds directly in InField. You do not need to deploy a CDF scheduling function to use the Schedules tab. If you want to trigger checklist creation automatically via a CDF function, you can set up a custom scheduling function. Contact your Cognite solution architect for an example.Configure observations
Observations allow field workers to report issues and track maintenance needs. The observation form is driven by a CDF view that renders the properties you define in that view. You can use the built-in default view or create a custom one.Enable observations
InFieldCDMLocationConfig node, set featureToggles.observations: true, then run cdf build and cdf deploy.Choose the default or a custom view
- Default view: Use the default view if the default fields are sufficient for your project: files, assets, observed time, name, description, troubleshooting steps, priority, type, and status. InField ships a built-in
FieldObservationview in thecdf_infieldspace.
viewMappings object of the location’s InFieldCDMLocationConfig node in the Cognite Toolkit:- Custom view: Choose a custom view if you need different fields, custom enums, or SAP writeback.
Customize the view
- Keep the form focused. Include only the fields users are expected to fill in.
- Order properties intentionally. Use
fieldsConfig.*.orderNumberin the view mapping to control the order fields appear in the form and table.orderNumberis the only supported way to guarantee field order. - Write clear field descriptions. They become placeholder text in the form.
- Use clear property names. They become field labels.
- Extend
CogniteSourceable(and optionallyCogniteActivity) to add standard metadata. These fields are autopopulated by the app and are not shown in the form. - Add indexes to any fields users will sort or filter on.
- If SAP writeback is required, add
sapStatusandnotificationIdInSapfields to the view at this stage (see SAP writeback).
Create the container and view in CDF
- Create the container. Create exactly one non-CDM container unique to this observation view. No two observation views may share the same non-CDM container, because this is how InField identifies which view to use for a given observation instance.
- Create the view and enum types. Create the view referencing that container, and define any enum types in the same space and version as the view.
- Optionally create a form view. Create a form view if you want to show only a subset of fields in the create/edit form while keeping all fields on the stored observation record. The form view must reuse the same containers as the main observation view. Do not create a new container for it.
Configure via the Cognite Toolkit
viewMappings.observation[] in the location’s InFieldCDMLocationConfig. Always make this change through the Cognite Toolkit, as it validates view references before deployment.The full ObservationViewConfig supports:Example: full ObservationViewConfig
Example: full ObservationViewConfig
viewMappings.observation[] is supported at this time.Deploy and validate
cdf buildcdf deploy --dry-runcdf deploy
- All expected fields appear in the correct order.
- Required fields block submission when empty.
- Placeholder text shows correctly.
- If SAP writeback is configured: submit a test observation and confirm
sapStatusis set andnotificationIdInSapis populated after a successful send.
SAP writeback
SAP writeback is only available to customers who have a SAP integration with a notifications endpoint deployed in CDF. You cannot use the defaultFieldObservation view for SAP writeback, because the required fields are not part of it.
To enable SAP writeback:
Add the required fields to the custom observation view
Add the writeBack object to the observation mapping
writeBack object to the observation mapping through the Cognite Toolkit. Use the structure in the Configure via the Cognite Toolkit step in Configure observations. The notification endpoint is required; the attachment endpoint is optional.sapStatus and notificationIdInSap on the view and automatically enables the SAP writeback UI for field workers.
dataStorage.appInstanceSpace for the current location and can be queried using the data model APIs.Configure asset explorer cards (dataExplorationConfig)
dataExplorationConfig field is not yet finalized and may change.assetPropertiesCardConfig field; the Activities and Notifications cards are configured via dataExplorationConfig. Each card type is configured differently.
Properties card (assetPropertiesCardConfig)
Configured via the top-level assetPropertiesCardConfig field. Falls back to showing all fields from the view in viewMappings.asset.
Each key in the map is a field name from the asset view. Each entry supports:
Activities card (assetActivitiesCardView)
Configured via dataExplorationConfig.assetActivitiesCardView. Falls back to viewMappings.maintenanceOrder when omitted. The view name becomes the card header, and the view filter controls which activities are shown. The view must expose the following properties:
Notifications card (assetNotificationsCardView)
Configured via dataExplorationConfig.assetNotificationsCardView. Falls back to viewMappings.notification when omitted. The view name becomes the card header and the view filter controls which notifications are shown. The view must expose the following properties:
Further reading
- InField Quickstart deployment pack: pre-built Cognite Toolkit module for deploying InField locations
- Configure InField capabilities: required CDF capabilities and group setup
- Process industries data model: default views used by InField
- Core data model: base concepts including
CogniteAssetandCogniteFile - Legacy InField configuration: APM-based configuration reference for migrating projects