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
We have requirement to update capabilities in existing groups in CDF using Python SDK/API, we can add capabilities while creating group using python SDK, but if we want to updated that created group no provision for that. we tried client.iam.groups.create(group) but it creates new group with same name, in this case how we can update capabilities in group?
I have used the db extractor before, but with version 4.0.0 it now comes with a connect.yml and a config.yml. The documentation still lists one config file to be used. I’m not sure how to use the connection file, which looks like it used to be the cognite portion of the of the config file.I tried combining the two into one file, but when running “ dbextract.exe -c config.yml “ I am getting errors that its not expecting inputs such as version, log-handlers, database, and queries.How am I supposed to use these 2 different files when I run as an executable?Thank you
Hello experts,I'm interested in the following function: the sum of all data points in a time series server-side.I know there are aggregation operations for a specific time interval, but I'm looking for either a cumulative or total sum.I'd like to be able to perform this operation on either a standard time series or a synthetic time series, but unfortunately, I haven't found what I'm looking for yet.Please see below for the operations I am performing; I would like a discrete summation between the multiplication and the output.Does anyone have a server-side solution? Regards,Pierre Rambourg
We have a Cognite Function in which we are retrieving rows from staging tables using below sdk commandclient.raw.rows.retrieve_dataframe(db_name, tbl_name, limit=-1)The problem we are facing is the above command returns an empty Dataframe (0 columns, 0 rows) even though the table exists with data. The code execution does not fail but returns an empty Dataframe.When I manually/locally run the above command on the same database and tables, I get the required data.However, when running inside a CDF function it returns a Dataframe with shape (0,0)
Hello experts,I have a question about Cognite Functions. I know there’s a limit on the size of the input data, as discussed here : Cognite Hub and documented there : Cloud provider limitations - Cognite Docs But is there a limit on the size of the function’s output? I have one that works perfectly fine but crashes without any explicit error message when handling a large output payload (>500 KB). I’m on Azure provider.Is there any information on this? Thank you,Best regards,Pierre Rambourg edit : the initial error was on my side, but i’m still interested for output limits !
I'm experiencing an issue with the Workflows editor where the bottom toolbar buttons (zoom in, zoom out, pan to center, auto layout) stop responding in certain conditions.Steps to reproduce:1. Open Workflows in CDF2. Create or edit a workflow3. Open the right panel (e.g., click on a task/agent to configure it)4. Try clicking the zoom in/out/pan buttons in the bottom toolbar5. Observe: Buttons don't respond when right panel is close to the left toolbar6. Maximize browser window or close right panel → buttons work againExpected: Toolbar buttons should work regardless of panel positionsActual: Buttons appear to be blocked, clicks don't register when panels are close together Workaround: Maximize browser window to create space between panels before using toolbar buttonsHas anyone else experienced this? Is there a better workaround or is this a known issue?
I have 3 Views, ViewA, ViewB & ViewC. View A has direct relations to ViewB & ViewC via properties DefectEventID & AssetId, respectively. Pagination is expected and with Instance.Query end point, looping via cursors, it is not giving results for ViewB & ViewC, apart from the first 100 records from the first call of instances.query(query). What is the best way to populate all_ViewA_Nodes,all_ViewB_Nodes ,all_ViewC_Nodes Pagination via multiple cursors from Instance.Query?query = dm.query.Query( with_={ "ViewA_Nodes": dm.query.NodeResultSetExpression( filter=filters.HasData(views=[ViewA]), limit=100, ), "ViewB_Nodes": dm.query.NodeResultSetExpression( from_="ViewA_Nodes", through=dm.PropertyId( source=ViewA, property="DefectEventID" ), direction="outwards",
In addition to using config.[env].yaml, is it possible to create a custom file for configuring variables and then reference those placeholders in data models, transformations, workflows, etc ?For instance, I have several common SQL blocks that I would like to share across different transformations. While I could define them as variables in config.[env].yaml, I prefer to keep SQL-related variables separate from others in order to maintain clarity.
Hi Cognite Team,We are currently defining an integration pattern for a partner who will provide data from an OPC UA source into Cognite Data Fusion.Our preference is to use a managed MQTT broker in CDF and avoid deploying any self-hosted MQTT broker or additional bridge components on-prem.Based on the documentation, we understand that the OPC UA Extractor supports an mqtt: output mode, but it also references a requirement for the MQTT-CDF Bridge and a configured broker host/port.To ensure we define the correct and supported architecture, could you please clarify: Is it supported to configure the OPC UA Extractor to publish directly to the Cognite-hosted MQTT broker in CDF? If using the Cognite-managed MQTT broker, is the MQTT-CDF Bridge still required? Is a self-hosted MQTT broker mandatory when using the mqtt: configuration in the OPC UA Extractor? What is the recommended architecture today for a partner delivering OPC UA data into CDF using MQTT? Our intended target architectur
Hello Experts,I’m trying to use advanced filter on timeseries through SDK. I can do what I want except in the following situation: the asset_id property is null. Can anyone help me?I tried :from cognite.client.data_classes.time_series import TimeSeriesPropertyf = filters.And( filters.Equals("data_set_id", 123456), filters.Equals("name", "foobar"), filters.Equals(TimeSeriesProperty.asset_id, ""))[advancedFilter.[2].equals.value A string is not a valid value for the property "assetId"]from cognite.client.data_classes.time_series import TimeSeriesPropertyf = filters.And( filters.Equals("data_set_id", 123456), filters.Not(filters.Exists(TimeSeriesProperty.asset_id)),)-> 0I’m sure there is timeseries where timeseries.asset_id is None.Thanks experts !Regards,Pierre Rambourg
Hello, Is it possible to be alerted by email when a function or a workflow invocation fails? Thank you!
Hello experts,I’m looking to work with data workflows.I’m looking to trigger on node with a specific attribute (direct relation to another view) empty.I’m trying to work with the UI but I struggle with the Data modeling query validation.I don’t understand why the validation fails and what is the expected format for the query : JSON seems to be the expected format as seen here : But documentation uses YAML : https://docs.cognite.com/cdf/dm/dm_concepts/dm_querying#graph-query-examplesI’m a bit lost and I need your help. And my query : { "with":[ { "ts":{ "nodes":{ "filter":{ "exists":{ "property":[ "nameTranslations" ] } } }, "limit":1000 } } ], "select":[ { "ts":{ "sources":[ { "source":{ "type":"view", "sp
I have created and published an Atlas AI agent which I am able to use from CogniteUI. I tried to use this agent via Cognite SDK. I am able to list all agents and able to retrieve my agent. However, when I tried to send Message to my agent I got following errorclient.agents.chat(agent_external_id= “external_id”, messages= Message("Provide list of wells in Field"))CogniteAPIError: Agents with tools that run on the client side are not supported for non-Fusion users. | code: 400 | X-Request-ID: 9eac0212-9f5f-9dd9-9372-7073768dc3e8 | cluster: westeurope-1 | project: ------No idea what this means. Can you please help to fix it?
Issue: Some functionality is not working properly in Edge browser, while it works fine in Chrome. We have a few internal tickets highlighting these issues: Ticket 1 – Search issue in Cognite Data Explorer: The user is trying to search for the asset “E206” in the Assets section using Edge, but it does not appear in the results. Searching the same asset in Chrome works correctly. This issue occurs only with the E206 asset; other assets in the same hierarchy are searchable in Edge. Ticket 2 – Canvas not loading properly: Canvases are not loading correctly in Edge. The same canvases load without any issues in Chrome. Ticket 3 – P&ID diagram loading issue: A user is trying to load a specific P&ID diagram in Edge, but it fails to load. The diagram loads correctly in Chrome. Steps Taken to Resolve Clear Edge Cache and Cookies Navigate to Settings → Privacy, Search, and Services → Clear Browsing Data → Cached Images & Files + Cookies. Restart Edge and log in again. Che
At Aker BP we are currently using the Cognite file extractor, and have some bugs and improvement points to report. Some of the bugs here are a big concern for us using the extractor going forward:1. Missing‑as‑Deleted Flag Does Not Work as DocumentedWhen missing-as-deleted: true and delete-behavior: hard are configured, the extractor does not delete files that are absent from the source query. This contradicts the documented behaviour and makes it impossible to rely on the extractor to keep target datasets clean. Because the executable is closed‑source, the root cause is unclear. From a developer who configures the file extractor: This bug went undiscovered for some time because the previous extractor had to be replaced, and has different behavior from the new file extractor on full loads. (This seems to be a bug in the new extractor.) The previous deprecated Documentum Extractor would delete all files that it did not upload for that specific extraction. This also caused issues in the
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.
Dears,Would you please advise how can we hide specific layers (for ex. the crane) in the 3D model and then to save the updated or customised revision?is the revision editing for 3D models doable inside CDF itself or there is a specific workflow needed for it, as you can see it the snapshot below: Thank you! Fatima
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
Hi , I have the CogniteActivity in the CDM/EDM data model which the assets is part of the model: Below is the sample data of CogniteActivity:This is the data model for Event in PDM:I tried to transform from CDM/EDM to PDM using below transformation, but i am not sure what is the script to transform CogniteActivity to PDM Event:And i got below error: Anyone know how can I transform CDM/EDM asset node reference to Event entities attribute? Thank you.
Hi Guys,I tried to use a transformation from the SDK but i keep getting error on Transformation credentials. Do you guys know what I need to do to solve this credentials issue. I have check the current credential for the Service Account that I use and the access for tranformation has been granted. def fetch_raw_table_via_transformation( client: CogniteClient, db_name: str, table_name: str, calculation_date: Optional[str] = None, columns: Optional[List[str]] = None) -> pd.DataFrame: """ Fetch data by running a temporary CDF Transformation (uses Spark SQL engine). This is the RECOMMENDED approach for production workloads: - Runs on CDF's managed Spark infrastructure - Handles billions of rows efficiently - Server-side filtering and aggregation - Can write results to temp Raw table or return directly Note: Requires transformation permissions in CDF Args: client: CogniteClient instance db_name: Name of the RAW database
Hello, Some capabilities, such as dataModelInstancesAcl or dataModelsAcl, support the spaceIdScope scope. Currently, we can only specify the spaces to which we want to grant access.To better support certain use cases, would it be possible to introduce support for exclusion rules or regex-based expressions within this scope? Thanks
We have multiple Asset Centric Location Filters created which are used in Industrial Tools search to filter site specific assets.When using multiple filters, we observed that the Search returns 0 assets.We inspected the Network requests and observed the Cognite API call to assets/list fails with below error:```{ "error": { "code": 400, "message": "Asset subtrees exceed the limit of 100000 assets." }}```There are similar cases where a location filter is setup with asset subtree and the subtree has more than 100K assets. Is there a way we can configure Location Filters to bypass the limit of 100k assets.
How can we get access to work hands-on with the learning path athttps://cognite-learn.fusion.cognite.com/cdf-fundamentals/data-models?cluster=api.cognitedata.com&workspace=data-management?If not, how can we practice hands-on with Cognite Learn?
Hello everyone,I observe a difference in behavior that I cannot explain.My input data, few datapoints, and before the value is 0, timeseries.is_step = TrueInput datapointsWith client.time_series.data.retrieve, behavior is as expected :And with every granularity results are okay as expected.Nevertheless, with client.time_series.data.synthetic.query it’s… different.that’s okthat’s okNot ok, why the result is not 2 groups : from 46 to 49 then 49 to 52 ? another wrong exampleWhy the start timestamp is 48 and not at 46 ? Again, the timeseries endoint is good : I have lost hope.If anyone has anything to try or an explanation, i’ll be grateful.Thanks in advance,Pierre
Hi All,I have a large production records data set which i am utilizing to create reports using GraphQL queries.I want to perform DESC sort to fetch the latest records for which i am using default ‘StartTime’ property(This property is derived from Schedulable Container). But system is generating this warning : "The sort is not backed by a cursorable index, which means query time sorting is necessary, which in turn means a lot more data must be read. Consider whether a cursorable index is a good fit."What’s the best way to approach this so that i can fetch large data sets with improved performance?Should i make a custom DateTime field as cursorable ? What are the impact of this ?