diff --git a/src/cal_tools/calcat_interface2.py b/src/cal_tools/calcat_interface2.py
index 464ff85c576b69ef4a7a7435f9a9cfe48b76fc95..9e819c5bb9adc39ecf944863932f6457c6304944 100644
--- a/src/cal_tools/calcat_interface2.py
+++ b/src/cal_tools/calcat_interface2.py
@@ -214,8 +214,17 @@ def setup_client(
 
 _default_caldb_root = None
 
+def set_default_caldb_root(p: Path):
+    """Override the default root directory for constants in CalCat"""
+    global _default_caldb_root
+    _default_caldb_root = p
+
+def get_default_caldb_root():
+    """Get the root directory for constants in CalCat.
 
-def _get_default_caldb_root():
+    The default location is different on Maxwell & ONC; this checks which one
+    exists. Calling ``set_default_caldb_root()`` overrides this.
+    """
     global _default_caldb_root
     if _default_caldb_root is None:
         onc_path = Path("/common/cal/caldb_store")
@@ -262,7 +271,7 @@ class SingleConstant:
         if caldb_root is not None:
             caldb_root = Path(caldb_root)
         else:
-            caldb_root = _get_default_caldb_root()
+            caldb_root = get_default_caldb_root()
         return caldb_root / self.path
 
     def dataset_obj(self, caldb_root=None) -> h5py.Dataset:
diff --git a/src/cal_tools/constants.py b/src/cal_tools/constants.py
index cd4abb00f819ef75f2da7b3315adaf4f863bd3c6..21b047c003b5c8c0541479e2b75aeefc9c3f85e3 100644
--- a/src/cal_tools/constants.py
+++ b/src/cal_tools/constants.py
@@ -11,7 +11,7 @@ import numpy as np
 import h5py
 
 from calibration_client import CalibrationClient
-from cal_tools.calcat_interface2 import _get_default_caldb_root, get_client
+from cal_tools.calcat_interface2 import get_default_caldb_root, get_client
 from cal_tools.tools import run_prop_seq_from_path
 from cal_tools.restful_config import calibration_client
 
@@ -187,7 +187,7 @@ def inject_ccv(const_src, ccv_root, report_to=None):
             'file_path': str(report_path)
         }
 
-    const_dest = _get_default_caldb_root() / const_rel_path / const_filename
+    const_dest = get_default_caldb_root() / const_rel_path / const_filename
     const_dest.parent.mkdir(parents=True, exist_ok=True)
     copyfile(const_src, const_dest)
 
diff --git a/src/cal_tools/restful_config.py b/src/cal_tools/restful_config.py
index 5a6d2e9e5245e6d4355ec40ae20c6ef557590c14..671dec619ffe287f26e9d4b415e3e3d86e212948 100644
--- a/src/cal_tools/restful_config.py
+++ b/src/cal_tools/restful_config.py
@@ -50,25 +50,20 @@ def extra_calibration_client():
     from cal_tools import calcat_interface2
 
     calcat_config = restful_config.get('calcat')
+    user_id = user_secret = None
     if calcat_config['use-oauth2']:
-        from oauth2_xfel_client import Oauth2ClientBackend
-        oauth_client = Oauth2ClientBackend(
-            client_id=calcat_config['user-id'],
-            client_secret=calcat_config['user-secret'],
-            token_url=calcat_config['token-url'],
-            scope='',
-        )
-    else:
-        oauth_client = None
+        user_id, user_secret = calcat_config['user-id'], calcat_config['user-secret']
 
-    if calcat_config['caldb-root']:
-        calcat_interface2._default_caldb_root = Path(calcat_config['caldb-root'])
+    base_api_url = calcat_config['base-api-url'].rstrip('/')
+    assert base_api_url.endswith('/api')
+    base_url = base_api_url[:-4]
 
-    client = calcat_interface2.CalCatAPIClient(
-        base_api_url=calcat_config['base-api-url'],
-        oauth_client=oauth_client,
+    calcat_interface2.setup_client(
+        base_url,
+        client_id=user_id,
+        client_secret=user_secret,
         user_email=calcat_config['user-email'],
     )
-
-    calcat_interface2.global_client = client
-    return client
+    if calcat_config['caldb-root']:
+        calcat_interface2.set_default_caldb_root(Path(calcat_config['caldb-root']))
+    return calcat_interface2.get_client()