Skip to content

Web API: give uploaded objects their own identity - #435

Merged
PierreRaybaut merged 1 commit into
developfrom
fix/webapi-upload-new-identity
Oct 25, 2026
Merged

PierreRaybaut merged 1 commit into
developfrom
fix/webapi-upload-new-identity

Conversation

@PierreRaybaut

Copy link
Copy Markdown
Contributor

Closes #434

  • \WorkspaceAdapter._add_object_sync\ gives the created object a new UUID (\set_uuid), whatever the archive carries, and adds it with \panel._add_object\ (raises) instead of \panel.add_object\ (\qt_try_except\ → modal dialog → main-thread timeout). \PUT /objects/{name}\ (in-place update) still keeps the identity.
  • New \ est_workspace_adapter_uploaded_copy_gets_a_new_identity\ (fails on \develop); Web API tests: 63 passed.
  • End to end: the DataLab-Kernel live tests (with Keep DataLab 1.4 open in the live tests DataLab-Kernel#8) against this branch: 48 passed, including \ est_rename, which timed out before.

An object downloaded from the Web API keeps its UUID in its metadata.
Uploading it again under another name (PUT /objects/{name}/data, e.g.
DataLab-Kernel's rename) created an object with the UUID of the original
one: the panel refused it, the error was shown in a modal dialog on the Qt
main thread, and the request hung until the 30-second main-thread timeout.

PUT /objects/{name}/data creates (or replaces) an object: the adapter now
gives it a new UUID, whatever the archive carries, and adds it with the
panel method that raises errors instead of showing them, so that the API
returns an error response. Updating an object in place (PUT /objects/{name})
still keeps its identity.

Closes #434

Assisted-by: Claude Opus 5.5
@PierreRaybaut
PierreRaybaut merged commit 71909c1 into develop Oct 25, 2026
6 checks passed
@PierreRaybaut
PierreRaybaut deleted the fix/webapi-upload-new-identity branch October 25, 2026 10:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant