Skip to content

Commit

Permalink
Add note on the FEGA-Norway static web pages
Browse files Browse the repository at this point in the history
  • Loading branch information
joshbaskaran committed Nov 20, 2024
1 parent 6e0c33f commit 1bad467
Showing 1 changed file with 25 additions and 11 deletions.
36 changes: 25 additions & 11 deletions services/localega-tsd-proxy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ 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
- File operation event publishing to RabbitMQ
- Service health monitoring
- Redis-based caching
- PostgreSQL integration for credential mapping
- Serve the FEGA-Norway static web pages

## Prerequisites

Expand All @@ -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}
Expand All @@ -38,6 +40,7 @@ server.ssl:
```
### Database Configuration
```yaml
spring.datasource:
url: jdbc:postgresql://${DB_INSTANCE:postgres}:${DB_PORT:5432}/${POSTGRES_DB:postgres}
Expand All @@ -46,6 +49,7 @@ spring.datasource:
```
### Redis Configuration
```yaml
spring.data.redis:
host: ${REDIS_HOSTNAME:redis}
Expand All @@ -54,6 +58,7 @@ spring.data.redis:
```
### RabbitMQ Configuration
```yaml
spring.rabbitmq:
host: ${BROKER_HOST:public-mq}
Expand Down Expand Up @@ -96,43 +101,47 @@ 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

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

Expand All @@ -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
Expand All @@ -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
5. Document changes in code

0 comments on commit 1bad467

Please sign in to comment.