SDA-download UI #16
Labels
No labels
backend
bug
CI
dependencies
design
documentation
duplicate
enhancement
frontend
github_actions
good first issue
help wanted
invalid
javascript
question
refactoring
security
tooling
UX
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
NBIS/sda-download-ui#16
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sda-download User Interface
sda-download-UI — Web UI for authenticated dataset discovery and download via sda-download API
The project concerns the development of sda-download-UI, a webapp that talks to the
sda-downloadservice via its API.Quick Resources
Background:
sda-downloadis a backend service with a rest api. It accepts a jwt that is issued by ls-aai OIDC provider (either by getting it directly via ls-aai or using an OIDC client like sda-auth). It uses the jwt to check the user's granted access to datasets by checking the user's c4gh passport and visas.It then returns a session cookie that contains info about which datasets the user is granted access to and is allowed to download. This can be used in subsequent queries to sda-download's endpoint which allows sda-download to skip the visa checks in order to save time.
Summary of goals
Build sda-download-UI (front-end only) that enables a user to:
sda-auth).Key Concepts
sda-auth)Out of scope
Acceptance Criteria
Breakdown into Tasks (and later into Issues)
Project Scaffolding & Architecture ✅ Done
Choose framework & scaffold app
Authentication & Session Cookie Flow ✅ Done
Implement OIDC login flow
sda-download.Question: Can we use
sda-authas client? Is old CORS logic in auth working?A: An implementation using
sda-authas an IdP proxy was implemented but rejected in favor of a standalone OIDC client implementation.Exchange JWT for sda-download session cookie Obsolete, download V2 does not require the client to exchange seesion cookies.
Session state management
Logout
Datasets Discovery UI ✅ Done
Datasets page (list authorized datasets)
sda-download.Dataset details & navigation
Loading/empty/error states
File Browsing & Download UX ✅ Done
Files page for a dataset
Single file download initiation
Checksums display & export
Batch Download Support ✅ Done
Select multiple files and download
Full dataset download
Public C4GH Key handling ✅ Done
UI to provide / upload public key
c4ghformat (basic checks).Security, Privacy, and Compliance Hardening ✅ Done
Token and cookie handling review
credentials: includeandsda-download UI`should eventually share the same domain name but have different hostnames/origins)
EDIT: Since all external calls (sda-download and OIDC) are done server-side, the webapp does not appear to have any CORS expectations atm.
Route protection
Harden Content Security Policy
CI, Packaging, and Deployment ✅ Done
CI pipeline
Deployment documentation
Suggested improvements (not MVP)
Use js crypt4gh implementation library.
Browse dataset directory structure
Whiteboard discussion.
Decision on technologies in #6.
Summary:
sda-authfor OIDCnext.js/reactfor our website developmentUpdate: We use our own implementation for OIDC client
An example of relevant security policies for deployed containers in the sda clusters can be found here.