Skip to content

Conversation

Copy link

Copilot AI commented Nov 26, 2025

  • Review and understand the existing externalServices.ts file structure
  • Add logic to parse zarr_id from contentUrl (assetS3Url) for zarr files
  • Add QuiltData as a new external service in EXTERNAL_SERVICES array
  • Add zarr_id to ServiceUrlData interface
  • Update serviceURL function to handle zarr_id placeholder replacement
  • Add comment referencing dandi-schema issue Standardize 4xx error responses #356
  • Test the changes with type-check and lint
  • Build and verify the changes work correctly
  • Improve UUID regex pattern to be more precise
  • Enhance S3 bucket extraction to handle multiple URL formats
  • Refactor code for better maintainability (extract constants and helper functions)
  • Optimize regex compilation for performance
  • Final code review completed
  • Security check passed (CodeQL: 0 alerts)
  • Update QuiltData name to "QuiltData: S3 Browser"
  • Revert unrelated package-lock.json changes
Original prompt

This section details on the original issue you should resolve

<issue_title>External services for "Open with" for zarrs to browse them: add quiltdata</issue_title>
<issue_description>relates to good old

as ATM we do not provide file navigator within zarrs, and to an alternative solution suggested

but since "bundled" with handling for /download, the web UI aspect was forgotten/never implemented!

I think it is time to implement support for that and also quiltdata which provides a convenient navigator for S3 (demoed by @dyf at sfn 2025). So for a zarr, since it is a key prefix on S3, would work beautifully:

https://open.quiltdata.com/b/dandiarchive/tree/zarr/7b617177-ad57-4f7f-806b-060e18f42d15/ for the one from https://dandiarchive.org/dandiset/001675/draft/files?location=pipeline-aind%2Bephys/blobs/048d1ee9-83b7-491f-8f02-1ca615b1d455/run-1&page=1 .

Note that since it is embargoed, it would/could (needs DANDI API key entered, related fresh filed: flatironinstitute/neurosift#368) work only with neurosift and not webdav (public only ATM).

To add support for that type of URL we would need to parse out zarr_id from the contentUrl entry which points to amazon directly. Unfortunately we seems to not expose content ID here

<agent_instructions>the post has all details - review the code in that web/src/utils/externalServices.ts, add zarr_id attribute which would get parsed from a contentUrl which would have /zarr/ in top of the bucket URL (not necessarily dandiarchive). Add a comment there to point to dandi/dandi-schema#356 as potentially in the future providing a better solution. And then compose target quiltdata url using that zarr_id</agent_instructions>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Add support for quiltdata in zarr file navigation Add QuiltData external service for zarr file browsing Nov 26, 2025
Copilot AI requested a review from yarikoptic November 26, 2025 15:12
@yarikoptic yarikoptic marked this pull request as ready for review November 26, 2025 15:24
@yarikoptic yarikoptic added enhancement New feature or request UX Affects usability of the system patch Increment the patch version when merged zarr Issues with Zarr hosting/processing/etc. labels Nov 26, 2025
Copy link
Member

@yarikoptic yarikoptic left a comment

Choose a reason for hiding this comment

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

Although I think we could also add bucket into the metadata record for reuse, WDYT folks?

fresh updated preview (tested that it works):

image

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

Labels

enhancement New feature or request patch Increment the patch version when merged UX Affects usability of the system zarr Issues with Zarr hosting/processing/etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

External services for "Open with" for zarrs to browse them: add quiltdata

2 participants