cognite-toolkit 0.7.14__py3-none-any.whl → 0.7.16__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
cognite_toolkit/_cdf.py CHANGED
@@ -37,7 +37,6 @@ from cognite_toolkit._cdf_tk.apps import (
37
37
  from cognite_toolkit._cdf_tk.cdf_toml import CDFToml
38
38
  from cognite_toolkit._cdf_tk.commands import (
39
39
  AboutCommand,
40
- CollectCommand,
41
40
  )
42
41
  from cognite_toolkit._cdf_tk.constants import HINT_LEAD_TEXT, URL, USE_SENTRY
43
42
  from cognite_toolkit._cdf_tk.exceptions import (
@@ -155,17 +154,6 @@ def app() -> NoReturn:
155
154
  raise SystemExit(0)
156
155
 
157
156
 
158
- @_app.command("collect", hidden=True)
159
- def collect(
160
- action: str = typer.Argument(
161
- help="Whether to explicitly opt-in or opt-out of usage data collection. [opt-in, opt-out]"
162
- ),
163
- ) -> None:
164
- """Collect usage information for the toolkit."""
165
- cmd = CollectCommand()
166
- cmd.run(lambda: cmd.execute(action)) # type: ignore [arg-type]
167
-
168
-
169
157
  @user_app.callback(invoke_without_command=True)
170
158
  def user_main(ctx: typer.Context) -> None:
171
159
  """Commands to give information about the toolkit."""
@@ -4,7 +4,11 @@ from typing import Any, cast
4
4
  from rich.console import Console
5
5
 
6
6
  from cognite_toolkit._cdf_tk.client.data_classes.api_classes import PagedResponse, QueryResponse
7
- from cognite_toolkit._cdf_tk.client.data_classes.infield import DataExplorationConfig, InfieldLocationConfig
7
+ from cognite_toolkit._cdf_tk.client.data_classes.infield import (
8
+ DataExplorationConfig,
9
+ InFieldCDMLocationConfig,
10
+ InfieldLocationConfig,
11
+ )
8
12
  from cognite_toolkit._cdf_tk.client.data_classes.instance_api import (
9
13
  InstanceResponseItem,
10
14
  InstanceResult,
@@ -150,7 +154,95 @@ class InfieldConfigAPI:
150
154
  return result
151
155
 
152
156
 
157
+ class InFieldCDMConfigAPI:
158
+ ENDPOINT = "/models/instances"
159
+ LOCATION_REF = "cdmLocationConfig"
160
+
161
+ def __init__(self, http_client: HTTPClient, console: Console) -> None:
162
+ self._http_client = http_client
163
+ self._console = console
164
+ self._config = http_client.config
165
+
166
+ def apply(self, items: Sequence[InFieldCDMLocationConfig]) -> list[InstanceResult]:
167
+ if len(items) > 500:
168
+ raise ValueError("Cannot apply more than 500 InFieldCDMLocationConfig items at once.")
169
+
170
+ request_items = [item.as_request_item() for item in items]
171
+ responses = self._http_client.request_with_retries(
172
+ ItemsRequest(
173
+ endpoint_url=self._config.create_api_url(self.ENDPOINT),
174
+ method="POST",
175
+ items=request_items, # type: ignore[arg-type]
176
+ )
177
+ )
178
+ responses.raise_for_status()
179
+ return PagedResponse[InstanceResult].model_validate(responses.get_first_body()).items
180
+
181
+ def retrieve(self, items: Sequence[NodeIdentifier]) -> list[InFieldCDMLocationConfig]:
182
+ if len(items) > 100:
183
+ raise ValueError("Cannot retrieve more than 100 InFieldCDMLocationConfig items at once.")
184
+ if not items:
185
+ return []
186
+ responses = self._http_client.request_with_retries(
187
+ SimpleBodyRequest(
188
+ endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/query"),
189
+ method="POST",
190
+ body_content=self._retrieve_query(items),
191
+ )
192
+ )
193
+ responses.raise_for_status()
194
+ parsed_response = QueryResponse[InstanceResponseItem].model_validate(responses.get_first_body())
195
+ return self._parse_retrieve_response(parsed_response)
196
+
197
+ def delete(self, items: Sequence[InFieldCDMLocationConfig]) -> list[NodeIdentifier]:
198
+ if len(items) > 500:
199
+ raise ValueError("Cannot delete more than 500 InFieldCDMLocationConfig items at once.")
200
+
201
+ identifiers: Sequence = [item.as_id() for item in items]
202
+ responses = self._http_client.request_with_retries(
203
+ ItemsRequest(
204
+ endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/delete"),
205
+ method="POST",
206
+ items=identifiers, # type: ignore[arg-type]
207
+ )
208
+ )
209
+ responses.raise_for_status()
210
+ return PagedResponse[NodeIdentifier].model_validate(responses.get_first_body()).items
211
+
212
+ @classmethod
213
+ def _retrieve_query(cls, items: Sequence[NodeIdentifier]) -> dict[str, Any]:
214
+ return {
215
+ "with": {
216
+ cls.LOCATION_REF: {
217
+ "limit": len(items),
218
+ "nodes": {
219
+ "filter": {
220
+ "instanceReferences": [
221
+ {"space": item.space, "externalId": item.external_id} for item in items
222
+ ]
223
+ },
224
+ },
225
+ },
226
+ },
227
+ "select": {
228
+ cls.LOCATION_REF: {
229
+ "sources": [{"source": InFieldCDMLocationConfig.VIEW_ID.dump(), "properties": ["*"]}],
230
+ },
231
+ },
232
+ }
233
+
234
+ def _parse_retrieve_response(
235
+ self, parsed_response: QueryResponse[InstanceResponseItem]
236
+ ) -> list[InFieldCDMLocationConfig]:
237
+ result: list[InFieldCDMLocationConfig] = []
238
+ for item in parsed_response.items[self.LOCATION_REF]:
239
+ properties = item.get_properties_for_source(InFieldCDMLocationConfig.VIEW_ID, include_identifier=True)
240
+ result.append(InFieldCDMLocationConfig.model_validate(properties))
241
+ return result
242
+
243
+
153
244
  class InfieldAPI:
154
245
  def __init__(self, http_client: HTTPClient, console: Console) -> None:
155
246
  self._http_client = http_client
156
247
  self.config = InfieldConfigAPI(http_client, console)
248
+ self.cdm_config = InFieldCDMConfigAPI(http_client, console)
@@ -19,6 +19,9 @@ else:
19
19
  from typing_extensions import Self
20
20
 
21
21
  INFIELD_LOCATION_CONFIG_VIEW_ID = ViewReference(space="cdf_infield", external_id="InFieldLocationConfig", version="v1")
22
+ INFIELD_CDM_LOCATION_CONFIG_VIEW_ID = ViewReference(
23
+ space="infield_cdm_source_desc_sche_asset_file_ts", external_id="InFieldCDMLocationConfig", version="v1"
24
+ )
22
25
  DATA_EXPLORATION_CONFIG_VIEW_ID = ViewReference(space="cdf_infield", external_id="DataExplorationConfig", version="v1")
23
26
 
24
27
 
@@ -85,3 +88,29 @@ class InfieldLocationConfigList(
85
88
 
86
89
  def as_write(self) -> Self:
87
90
  return self
91
+
92
+
93
+ class InFieldCDMLocationConfig(ResponseResource["InFieldCDMLocationConfig"], InstanceRequestResource):
94
+ """InField CDM Location Configuration resource class.
95
+
96
+ This class is used for both the response and request resource for InField CDM Location Configuration nodes.
97
+ """
98
+
99
+ VIEW_ID: ClassVar[ViewReference] = INFIELD_CDM_LOCATION_CONFIG_VIEW_ID
100
+ instance_type: Literal["node"] = "node"
101
+
102
+ name: str | None = None
103
+ description: str | None = None
104
+ feature_toggles: dict[str, JsonValue] | None = None
105
+ access_management: dict[str, JsonValue] | None = None
106
+ data_filters: dict[str, JsonValue] | None = None
107
+ data_storage: dict[str, JsonValue] | None = None
108
+ view_mappings: dict[str, JsonValue] | None = None
109
+ disciplines: list[dict[str, JsonValue]] | None = None
110
+ data_exploration_config: dict[str, JsonValue] | None = None
111
+
112
+ def as_request_resource(self) -> "InFieldCDMLocationConfig":
113
+ return self
114
+
115
+ def as_write(self) -> Self:
116
+ return self
@@ -21,7 +21,7 @@ from .api.extended_files import ExtendedFileMetadataAPI
21
21
  from .api.extended_functions import ExtendedFunctionsAPI
22
22
  from .api.extended_raw import ExtendedRawAPI
23
23
  from .api.extended_timeseries import ExtendedTimeSeriesAPI
24
- from .api.infield import InfieldAPI, InfieldConfigAPI
24
+ from .api.infield import InfieldAPI, InFieldCDMConfigAPI, InfieldConfigAPI
25
25
  from .api.location_filters import LocationFiltersAPI
26
26
  from .api.lookup import (
27
27
  AssetLookUpAPI,
@@ -84,6 +84,7 @@ class ToolkitClientMock(CogniteClientMock):
84
84
  self.functions.schedules = MagicMock(spec_set=FunctionSchedulesAPI)
85
85
  self.infield = MagicMock(spec=InfieldAPI)
86
86
  self.infield.config = MagicMock(spec_set=InfieldConfigAPI)
87
+ self.infield.cdm_config = MagicMock(spec_set=InFieldCDMConfigAPI)
87
88
 
88
89
  self.project = MagicMock(spec_set=ProjectAPI)
89
90
 
@@ -41,6 +41,7 @@ from ._resource_cruds import (
41
41
  HostedExtractorJobCRUD,
42
42
  HostedExtractorMappingCRUD,
43
43
  HostedExtractorSourceCRUD,
44
+ InFieldCDMLocationConfigCRUD,
44
45
  InFieldLocationConfigCRUD,
45
46
  InfieldV1CRUD,
46
47
  LabelCRUD,
@@ -80,6 +81,7 @@ if not FeatureFlag.is_enabled(Flags.GRAPHQL):
80
81
  if not FeatureFlag.is_enabled(Flags.INFIELD):
81
82
  _EXCLUDED_CRUDS.add(InfieldV1CRUD)
82
83
  _EXCLUDED_CRUDS.add(InFieldLocationConfigCRUD)
84
+ _EXCLUDED_CRUDS.add(InFieldCDMLocationConfigCRUD)
83
85
  if not FeatureFlag.is_enabled(Flags.MIGRATE):
84
86
  _EXCLUDED_CRUDS.add(ResourceViewMappingCRUD)
85
87
  if not FeatureFlag.is_enabled(Flags.STREAMS):
@@ -185,6 +187,7 @@ __all__ = [
185
187
  "HostedExtractorJobCRUD",
186
188
  "HostedExtractorMappingCRUD",
187
189
  "HostedExtractorSourceCRUD",
190
+ "InFieldCDMLocationConfigCRUD",
188
191
  "InFieldLocationConfigCRUD",
189
192
  "LabelCRUD",
190
193
  "LocationFilterCRUD",
@@ -13,7 +13,7 @@ from .datamodel import (
13
13
  ViewCRUD,
14
14
  )
15
15
  from .extraction_pipeline import ExtractionPipelineConfigCRUD, ExtractionPipelineCRUD
16
- from .fieldops import InFieldLocationConfigCRUD, InfieldV1CRUD
16
+ from .fieldops import InFieldCDMLocationConfigCRUD, InFieldLocationConfigCRUD, InfieldV1CRUD
17
17
  from .file import CogniteFileCRUD, FileMetadataCRUD
18
18
  from .function import FunctionCRUD, FunctionScheduleCRUD
19
19
  from .group_scoped import GroupResourceScopedCRUD
@@ -64,6 +64,7 @@ __all__ = [
64
64
  "HostedExtractorJobCRUD",
65
65
  "HostedExtractorMappingCRUD",
66
66
  "HostedExtractorSourceCRUD",
67
+ "InFieldCDMLocationConfigCRUD",
67
68
  "InFieldLocationConfigCRUD",
68
69
  "InfieldV1CRUD",
69
70
  "LabelCRUD",
@@ -13,11 +13,19 @@ from cognite_toolkit._cdf_tk.client.data_classes.apm_config_v1 import (
13
13
  APMConfigList,
14
14
  APMConfigWrite,
15
15
  )
16
- from cognite_toolkit._cdf_tk.client.data_classes.infield import InfieldLocationConfig, InfieldLocationConfigList
16
+ from cognite_toolkit._cdf_tk.client.data_classes.infield import (
17
+ InFieldCDMLocationConfig,
18
+ InfieldLocationConfig,
19
+ InfieldLocationConfigList,
20
+ )
17
21
  from cognite_toolkit._cdf_tk.client.data_classes.instance_api import InstanceResult, NodeIdentifier
18
22
  from cognite_toolkit._cdf_tk.constants import BUILD_FOLDER_ENCODING
19
23
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
20
- from cognite_toolkit._cdf_tk.resource_classes import InfieldLocationConfigYAML, InfieldV1YAML
24
+ from cognite_toolkit._cdf_tk.resource_classes import (
25
+ InFieldCDMLocationConfigYAML,
26
+ InfieldLocationConfigYAML,
27
+ InfieldV1YAML,
28
+ )
21
29
  from cognite_toolkit._cdf_tk.utils import quote_int_value_by_key_in_yaml, safe_read
22
30
  from cognite_toolkit._cdf_tk.utils.cdf import iterate_instances
23
31
  from cognite_toolkit._cdf_tk.utils.diff_list import diff_list_hashable, diff_list_identifiable, hash_dict
@@ -249,6 +257,10 @@ class InFieldLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InfieldLocationConf
249
257
  dependencies = frozenset({SpaceCRUD, GroupAllScopedCRUD, GroupResourceScopedCRUD})
250
258
  _doc_url = "Instances/operation/applyNodeAndEdges"
251
259
 
260
+ @property
261
+ def display_name(self) -> str:
262
+ return "infield location configs"
263
+
252
264
  @classmethod
253
265
  def get_id(cls, item: InfieldLocationConfig | dict) -> NodeIdentifier:
254
266
  if isinstance(item, dict):
@@ -332,3 +344,97 @@ class InFieldLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InfieldLocationConf
332
344
  elif json_path == ("dataExplorationConfig", "documents", "supportedFormats"):
333
345
  return diff_list_hashable(local, cdf)
334
346
  return super().diff_list(local, cdf, json_path)
347
+
348
+
349
+ @final
350
+ class InFieldCDMLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InFieldCDMLocationConfig, InFieldCDMLocationConfig]):
351
+ folder_name = "cdf_applications"
352
+ filetypes = frozenset({"yaml", "yml"})
353
+ resource_cls = InFieldCDMLocationConfig
354
+ resource_write_cls = InFieldCDMLocationConfig
355
+ kind = "InFieldCDMLocationConfig"
356
+ yaml_cls = InFieldCDMLocationConfigYAML
357
+ dependencies = frozenset({SpaceCRUD, GroupAllScopedCRUD, GroupResourceScopedCRUD})
358
+ _doc_url = "Instances/operation/applyNodeAndEdges"
359
+
360
+ @property
361
+ def display_name(self) -> str:
362
+ return "infield CDM location configs"
363
+
364
+ @classmethod
365
+ def get_id(cls, item: InFieldCDMLocationConfig | dict) -> NodeIdentifier:
366
+ if isinstance(item, dict):
367
+ return NodeIdentifier(space=item["space"], external_id=item["externalId"])
368
+ return NodeIdentifier(space=item.space, external_id=item.external_id)
369
+
370
+ @classmethod
371
+ def dump_id(cls, id: NodeIdentifier) -> dict[str, Any]:
372
+ return id.dump(include_type=False)
373
+
374
+ @classmethod
375
+ def get_required_capability(
376
+ cls, items: Sequence[InFieldCDMLocationConfig] | None, read_only: bool
377
+ ) -> Capability | list[Capability]:
378
+ if not items or items is None:
379
+ return []
380
+
381
+ actions = (
382
+ [DataModelInstancesAcl.Action.Read]
383
+ if read_only
384
+ else [DataModelInstancesAcl.Action.Read, DataModelInstancesAcl.Action.Write]
385
+ )
386
+ instance_spaces = sorted({item.space for item in items})
387
+
388
+ return DataModelInstancesAcl(actions, DataModelInstancesAcl.Scope.SpaceID(instance_spaces))
389
+
390
+ def dump_resource(self, resource: InFieldCDMLocationConfig, local: dict[str, Any] | None = None) -> dict[str, Any]:
391
+ dumped = resource.as_write().dump()
392
+ local = local or {}
393
+ if "existingVersion" not in local:
394
+ # Existing version is typically not set when creating nodes, but we get it back
395
+ # when we retrieve the node from the server.
396
+ dumped.pop("existingVersion", None)
397
+ dumped.pop("instanceType", None)
398
+ return dumped
399
+
400
+ def create(self, items: Sequence[InFieldCDMLocationConfig]) -> list[InstanceResult]:
401
+ return self.client.infield.cdm_config.apply(items)
402
+
403
+ def retrieve(self, ids: SequenceNotStr[NodeIdentifier]) -> list[InFieldCDMLocationConfig]:
404
+ return self.client.infield.cdm_config.retrieve(list(ids))
405
+
406
+ def update(self, items: Sequence[InFieldCDMLocationConfig]) -> Sized:
407
+ return self.create(items)
408
+
409
+ def delete(self, ids: SequenceNotStr[NodeIdentifier]) -> int:
410
+ # We must retrieve the full resource to delete it.
411
+ retrieved = self.retrieve(list(ids))
412
+ _ = self.client.infield.cdm_config.delete(retrieved)
413
+ return len(retrieved)
414
+
415
+ def _iterate(
416
+ self,
417
+ data_set_external_id: str | None = None,
418
+ space: str | None = None,
419
+ parent_ids: list[Hashable] | None = None,
420
+ ) -> Iterable[InFieldCDMLocationConfig]:
421
+ raise NotImplementedError(f"Iteration over {self.display_name} is not supported.")
422
+
423
+ def diff_list(
424
+ self, local: list[Any], cdf: list[Any], json_path: tuple[str | int, ...]
425
+ ) -> tuple[dict[int, int], list[int]]:
426
+ if json_path == ("accessManagement", "templateAdmins"):
427
+ return diff_list_hashable(local, cdf)
428
+ elif json_path == ("accessManagement", "checklistAdmins"):
429
+ return diff_list_hashable(local, cdf)
430
+ elif json_path == ("disciplines",):
431
+ return diff_list_identifiable(local, cdf, get_identifier=hash_dict)
432
+ elif len(json_path) == 3 and json_path[0] == "dataFilters" and json_path[2] == "instanceSpaces":
433
+ # Handles dataFilters.<entity>.instanceSpaces (e.g., files, assets, operations, timeSeries, etc.)
434
+ return diff_list_hashable(local, cdf)
435
+ elif json_path == ("dataExplorationConfig", "filters"):
436
+ return diff_list_identifiable(local, cdf, get_identifier=hash_dict)
437
+ elif len(json_path) == 4 and json_path[:2] == ("dataExplorationConfig", "filters") and json_path[3] == "values":
438
+ # Handles dataExplorationConfig.filters[i].values
439
+ return diff_list_hashable(local, cdf)
440
+ return super().diff_list(local, cdf, json_path)
@@ -27,6 +27,7 @@ from .hosted_extractor_destination import HostedExtractorDestinationYAML
27
27
  from .hosted_extractor_job import HostedExtractorJobYAML
28
28
  from .hosted_extractor_mapping import HostedExtractorMappingYAML
29
29
  from .hosted_extractor_source import HostedExtractorSourceYAML
30
+ from .infield_cdm_location_config import InFieldCDMLocationConfigYAML
30
31
  from .infield_location_config import InfieldLocationConfigYAML
31
32
  from .infield_v1 import InfieldV1YAML
32
33
  from .instance import EdgeYAML, NodeYAML
@@ -76,6 +77,7 @@ __all__ = [
76
77
  "HostedExtractorJobYAML",
77
78
  "HostedExtractorMappingYAML",
78
79
  "HostedExtractorSourceYAML",
80
+ "InFieldCDMLocationConfigYAML",
79
81
  "InfieldLocationConfigYAML",
80
82
  "InfieldV1YAML",
81
83
  "LabelsYAML",
@@ -0,0 +1,109 @@
1
+ from typing import Any
2
+
3
+ from .base import BaseModelResource, ToolkitResource
4
+
5
+
6
+ class FeatureToggles(BaseModelResource):
7
+ """Feature toggles for InField location configuration."""
8
+
9
+ three_d: bool | None = None
10
+ trends: bool | None = None
11
+ documents: bool | None = None
12
+ workorders: bool | None = None
13
+ notifications: bool | None = None
14
+ media: bool | None = None
15
+ template_checklist_flow: bool | None = None
16
+
17
+
18
+ class AccessManagement(BaseModelResource):
19
+ """Access management configuration."""
20
+
21
+ template_admins: list[str] | None = None # list of CDF group external IDs
22
+ checklist_admins: list[str] | None = None # list of CDF group external IDs
23
+
24
+
25
+ class DataFilterPath(BaseModelResource):
26
+ """Path reference for data filters."""
27
+
28
+ space: str
29
+ external_id: str
30
+
31
+
32
+ class DataFilter(BaseModelResource):
33
+ """Data filter configuration for a resource type."""
34
+
35
+ path: DataFilterPath | None = None
36
+ instance_spaces: list[str] | None = None
37
+
38
+
39
+ class DataFilters(BaseModelResource):
40
+ """Data filters configuration."""
41
+
42
+ files: DataFilter | None = None
43
+ assets: DataFilter | None = None
44
+ operations: DataFilter | None = None
45
+ time_series: DataFilter | None = None
46
+ notifications: DataFilter | None = None
47
+ maintenance_orders: DataFilter | None = None
48
+
49
+
50
+ class DataStorage(BaseModelResource):
51
+ """Data storage configuration."""
52
+
53
+ root_location: DataFilterPath | None = None
54
+ app_instance_space: str | None = None
55
+
56
+
57
+ class ViewMapping(BaseModelResource):
58
+ """View mapping configuration."""
59
+
60
+ space: str
61
+ version: str
62
+ external_id: str
63
+
64
+
65
+ class ViewMappings(BaseModelResource):
66
+ """View mappings configuration."""
67
+
68
+ asset: ViewMapping | None = None
69
+ operation: ViewMapping | None = None
70
+ notification: ViewMapping | None = None
71
+ maintenance_order: ViewMapping | None = None
72
+
73
+
74
+ class Discipline(BaseModelResource):
75
+ """Discipline configuration."""
76
+
77
+ name: str
78
+ external_id: str
79
+
80
+
81
+ class InFieldCDMLocationConfigYAML(ToolkitResource):
82
+ """Properties for InFieldCDMLocationConfig node.
83
+
84
+ Fields:
85
+ - space: The space of the InField CDM location configuration
86
+ - external_id: The external ID of the InField CDM location configuration
87
+ - name: The name of the location configuration
88
+ - description: The description of the location configuration
89
+ - feature_toggles: Feature toggles configuration
90
+ - access_management: Access management configuration
91
+ - data_filters: Data filters configuration for various resource types
92
+ - data_storage: Data storage configuration
93
+ - view_mappings: View mappings configuration
94
+ - disciplines: List of disciplines
95
+ - data_exploration_config: Data exploration configuration
96
+ """
97
+
98
+ space: str
99
+ external_id: str
100
+
101
+ name: str | None = None
102
+ description: str | None = None
103
+ feature_toggles: FeatureToggles | None = None
104
+ access_management: AccessManagement | None = None
105
+ data_filters: DataFilters | None = None
106
+ data_storage: DataStorage | None = None
107
+ view_mappings: ViewMappings | None = None
108
+ disciplines: list[Discipline] | None = None
109
+ data_exploration_config: dict[str, Any] | None = None
@@ -38,11 +38,11 @@ class Tracker:
38
38
 
39
39
  @property
40
40
  def opted_out(self) -> bool:
41
- return self._opt_status == "opted-out"
41
+ return False
42
42
 
43
43
  @property
44
44
  def opted_in(self) -> bool:
45
- return self._opt_status == "opted-in"
45
+ return True
46
46
 
47
47
  def track_cli_command(
48
48
  self,
@@ -12,7 +12,7 @@ jobs:
12
12
  environment: dev
13
13
  name: Deploy
14
14
  container:
15
- image: cognite/toolkit:0.7.14
15
+ image: cognite/toolkit:0.7.16
16
16
  env:
17
17
  CDF_CLUSTER: ${{ vars.CDF_CLUSTER }}
18
18
  CDF_PROJECT: ${{ vars.CDF_PROJECT }}
@@ -10,7 +10,7 @@ jobs:
10
10
  environment: dev
11
11
  name: Deploy Dry Run
12
12
  container:
13
- image: cognite/toolkit:0.7.14
13
+ image: cognite/toolkit:0.7.16
14
14
  env:
15
15
  CDF_CLUSTER: ${{ vars.CDF_CLUSTER }}
16
16
  CDF_PROJECT: ${{ vars.CDF_PROJECT }}
@@ -4,7 +4,7 @@ default_env = "<DEFAULT_ENV_PLACEHOLDER>"
4
4
  [modules]
5
5
  # This is the version of the modules. It should not be changed manually.
6
6
  # It will be updated by the 'cdf modules upgrade' command.
7
- version = "0.7.14"
7
+ version = "0.7.16"
8
8
 
9
9
 
10
10
  [plugins]
@@ -1 +1 @@
1
- __version__ = "0.7.14"
1
+ __version__ = "0.7.16"
@@ -0,0 +1,13 @@
1
+ environment:
2
+ name: dev
3
+ project: infield-experimental-test-aws
4
+ validation-type: dev
5
+ selected:
6
+ - modules/eriks-location
7
+
8
+ variables:
9
+ modules:
10
+ eriks-location:
11
+ - location: erik-infield-cdm2
12
+ location_name: Oslo CDM - Erik tookit
13
+ location_description: Used to test toolkit ingestion for InField cdm
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite_toolkit
3
- Version: 0.7.14
3
+ Version: 0.7.16
4
4
  Summary: Official Cognite Data Fusion tool for project templates and configuration deployment
5
5
  Project-URL: Homepage, https://docs.cognite.com/cdf/deploy/cdf_toolkit/
6
6
  Project-URL: Changelog, https://github.com/cognitedata/toolkit/releases
@@ -1,6 +1,7 @@
1
1
  cognite_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- cognite_toolkit/_cdf.py,sha256=YoiPOMgf1Mufy7wNYWWSF3bNBTGqKr26Ey5kj38fCXU,6008
3
- cognite_toolkit/_version.py,sha256=7BOggTpADa3sz2Lo7K_EuX10-Jk_mW3PS3k2rLh8AF8,23
2
+ cognite_toolkit/_cdf.py,sha256=sefGD2JQuOTBZhEqSj_ECbNZ7nTRN4AwGwX1pSUhoow,5636
3
+ cognite_toolkit/_version.py,sha256=KMhjynKNFAEDq-e3uMcLQxUln7LSjXz2vHkhD1Nf1c8,23
4
+ cognite_toolkit/config.dev.yaml,sha256=M33FiIKdS3XKif-9vXniQ444GTZ-bLXV8aFH86u9iUQ,332
4
5
  cognite_toolkit/_cdf_tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
6
  cognite_toolkit/_cdf_tk/cdf_toml.py,sha256=VSWV9h44HusWIaKpWgjrOMrc3hDoPTTXBXlp6-NOrIM,9079
6
7
  cognite_toolkit/_cdf_tk/constants.py,sha256=TplKm2J9pGRHq7nAnLI0caTMHetS04OIz3hfq-jvGzo,7236
@@ -9,7 +10,7 @@ cognite_toolkit/_cdf_tk/feature_flags.py,sha256=nCI71ldaZyoXEu0zI53XMFzcAMQW08Ka
9
10
  cognite_toolkit/_cdf_tk/hints.py,sha256=UI1ymi2T5wCcYOpEbKbVaDnlyFReFy8TDtMVt-5E1h8,6493
10
11
  cognite_toolkit/_cdf_tk/plugins.py,sha256=0V14rceAWLZQF8iWdyL5QmK7xB796YaDEtb9RIj5AOc,836
11
12
  cognite_toolkit/_cdf_tk/protocols.py,sha256=Lc8XnBfmDZN6dwmSopmK7cFE9a9jZ2zdUryEeCXn27I,3052
12
- cognite_toolkit/_cdf_tk/tracker.py,sha256=ybazaYDMgrtmAaCEb1nlKAQzjcN352-U-om4NBGV328,5965
13
+ cognite_toolkit/_cdf_tk/tracker.py,sha256=jhxzI8LOSZw3zDBPsTLW3zC2YcQK2abp_aVtRKcUIwE,5913
13
14
  cognite_toolkit/_cdf_tk/validation.py,sha256=KFdPgnNIbVM0yjFF0cqmpBB8MI8e-U-YbBYrP4IiClE,8441
14
15
  cognite_toolkit/_cdf_tk/apps/__init__.py,sha256=KKmhbpvPKTwqQS2g_XqAC2yvtPsvdl8wV5TgJA3zqhs,702
15
16
  cognite_toolkit/_cdf_tk/apps/_auth_app.py,sha256=ER7uYb3ViwsHMXiQEZpyhwU6TIjKaB9aEy32VI4MPpg,3397
@@ -40,7 +41,7 @@ cognite_toolkit/_cdf_tk/client/_constants.py,sha256=COUGcea37mDF2sf6MGqJXWmecTY_
40
41
  cognite_toolkit/_cdf_tk/client/_toolkit_client.py,sha256=1syPhlnCWJZzLuF9e1cjID06C-eOw5VLkOYz97cg3lA,3299
41
42
  cognite_toolkit/_cdf_tk/client/api_client.py,sha256=CQdD_gfDqQkz5OYHrTnKvBvEvzHPdHDB1BkZPWRoahg,440
42
43
  cognite_toolkit/_cdf_tk/client/config.py,sha256=weMR43z-gqHMn-Jqvfmh_nJ0HbgEdyeCGtISuEf3OuY,4269
43
- cognite_toolkit/_cdf_tk/client/testing.py,sha256=axKaW6rdzq_TI7DD4ijnLeHC4a74WKWDAxQ3QyZ7Kvg,6720
44
+ cognite_toolkit/_cdf_tk/client/testing.py,sha256=mXqEXPMZcbETrXBn6D-SiAcjD7xAkuuxCNYJMW0IO0Y,6815
44
45
  cognite_toolkit/_cdf_tk/client/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
46
  cognite_toolkit/_cdf_tk/client/api/canvas.py,sha256=i2NwyhvmklTPx3e-yd4lvSxyn6JEjSpv8WXa1SxtmV8,8789
46
47
  cognite_toolkit/_cdf_tk/client/api/charts.py,sha256=t-VOrRGwpjmYUtUqGObQWYwGb5gOHVp4cHZBm8ZVGn0,4953
@@ -51,7 +52,7 @@ cognite_toolkit/_cdf_tk/client/api/extended_functions.py,sha256=QaFCYmiL4KDWRpRB
51
52
  cognite_toolkit/_cdf_tk/client/api/extended_raw.py,sha256=9DVbM2aWmIyzbaW-lh10_pzVYJUEQFnIKnxvt413Bjk,2118
52
53
  cognite_toolkit/_cdf_tk/client/api/extended_timeseries.py,sha256=xK7XhTfe4W9FvaueUIfR7Q64JOIDwq_svHRjORM76Q4,17774
53
54
  cognite_toolkit/_cdf_tk/client/api/fixed_transformations.py,sha256=m66cqbx4oCtjv5TBQOWLNFrz475qVTCXBu_pTxbdCD4,5589
54
- cognite_toolkit/_cdf_tk/client/api/infield.py,sha256=yt1Y-I20aK9dFd9CB50XfinaCR09Ny7SER1H9g2c2Ck,7247
55
+ cognite_toolkit/_cdf_tk/client/api/infield.py,sha256=rtWbt1emyluZwRHKOisMXC6A44QDONHCBIQ9-nxl7Wk,11042
55
56
  cognite_toolkit/_cdf_tk/client/api/location_filters.py,sha256=TIbomUbpUNDxOON_a3pwBmCBdltxL1jMQBXKcIjRx44,3759
56
57
  cognite_toolkit/_cdf_tk/client/api/lookup.py,sha256=c-cvtgfGGGYyk8ROcJu44qlo1ocqbk0o1zafCql79fU,17652
57
58
  cognite_toolkit/_cdf_tk/client/api/migration.py,sha256=jjQ-3HyBgEPWO8RB8mI1sp8ZWHrUmtaYsufuUGp_3ew,23055
@@ -85,7 +86,7 @@ cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetdata.py,sha256=gKA5U
85
86
  cognite_toolkit/_cdf_tk/client/data_classes/extended_timeseries.py,sha256=yAvJCHePO_JPhvx5UTQ_qUdCXC5t_aSQY6YxuMnkGIQ,5378
86
87
  cognite_toolkit/_cdf_tk/client/data_classes/functions.py,sha256=r9vhkS7sJ-wCiwvtD9CDKKthAktDMS6FJWDsLzq6iJ8,378
87
88
  cognite_toolkit/_cdf_tk/client/data_classes/graphql_data_models.py,sha256=N_1dfXSdsLlhw5uXreNfmSCo5bA4XeiZneMdnHWDgJI,4313
88
- cognite_toolkit/_cdf_tk/client/data_classes/infield.py,sha256=k33P-UKLXKSDARHxRau0WhxGfJL7MiEKQV4DyTipk2w,3131
89
+ cognite_toolkit/_cdf_tk/client/data_classes/infield.py,sha256=xZDpHw190FgX2vK6zk_r8dUJA7J6UzdS8227VOu74ms,4298
89
90
  cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py,sha256=dCgCYqvQHiuFhe8CRb1_lYderkVHoHWki1vcf07F8tw,4929
90
91
  cognite_toolkit/_cdf_tk/client/data_classes/instances.py,sha256=aGV3XtBGwG1ELks3kqFkScO-MGC5zvcSZtYXOVWL2BE,2501
91
92
  cognite_toolkit/_cdf_tk/client/data_classes/location_filters.py,sha256=IgHU7Hto0Zz3Bk_QW17JC3vUw0yN1oaTeJ3ZPKOGFAE,12112
@@ -139,11 +140,11 @@ cognite_toolkit/_cdf_tk/commands/_migrate/issues.py,sha256=L2-kODPavEwcuhte7EXAN
139
140
  cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py,sha256=wrdBH5P6NgiZQSYLR0iJ3ZvqfQ5fY-_Ne2yKv9E1g4o,16277
140
141
  cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py,sha256=RfqaNoso5CyBwc-p6ckwcYqBfZXKhdJgdGIyd0TATaI,2635
141
142
  cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py,sha256=N1H_-rBpPUD6pbrlcofn1uEK1bA694EUXEe1zIXeqyo,2489
142
- cognite_toolkit/_cdf_tk/cruds/__init__.py,sha256=Qxb_Vjv6maJePvO7hunUAtUqXIXW3vi1-hLoWQVs__4,6551
143
+ cognite_toolkit/_cdf_tk/cruds/__init__.py,sha256=noZQvCaAe6u67NSuJahil5Q44_tk5aGFWKyi9wBot1U,6675
143
144
  cognite_toolkit/_cdf_tk/cruds/_base_cruds.py,sha256=w8Qt00_AF1cM47ttBD96CTi9h5iM7QHFpGEEPKZGnnI,18663
144
145
  cognite_toolkit/_cdf_tk/cruds/_data_cruds.py,sha256=4inL7ACmIQs3i9rVOqKG4uOnp3Ywhwg_Fmrm_9hWpyI,8890
145
146
  cognite_toolkit/_cdf_tk/cruds/_worker.py,sha256=3UABlgb_LhM4dXpuruuxsVzvJuKvCPqgEugNuqSvqJQ,9054
146
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py,sha256=gSbQHXTgbkguEc2kFckgt13JVO5GXol_JXT2LW4T5o0,2879
147
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py,sha256=diUM4kSbOw3YfdkmByy20BgzJcEM5ylYrnnEIoQEddk,2945
147
148
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py,sha256=2UjX0m85fw_zt4EpCm5Ihz2gE1AlgOgR8-7Pr8M2c4g,5128
148
149
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py,sha256=mswG-Fp_nfgociGTJ_aIG18we2nFNurcyObPxD9WKlA,24540
149
150
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py,sha256=r9yY02GS3VEDgf85DCBrt06t4kM0o6uGqUmQm_NdQuw,25661
@@ -151,7 +152,7 @@ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py,sha256=plVGY-hvT0
151
152
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py,sha256=U0ItuoNr1KEtoFQAiIe-K19_72ht9-kGndFVgF-iC10,9524
152
153
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py,sha256=SagiSp3JERgEU3SnkjQ76vrxSM7gRA17lvoh0BW4KeQ,64867
153
154
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py,sha256=a2HywkruYNJGLZxqOjlp8mrpRGtJDPqIb6qY00eUbEI,17701
154
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py,sha256=o-ugb5WO4DKg3fV_2DValAdjmZGJWyk8hfR55Lmx7WU,16303
155
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py,sha256=2My16O11WrWomjanLalspZqlQBWG3H-ke2-MTG25bfI,20790
155
156
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py,sha256=vyeRsiIOEbUeYslBsgXoyCk5hozDsubUilA7bdjqS5c,14855
156
157
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py,sha256=v3kjn3igwTF53LJ6pp0O8d4S1XFJ1eXQGCchWAcaAx0,28439
157
158
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/group_scoped.py,sha256=WEg8-CxMP64WfE_XXIlH114zM51K0uLaYa4atd992zI,1690
@@ -184,7 +185,7 @@ cognite_toolkit/_cdf_tk/data_classes/_yaml_comments.py,sha256=zfuDu9aAsb1ExeZBAJ
184
185
  cognite_toolkit/_cdf_tk/prototypes/import_app.py,sha256=7dy852cBlHI2RQF1MidSmxl0jPBxekGWXnd2VtI7QFI,1899
185
186
  cognite_toolkit/_cdf_tk/prototypes/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
187
  cognite_toolkit/_cdf_tk/prototypes/commands/import_.py,sha256=RkJ7RZI6zxe0_1xrPB-iJhCVchurmIAChilx0_XMR6k,11141
187
- cognite_toolkit/_cdf_tk/resource_classes/__init__.py,sha256=8L3d6DjjF75TOUiLhcFpNPQmjlXtfC5gGniSDU89BIM,3900
188
+ cognite_toolkit/_cdf_tk/resource_classes/__init__.py,sha256=IR9Qh4p46v_zHpq6VUYzfNuu9L3aSZgOYw5yy7XXiuk,4006
188
189
  cognite_toolkit/_cdf_tk/resource_classes/agent.py,sha256=5rglrj551Z-0eT53S_UmSA3wz4m4Y494QxleWVs0ECE,1786
189
190
  cognite_toolkit/_cdf_tk/resource_classes/agent_tools.py,sha256=oNkpPCQF3CyV9zcD6NTuEAnATLXzslw2GOyFz58ZGZg,2891
190
191
  cognite_toolkit/_cdf_tk/resource_classes/asset.py,sha256=bFneWvGrEO0QsCJfSjfVDnJtIp9YCYIU7LYESldUSMs,1179
@@ -209,6 +210,7 @@ cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_destination.py,sha256=
209
210
  cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_job.py,sha256=vLD28RByQBM9L0H9YsmzJnaNBaCY3Uoi45c1H0fzHds,10750
210
211
  cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_mapping.py,sha256=5gicORcW1vyz6eaO2dtYlhb2J69BuMh6lrWQDjjanuo,4558
211
212
  cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_source.py,sha256=Mma8B5GtxUalE7XDNcmeJx3pHc_v8vzHNqZgYnoDKmw,14663
213
+ cognite_toolkit/_cdf_tk/resource_classes/infield_cdm_location_config.py,sha256=4_xlJJV25ppIjy_LfzM6D5jk-tShSlqKl9Pv-5FzwP0,3188
212
214
  cognite_toolkit/_cdf_tk/resource_classes/infield_location_config.py,sha256=9xkDqz_v6Z32MxZUMleb_xLCHjShiwvUZvSk_5f1nJs,3489
213
215
  cognite_toolkit/_cdf_tk/resource_classes/infield_v1.py,sha256=XtstgUuhYhWgsxSoQ9BhG5d2ySZxyus_TOiJDWGLs0w,3564
214
216
  cognite_toolkit/_cdf_tk/resource_classes/instance.py,sha256=FdPCDz4LlKZ2SDBGH2-z-JiPN0V53Gg3FrxxjcjrJZc,2935
@@ -303,13 +305,13 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
303
305
  cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
304
306
  cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
305
307
  cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
306
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=v6a0VebiQ65SHtahhnUq_SMWcVbnZY4QJs4Fxzgh2JU,667
307
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=2Hoq3FVDM9BgWnJ0vhHaSCSD2UjTcbWL1Q-GEUCL-xk,2430
308
- cognite_toolkit/_resources/cdf.toml,sha256=rlGz8YpUF6Ed6nSNd43gWkGdMnUnLS0z4VF3WPxKOdA,475
308
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=tQGFHkGPl1tMrbL7-zREOly0-pNGJOcuCQ6Jm0QNOi4,667
309
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=Xyt9kh70zNHddbMwusNlKPUdmfu8A4hzEAzpyw7_uCM,2430
310
+ cognite_toolkit/_resources/cdf.toml,sha256=Qg_SSteYWDQezqeetdDQSiTKqxSfBKZ59Mi6afqpFwM,475
309
311
  cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
310
312
  cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
311
- cognite_toolkit-0.7.14.dist-info/METADATA,sha256=6EL0Rpt2IHDCRcvMdPKnGV966WeDY271wNIpHJ9CMOM,4501
312
- cognite_toolkit-0.7.14.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
313
- cognite_toolkit-0.7.14.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
314
- cognite_toolkit-0.7.14.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
315
- cognite_toolkit-0.7.14.dist-info/RECORD,,
313
+ cognite_toolkit-0.7.16.dist-info/METADATA,sha256=FpUqVqIV2gkmQBL3ArJIHpC-mjmOAF5fs0gL4h56GZA,4501
314
+ cognite_toolkit-0.7.16.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
315
+ cognite_toolkit-0.7.16.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
316
+ cognite_toolkit-0.7.16.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
317
+ cognite_toolkit-0.7.16.dist-info/RECORD,,