From 2609b2493dc9320c43a8d840daf2ac90107f2058 Mon Sep 17 00:00:00 2001 From: msbhavana Date: Tue, 9 Jun 2026 15:57:55 +0530 Subject: [PATCH 1/3] feat(resource-catalog): add ENTITY to ResourceType enum for referenced resource support Entity bindings were previously skipped during push because the ResourceType enum lacked an ENTITY member, causing catalog lookups to short-circuit. This meant entity resources could only be created as virtual placeholders. Adding ENTITY to the enum enables proper resource catalog lookups so entities can be created as referenced resources when found in the catalog. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../resource_catalog/resource_catalog.py | 1 + .../uipath/tests/cli/test_create_resources.py | 43 +++++++++++++++++-- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/packages/uipath-platform/src/uipath/platform/resource_catalog/resource_catalog.py b/packages/uipath-platform/src/uipath/platform/resource_catalog/resource_catalog.py index bedf6525d..67fdf52f6 100644 --- a/packages/uipath-platform/src/uipath/platform/resource_catalog/resource_catalog.py +++ b/packages/uipath-platform/src/uipath/platform/resource_catalog/resource_catalog.py @@ -22,6 +22,7 @@ class ResourceType(str, Enum): CONNECTOR = "connector" MCP_SERVER = "mcpserver" QUEUE = "queue" + ENTITY = "entity" @classmethod def from_string(cls, value: str) -> "ResourceType": diff --git a/packages/uipath/tests/cli/test_create_resources.py b/packages/uipath/tests/cli/test_create_resources.py index 08012dccc..e4545bfce 100644 --- a/packages/uipath/tests/cli/test_create_resources.py +++ b/packages/uipath/tests/cli/test_create_resources.py @@ -270,8 +270,39 @@ async def test_unsupported_virtual_kind_is_skipped_with_warning( bindings_file, mock_uipath, studio_client ): """Bindings whose kind the virtual endpoint cannot materialize (e.g. - 'entity', 'choiceSet', 'webhook') should be skipped with a warning and + 'choiceSet', 'webhook') should be skipped with a warning and never reach create_virtual_resource.""" + choiceset_binding = { + "resource": "choiceSet", + "key": "live.good.choiceset.Shared", + "value": { + "name": { + "defaultValue": "live.good.choiceset", + "isExpression": False, + "displayName": "Name", + }, + "folderPath": { + "defaultValue": "Shared", + "isExpression": False, + "displayName": "Folder Path", + }, + }, + "metadata": None, + } + bindings_file(_make_bindings([choiceset_binding])) + + await _run_create_resources(studio_client) + + mock_uipath.resource_catalog.list_by_type_async.assert_not_called() + studio_client.create_virtual_resource.assert_not_awaited() + studio_client.create_referenced_resource.assert_not_awaited() + + +async def test_entity_binding_catalog_hit_creates_reference( + bindings_file, mock_uipath, studio_client +): + """Entity bindings should go through the resource catalog lookup. + When found, a referenced resource should be created.""" entity_binding = { "resource": "entity", "key": "live.good.entity.Shared", @@ -290,12 +321,18 @@ async def test_unsupported_virtual_kind_is_skipped_with_warning( "metadata": None, } bindings_file(_make_bindings([entity_binding])) + mock_uipath.resource_catalog.list_by_type_async.return_value = _AsyncIterator( + [_found_resource(resource_type="entity", resource_sub_type="Native")] + ) + studio_client.create_referenced_resource.return_value = SimpleNamespace( + status=Status.ADDED + ) await _run_create_resources(studio_client) - mock_uipath.resource_catalog.list_by_type_async.assert_not_called() + mock_uipath.resource_catalog.list_by_type_async.assert_called_once() + studio_client.create_referenced_resource.assert_awaited_once() studio_client.create_virtual_resource.assert_not_awaited() - studio_client.create_referenced_resource.assert_not_awaited() async def test_folder_not_found_falls_back_to_virtual( From e6009319d3987368ab688b9e5a58eaf3ef1017f3 Mon Sep 17 00:00:00 2001 From: msbhavana Date: Tue, 9 Jun 2026 18:17:21 +0530 Subject: [PATCH 2/3] chore: bump uipath-platform version to 0.1.62 Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/uipath-platform/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/uipath-platform/pyproject.toml b/packages/uipath-platform/pyproject.toml index aa3ef6b47..4a5c0b83c 100644 --- a/packages/uipath-platform/pyproject.toml +++ b/packages/uipath-platform/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "uipath-platform" -version = "0.1.61" +version = "0.1.62" description = "HTTP client library for programmatic access to UiPath Platform" readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.11" From 56e9dbf87fee977ec5dad1273bb6e6b2d7dec0d3 Mon Sep 17 00:00:00 2001 From: msbhavana Date: Tue, 9 Jun 2026 19:00:10 +0530 Subject: [PATCH 3/3] chore: update lockfiles for uipath-platform 0.1.62 Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/uipath-platform/uv.lock | 4 ++-- packages/uipath/uv.lock | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/uipath-platform/uv.lock b/packages/uipath-platform/uv.lock index c78924106..ac4761377 100644 --- a/packages/uipath-platform/uv.lock +++ b/packages/uipath-platform/uv.lock @@ -3,7 +3,7 @@ revision = 3 requires-python = ">=3.11" [options] -exclude-newer = "2026-06-06T13:38:31.678016Z" +exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for backwards compatibility when using relative exclude-newer values. exclude-newer-span = "P2D" [options.exclude-newer-package] @@ -1095,7 +1095,7 @@ dev = [ [[package]] name = "uipath-platform" -version = "0.1.61" +version = "0.1.62" source = { editable = "." } dependencies = [ { name = "httpx" }, diff --git a/packages/uipath/uv.lock b/packages/uipath/uv.lock index 8acee32f9..476c94d05 100644 --- a/packages/uipath/uv.lock +++ b/packages/uipath/uv.lock @@ -3,7 +3,7 @@ revision = 3 requires-python = ">=3.11" [options] -exclude-newer = "2026-06-06T13:38:31.678016Z" +exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for backwards compatibility when using relative exclude-newer values. exclude-newer-span = "P2D" [options.exclude-newer-package] @@ -2691,7 +2691,7 @@ dev = [ [[package]] name = "uipath-platform" -version = "0.1.61" +version = "0.1.62" source = { editable = "../uipath-platform" } dependencies = [ { name = "httpx" },