Feature #16622

Collection/project pages include instructions to connect via WebDAV and S3

Added by Peter Amstutz 9 months ago. Updated 3 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
-
Target version:
Start date:
01/05/2021
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
2.0
Release relationship:
Auto

Description

Item in the context menu for collections and projects

Open a dialog box with information on how to connect to the collection or project using WebDAV or S3.

Should include a hyperlink that works with cyberduck/mountainduck if the user has something like dav:// set up as a URL handler.


Subtasks

Task #17085: Review 16622-dav-s3-dialogResolvedPeter Amstutz

Associated revisions

Revision a353970c
Added by Peter Amstutz 3 months ago

Merge branch '16622-dav-s3-dialog' refs #16622

Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <>

History

#1 Updated by Peter Amstutz 9 months ago

  • Subject changed from Collection/project pages include information, links for browsing via WebDAV to Collection/project pages include instructions to browse via WebDAV

#2 Updated by Ward Vandewege 9 months ago

  • Description updated (diff)

#3 Updated by Ward Vandewege 9 months ago

  • Description updated (diff)

#4 Updated by Ward Vandewege 9 months ago

  • Description updated (diff)

#5 Updated by Peter Amstutz 8 months ago

  • Subject changed from Collection/project pages include instructions to browse via WebDAV to Collection/project pages include instructions to connect via WebDAV and S3

#6 Updated by Peter Amstutz 6 months ago

  • Target version set to 2020-11-18

#7 Updated by Lucas Di Pentima 6 months ago

  • Assigned To set to Lucas Di Pentima

#8 Updated by Peter Amstutz 5 months ago

  • Target version changed from 2020-11-18 to 2020-12-02 Sprint

#9 Updated by Peter Amstutz 5 months ago

  • Story points set to 2.0
  • Description updated (diff)

#10 Updated by Lucas Di Pentima 5 months ago

  • Target version changed from 2020-12-02 Sprint to 2020-12-16 Sprint

#11 Updated by Lucas Di Pentima 4 months ago

  • Target version changed from 2020-12-16 Sprint to 2021-01-06 Sprint

#12 Updated by Peter Amstutz 4 months ago

  • Assigned To changed from Lucas Di Pentima to Peter Amstutz

#13 Updated by Peter Amstutz 4 months ago

16622-dav-s3-dialog @ arvados-workbench2|27d2ca4c2691cad55993f25a4427d48e86ec6166

I've manually tested this so I think the instructions are accurate. We could also add instructions for MacOS, and/or using arv-mount or arv-get/arv-put.

I did not add any tests. I'm not entirely sure what testing would be useful. I'm open to suggestions.

https://ci.arvados.org/view/Developer/job/developer-tests-workbench2/221/

#14 Updated by Lucas Di Pentima 4 months ago

Some comments:

  • I've tried windows, gnome & mac:
    • Windows 10 for some reason didn't work for me, when I enter the https://my-arvbox-ip:9002/ URL on the dialog and clicked on Next, an error dialog appears with a message like "the folder name doesn't seem valid, choose another one" (or similar, as I have it in spanish). I have confirmed connectivity between my arvbox VM and windows VM.
    • GNOME worked great!
    • On Mac:
      • if I use the provided url for the GNOME case when typing cmd-k on the "Finder" (macos' file manager), the cyberduck software starts with the correct data and I just have to add the password on the login dialog.
      • if I use the Finder's 'connect to server' feature (cmd-k or clicking on the "Go" menu -> "connect to server" item) and use the windows' URL, I can mount the entire user's webdav but couldn't mount a single collection by appending /c=coll-uuid/ like on the GNOME case, not sure why.
  • The story also list the projects to have the same kind of instructions.
  • Have you tried adding hyperlinks?
    • On windows with Chrome, the davs:// URL (kind of) works when having Mountain Duck installed: it doesn't add the /c=coll-uuid/ path on the connection profile so it isn't a 100% seamless experience.
    • On GNOME with Chromium, the davs:// didn't work for me.
    • On Mac with Chrome & Safari, the davs:// URL worked great with Cyberduck installed.
  • For testing, I guess you could add a unit test that mounts the dialog component and confirm that the correct data is being displayed. Here's an example of a unit test doing just that: src/views/not-found-panel/not-found-panel-root.test.tsx

#15 Updated by Peter Amstutz 4 months ago

  • Status changed from New to In Progress

Lucas Di Pentima wrote:

Some comments:

  • I've tried windows, gnome & mac:
    • Windows 10 for some reason didn't work for me, when I enter the https://my-arvbox-ip:9002/ URL on the dialog and clicked on Next, an error dialog appears with a message like "the folder name doesn't seem valid, choose another one" (or similar, as I have it in spanish). I have confirmed connectivity between my arvbox VM and windows VM.

This took me down a rabbit hole, but I think it should work for all cases now.

  • On Mac:
    • if I use the provided url for the GNOME case when typing cmd-k on the "Finder" (macos' file manager), the cyberduck software starts with the correct data and I just have to add the password on the login dialog.
    • if I use the Finder's 'connect to server' feature (cmd-k or clicking on the "Go" menu -> "connect to server" item) and use the windows' URL, I can mount the entire user's webdav but couldn't mount a single collection by appending /c=coll-uuid/ like on the GNOME case, not sure why.

Can you confirm that the directions it gives now are correct for MacOS.

  • The story also list the projects to have the same kind of instructions.

It is unclear if /by_id/project-uuid works on WebDAV. It should work for S3. I'll add it.

  • Have you tried adding hyperlinks?

Added.

  • For testing, I guess you could add a unit test that mounts the dialog component and confirm that the correct data is being displayed. Here's an example of a unit test doing just that: src/views/not-found-panel/not-found-panel-root.test.tsx

I'll look into it.

#16 Updated by Peter Amstutz 4 months ago

16622-dav-s3-dialog @ arvados-workbench2|701db873d602c7f1ba414ebbbf07551892587055

  • Added menu item to show S3 for projects
  • Refactored the "admin projects menu" in the process
  • WebDAV doesn't support projects under /by_id/ for some reason, so only show the s3 information.
  • Need to look at adding a test.

https://ci.arvados.org/view/Developer/job/developer-run-tests/2249/

#17 Updated by Lucas Di Pentima 3 months ago

  • I think the tab labels are interchanged between the first 2
  • Mac & Windows worked great! (On windows I had to import arvbox instance's .pem file to avoid previous misleading errors)
    • If you add username<at-sign> to the https:// URL, on Mac the user field will be auto auto-filled (and ignored on windows, sadly)
  • Cyberduck failed on me with the link using /by_id/...., it was working previously with /c=coll-uuid/
    • If you add username<at-sign> to the davs:// URL, Cybeduck will auto fill the username field (at least on Mac)
  • On GNOME, both /by_id/ and /c=coll-uuid worked fine, so I think could be unified with what works for cyberduck. Adding the username to the URL also works, requiring the user to only enter the password.

(Please note that the above tests I guess failed because the commit id was used on the wrong test job)

#18 Updated by Peter Amstutz 3 months ago

  • Target version changed from 2021-01-06 Sprint to 2021-01-20 Sprint

#19 Updated by Peter Amstutz 3 months ago

Lucas Di Pentima wrote:

  • I think the tab labels are interchanged between the first 2

Fixed

  • If you add username<at-sign> to the https:// URL, on Mac the user field will be auto auto-filled (and ignored on windows, sadly)

In my tests on Windows adding username<at-sign> would make it treat the URL as invalid.

  • Cyberduck failed on me with the link using /by_id/...., it was working previously with /c=coll-uuid/

What do you mean by "failed" ?

  • If you add username<at-sign> to the davs:// URL, Cybeduck will auto fill the username field (at least on Mac)
  • On GNOME, both /by_id/ and /c=coll-uuid worked fine, so I think could be unified with what works for cyberduck. Adding the username to the URL also works, requiring the user to only enter the password.

I added the username back in for the "dav:" variant.

I added enzyme unit tests, which did turn out to be useful for checking correct output for different variations of configuration.

16622-dav-s3-dialog @ arvados-workbench2|e2b8fc2b2f4eb4dde99dbbf7d060e5b7a6bb4e92

https://ci.arvados.org/view/Developer/job/developer-tests-workbench2/225/

#20 Updated by Lucas Di Pentima 3 months ago

I've re-tried everything and it worked great.

This LGTM, thanks!

#21 Updated by Peter Amstutz 3 months ago

  • Status changed from In Progress to Resolved

Also available in: Atom PDF