Skip to content

feat(platform): add list_entity_summaries for one page of entities - #1885

Open
wilcobrouwer wants to merge 2 commits into
mainfrom
feat/list-entities-without-fields
Open

wilcobrouwer wants to merge 2 commits into
mainfrom
feat/list-entities-without-fields

Conversation

@wilcobrouwer

@wilcobrouwer wilcobrouwer commented Sep 7, 2026 •

Copy link
Copy Markdown

Why

list_entities_v3() returns every entity with its full fields schema. On a tenant with many entities that is a large response, and @traced stores it in the span as well. Callers that only need names and ids (for example to resolve an entity id by name) pay for every field definition.

The backend's GET datafabric_/api/v3/entities/paginated route (built for the Data Fabric entity grid) lists the same entities without the field schemas, recordCount or the storage sizes. Measured on 2026-11-04 with read-only GETs against one of our production tenants (11 entities, 201 fields in total), median of 5 runs:

route response median time entities with fields
GET datafabric_/api/v3/entities 174.9 KB 506 ms 11 11
GET datafabric_/api/v3/entities/paginated 5.9 KB 139 ms 11 0

Both routes return the same 11 entity ids. The full listing grows with the number of entities and their fields; the summaries grow only with the number of entities.

What changed

  • Added list_entity_summaries(skip=0, top=50) and its async variant. Each call returns one PagedResult[Entity] page from GET /v3/entities/paginated, without field schemas (fields, record_count and the storage sizes are None). has_more comes from the route's totalCount, and top is capped at 200, the backend's maximum. list_entities_v3() is unchanged.
  • Bumped uipath-platform to 0.3.3.

Testing

  • Unit tests cover the request parameters, a page with more after it, the async last page, and rejection of top above 200.
  • Run live against the same tenant (read-only): list_entity_summaries returned the same 11 ids as list_entities_v3(), all with fields=None; top=5 paged through them in 3 calls with has_more ending the loop; skip past the end returned an empty page with has_more=False; the async variant returned the default page with has_more=False; top=201 is rejected before any request. Through the SDK, the full listing took 666 ms and the summaries 203 ms.

🤖 Generated with Claude Code

@github-actions github-actions Bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-integrations labels Sep 7, 2026
@sonarqubecloud

sonarqubecloud Bot commented Sep 7, 2026

Copy link
Copy Markdown

@wilcobrouwer
wilcobrouwer marked this pull request as ready for review September 7, 2026 14:36
Copilot AI lite review requested due to automatic review settings September 7, 2026 14:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The change is backward compatible by default, correctly gated to v1-only behavior, and includes targeted sync/async tests for the new functionality.

Pull request overview

This PR adds an opt-in way to list Data Service entities without returning each entity’s full fields schema, reducing response size (and traced span size) for tenants with many entities while keeping default behavior unchanged.

Changes:

  • Added include_fields: bool = True to EntitiesService.list_entities() / list_entities_async() and routed include_fields=False to the v1 /Entity/simple endpoint.
  • Extended the internal EntitySchemaService list methods/spec builder to support include_fields, rejecting include_fields=False when use_v3=True.
  • Added sync/async tests for the “simple” route behavior and a test asserting v3 rejection; bumped uipath-platform to 0.2.27.
File summaries
File Description
packages/uipath/uv.lock Updates locked uipath-platform version to 0.2.27.
packages/uipath-platform/uv.lock Updates local package lock version to 0.2.27.
packages/uipath-platform/tests/services/test_entities_service.py Adds coverage for listing entities without field schemas (sync/async) and v3 rejection behavior.
packages/uipath-platform/src/uipath/platform/entities/_entity_schema_service.py Implements include_fields routing to /Entity/simple and enforces v1-only support.
packages/uipath-platform/src/uipath/platform/entities/_entities_service.py Exposes include_fields on public list methods and documents the behavior.
packages/uipath-platform/pyproject.toml Bumps package version to 0.2.27.
Review details
  • Files reviewed: 4/6 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@wilcobrouwer
wilcobrouwer force-pushed the feat/list-entities-without-fields branch from 8dc0ec0 to abf78b1 Compare October 16, 2026 08:51
@wilcobrouwer wilcobrouwer changed the title feat(platform): list entities without field definitions feat(platform): list v3 entities without field definitions Oct 16, 2026
@wilcobrouwer
wilcobrouwer force-pushed the feat/list-entities-without-fields branch 2 times, most recently from 3b4a4ac to fa4997d Compare October 22, 2026 06:48
@wilcobrouwer
wilcobrouwer force-pushed the feat/list-entities-without-fields branch 2 times, most recently from 8071a40 to b623559 Compare November 3, 2026 09:37
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown

🚨 Heads up: uipath-integrations cross-tests are FAILING 🚨

Your changes may break one or more integrations in uipath-integrations-python:

  • uipath-openai-agents
  • uipath-google-adk
  • uipath-agent-framework
  • uipath-llamaindex
  • uipath-pydantic-ai

⚠️ These checks are NOT enforced by branch protection rules. Please review the failures before merging.

🔍 Inspect the failed run →

@icpsoni icpsoni left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest to have a new method return Paginated data instead of modifying the current one based on some parameter.

Also please start accepting page number etc into new method with default value.

@wilcobrouwer
wilcobrouwer force-pushed the feat/list-entities-without-fields branch from b623559 to d60ede2 Compare November 4, 2026 15:57
@wilcobrouwer wilcobrouwer changed the title feat(platform): list v3 entities without field definitions feat(platform): add list_entities_paginated for one page of entities Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

🚨 Heads up: uipath-langchain cross-tests are FAILING 🚨

Your changes may break the uipath-langchain-python integration.

⚠️ These checks are NOT enforced by branch protection rules. Please review the failures before merging.

🔍 Inspect the failed run →

@wilcobrouwer
wilcobrouwer force-pushed the feat/list-entities-without-fields branch from d60ede2 to d4f040e Compare November 4, 2026 17:14
@wilcobrouwer wilcobrouwer changed the title feat(platform): add list_entities_paginated for one page of entities feat(platform): add list_entity_summaries for one page of entities Nov 4, 2026
@wilcobrouwer
wilcobrouwer requested a review from icpsoni November 4, 2026 17:14
wilcobrouwer and others added 2 commits November 9, 2026 13:33
list_entity_summaries(skip, top) returns one PagedResult page from
GET datafabric_/api/v3/entities/paginated, which lists the same
entities as GET /v3/entities without loading their field schemas.
Bumps uipath-platform to 0.3.3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wilcobrouwer
wilcobrouwer force-pushed the feat/list-entities-without-fields branch from d4f040e to 502cadd Compare November 9, 2026 12:33
@sonarqubecloud

sonarqubecloud Bot commented Nov 9, 2026

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:uipath-integrations test:uipath-langchain Triggers tests in the uipath-langchain-python repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants