Skip to content

Commit c6bddd4

Browse files
committed
[FEATURE] UI: add removal of dropzone package to roadmap.
1 parent 024e49b commit c6bddd4

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

components/ILIAS/UI/docs/ROADMAP.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,27 @@ Storage of paramters in DataTable and SequenceNavigation look very much alike;
291291
in favor of those and further/future components the implementation should be
292292
realized as a trait to be used by several components.
293293

294+
### Replace unmaintained file-upload library (expert, ~12d)
295+
296+
We are using the `dropzone` npm package as a file-upload library, which is not actively
297+
maintained anymore. Its last update is now almost 5 years ago and because this is a production
298+
dependency this becomes a growing security risk.
299+
300+
There have already been some investigations which has led us to the `@uppy/core` and
301+
`@uppy/tus-client` npm packages. These dependencies were already approved by JF once, but we
302+
never managed to integrate them. The first package is responsible for file-uploads, whereas
303+
the second package takes care of the client-side implementation of the [TUS protocol](https://tus.io/).
304+
Both of these packages are necessary in order to keep the functionality of chunked-uploading
305+
alive. The TUS protocol can be used to implement this behaviour in a more structure manner than
306+
we currently do. To fully integrate this our `Field\UploadHandler` need to be adjusted however.
307+
To prevent ending up in a similar situation again, we need to abstract the package more clearly
308+
this time.
309+
310+
Replacing the current package is not simple though, because it is a center-piece of four UI
311+
components: `Input\Field\File`, `Input\Field\Image`, `Dropzone\File\Standard` and
312+
`Dropzone\File\Wrapper`. A refactoring of the client-side logic of all these components is
313+
necessary, ideally in a way where no or only minimal interface changes are caused, so this
314+
improvement can be backported to earlier versions too.
294315

295316
## Long Term
296317

0 commit comments

Comments
 (0)