Join the discussions focusing on developing on top of Cognite Data Fusion. Click the + CREATE TOPIC button in the menu bar to start the conversation.
Recently active
I’m getting the below error details when trying to access a new sandbox environment that has been setup. What details do I need to share w/my team to unblock access?Your network administrator has blocked accessExternal access is blocked by policy. Contact your IT department for access. Troubleshooting detailsIf you contact your administrator, send this info to them.Copy info to clipboardRequest Id: f3b6e072-9289-427c-97e4-766a40af0700Correlation Id: e24e2dc7-9a3a-488c-92a3-fb333dc35281Timestamp: 2026-06-01T21:34:21ZMessage: AADSTS500021: Access to 'XXXXXXXX' tenant is denied. App name: Cognite Data FusionDevice platform: Windows 10Device state: UnregisteredIP address: 35.199.59.75Signed in as: XXXXXXXXXXFlag sign-in errors for review: Enable flaggingIf you plan on getting help for this problem, enable flagging and try to reproduce the error within 20 minutes. Flagged events make diagnostics available and are raised to admin attention.
Hello, I was playing with this project (https://github.com/blurrah/mcp-graphql) and created an MCP server on top of a test CDF data model. You can then use an LLM that supports MCP clients to register your server and have the help of the LLM to analyse your data :) Here I used Claude desktop for example: This is a great way if we want to integrate CDF data models with in-house or local LLM models.Do you plan to release an official MCP server for CDF data models? Thank you,
Hi Cognite Team,I'm building a React dashboard using Cognite Data Fusion for my portfolio and would like to know if there are any demo projects available for working with CDF data.
Hello,What are the best practices around setting the max-workers for a sdk. If I do not set the Global Config all the default values for workers and retries would be picked correct ? Can you give any reference on how we can set GlobalConfig, I mean I did not see any way to pass the GlobalConfig to ClientConfig ?
Hello, Currently using cdf-tk version 0.5.111. The bySpace param on btree indexes is not yet supported in this version.We are trying to migrate to version 0.7.220. Although, this version sets correctly the bySpace param on indexes it does not seem to resolve correctly the view dependencies in our data model.Error trace: Deploying 375 views to CDF...WARNING [MEDIUM]: Found a strongly interdependent set of 75 views: sp_dm_dap_knowledge_graph:BHAComponent(version=4.3), sp_dm_dap_knowledge_graph:BHARun(version=4.3), (...)sp_dm_dap_knowledge_graph:WellPath(version=4.3), sp_dm_dap_knowledge_graph:Wellbore(version=4.3) and sp_dm_dap_knowledge_graph:WellboreSection(version=4.3). This might indicate a data model design issue, and the deployment might fail due to API batch size limits.Traceback (most recent call last): File "pypoetry/virtualenvs/drillx-dwdap-cdf-toolkit-fxS2v_xU-py3.13/bin/cdf-tk", line 8, in <module> sys.exit(app()) ~~~^^ File "pypoetry/virtualenvs/drill
Hello esteemed members of the Cognite community,I come to you with a sense of urgency and a deep need for expert guidance. I've been attempting to familiarize myself with Cognite for the last six months, and despite my best efforts, I find myself at an impasse with some critical aspects. My situation is time-sensitive, and I am truly hoping for your assistance to navigate this complex but fascinating journey.My Setup:Environment: Google Colab (Free version)SDK: Cognite Python SDKAssets: Wind Farm with two sub-assets (Asset A and Asset B)My Goals:Connect to Cognite Project via Python SDK: I need to use my client ID and client secret to establish a connection from Google Colab.Create Hierarchical Assets: My aim is to create a parent asset, named "Wind Farm," and within this parent asset, include two child assets, Asset A and Asset B.Upload Time-Series Data from CSV: I have CSV files containing wind-speed and wind-power data for Asset A and Asset B. I need to upload these as time-series d
Hi Cognite Team,Is there any document which can show , how to fetch confidential information from private end point key vault on Microsoft azure key vault.
Hi everyone,While querying the CogniteAsset view, I encountered an error when including the activities field in the selection. The API returns the following message: "Cannot traverse lists of direct relations inwards." Upon investigating, I noticed that the activities field in the CogniteAsset view is defined as a @reverseDirectRelation: activities: [CogniteActivity] @reverseDirectRelation(throughProperty: "assets") In turn, the assets field in the CogniteActivity view is defined as a list of direct relations:assets: [CogniteAsset] @directRelationThis makes sense as the root cause, since reverse traversal over a list of direct relations is not allowed, which explains the error.Given that this field leads to an invalid query pattern and always results in an error, should the activities field be removed from the CogniteAsset view to avoid confusion and runtime errors? Here’s a minimal query that reproduces the issue:query MyQuery { listCogniteAsset { items { aliases activit
ContextQuerying views with a large number of instances (>1 million), we frequently encounter query timeout issues. This has become a critical bottleneck affecting application performance and user experience. To mitigate this, we introduced on the app layer a pre-query caching strategy:Before sending a query to Cognite, we aggregate the number of instance spaces for a given view using the endpoint /models/instances/aggregate. This result is stored in a cache layer. When a query is initiated, we check if the user included a space filter. If not, we append the known relevant spaces from the cache to the query filter. This approach has significantly reduced timeouts across our applications. However, it introduces new challenges:One request per view is still needed to fetch associated spaces. Cache invalidation must be managed periodically, especially as user capabilities may change. This workaround does not help with timeouts in the CDF UI or Infield tools, where we cannot control the q
I’m trying to use Update extraction pipelines method to update my extraction pipelines created. Here are some issues i face:1. I’m unable to update contacts for an extraction pipeline, it throws the below error:code - contact_info = [ExtractionPipelineContact(name="sangs", email="sm6@slb.com", role = "MAINTAINER", send_notification=True)]to_update = ExtractionPipelineUpdate(external_id="<PIPELINE-EXT-ID-2>")to_update.contacts.set(contact_info)client.extraction_pipelines.update(to_update)error - “CogniteAPIError: Unexpected field - items[0].update.contacts.set[0].send_notification - did you mean sendNotification? | code: 400 | X-Request-ID: 918d1113-6a5e-9d38-b850-61e3dc54c220 The API Failed to process some items. Successful (2xx): [] Unknown (5xx): [] Failed (4xx): [<PIPELINE-EXT-ID-2>, ...]”2. I’m unable to set the specified fields to None using sdk : description, source, schedule,documentation, name and dataset-id. Im able to set only metadata and raw-tables to None. Wond
Description / Problem StatementWe are using the Cognite 3D File Extractor to migrate 3D model files from an on-premises Windows VM to Cognite Data Fusion (CDF).The majority of 3D files are ingested successfully with multiple sizes mostly > 10 GB. However, four specific files consistently fail ingestion, even after multiple retries.Key observations:All failing files are close to 5 GB in size Example sizes (as shown in Windows Explorer): 4.99 GB 4.94 GB 4.91 GB When checked via terminal/command line, these same files report a larger actual size (~5.3 GB) It appears that based on the Windows VM file size, the 3D extractor determines it should use a single-part upload. However, when it attempts to upload the actual file, the process fails because the size exceeds 5 GB
We are excited to announce the Cognite Developer Summit, which will take place this month (27 August) in Oslo. This is an exclusive in-person opportunity to explore what's possible with Cognite Data Fusion. Read on for the details and for a chance to interact with the speakers even if you can't make it.The day features sessions from technical experts, including software engineers from innovative companies like Properate, technical partners like AWS, and developers at Cognite. Come hear from those who've done their share of building, talk about your experiences and challenges, and meet others who've gone through similar journeys.Register here! As our Hub member, you can sign up for free using the promo code COGSHUBS.Event detailsDate: August 27, 2025 Time: 08.00-17.00 Location: Grand Hall, Oksenøyveien 10, 1366, Akershus, Norwayp.s. If you can’t make it, review the agenda and ask speakers questions about their topics in the comments. We’ll try our best to get you some answers. Some of
The MQTT hosted extractor is erroring out and showing the following message: Internal database error: Session has expired: Session was not foundI’ve tried pausing and resuming the extractor, and modifying the configured sink, without success.
On behalf of CelaneseHi.I would like to report a potential issue with cursor-based pagination when sorting in descending order and request clarification on the undocumented forceCursorsDespitePerformanceHazard flag.We are executing a query against the view OEEEvent, which is defined with a cursorable BTREE index on the startDateTime property, as shown in the simplified schema below: type OEEEvent@container( indexes: [ { fields: ["startDateTime"] identifier: "idx_oeev_startDateTime" indexType: BTREE cursorable: true } ]) { startDateTime: Timestamp endDateTime: Timestamp totalDuration: Float} We are querying with the following time range filter: "startDateTime": { "gte": "2024-12-31T00:00:00.000-03:00", "lt": "2025-05-01T00:00:00.000-03:00"} The result set includes 840 records.When applying a page size of 500 and using the following ascending sort configuration: { "property": [ "INO-COR-ALL-DML", "OEEEvent/472bdbcb9cd6f1", "startDateTime" ],
Hi Everyone,I need to create query like it is creating on cognite UI’s like { "listEntity": { "with": { "0": { "limit": 50, "nodes": { "filter": { "and": [ { "matchAll": {} }, { "hasData": [ { "type": "view", "space": "slb-pdm-dm-governed", "externalId": "Entity", "version": "1_7" } ] }, { "or": [ { "and": [ { "nested": { "scope": [ "slb-pdm-dm-governed", "Entity/1_7", "parent" ],
Hi Everyone,Is there a way to create an alert directly on a calculated series in Cognite Charts?From what I’ve found, to create an alert for a calculation, I first need to schedule the calculation and then run the alert on that scheduled result. However, scheduling doesn’t seem to work well in my case.For example, if I receive machine data every hour, I also need to schedule the calculation every hour. Sometime scheduling stops by itself. It would be much easier if we could create alerts directly on the calculation without scheduling.Secondly, I’m not finding clear documentation or videos on how to schedule calculations properly and what best practices to follow. If anyone has experience with this or can share guidance, please let me know.Thanks!
HiWe are testing out a new deletion transformation for a view in data modeling. The transformation looks something like this:select externalIdfrom cdf_data_models(...)where project in ("ProjectA","ProjectB")This transformation always times out and returns a “Graph query time out” error message. However, when changing the transformation to this the transformation just runs fine:select externalIdfrom cdf_data_models(...)where project = "ProjectA"unionselect externalIdfrom cdf_data_models(...)where project = "ProjectB"For context, the project column here is indexed and the view has around 10 properties and about 1.7 million rows. The transformations all query the same view.We are therefore wondering how the filtering in transformations handles filtering in data modeling and why these transformations are performing different. Learning more about this would benefit us greatly when working with transformations and data modeling in the future :)Thanks in advance!Sebastian
I'm using python sdk and wanted to query instances based on a condition using “data_modeling.instances.query” method. i have a view “TimeseriesProperty” and it has a direct relation/reference to "TimeseriesPropertyType" view. Is it possible to have a distinct filter on the result, because multiple “TimeseriesProperty” instances can have the same "TimeseriesPropertyType" instances , we don't want duplicated "TimeseriesPropertyType" instances coming in response for below query: view_id= ViewId(space="slb-pdm-dm-governed", external_id="TimeseriesProperty",version="2_0")v_id_2_PROP = ViewId(space="slb-pdm-dm-governed", external_id="TimeseriesPropertyType",version="2_0")query= Query( with_= { "TimeseriesProperty":NodeResultSetExpression( limit=10, filter= HasData(views=[view_id])), "TimeseriesPropertyType":NodeResultSetExpression( limit=10000, direction="outwards",
first of all i created a new environment with below codes.python -m venv envenv\scripts\activatepip install poetry poetry config virtualenvs.in-project truepip install pandas numpypip install cognite-sdkpip install "cognite-sdk[pandas, geo]"pip install cognite-extractor-manageronce all above code completed. I started running cogex init.I am getting below error.cogex initEnter extractor name: csv extractorEnter description: descEnter author: --I provided the cognite login mail id in name <mail id>Which template should be loaded? simple: loads a generic template suitable for most source systems, using a simple function as the main entrypoint for the extractor. Most suitable for small and simple extractors. class: loads a generic template suitable for most source systems, using a run method on a class as the main entrypoint for the extractor. Most suitable for slightly bigger and more complicated extractors. rest: loads a template for extrac
I created an asset hierarchy with the Cogntie Core Data Model, then I created a custom data model through neat and I need to migrate the assets from the core data model to the custom extended data model, I tried creating a transformation but got the following error: failed with status 403: Properties [assetHierarchy_path, assetHierarchy_path_last_updated_time, assetHierarchy_root] are maintained by DMS and cannot be modified by end users. is there a way I can migrate/update the core data model assets to our extended data model?
WITH archived_wells AS ( SELECT DISTINCT ac.WellId FROM cdf_nodes( 'sp_dm_dap_knowledge_graph', 'Activity', '0.71' ) ac JOIN contextualization.dap_wellview_wellid_space_mapping map ON ac.WellId = map.key WHERE map.Archived = TRUE AND ac.Archived = FALSE)SELECT s.externalId, s.space, s.WellId, true as ArchivedFROM cdf_nodes( 'sp_dm_dap_knowledge_graph', 'WellState', '0.71' ) sJOIN archived_wells aw ON s.WellId = aw.WellIdWHERE s.Archived = FALSE AND EXISTS ( SELECT 1 FROM archived_wells )WellState has 20M rows of data. To improve SQL performance, I want to use a CTE to get the IDs of archived wells and then update WellState (archived and WellId are indexed). However, I found that even when using EXISTS to check that the CTE result is empty, cdf_nodes still loads instances. In this case, shouldn’t the result just be empty?Additionally, when I replaced the CTE with a subquery,
I'm using python sdk and wanted to query instances based on a condition using “data_modeling.instances.query” methos . I have a view called TimeseriesPropertyType which has a field (properties: [Property]) which is a reverse direct relation throughProperty: "propertyType".i just need to check if there are any “properties” field values associated with each instance of the TimeseriesPropertyType view. for that I'm fetching data in property view associated with those particular TimeseriesPropertyType view and doing the check manually in code.. is there any direct filter i can use that's available? i dont see any filters available on properties field in query explorer for the samebelow is the query im using #view_id_ts_prop_type - TimeseriesPropertyType view#view_id_property - Property viewquery= Query(with_= { "TimeseriesPropertyType":NodeResultSetExpression( limit=10000, filter= HasData(views=[view_id_ts_prop_type])), "Pr
Hi Team, I need help to write the unit test using pytest,below is the code: row_list = cognite.raw.rows.list(file.destination.database, file.Extractor_Last_Run_Table, limit=-1, columns=["key", "LastUpdatedDatetime"]).to_pandas() if not row_list.empty: val = list(row_list[row_list.index.isin([file.Extractor_key])]['LastUpdatedDatetime'])Could you please help to write the unit test for above code?Thanks
Hi all, looking for guidance on two issues we hit with CDF related to timeseries visibility and datamodel queries.403 error leaking timeseries externalIds:when a user without access requests a timeseries resource, a 403 error is returned as expected, but the error body contains the externalIds of the timeseries. Those externalIds are sensitive and should not be exposed to users who don’t have access.Is it expected behavior that externalIds are included in 403 error messages? If not, is there a setting / configuration / log-level that controls whether identifiers are returned in errors? Any recommended mitigation or planned fix? Datamodel query returns datapoints from unauthorized timeseriesSetup: Created dataset_1 and dataset_2 Created two timeseries, TS_A in dataset_1 and TS_B in dataset_2 Attached both TS_A and TS_B to a datamodel Granted the user only timeseries:READ scope:dataset_2 (so they should see TS_B only) Observed behavior: querying the datamodel returns datapoints for T
Hi,Context:We currently organize our data in CDF using a per-country partitioning strategy, where each country has its own space.This approach was chosen primarily to restrict data access by country in a fine-grained manner.On top of that, we expose data models grouped by Business Object, such as Well Architecture, Cost Model, etc.Each Business Object model aggregates several data objects under a common business theme, which also allows us to control access by business domain in addition to country-based access.We are now planning to integrate a large amount of historical data, which will likely increase our model size by around 4x.These historical datasets are rarely queried, but we want to make sure their addition does not degrade performance for operational data — both in query latency and data ingestion throughput.We are evaluating two potential strategies: Keep everything in the same spaces, adding an indexed attribute (e.g., is_legacy = true) to distinguish legacy records. Crea