Skip to content

Commit 2864869

Browse files
fix: eph folder key issue
1 parent 825faa6 commit 2864869

4 files changed

Lines changed: 62 additions & 5 deletions

File tree

packages/uipath-platform/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "uipath-platform"
3-
version = "0.1.59"
3+
version = "0.1.60"
44
description = "HTTP client library for programmatic access to UiPath Platform"
55
readme = { file = "README.md", content-type = "text/markdown" }
66
requires-python = ">=3.11"

packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2262,13 +2262,11 @@ def _retrieve_by_id_spec(
22622262
folder_key: Optional[str] = None,
22632263
folder_path: Optional[str] = None,
22642264
) -> RequestSpec:
2265-
folder_key = self._resolve_folder_key(folder_key, folder_path)
2266-
2265+
# Folder key not needed by retrieve by id. Adding it breaks ephemeral indexes
22672266
return RequestSpec(
22682267
method="GET",
22692268
endpoint=Endpoint(f"/ecs_/v2/indexes/{id}"),
22702269
headers={
2271-
**header_folder(folder_key, None),
22722270
**header_job_key(),
22732271
},
22742272
)

packages/uipath-platform/tests/services/test_context_grounding_service.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from uipath.platform import UiPathApiConfig, UiPathExecutionContext
99
from uipath.platform.common.constants import (
1010
ENV_JOB_KEY,
11+
HEADER_FOLDER_KEY,
1112
HEADER_JOB_KEY,
1213
HEADER_USER_AGENT,
1314
)
@@ -3918,3 +3919,61 @@ def test_ingest_data_omits_job_key_header_when_env_unset(
39183919

39193920
headers = mock_request.call_args[1]["headers"]
39203921
assert HEADER_JOB_KEY not in headers
3922+
3923+
3924+
class TestRetrieveByIdFolderScoping:
3925+
"""retrieve_by_id must not send a folder header.
3926+
3927+
Indexes are looked up by id tenant-wide. Ephemeral indexes are created
3928+
tenant-scoped, so sending x-uipath-folderkey on the GET scopes the lookup to
3929+
a folder the index does not live in, producing a 404 "Schema not found".
3930+
Regression: ECS-1819.
3931+
"""
3932+
3933+
def test_omits_folder_header_even_with_ambient_folder(
3934+
self,
3935+
service: ContextGroundingService,
3936+
monkeypatch: pytest.MonkeyPatch,
3937+
) -> None:
3938+
monkeypatch.delenv(ENV_JOB_KEY, raising=False)
3939+
# Simulate running inside a folder context (e.g. UIPATH_FOLDER_KEY set).
3940+
service._folder_key = "ambient-folder-key"
3941+
3942+
with patch.object(service, "request") as mock_request:
3943+
mock_request.return_value = MagicMock()
3944+
service.retrieve_by_id("ephemeral-index-id")
3945+
3946+
headers = mock_request.call_args[1]["headers"]
3947+
assert HEADER_FOLDER_KEY not in headers
3948+
3949+
@pytest.mark.anyio
3950+
async def test_async_omits_folder_header_even_with_ambient_folder(
3951+
self,
3952+
service: ContextGroundingService,
3953+
monkeypatch: pytest.MonkeyPatch,
3954+
) -> None:
3955+
monkeypatch.delenv(ENV_JOB_KEY, raising=False)
3956+
service._folder_key = "ambient-folder-key"
3957+
3958+
with patch.object(service, "request_async") as mock_request:
3959+
mock_request.return_value = MagicMock()
3960+
await service.retrieve_by_id_async("ephemeral-index-id")
3961+
3962+
headers = mock_request.call_args[1]["headers"]
3963+
assert HEADER_FOLDER_KEY not in headers
3964+
3965+
def test_still_carries_job_key(
3966+
self,
3967+
service: ContextGroundingService,
3968+
monkeypatch: pytest.MonkeyPatch,
3969+
) -> None:
3970+
monkeypatch.setenv(ENV_JOB_KEY, "job-key-retrieve")
3971+
service._folder_key = "ambient-folder-key"
3972+
3973+
with patch.object(service, "request") as mock_request:
3974+
mock_request.return_value = MagicMock()
3975+
service.retrieve_by_id("ephemeral-index-id")
3976+
3977+
headers = mock_request.call_args[1]["headers"]
3978+
assert headers[HEADER_JOB_KEY] == "job-key-retrieve"
3979+
assert HEADER_FOLDER_KEY not in headers

packages/uipath-platform/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)