From d58439d4d41d767ec257e00eb912e72a93114f5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20P=C3=A1nik?= <5015486+mpanik@users.noreply.github.com> Date: Mon, 20 Jul 2026 08:08:09 -0500 Subject: [PATCH] [CU-86baqy91f] Remove deprecated X-Admin-Only-Action header (send only X-Global-Namespace) The dual-header (CU-86baju3x7) sent both X-Global-Namespace and the legacy X-Admin-Only-Action so the CLI worked against workbench services on either side of the header refactor. Fine-grained enforcement is now on everywhere and workflow-service no longer reads the legacy header (Phase 3), so the backward-compat leg is dead. Drop it so global/admin workflow ops send only X-Global-Namespace. Co-Authored-By: Claude Opus 4.8 (1M context) --- dnastack/client/workbench/workflow/client.py | 2 +- .../workbench/workflow/test_workflow_client_admin_header.py | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/dnastack/client/workbench/workflow/client.py b/dnastack/client/workbench/workflow/client.py index 2e405223..cb53c713 100644 --- a/dnastack/client/workbench/workflow/client.py +++ b/dnastack/client/workbench/workflow/client.py @@ -17,7 +17,7 @@ from dnastack.common.tracing import Span from dnastack.http.session import JsonPatch, HttpSession, ClientError -_GLOBAL_NAMESPACE_HEADERS = {'X-Global-Namespace': 'true', 'X-Admin-Only-Action': 'true'} +_GLOBAL_NAMESPACE_HEADERS = {'X-Global-Namespace': 'true'} class WorkflowDefaultsListResultLoader(WorkbenchResultLoader): diff --git a/tests/unit/client/workbench/workflow/test_workflow_client_admin_header.py b/tests/unit/client/workbench/workflow/test_workflow_client_admin_header.py index 459ad8ba..670e0903 100644 --- a/tests/unit/client/workbench/workflow/test_workflow_client_admin_header.py +++ b/tests/unit/client/workbench/workflow/test_workflow_client_admin_header.py @@ -66,12 +66,10 @@ class TestAdminOnlyActionHeader: def _assert_header_present(self, call_kwargs): headers = call_kwargs.get('headers', {}) assert headers.get('X-Global-Namespace') == 'true', f"Expected X-Global-Namespace=true, got: {headers}" - assert headers.get('X-Admin-Only-Action') == 'true', f"Expected X-Admin-Only-Action=true, got: {headers}" def _assert_header_absent(self, call_kwargs): headers = call_kwargs.get('headers', {}) assert 'X-Global-Namespace' not in headers, f"Unexpected X-Global-Namespace header in: {headers}" - assert 'X-Admin-Only-Action' not in headers, f"Unexpected X-Admin-Only-Action header in: {headers}" def test_create_workflow_sends_admin_header(self): client = _create_workflow_client()