projectcaluma / alexandria

Document management service
GNU General Public License v3.0
4 stars 10 forks source link

Extract file storage features into own project - Common storage abstraction #480

Open winged opened 6 months ago

winged commented 6 months ago

We use file storage in various projects in the Caluma / Inosca space, not just Alexandria.

Users expect features to be similar / equal independent of where in the application something happens. Therefore it makes sense to extract the file storage code into something reusable, that also provides the features we need.

The goal here is to provide a single file storage abstraction that can provide features in addition to just storing files. Similar to DGAP, it should be configure-once, use anywhere, with a few simple interfaces.

Project-wise, the implementation should be similar to DGAP as well: Extract what we have, move to it's own project, and start using it immediately in the project where the extraction happened (Alexandria in this case). Ideally during development of a feature when we have to work on the code anyway.

Integration into other code bases will happen later on when it has been stabilized a bit:

Technical proposal:

Yelinz commented 1 month ago

Discussion about usefulness of extraction lead to: