In this post I will show you how to check if your Databricks workspace has directories that are orphaned to users/service principals.
import requests from requests.auth import HTTPBasicAuth import json DATABRICKS_INSTANCE = dbutils.widgets.get('url') TOKEN = dbutils.widgets.get('token') #Get list of directories endpoint = f'{DATABRICKS_INSTANCE}/api/2.0/workspace/list' params = { 'path': '/Users/' } response = requests.get(endpoint, params=params, auth=HTTPBasicAuth('token', TOKEN)) response.raise_for_status() json_response = response.json() for i, result in json_response.items(): for value in result: directory = value["path"] user = directory.replace("/Users/", "") if '@' in user: endpoint = f'{DATABRICKS_INSTANCE}/api/2.0/preview/scim/v2/Users' params = { 'filter': 'userName eq "%s"' % (user) } response = requests.get(endpoint, params=params, auth=HTTPBasicAuth('token', TOKEN)) account = response.json().get('Resources', []) if not account: print('Account %s doesn't exist' % (account)) else: endpoint = f'{DATABRICKS_INSTANCE}/api/2.0/preview/scim/v2/ServicePrincipals' params = { 'filter': 'applicationId eq "%s"' % (user) } response = requests.get(endpoint, params=params, auth=HTTPBasicAuth('token', TOKEN)) sp = response.json().get('Resources', []) if not sp: print('SP %s doesn't exist' % (sp))