Skip to content

feat(cli): push entry-points.json through the EntryPoints endpoint - #1981

Open
vldcmp-uipath wants to merge 3 commits into
mainfrom
feat/push-entry-points-endpoint
Open

vldcmp-uipath wants to merge 3 commits into
mainfrom
feat/push-entry-points-endpoint

Conversation

@vldcmp-uipath

@vldcmp-uipath vldcmp-uipath commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

Why

uipath push uploads entry-points.json inside the structural migration, like any other file. Studio Web treats that as a plain file write and emits only a file-modified notification. The entry-points-changed notification is raised only by POST api/Project/{id}/FileOperations/EntryPoints (FileOperationsService.AddProjectEntryPointsFileContentAsync → SendProjectEntryPointsChanged).

Designers that invoke the project rely on that notification. A Flow node bound to a Python function keeps the stale inputDefinition after a push until the solution is reloaded and the Flow editor is re-opened. TypeScript functions do not hit this because the Function Builder MFE regenerates entry-points.json through setEntryPoints; Python has no equivalent writer.

What changes

  • StudioClient.set_entry_points_async(content): POST …/FileOperations/EntryPoints with the raw JSON body and the project lock key (@with_lock_retry), returning the file id.
  • SwFileHandler._process_file_uploads: the root entry-points.json is kept out of the structural migration. Once the migration has landed, the file is written through the new method, so the announced contract always matches the uploaded sources. An unchanged file (same normalized hash as the remote copy) is neither re-uploaded nor re-announced. Progress messages are unchanged.
  • Version bump to 2.15.2 (required by the version-availability check); uv.lock updated to match.

Generated by Claude Code

`uipath push` uploaded entry-points.json inside the structural migration,
like any other file. Studio Web treats that as a plain file write: it emits a
file-modified notification only. The entry-points-changed notification, which
designers that invoke the project (for example a Flow node bound to the
function) rely on to refresh the project's inputs and outputs, is raised only
by `POST api/Project/{id}/FileOperations/EntryPoints`.

Push now keeps entry-points.json out of the structural migration and writes it
through that endpoint once the source files have landed, so the announced
contract always matches the uploaded code. An unchanged file is neither
re-uploaded nor re-announced.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014t9fy6ZwVkHzR85DoT8Voq
The previous commit's `uv lock` run came from a different uv release and
rewrote the lock revision and key order. Only the package version changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014t9fy6ZwVkHzR85DoT8Voq
@github-actions github-actions Bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-runtime test:uipath-integrations labels Nov 9, 2026
@vldcmp-uipath vldcmp-uipath added the build:dev Create a dev build from the pr label Nov 9, 2026
Uses the anyio.Path read the CLI already relies on elsewhere, which also
clears the SonarCloud finding on blocking open() in an async function.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014t9fy6ZwVkHzR85DoT8Voq
@vldcmp-uipath vldcmp-uipath removed the build:dev Create a dev build from the pr label Nov 9, 2026
@vldcmp-uipath
vldcmp-uipath marked this pull request as ready for review November 9, 2026 17:41
Copilot AI balanced review requested due to automatic review settings November 9, 2026 17:41

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.

🟡 Changes recommended

The multipart assertions use a malformed ID-field match and check a filename omitted from modified resources, allowing tests to pass even if entry-points.json is sent through both endpoints.

1 open issue
What changed in this PR

Updates uipath push to write entry-points.json through Studio Web’s dedicated endpoint, allowing consuming designers to refresh their input and output definitions.

Changes:

  • Upload changed entry points after the structural migration, while skipping unchanged content.
  • Add endpoint, payload, lock-header, and upload-order test coverage.
  • Bump uipath to version 2.15.2.
File Description
packages/​uipath/​uv.lock Aligns the locked package version with 2.15.2.
packages/​uipath/​tests/​cli/​test_push.py Updates mocks and tests entry-point uploads and unchanged-file handling.
packages/​uipath/​src/​uipath/​_cli/​_utils/​_studio_project.py Adds a lock-aware EntryPoints API method.
packages/​uipath/​src/​uipath/​_cli/​_push/​sw_file_handler.py Separates entry-point uploads from structural migration.
packages/​uipath/​pyproject.toml Bumps the package version to 2.15.2.

Review effort: Balanced

Comment on lines +2166 to +2168
assert (
b"ModifiedResources[0].Id\r\n\r\n898" not in migration_request.content
)
@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 test:uipath-runtime

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants