diff --git a/services/localega-tsd-proxy/README.md b/services/localega-tsd-proxy/README.md index 10385ed..25311a2 100644 --- a/services/localega-tsd-proxy/README.md +++ b/services/localega-tsd-proxy/README.md @@ -4,7 +4,7 @@ The Local EGA TSD Proxy service is a component of the FEGA-Norway stack that fac ## Features -- ELIXIR AAI (OpenID Connect) authentication support: +- ELIXIR AAI (OpenID Connect) authentication support - GA4GH Passport & Visa validation - Secure file upload/download operations - Resumable file transfers @@ -12,6 +12,7 @@ The Local EGA TSD Proxy service is a component of the FEGA-Norway stack that fac - Service health monitoring - Redis-based caching - PostgreSQL integration for credential mapping +- Serve the FEGA-Norway static web pages ## Prerequisites @@ -29,6 +30,7 @@ The Local EGA TSD Proxy service is a component of the FEGA-Norway stack that fac The service is configured through environment variables and the `application.yaml` file. Key configuration areas include: ### SSL Configuration + ```yaml server.ssl: enabled: ${SSL_ENABLED:true} @@ -38,6 +40,7 @@ server.ssl: ``` ### Database Configuration + ```yaml spring.datasource: url: jdbc:postgresql://${DB_INSTANCE:postgres}:${DB_PORT:5432}/${POSTGRES_DB:postgres} @@ -46,6 +49,7 @@ spring.datasource: ``` ### Redis Configuration + ```yaml spring.data.redis: host: ${REDIS_HOSTNAME:redis} @@ -54,6 +58,7 @@ spring.data.redis: ``` ### RabbitMQ Configuration + ```yaml spring.rabbitmq: host: ${BROKER_HOST:public-mq} @@ -96,33 +101,37 @@ java -jar build/libs/localega-tsd-proxy.jar ## API Endpoints ### Authentication + - `GET /token` - Retrieve access token - `GET /user` - Retrieve user information ### File Operations + - `PATCH /stream/{fileName}` - Upload file - `GET /stream/{fileName}` - Download file - `GET /files` - List files - `DELETE /files` - Delete file ### Resumable Uploads + - `GET /resumables` - List resumable uploads - `DELETE /resumables` - Delete resumable upload ### Monitoring + - `GET /heartbeat` - Service health check ## Authentication Flow 1. Users authenticate using either: - - ELIXIR AAI OpenID Connect - - CEGA username/password + - ELIXIR AAI OpenID Connect + - CEGA username/password 2. For ELIXIR AAI: - - GA4GH Passports are validated - - Visas are checked for access permissions + - GA4GH Passports are validated + - Visas are checked for access permissions 3. For CEGA: - - Credentials are validated against CEGA auth endpoint - - Password hashes are verified (BCrypt or crypt) + - Credentials are validated against CEGA auth endpoint + - Password hashes are verified (BCrypt or crypt) 4. Upon successful authentication, EGA username is mapped to ELIXIR ID ## File Transfer Flow @@ -130,9 +139,9 @@ java -jar build/libs/localega-tsd-proxy.jar 1. Files are uploaded through resumable chunks 2. Each chunk's checksum is validated 3. Upon successful upload: - - File metadata is recorded - - Event is published to RabbitMQ - - File is stored in TSD storage + - File metadata is recorded + - Event is published to RabbitMQ + - File is stored in TSD storage ## Security Features @@ -143,6 +152,10 @@ java -jar build/libs/localega-tsd-proxy.jar - Checksum verification for file integrity - Secure file transfer protocols +## Static Web Pages + +- The FEGA-Norway static web pages are maintained in a separate repository: [FEGA-Norway-webpages](https://github.com/ELIXIR-NO/FEGA-Norway-webpages) + ## Development ### Project Structure @@ -157,8 +170,9 @@ java -jar build/libs/localega-tsd-proxy.jar ### Adding New Features When adding new features: + 1. Follow the existing package structure 2. Implement appropriate tests 3. Use AOP for cross-cutting concerns 4. Update configuration as needed -5. Document changes in code \ No newline at end of file +5. Document changes in code