databricks-sdk 0.0.7__py3-none-any.whl → 0.1.1__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.

Potentially problematic release.


This version of databricks-sdk might be problematic. Click here for more details.

Files changed (41) hide show
  1. databricks/sdk/__init__.py +121 -104
  2. databricks/sdk/core.py +76 -16
  3. databricks/sdk/dbutils.py +18 -17
  4. databricks/sdk/mixins/compute.py +6 -6
  5. databricks/sdk/mixins/dbfs.py +6 -6
  6. databricks/sdk/oauth.py +28 -14
  7. databricks/sdk/service/{unitycatalog.py → catalog.py} +375 -1146
  8. databricks/sdk/service/{clusters.py → compute.py} +2176 -61
  9. databricks/sdk/service/{dbfs.py → files.py} +6 -6
  10. databricks/sdk/service/{scim.py → iam.py} +567 -27
  11. databricks/sdk/service/jobs.py +44 -34
  12. databricks/sdk/service/{mlflow.py → ml.py} +976 -1071
  13. databricks/sdk/service/oauth2.py +3 -3
  14. databricks/sdk/service/pipelines.py +46 -30
  15. databricks/sdk/service/{deployment.py → provisioning.py} +47 -29
  16. databricks/sdk/service/settings.py +849 -0
  17. databricks/sdk/service/sharing.py +1176 -0
  18. databricks/sdk/service/sql.py +15 -15
  19. databricks/sdk/service/workspace.py +917 -22
  20. databricks/sdk/version.py +1 -1
  21. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/METADATA +3 -1
  22. databricks_sdk-0.1.1.dist-info/RECORD +37 -0
  23. databricks/sdk/service/clusterpolicies.py +0 -399
  24. databricks/sdk/service/commands.py +0 -478
  25. databricks/sdk/service/gitcredentials.py +0 -202
  26. databricks/sdk/service/globalinitscripts.py +0 -262
  27. databricks/sdk/service/instancepools.py +0 -757
  28. databricks/sdk/service/ipaccesslists.py +0 -340
  29. databricks/sdk/service/libraries.py +0 -282
  30. databricks/sdk/service/permissions.py +0 -470
  31. databricks/sdk/service/repos.py +0 -250
  32. databricks/sdk/service/secrets.py +0 -472
  33. databricks/sdk/service/tokenmanagement.py +0 -182
  34. databricks/sdk/service/tokens.py +0 -137
  35. databricks/sdk/service/workspaceconf.py +0 -50
  36. databricks_sdk-0.0.7.dist-info/RECORD +0 -48
  37. /databricks/sdk/service/{endpoints.py → serving.py} +0 -0
  38. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/LICENSE +0 -0
  39. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/NOTICE +0 -0
  40. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/WHEEL +0 -0
  41. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/top_level.txt +0 -0
databricks/sdk/oauth.py CHANGED
@@ -10,11 +10,15 @@ from abc import abstractmethod
10
10
  from dataclasses import dataclass
11
11
  from datetime import datetime, timedelta
12
12
  from http.server import BaseHTTPRequestHandler, HTTPServer
13
- from typing import Dict, List
13
+ from typing import Any, Dict, List
14
14
 
15
15
  import requests
16
16
  import requests.auth
17
17
 
18
+ # Error code for PKCE flow in Azure Active Directory, that gets additional retry.
19
+ # See https://stackoverflow.com/a/75466778/277035 for more info
20
+ NO_ORIGIN_FOR_SPA_CLIENT_ERROR = 'AADSTS9002327'
21
+
18
22
  logger = logging.getLogger(__name__)
19
23
 
20
24
 
@@ -128,6 +132,9 @@ class _OAuthCallback(BaseHTTPRequestHandler):
128
132
  self._feedback = feedback
129
133
  super().__init__(*args)
130
134
 
135
+ def log_message(self, fmt: str, *args: Any) -> None:
136
+ logger.debug(fmt, *args)
137
+
131
138
  def do_GET(self):
132
139
  from urllib.parse import parse_qsl
133
140
  parts = self.path.split('?')
@@ -237,23 +244,30 @@ class Consent:
237
244
  if self._state != state:
238
245
  raise ValueError('state mismatch')
239
246
  params = {
247
+ 'redirect_uri': self._client.redirect_url,
240
248
  'grant_type': 'authorization_code',
241
- 'code': code,
242
249
  'code_verifier': self._verifier,
243
- 'redirect_uri': self._client.redirect_url
250
+ 'code': code
244
251
  }
245
252
  headers = {}
246
- if 'microsoft' in self._client.token_url:
247
- # Tokens issued for the 'Single-Page Application' client-type may
248
- # only be redeemed via cross-origin requests
249
- headers = {'Origin': self._client.redirect_url}
250
- token = retrieve_token(client_id=self._client.client_id,
251
- client_secret=self._client.client_secret,
252
- token_url=self._client.token_url,
253
- params=params,
254
- headers=headers,
255
- use_params=True)
256
- return RefreshableCredentials(self._client, token)
253
+ while True:
254
+ try:
255
+ token = retrieve_token(client_id=self._client.client_id,
256
+ client_secret=self._client.client_secret,
257
+ token_url=self._client.token_url,
258
+ params=params,
259
+ headers=headers,
260
+ use_params=True)
261
+ return RefreshableCredentials(self._client, token)
262
+ except ValueError as e:
263
+ if NO_ORIGIN_FOR_SPA_CLIENT_ERROR in str(e):
264
+ # Retry in cases of 'Single-Page Application' client-type with
265
+ # 'Origin' header equal to client's redirect URL.
266
+ headers['Origin'] = self._client.redirect_url
267
+ msg = f'Retrying OAuth token exchange with {self._client.redirect_url} origin'
268
+ logger.debug(msg)
269
+ continue
270
+ raise e
257
271
 
258
272
 
259
273
  class OAuthClient: