avalonmediasystem / avalon

Avalon Media System – Samvera Application
http://www.avalonmediasystem.org/
Apache License 2.0
94 stars 51 forks source link

Add Sharepoint Provider to BrowseEverything #5987

Closed joncameron closed 1 week ago

joncameron commented 3 months ago

Description

Support for Sharepoint as a filesystem provider has not been available in Browse Everything, which Avalon uses currently for navigating local and cloud filesystems. Since Indiana University as well as many others use Sharepoint for file storage, Avalon too should be able to retrieve files from it in the same way we provide support for Google Drive.

A long-term strategy would be moving away from this to a library with broader general support such as Uppy, but there has been some previous work that may still be effective in communicating with Sharepoint—if the existing provider work that already exists (https://github.com/samvera/browse-everything/pull/418) would be able to authenticate, show and retrieve files from Sharepoint storage it might be worthwhile to implement as a way to meet Avalon's short-term needs.

Done Looks Like

masaball commented 1 month ago

PR to BrowseEverything fork: https://github.com/avalonmediasystem/browse-everything/pull/2. I think currently Avalon is pointing directly at the v1.4-avalon branch, so should we tag that branch and point Avalon to the tag before merging the PR? Once everything looks good on the browse-everything side, I will create a PR to Avalon.

For testing/implementation we will need to register the application(s) in the Entra admin center to get client credentials and set permissions. The process is pretty straightforward but maybe it would be a good short swarm topic for me to walk through it with everyone, @elynema? I can also do an initial draft of documentation for the wiki for if/when we get this implemented in a release.

elynema commented 1 month ago

@masaball I can put this on the agenda for Swarm next week.

Dananji commented 1 month ago

For the SharePoint integration work in Uppy, we needed to submit a request to UITS Tier 2 Support (sct2@iu.edu) to request approval for the Microsoft app we create as part of the integration. For the request we submitted for the SharePoint integration with Uppy we received the following response from UITS;

SharePoint integration might be possible, but any sort of integration requiring M365 admin permissions requires going through SSSP more often than not. I looked through our instance for Uppy, and found an uppy-sharepoint-test app that only requires user-grantable Microsoft Graph permissions and hasn't asked for admin-restricted permissions. If Uppy needs admin permissions, please take screenshots so the admins can see what permissions need to be granted.

I think in the initial request we need submit evidence that the app we are creating in the Microsoft admin dashboard, which we use with BrowseEverything to access SharePoint doesn't have permission to list the sites the user has access from our end of the app.

At some point we needed to submit a SSSP request since the initial request to UITS Tier 2 Support was not able to provide the permissions we needed for the integration.

elynema commented 1 month ago

Mason has a PR to our fork of browse-everything. Need to discuss with Chris - it was working for Mason on his local machine; how do we want to bring it into Avalon for testing before starting on expanding to Sharepoint sites?

Would be good to QA this before moving on to try to add Sharepoint sites.

elynema commented 1 month ago

For the Avalon side of the work, Mason will put up a branch or draft PR for calling the new Browse Everything code into Avalon.

elynema commented 2 weeks ago

I tested this in Chrome and Safari, both in a browser that was already logged into Microsoft and one where I needed to go through the login process. It seemed to work amazingly seamlessly in both environments. I was able to browse folders and upload both an audio and a video item. The file / section label was populated with the file name from OneDrive.

This looks like it's working well to me!

@joncameron @masaball Currently, the order of options in DropBox is Google Drive, AWS, Sharepoint. Is it code in BrowseEverything or Avalon to re-order that? I'm guessing we might want to list Sharepoint first, but not sure.