hyku
hyku copied to clipboard
enable browsing in cloud storage
Is Hyku missing Browse Everything?
No, but it's only configured for "File System"

You configure the providers with this file, so we'd need to write some sort of adapter that could hold the keys for each tenant: https://github.com/projecthydra-labs/hyku/blob/master/config/browse_everything_providers.yml
Looks like we could crudely but easily monkeypatch this method: https://github.com/projecthydra/browse-everything/blob/d0438f114a9b5c0a12fa6a5b493cb41d31255019/lib/browse_everything.rb#L38-L43
We could also do the proper OO thing and extend browse-everything and override config
.
But in any case, configure
can already take a hash, in which case it doesn't try to read the yaml. This is very doable.
Sounds like we have a plan here. Ready for the Ready Column, @atz @jcoyne @mjgiarlo?
@hannahfrost Do we want to take this on prior to the beta launch on 5/15, or prioritize it to happen during the beta after we've focused on QA/fixes?
@mjgiarlo I'm good with making it a priority during the beta and after the current round of QA/fixes
@hannahfrost OK! Me too.
Also do we need a place in the UI to configure this? Design needed?
@hannahfrost Ah, yes, good call.
@jcoyne @mjgiarlo A couple of questions before I can do the design:
-
This is a Hyku ticket but should this be done in Hyrax? Just asking because I see a
browse_everything_providers.yml
in Hyrax. -
Can you configure and activate more than one provider at a time?
@ggeisler Yes, this should be done in Hyrax, and you can configure and activate more than one provider at a time, IIRC.
Here is a first-pass at a mockup of how we might provide UI-based configuration of BrowseEverything. I've no experience with BrowseEverything so it's possible I've misunderstood things; the design here is basically just translating the browse_everything_providers.yml
file to a UI.
I suppose it is possible that an easier first cut at this might be just to add BrowseEverything to the Settings table (first mockup below only) and just provide the on/off toggle to control whether the feature is presented to the end-user, and if it is set to On, then we still read the browse_everything_providers.yml
file for provider configuration? In any case, the mockups below represent the goal of both enabling the feature and configuring providers through the UI.
Add BrowseEverything to the Administration > Settings page
Adds the BrowseEverything setting to the bottom of the table. The BrowseEverything entry is similar to other features in the table, except if we want to enable provider configuration through the UI, then we add a "Configure" toggle to give access the provider settings.
Provider configuration
Clicking the "Configure" toggle expands the page to reveal the provider configuration. This is a pretty standard form. The important things here are validation. Ideally, the user should not be able to save the form unless each checked provider is valid. If it isn't feasible to validate the entries for a provider, we should at least validate that each required field for a checked provider is not null before saving the form. (Ignore the horizontal line below the S3 optional heading; just a mockup artifact.)
Below is an alternate way to present the page, if adding the configuration panel to the existing Settings page seems unwieldy (it is the only setting that has this expand/collapse section, which might be a little weird).
This assumes we reconfigure the current Settings page to allow secondary settings-related pages, similar to Hyku (see sidebar of mockup). (I think that would be a good idea, regardless of how we decide to implement this Browse Everything/Storage Providers page.)
Basically, give Storage Providers a dedicated settings page, with a tab for each provider. In each provider's tab section, present the same options as in the mockup above.
storage provider tabs ++
We decided to work on this immediately after returning from OR2017.
Needed: how to encrypt and handle users' credentials.
Lots of good stuff here in this thread. Needs to be re-expressed in a new ticket and added to the Hyrax backlog @vantuyls
https://github.com/samvera/hyrax/issues/2110