dataiku-api-client 14.6.1__tar.gz → 14.6.2__tar.gz

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.
Files changed (135) hide show
  1. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/HISTORY.txt +5 -0
  2. {dataiku_api_client-14.6.1/dataiku_api_client.egg-info → dataiku_api_client-14.6.2}/PKG-INFO +7 -2
  3. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2/dataiku_api_client.egg-info}/PKG-INFO +7 -2
  4. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/admin.py +10 -1
  5. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/llm_tracing/__init__.py +1 -0
  6. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/messaging_channel.py +4 -4
  7. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/ml.py +8 -8
  8. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/project.py +59 -5
  9. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dssclient.py +9 -8
  10. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/artifact.py +5 -5
  11. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern_client.py +0 -6
  12. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/setup.py +1 -1
  13. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/LICENSE.txt +0 -0
  14. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/MANIFEST.in +0 -0
  15. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/README +0 -0
  16. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataiku_api_client.egg-info/SOURCES.txt +0 -0
  17. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataiku_api_client.egg-info/dependency_links.txt +0 -0
  18. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataiku_api_client.egg-info/requires.txt +0 -0
  19. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataiku_api_client.egg-info/top_level.txt +0 -0
  20. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/__init__.py +0 -0
  21. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/apinode_admin/__init__.py +0 -0
  22. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/apinode_admin/auth.py +0 -0
  23. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/apinode_admin/service.py +0 -0
  24. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/apinode_admin_client.py +0 -0
  25. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/apinode_client.py +0 -0
  26. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/auth.py +0 -0
  27. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/base_client.py +0 -0
  28. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/__init__.py +0 -0
  29. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/agent.py +0 -0
  30. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/agent_review.py +0 -0
  31. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/agent_tool.py +0 -0
  32. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/analysis.py +0 -0
  33. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/apideployer.py +0 -0
  34. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/apiservice.py +0 -0
  35. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/app.py +0 -0
  36. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/businessapp.py +0 -0
  37. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/codestudio.py +0 -0
  38. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/continuousactivity.py +0 -0
  39. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/dashboard.py +0 -0
  40. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/data_collection.py +0 -0
  41. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/data_directories_footprint.py +0 -0
  42. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/data_quality.py +0 -0
  43. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/dataset.py +0 -0
  44. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/discussion.py +0 -0
  45. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/document_extractor.py +0 -0
  46. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/drift.py +0 -0
  47. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/enterprise_asset_library.py +0 -0
  48. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/evaluationcomparison.py +0 -0
  49. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/evaluationstore.py +0 -0
  50. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/feature_store.py +0 -0
  51. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/flow.py +0 -0
  52. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/future.py +0 -0
  53. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/insight.py +0 -0
  54. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/job.py +0 -0
  55. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/jupyternotebook.py +0 -0
  56. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/knowledgebank.py +0 -0
  57. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/labeling_task.py +0 -0
  58. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/langchain/__init__.py +0 -0
  59. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/langchain/embeddings.py +0 -0
  60. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/langchain/knowledge_bank.py +0 -0
  61. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/langchain/llm.py +0 -0
  62. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/langchain/tool.py +0 -0
  63. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/langchain/utils.py +0 -0
  64. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/llm.py +0 -0
  65. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/llm_utils/__init__.py +0 -0
  66. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/local_model.py +0 -0
  67. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/macro.py +0 -0
  68. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/managedfolder.py +0 -0
  69. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/meaning.py +0 -0
  70. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/metrics.py +0 -0
  71. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/mlflow.py +0 -0
  72. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/modelcomparison.py +0 -0
  73. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/modelevaluationstore.py +0 -0
  74. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/notebook.py +0 -0
  75. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/plugin.py +0 -0
  76. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/project_standards.py +0 -0
  77. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/projectdeployer.py +0 -0
  78. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/projectfolder.py +0 -0
  79. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/projectlibrary.py +0 -0
  80. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/recipe.py +0 -0
  81. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/retrieval_augmented_llm.py +0 -0
  82. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/savedmodel.py +0 -0
  83. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/scenario.py +0 -0
  84. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/semantic_model.py +0 -0
  85. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/sqlnotebook.py +0 -0
  86. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/sqlquery.py +0 -0
  87. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/statistics.py +0 -0
  88. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/streaming_endpoint.py +0 -0
  89. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/tools/__init__.py +0 -0
  90. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/tools/codegen.py +0 -0
  91. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/tools/langchain.py +0 -0
  92. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/unifiedmonitoring.py +0 -0
  93. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/utils.py +0 -0
  94. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/webapp.py +0 -0
  95. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/wiki.py +0 -0
  96. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss/workspace.py +0 -0
  97. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss_plugin_mlflow/__init__.py +0 -0
  98. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss_plugin_mlflow/artifact_repository.py +0 -0
  99. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss_plugin_mlflow/header_provider.py +0 -0
  100. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/dss_plugin_mlflow/utils.py +0 -0
  101. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fm/__init__.py +0 -0
  102. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fm/cloudaccounts.py +0 -0
  103. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fm/future.py +0 -0
  104. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fm/instances.py +0 -0
  105. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fm/instancesettingstemplates.py +0 -0
  106. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fm/loadbalancers.py +0 -0
  107. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fm/tenant.py +0 -0
  108. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fm/virtualnetworks.py +0 -0
  109. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/fmclient.py +0 -0
  110. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/__init__.py +0 -0
  111. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/admin.py +0 -0
  112. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/admin_blueprint_designer.py +0 -0
  113. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/admin_custom_pages_handler.py +0 -0
  114. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/admin_roles_permissions_handler.py +0 -0
  115. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/artifact_search.py +0 -0
  116. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/blueprint.py +0 -0
  117. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/custom_page.py +0 -0
  118. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/future.py +0 -0
  119. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/time_series.py +0 -0
  120. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/uploaded_file.py +0 -0
  121. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/govern/users_container.py +0 -0
  122. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/iam/__init__.py +0 -0
  123. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/iam/settings.py +0 -0
  124. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad/__init__.py +0 -0
  125. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad/exceptions.py +0 -0
  126. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad/group.py +0 -0
  127. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad/node.py +0 -0
  128. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad/profile.py +0 -0
  129. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad/response.py +0 -0
  130. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad/task.py +0 -0
  131. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad/user.py +0 -0
  132. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/launchpad_client.py +0 -0
  133. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/dataikuapi/utils.py +0 -0
  134. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/requirements.txt +0 -0
  135. {dataiku_api_client-14.6.1 → dataiku_api_client-14.6.2}/setup.cfg +0 -0
@@ -2,6 +2,11 @@ Changelog
2
2
  ==========
3
3
 
4
4
 
5
+ 14.6.2 (2026-06-15)
6
+ -------------------
7
+
8
+ * Initial release for DSS 14.6.2
9
+
5
10
  14.6.1 (2026-06-05)
6
11
  -------------------
7
12
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataiku-api-client
3
- Version: 14.6.1
3
+ Version: 14.6.2
4
4
  Summary: Python API client for Dataiku APIs
5
5
  Home-page: https://www.dataiku.com
6
- Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.6.1
6
+ Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.6.2
7
7
  Author: Dataiku
8
8
  Author-email: support@dataiku.com
9
9
  License: Apache Software License
@@ -36,6 +36,11 @@ Changelog
36
36
  ==========
37
37
 
38
38
 
39
+ 14.6.2 (2026-06-15)
40
+ -------------------
41
+
42
+ * Initial release for DSS 14.6.2
43
+
39
44
  14.6.1 (2026-06-05)
40
45
  -------------------
41
46
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataiku-api-client
3
- Version: 14.6.1
3
+ Version: 14.6.2
4
4
  Summary: Python API client for Dataiku APIs
5
5
  Home-page: https://www.dataiku.com
6
- Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.6.1
6
+ Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.6.2
7
7
  Author: Dataiku
8
8
  Author-email: support@dataiku.com
9
9
  License: Apache Software License
@@ -36,6 +36,11 @@ Changelog
36
36
  ==========
37
37
 
38
38
 
39
+ 14.6.2 (2026-06-15)
40
+ -------------------
41
+
42
+ * Initial release for DSS 14.6.2
43
+
39
44
  14.6.1 (2026-06-05)
40
45
  -------------------
41
46
 
@@ -27,7 +27,7 @@ class DSSConnectionListItem(dict):
27
27
 
28
28
  :rtype: :class:`DSSConnection`
29
29
  """
30
- return DSSConnection(self.client, self["name"])
30
+ return DSSConnection(self.client, self.name)
31
31
 
32
32
  @property
33
33
  def name(self):
@@ -36,6 +36,8 @@ class DSSConnectionListItem(dict):
36
36
 
37
37
  :rtype: string
38
38
  """
39
+ if "name" in self:
40
+ return self["name"]
39
41
  return self["id"]
40
42
 
41
43
  @property
@@ -46,6 +48,8 @@ class DSSConnectionListItem(dict):
46
48
  :return: a DSS connection type, like PostgreSQL, EC2, Azure, ...
47
49
  :rtype: string
48
50
  """
51
+ if "type" in self:
52
+ return self["type"]
49
53
  return self["label"]
50
54
 
51
55
  class DSSConnectionInfo(dict):
@@ -702,6 +706,11 @@ class DSSUser(object):
702
706
  extra_headers={"X-DKU-ProxyUser": self.login}, client_certificate=self.client._session.cert)
703
707
  client_as._session.verify = self.client._session.verify
704
708
  return client_as
709
+ elif self.client.jwt_bearer_token is not None:
710
+ client_as = DSSClient(self.client.host, jwt_bearer_token = self.client.jwt_bearer_token,
711
+ extra_headers={"X-DKU-ProxyUser": self.login}, client_certificate=self.client._session.cert)
712
+ client_as._session.verify = self.client._session.verify
713
+ return client_as
705
714
  else:
706
715
  raise ValueError("Don't know how to proxy this client")
707
716
 
@@ -97,6 +97,7 @@ class SpanBuilder:
97
97
  @staticmethod
98
98
  def create_event(name):
99
99
  sb = SpanBuilder(name)
100
+ sb.span["type"] = "event"
100
101
  ts = int(time.time() * 1000)
101
102
  sb.span["timestamp"] = datetime.datetime.fromtimestamp(ts / 1000, datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
102
103
  return sb
@@ -285,9 +285,9 @@ class DSSMailMessagingChannel(DSSMessagingChannel):
285
285
 
286
286
  channel = client.get_messaging_channel("other-mail-channel-id")
287
287
  for file in paths:
288
- with open(file) as f:
289
- # Optionally include file type ("text/csv")
290
- attachments.append(file, f.read(), "text/csv")
288
+ with open(file) as f:
289
+ # Optionally include file type ("text/csv")
290
+ attachments.append([file, f.read(), "text/csv"])
291
291
  channel.send("PROJECT_KEY", ["joe@dataiku.com"], "Subject", "Body in plain text", attachments=attachments, False)
292
292
 
293
293
  :param project_key: project issuing the email. The user must have "Write content" permission on the specified project.
@@ -299,7 +299,7 @@ class DSSMailMessagingChannel(DSSMessagingChannel):
299
299
  :param body: email body (in plain text or HTML format)
300
300
  :type body: str
301
301
  :param attachments: files to be attached to the mail, defaults to None
302
- :type attachments: list[BufferedReader]
302
+ :type attachments: list[list[str, bytes, str]]
303
303
  :param plain_text: True to send email as plain text, False to send it as HTML. Defaults to False.
304
304
  :type plain_text: bool
305
305
  :param sender: sender email address. Use None to use the sender defined at the channel level.
@@ -4129,7 +4129,7 @@ class DSSTrainedPredictionModelDetails(DSSTrainedModelDetails):
4129
4129
 
4130
4130
  class DSSTrainedTimeseriesForecastingModelDetails(DSSTrainedPredictionModelDetails):
4131
4131
  """
4132
- Object to read details of a timeseries forecasting model, for instance the per time series metrics
4132
+ Object to read details of a time series forecasting model, for instance the per time series metrics
4133
4133
 
4134
4134
  .. important::
4135
4135
  Do not create this object directly, use :meth:`DSSMLTask.get_trained_model_details()` instead
@@ -4139,10 +4139,10 @@ class DSSTrainedTimeseriesForecastingModelDetails(DSSTrainedPredictionModelDetai
4139
4139
 
4140
4140
  def compute_residuals(self, wait=True):
4141
4141
  """
4142
- Launch computation of residuals for this trained timeseries model.
4142
+ Launch computation of residuals for this trained time series model.
4143
4143
 
4144
4144
  :param wait: a flag to wait for the operation to complete (defaults to **True**)
4145
- :returns: if wait is True, a dictionary containing the residuals per-timeseries, else a future to wait on the result
4145
+ :returns: if wait is True, a dictionary containing the residuals per time series, else a future to wait on the result
4146
4146
  :rtype: Union[:class:`dict`, :class:`dataikuapi.dss.future.DSSFuture`]
4147
4147
  """
4148
4148
  if self.mltask is not None:
@@ -4166,7 +4166,7 @@ class DSSTrainedTimeseriesForecastingModelDetails(DSSTrainedPredictionModelDetai
4166
4166
  """
4167
4167
  Retrieve a list of residuals for this trained time-series models
4168
4168
 
4169
- :returns: A dictionary, which contains a residuals object per-timeseries
4169
+ :returns: A dictionary, which contains a residuals object per time series
4170
4170
  :rtype: dict
4171
4171
  """
4172
4172
  if self.mltask is not None:
@@ -4184,7 +4184,7 @@ class DSSTrainedTimeseriesForecastingModelDetails(DSSTrainedPredictionModelDetai
4184
4184
 
4185
4185
  def compute_permutation_importance(self, wait=True, n_iterations=None, per_identifier=None):
4186
4186
  """
4187
- Launch computation of permutation importance for this trained timeseries model.
4187
+ Launch feature importance computation (measured using permutation importance) for this trained time series model.
4188
4188
 
4189
4189
  :param wait: a flag to wait for the operation to complete (defaults to **True**)
4190
4190
  :returns: if wait is True, a dictionary, else a future to wait on the result
@@ -4238,7 +4238,7 @@ class DSSTrainedTimeseriesForecastingModelDetails(DSSTrainedPredictionModelDetai
4238
4238
 
4239
4239
  def get_per_timeseries_metrics(self):
4240
4240
  """
4241
- Returns per timeseries performance metrics for this model.
4241
+ Returns per time series performance metrics for this model.
4242
4242
 
4243
4243
  :returns: a dict of performance metrics values
4244
4244
  :rtype: dict
@@ -4257,9 +4257,9 @@ class DSSTrainedTimeseriesForecastingModelDetails(DSSTrainedPredictionModelDetai
4257
4257
 
4258
4258
  def get_per_timeseries_evaluation_forecasts(self):
4259
4259
  """
4260
- Returns per timeseries evaluation forecasts for this model.
4260
+ Returns per time series evaluation forecasts for this model.
4261
4261
 
4262
- :returns: a dict of evaluation forecasts per timeseries identifier
4262
+ :returns: a dict of evaluation forecasts per time series identifier
4263
4263
  :rtype: dict
4264
4264
  """
4265
4265
  if self.mltask is not None:
@@ -2732,7 +2732,7 @@ class DSSProject(object):
2732
2732
  """
2733
2733
  return DSSKnowledgeBank(self.client, self.project_key, id)
2734
2734
 
2735
- def create_knowledge_bank(self, name, vector_store_type, embedding_llm_id, settings=None):
2735
+ def create_knowledge_bank(self, name, vector_store_type, embedding_llm_id=None, settings=None):
2736
2736
  """
2737
2737
  Create a new knowledge bank in the project, and return a handle to interact with it
2738
2738
 
@@ -2751,22 +2751,76 @@ class DSSProject(object):
2751
2751
  * MILVUS_LOCAL
2752
2752
  * MILVUS_REMOTE
2753
2753
 
2754
- :param str embedding_llm_id: The id of the embedding LLM. It has to have the TEXT_EMBEDDING_EXTRACTION purpose.
2754
+ :param Optional[str] embedding_llm_id: The id of the embedding LLM.
2755
+ For managed KBs, must have the TEXT_EMBEDDING_EXTRACTION purpose.
2756
+ For unmanaged KBs, may be omitted when the vector store type does not require embeddings.
2755
2757
  :param Optional[dict] settings: Additional settings for the knowledge bank, including:
2756
2758
 
2759
+ * "managed" (bool) set to False to create an unmanaged knowledge bank
2757
2760
  * "connection" (str) the connection name, for remote vector stores
2758
2761
  * "indexName" (str) the index name, for remote vector stores, including Pinecone
2759
2762
  * "pineconeIndexName" (str) legacy alias accepted for Pinecone vector stores
2763
+ * "columnMapping" (dict) mappings for vector store columns, used only for unmanaged knowledge banks. Expected format:
2764
+ ``{"id": "<column name>", "vector": "<column name>", "content": "<column name>", "metadata": "<column name>"}``
2765
+ (keys depend on the selected vector store type; values are remote schema column names)
2766
+ * "metadataColumnsSchema" (list[dict]) metadata schema, where each item has format:
2767
+ ``{"name": "<column name>", "type": "<column type>"}``
2768
+ Optional per-column keys include ``"filterable"`` (bool) and ``"storageName"`` (str, physical
2769
+ column path when different from ``name``). Validation always prefers ``storageName`` when provided.
2770
+ Without ``storageName``, ``name`` is accepted only when it resolves unambiguously to a single remote
2771
+ column path.
2772
+ If a top-level column and a nested mapped metadata field share the same name, ``storageName`` is
2773
+ required.
2760
2774
  * "managedFolderId" (str) the id of the managed folder containing the extracted images.
2761
2775
  The images may be referenced by their path in the knowledge bank, and stored in this folder.
2762
2776
 
2777
+ For unmanaged knowledge banks, the caller is responsible for checking index existence and schema
2778
+ compatibility before creation.
2779
+
2780
+ Example managed knowledge bank creation:
2781
+
2782
+ .. code-block:: python
2783
+
2784
+ kb = project.create_knowledge_bank(
2785
+ name="my_managed_kb",
2786
+ vector_store_type="CHROMA",
2787
+ embedding_llm_id="MY_EMBEDDING_LLM_ID"
2788
+ )
2789
+
2790
+ Example unmanaged knowledge bank creation:
2791
+
2792
+ .. code-block:: python
2793
+
2794
+ settings = {
2795
+ "managed": False,
2796
+ "connection": "my_vector_store_connection",
2797
+ "indexName": "my_existing_index",
2798
+ "columnMapping": {
2799
+ "id": "doc_id",
2800
+ "vector": "embedding",
2801
+ "content": "text",
2802
+ "metadata": "metadata_json"
2803
+ },
2804
+ "metadataColumnsSchema": [
2805
+ {"name": "source", "type": "string", "storageName": "metadata_json.source", "filterable": True},
2806
+ {"name": "author", "type": "string", "filterable": True}
2807
+ ]
2808
+ }
2809
+
2810
+ kb = project.create_knowledge_bank(
2811
+ name="my_unmanaged_kb",
2812
+ vector_store_type="ELASTICSEARCH",
2813
+ embedding_llm_id="MY_EMBEDDING_LLM_ID",
2814
+ settings=settings
2815
+ )
2816
+
2763
2817
  :returns: a :class:`dataikuapi.dss.knowledgebank.DSSKnowledgeBank` handle to interact with the newly-created knowledge bank
2764
2818
  """
2765
- if settings is None:
2766
- settings = {}
2819
+ settings = dict(settings or {})
2767
2820
  settings['name'] = name
2768
2821
  settings['vectorStoreType'] = vector_store_type
2769
- settings['embeddingLLMId'] = embedding_llm_id
2822
+ if embedding_llm_id is not None:
2823
+ settings['embeddingLLMId'] = embedding_llm_id
2770
2824
 
2771
2825
  if "managedFolderId" in settings:
2772
2826
  settings["multimodalColumn"] = "DKU_MULTIMODAL_CONTENT"
@@ -43,7 +43,8 @@ from .govern_client import GovernClient
43
43
  class DSSClient(object):
44
44
  """Entry point for the DSS API client"""
45
45
 
46
- def __init__(self, host, api_key=None, internal_ticket=None, extra_headers=None, no_check_certificate=False, client_certificate=None, **kwargs):
46
+ def __init__(self, host, api_key=None, internal_ticket=None, extra_headers=None, no_check_certificate=False, client_certificate=None,
47
+ jwt_bearer_token=None, **kwargs):
47
48
  """Initialize a new DSS API client.
48
49
 
49
50
  Args:
@@ -68,6 +69,7 @@ class DSSClient(object):
68
69
 
69
70
  self.api_key = api_key
70
71
  self.internal_ticket = internal_ticket
72
+ self.jwt_bearer_token = jwt_bearer_token
71
73
  self.host = host
72
74
  self._session = Session()
73
75
  if no_check_certificate:
@@ -79,8 +81,10 @@ class DSSClient(object):
79
81
  self._session.auth = HTTPBasicAuth(self.api_key, "")
80
82
  elif self.internal_ticket is not None:
81
83
  self._session.headers.update({"X-DKU-APITicket" : self.internal_ticket})
84
+ elif jwt_bearer_token is not None:
85
+ self._session.headers.update({"Authorization": "Bearer " + jwt_bearer_token})
82
86
  else:
83
- raise ValueError("API Key is required")
87
+ raise ValueError("Authentication is required. You must provide either api_key, internal_ticket or jwt_bearer_token.")
84
88
 
85
89
  if extra_headers is not None:
86
90
  self._session.headers.update(extra_headers)
@@ -1728,6 +1732,9 @@ class DSSClient(object):
1728
1732
  """
1729
1733
  return self._perform_json("POST", "/auth/ticket-from-browser-headers", body=headers_dict)["msg"]
1730
1734
 
1735
+ def get_ticket(self):
1736
+ """Get a temporary auth ticket for the current user"""
1737
+ return self._perform_json("POST", "/auth/ticket")["ticket"]
1731
1738
 
1732
1739
  ########################################################
1733
1740
  # Container execution
@@ -1828,9 +1835,6 @@ class DSSClient(object):
1828
1835
  """
1829
1836
  Returns a dictionary with information about licensing status of this DSS instance
1830
1837
 
1831
- Note:
1832
- The API is not available on Cloud. Use the Launchpad or Launchpad API.
1833
-
1834
1838
  :rtype: dict
1835
1839
  """
1836
1840
  return self._perform_json("GET", "/admin/licensing/status")
@@ -1839,9 +1843,6 @@ class DSSClient(object):
1839
1843
  """
1840
1844
  Sets a new licence for DSS
1841
1845
 
1842
- Note:
1843
- The API is not available on Cloud. Use the Launchpad or Launchpad API.
1844
-
1845
1846
  :param license: license (content of license file)
1846
1847
  :return: None
1847
1848
  """
@@ -169,8 +169,9 @@ class GovernArtifactSignoff(object):
169
169
 
170
170
  def update_status(self, signoff_status, users_to_notify=None, reload_conf_for_reset=False):
171
171
  """
172
- Change the status of the sign-off, takes as input the target status, optionally a list of users to notify and a boolean to indicate if the sign-off configuration should be updated from the blueprint version.
173
- Only the users included in the groups of feedback and approval are able to give feedback or approval and can be notified,
172
+ Change the status of the sign-off, takes as input the target status, optionally the list of users to notify and a boolean to indicate if the sign-off configuration should be updated from the blueprint version.
173
+ If users_to_notify is not set, all users configured to give feedback or approval will be notified.
174
+ Additionally, only the users included in the feedback groups and the approval list can be notified (any other user will be ignored),
174
175
  the complete list is available using: :meth:`~dataikuapi.govern.artifact.GovernArtifactSignoff.get_details`.
175
176
  For the feedback, the users will be notified as part of a chosen group of feedback and the group must be specified.
176
177
 
@@ -180,14 +181,13 @@ class GovernArtifactSignoff(object):
180
181
  The list should be a list of dict containing two keys "userLogin" and "groupId" for each user to notify.
181
182
  The "groupId" key is mandatory for feedback notification and forbidden for the final approval notification.
182
183
  All users that are not in the sign-off configuration will be ignored.
183
- :param boolean reload_conf_for_reset: (Optional, defaults to **False**) Usefull only when the target status is NOT_STARTED.
184
+ If no users_to_notify is provided, all users that are configured to give feedback or approval will be notified.
185
+ :param boolean reload_conf_for_reset: (Optional, defaults to **False**) Useful only when the target status is NOT_STARTED.
184
186
  If True the current sign-off configuration will be overwritten by the one coming from the blueprint version, all delegated users will be reset.
185
187
  If False the current sign-off configuration will remain the same, allowing all delegated users to be retained but any changes to the sign-off configuration in the blueprint version will not be reflected.
186
188
  :type users_to_notify: list of dict
187
189
  :return: None
188
190
  """
189
- if users_to_notify is None:
190
- users_to_notify = []
191
191
 
192
192
  self.client._perform_json("POST", "/artifact/%s/workflow/step/%s/signoff/update-status" % (self.artifact_id, self.step_id),
193
193
  body={"targetStatus": signoff_status, "usersToSendEmailTo": users_to_notify, "reloadConfForReset": reload_conf_for_reset})
@@ -673,9 +673,6 @@ class GovernClient(object):
673
673
  """
674
674
  Returns a dictionary with information about licensing status of this Dataiku Govern instance
675
675
 
676
- Note:
677
- The API is not available on Cloud. Use the Launchpad or Launchpad API.
678
-
679
676
  :rtype: dict
680
677
  """
681
678
  return self._perform_json("GET", "/admin/licensing/status")
@@ -684,9 +681,6 @@ class GovernClient(object):
684
681
  """
685
682
  Sets a new licence for Dataiku Govern
686
683
 
687
- Note:
688
- The API is not available on Cloud. Use the Launchpad or Launchpad API.
689
-
690
684
  :param license: license (content of license file)
691
685
  :return: None
692
686
  """
@@ -2,7 +2,7 @@
2
2
 
3
3
  from setuptools import setup
4
4
 
5
- VERSION = "14.6.1"
5
+ VERSION = "14.6.2"
6
6
 
7
7
  long_description = (open('README').read() + '\n\n' +
8
8
  open('HISTORY.txt').read())