The web-based user interface is a Single-Page application written in ReactJS. It directly consumes the various REST APIs provided by Cells to display and manipulate the data.
It uses a web session mechanism that is basically just adding some session-persistence to the JWT authentication, performed server-side. The /frontend/session endpoint is in charge of that. All the other APIs are consumed directly with the JWT value, in a RESTful manner (no sessions).
Additionally, the S3 API is used for downloading and uploading actual data. We used S3 Presigned-URLs to create simple GET / PUT urls that are consumable by the browsers http clients (for download, displaying images, uploading, etc...).
It is worth noting that the files listing does not uses the LS-capability of the S3 api but a dedicated rest endpoint, as the S3 protocol does not easily allow to add a lot of metadata along with the objects lists returned.Back to top