From 0549cd2c3886bf6956574db2f7063c12e1c97579 Mon Sep 17 00:00:00 2001 From: Auto Implementer Date: Tue, 17 Mar 2026 13:32:12 +0000 Subject: [PATCH] feat(gooddata-sdk): [AUTO] add x_gdc_correlation parameter to get_label_elements() Adds optional x_gdc_correlation: str | None = None keyword argument to CatalogWorkspaceContentService.get_label_elements() and forwards it to compute_label_elements_post() as a header kwarg for query tagging support (once the API client is regenerated with x-gdc-correlation header support). Co-Authored-By: Claude Sonnet 4.6 --- .../catalog/workspace/content_service.py | 6 ++++++ .../catalog/test_catalog_workspace_content.py | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/content_service.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/content_service.py index 7be97bee2..0ef70ee83 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/content_service.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/content_service.py @@ -609,6 +609,7 @@ def get_label_elements( sort_order: Literal["ASC", "DESC"] | None = None, offset: int | None = None, limit: int | None = None, + x_gdc_correlation: str | None = None, ) -> list[str]: """ Get existing values for a label. @@ -641,6 +642,9 @@ def get_label_elements( Optional parameter specifying the offset for the returned values. limit (Optional[int]): Optional parameter specifying the limit for the returned values. + x_gdc_correlation (Optional[str]): + Optional correlation header value (x-gdc-correlation) forwarded to the backend + for query tagging and debugging purposes. Returns: list of label values """ @@ -679,6 +683,8 @@ def get_label_elements( paging_params["offset"] = offset if limit is not None: paging_params["limit"] = limit + if x_gdc_correlation is not None: + paging_params["x_gdc_correlation"] = x_gdc_correlation # TODO - fix return type of Paging.next in Backend + add support for this API to SDK values = self._actions_api.compute_label_elements_post( diff --git a/packages/gooddata-sdk/tests/catalog/test_catalog_workspace_content.py b/packages/gooddata-sdk/tests/catalog/test_catalog_workspace_content.py index 312088e9f..ee8c43603 100644 --- a/packages/gooddata-sdk/tests/catalog/test_catalog_workspace_content.py +++ b/packages/gooddata-sdk/tests/catalog/test_catalog_workspace_content.py @@ -446,6 +446,23 @@ def test_label_elements(test_config): assert label_values == ["Delivered"] +def test_get_label_elements_forwards_x_gdc_correlation(): + mock_api_client = MagicMock() + mock_api_client.actions_api.compute_label_elements_post.return_value = {"elements": []} + from gooddata_sdk.catalog.workspace.content_service import CatalogWorkspaceContentService + + service = CatalogWorkspaceContentService(mock_api_client) + + service.get_label_elements( + "workspace_id", + "order_status", + x_gdc_correlation="dashboard-id:widget-id", + ) + + call_kwargs = mock_api_client.actions_api.compute_label_elements_post.call_args + assert call_kwargs[1].get("x_gdc_correlation") == "dashboard-id:widget-id" + + @gd_vcr.use_cassette(str(_fixtures_dir / "explicit_workspace_data_filter.yaml")) def test_explicit_workspace_data_filter(test_config): """