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
Hi,We have uploaded a 3D .nwd model using the Fusion UI and noticed that the underlying processed 3D files (e.g., .glb, .reveal, .zip) are stored as file resources and are visible in the Data Explorer under the Files resource type.I couldn’t find any documentation or guideline on how to assign security categories to hide or restrict access to these files for end users. I also tried using dataset-based access control, but I’m looking for a better or recommended way to handle this.Appreciate your guidance or suggestions.
The python extractor utils requires the config to be stored as a local file there is not way to pass it directly as a string/yaml object. This makes it quite cumbersome to use as not all our deployments have access to local file storage for config files.Is there a way to add support for the config to be passed as an environment variable? Reading config from env example:
I am getting following error when ingesting files from SharePoint site to CDF. send_request_body.failed exception=LocalProtocolError('Too much data for declared Content-Length')Anything I need to specify in .yaml file to allow content-length? Also how do I trace which file is causing the problem. I changed Logger to DEBUG level but still don’t see the file name info.Thanks,Zuber
Hello, We envision to implement a versioning based on minor and major version of our data models. So a data model version will be presented with two digits: <Major>.<Minor><Major>: incremented when we do a breaking change that is not backward compatible with the previous one and we know that it will break our consumers queries. Exp: delete an attribute in a view in the data model<Minor>: incremented when we do a change that is backward compatible and consumer queries will not break. Exp: add a new field. Is there a way to get a graphql url that maps always to the latest minor version of a given data model? This will avoid our data model consumers to redeploy their application every time we increment our minor version. Thank you!
When deploying a function with the SDK you can specify the source code “folder” as a parameter. I have used this to deploy the functions with my own python module which is just a directory with some py files. I want to migrate to using the toolkit, but I am not sure how to deploy with the source code folder I want as I do not see a way to specify it in the yaml file. Can anyone help with this? I have multiple Cognite Functions that I want to deploy that all access the same source code I have written.Thank you!Sebastian
I see there is a fork for ToolJet in the CogniteData git repo. I’m curious to know if Cognite has done anything with this branch and if so, how it’s being used within the product. Thanks!
We are trying to implement automatic monitoring over our transformations in CDF. We are doing this by running a transformation and a monitoring function in the same workflow, where the monitoring function is dependent on the transformation being finished.Then we retrieve the sum of updated and created events like this: def _created_and_updated_sum(self, transformation_external_id: str) -> int: """ Get the sum of the number of created and updated events in the last transformation job. If there are no finished jobs, return 0 instead. """ transformation = self.cdf_client.transformations.retrieve( external_id = transformation_external_id, ) if transformation is None: raise ValueError(f"Transformation {transformation_external_id} not found") if transformation.last_finished_job is None: DUMMY = 0 self.logger.info(f"Transformation {transformation_external_id} has no finished jobs.
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
HiI am looking into using the toolkit more actively for deploying resources to CDF. One question that was raised when researching how to use the toolkit is what kind of validations actually happens when doing a dry run for deploying data modeling resources. I do not really have any specific issue I want answered, but rather want to learn more about the tool so prepare for a lot of questions from my notes:)Does it test that the configuration of views and containers work together?Does a successful dry run mean that I can be sure that the deployment will always work?Are there anything I need to consider even after getting a successful dry run?What kind of responses do I get if the dry run finds that something is wrong? Do I get any hints about how to fix an issue?Does it consider what is already deployed into the CDF environment?Will it tell me about any issues that can happen with new breaking changes? Appreciate all kinds of insights and experiences around this topic :)Sebastian
Hello people,I’m testing CDM and I want to extend a current model type, I may do it wrong, but my idea is. I’m creating a new type called MyModel, that will be pretty much and CogniteActivity + new fields.But I don’t know what I’m doing wrong.type MyModel @import ( dataModel: { externalId: "CogniteActivity", space: "cdf_cdm", version: "v1" } ){ FieldA: String, FieldB: String}I got some guidance from this link https://docs.cognite.com/cdf/dm/dm_guides/dm_extending_core_data_modelWhen I try to save, I got this error{ "title": "Error: could not update data model", "message": "An error has occured. Data model was not published.", "extra": "[Line: 40] Data model 'DataModelRef(space=cdf_cdm, externalId=CogniteActivity, version=v1)' cannot be found" }Thanks in advance
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,Will there be any major changes to the API and Python SDK when moving from an asset centric data model to a flexible data model? Do we have to expect to refactor our backend using the current python sdk once the flexible data model is operationalized?Best regards,Vetle.
I am able to Delete data using python code using Primary key of the table in CDF staging/RAW. But I need help with deleting data based on where condition for columns other than primary key. I am following the below documentation for deleting based on primary key. Data Ingestion — cognite-sdk 7.74.5 documentation Delete rows from table:>>> from cognite.client import CogniteClient>>> client = CogniteClient()>>> keys_to_delete = ["k1", "k2", "k3"]>>> client.raw.rows.delete("db1", "table1", keys_to_delete)
I’m trying to update the is_string value of Time Series from false to true using CDF python class ognite.client.data_classes.time_series.TimeSeriesUpdate. But I’m unable to update it. The value in CDF remains false even though I updated it. Is this an expected behavior of Time Series Update?
Hi,I have set up a monitoring job to generate alerts for specific time-series. Although, it is not clear to me where these alerts are being stored as I can’t find them anywhere in Data Explorer. The documentation (https://docs.cognite.com/cdf/charts/) also doesn’t provide details about it.Can someone share more details about how the alerts are stored and if it’s possible to access them outside Charts?
Hello,I notice from the Events API documentation that the start_time can be specified by a TimestampRange object. However, the documentation does not explain what this object is, whether it is a class external to the Cognite SDK, or give any examples on how to use it.Can someone give more information?-Anders
Since yesterday, I've noticed that deploying functions via the Cognite SDK is failing. Our strategy involves uploading a zip file of the function and then creating the function. While the file uploads successfully, the function creation process returns a "Gateway Timeout" error. I've tried deploying both locally and through the Azure Pipeline, but the error persists. Initially, I thought it might be a temporary instability, but the issue continues this morning. Cognite API error
Hello, we are facing an SSL issue while trying to connect to cognite even if we’re disabling SSL verification.Could you please help ?from cognite.client import ClientConfig, CogniteClientfrom cognite.client.credentials import OAuthClientCredentialsfrom cognite.client.config import global_configglobal_config.disable_ssl = Truecreds = OAuthClientCredentials( **{ "client_id": "", "client_secret": "", "token_url": "", "scopes": ["https://westeurope-1.cognitedata.com/.default"], } )def get_cognite_client(project: str) -> CogniteClient: return CogniteClient( ClientConfig( client_name="Python-jupyter", project=project, credentials=creds, base_url="https://westeurope-1.cognitedata.com", ) )client = get_cognite_client("totalenergies-sandbox")res = client.units.list().to_pandas()------------------------------------------------------------------------------------
Hello, We have been trying to download this package (spgci) using Jupyter in CDF but are getting the following error: Based on this documentation, it seems like its not possible to do so. Could you please advise if there is a solution for this issue?
can someone please explain the this procedure for me with details ? because I got really confused. so first we register an app and create a client secret and add api read all permission n Microsoft azure, after that we create an app in SharePoint and we add the “permission request” to it later. after that what is next before downloading the extractor ? how are the two apps linked ? I saw someone at my work using Microsoft graph to link them but did not understand the logic behind it. and if this how they are linked , how ? when in the Microsoft when doing the post each app dose not mention the other
Hi,I have a view called "Entity" in an existing model with mandatory properties "name", "description" and "isVirtual".Now, I have a new version of "Entity" in which I have decided to implement CogniteDescribable from CDM for name and description, where these fields are not mandatory.When I try to ingest data into the new version of this view, it gives me a non-writable error since the mandatory properties that I had created for the older version is not getting populated.Is there any way to overcome this?Can I map the mandatory container to the container used in CogniteDescribable, so that when I ingest data in the new version, it automatically ingests the mandatory container as well?If yes, can you please share a YAML example of the same to be deployed through toolkit?Please note that both the mandatory and non-mandatory containers have the same name "name".
I am starting the Cognite Data Engineer Learning Path. How to get the access to Cognite Data Fusion platform to practice the learning.
Hello experts,We want to achieve the following workflow:Once a new instance is created/added in our datamodel container Another workflow must be triggered immediately We do not want to create a scheduled based polling to invoke our workflow since our workflow is time sensitive and high importanceCould you please let us know if CDF supports this functionality? Or suggest a way to achieve it.I have explored the CDF in my limited knowledge, I found that subscription is available on Data Model, but it is not enabled in our environment.Could you please help me in this.Thanks,Pranjul Singh
When retrieving time-series data registered in CDF using the SDK, I use the following code.client.time_series.search(name="some name")In this case, if I want to take 100 time series, I would need to run the above code 100 times, but is there any SDK that allows me to retrieve this in a list format or something similar?
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",