pulibrary / rdss-catchall

A repository to document and discuss RDSS work that is quantifiable in issues but is outside of application repositories
0 stars 0 forks source link

Rails 6.1 Upgrade for samvera/browse_everything #26

Closed jrgriffiniii closed 1 year ago

jrgriffiniii commented 2 years ago

This is in response to two major bug reports from the Samvera Community

jrgriffiniii commented 2 years ago

I apologize for neglecting to update this. I have been tracking my prototype repository at the following: https://github.com/jrgriffiniii/browse-everything1.2/tree/migrate-lib

jrgriffiniii commented 2 years ago

I currently have the following design implemented for the file selection interface:

image.png

jrgriffiniii commented 2 years ago

https://github.com/jrgriffiniii/browse-everything1.2/commit/375c9e9a5f825438f721f1e6f153cbc72b2a35f5 introduces a backwards-compatible integration for Bootstrap 3.4.1 into the Rails 6.1 Engine and prototypes a new, simplified interface for the file tree browser:

image.png

jrgriffiniii commented 2 years ago

https://github.com/jrgriffiniii/browse-everything1.2/commit/5860a8296ffaa371a0ce846619c4014416db4019 introduces some basic level of integration with the File System provider, and https://github.com/jrgriffiniii/browse-everything1.2/commit/e34f0425d3ea13cd94e4f42abebe2e202c9f623b introduces some styling improvements.

jrgriffiniii commented 2 years ago

Please find a preview of these updates here:

image.png

jrgriffiniii commented 2 years ago

Considering JavaScript integration for Rails 6.1 and Rails 7 releases onwards does require a shift in the architecture for this project. Google Drive, Dropbox and other drivers are going to require the usage of a JavaScript SDK (e. g. https://developers.google.com/picker/docs).

Rails 7 releases seem to highly favor the integration of JavaScript using https://github.com/rails/importmap-rails#using-node-modules-via-javascript-cdns in favor of Webpack, Yarn, or npm for transpiling ES modules.

Further, regarding the usage of third-party storage providers, there are also serious considerations regarding security vulnerabilities. https://github.com/httpvoid/writeups/blob/main/Hacking-Google-Drive-Integrations.md was an excellent starting point for my personal reference, and I would want to attempt to identify similar potential exploits for other cloud storage services.

jrgriffiniii commented 2 years ago

https://github.com/jrgriffiniii/browse-everything1.2/commit/2b2d44cd374ac693c7fe246e7238815adaf2bd9c advances this to the point where callbacks can be used within the jQuery file tree. There are still outlying styling improvements, but in order to conserve time, I am going to lower the priority of this issue.

jrgriffiniii commented 2 years ago

https://github.com/jrgriffiniii/browse-everything1.2/commit/d9cfb2fb75f9ec1b58333b7be3ca9f9793c44119 advances asynchronous job support for uploading files.

jrgriffiniii commented 2 years ago

This shall be closed, I just wish to update this within https://github.com/samvera/maintenance appropriately.