From fe629a79e95346cf95da1d7fe86e3c8064d4ce72 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 19 May 2026 22:03:45 +0200 Subject: [PATCH 1/3] make use of newer api --- inventree/api.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/inventree/api.py b/inventree/api.py index aff7e2b..fca36a9 100644 --- a/inventree/api.py +++ b/inventree/api.py @@ -242,9 +242,13 @@ def requestToken(self): return False # Request an auth token from the server + if self.api_version < 490: + token_url = 'user/token/' + else: + token_url = 'user/me/token/' try: response = self.get( - 'user/token/', + token_url, params={ 'name': self.token_name, } From d610e408eaa5e2379544027e107ff9a24ed3e8b9 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 19 May 2026 22:04:16 +0200 Subject: [PATCH 2/3] update token url --- tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks.py b/tasks.py index b3bfd0e..d8df939 100644 --- a/tasks.py +++ b/tasks.py @@ -65,7 +65,7 @@ def check_server(c, host="http://localhost:12345", username="testuser", password auth = HTTPBasicAuth(username=username, password=password) - url = f"{host}/api/user/token/" + url = f"{host}/api/user/me/token/" response = None From ab0913c6aa253643c92dbcdf3a6c70ed9eb20af7 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 19 May 2026 22:16:05 +0200 Subject: [PATCH 3/3] add fallback --- tasks.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tasks.py b/tasks.py index d8df939..5db905d 100644 --- a/tasks.py +++ b/tasks.py @@ -65,14 +65,15 @@ def check_server(c, host="http://localhost:12345", username="testuser", password auth = HTTPBasicAuth(username=username, password=password) - url = f"{host}/api/user/me/token/" + token_url = f"{host}/api/user/me/token/" + token_fallback_checked = False response = None while response is None: try: - response = requests.get(url, auth=auth, timeout=0.5) + response = requests.get(token_url, auth=auth, timeout=0.5) except Exception as e: if debug: print("Error:", str(e)) @@ -88,6 +89,16 @@ def check_server(c, host="http://localhost:12345", username="testuser", password else: return False + # Maybe this is an old implementation? Check for X-InvenTree-API header + if response and not token_fallback_checked: + token_version = response.headers.get('X-InvenTree-API', None) + if token_version and int(token_version) < 490: + if debug: + print("No token endpoint, but server is responding - maybe an old implementation?") + token_fallback_checked = True + token_url = f"{host}/api/user/token/" + response = None + if response.status_code != 200: if debug: print(f"Invalid status code: ${response.status_code}")