Skip to content

wahbi/LocalEGA

 
 

Repository files navigation

Local EGA main repository

Build Status Documentation Status Coverage Status

The code is written in Python (3.6+).

You can provision and deploy the different components, locally, using docker-compose.

Other provisioning methods are provided by our partners:

Architecture

LocalEGA is divided into several components, as docker containers.

Components Role
db A Postgres database with appropriate schemas and isolations
mq A (local) RabbitMQ message broker with appropriate accounts, exchanges, queues and bindings, connected to the CentralEGA counter-part.
inbox SFTP server, acting as a dropbox, where user credentials are fetched from CentralEGA
ingesters Split the Crypt4GH header and move the remainder to the storage backend. No cryptographic task, nor access to the decryption keys.
verifiers Decrypt the stored files and checksum them against their embedded checksum.
archive Storage backend: as a regular file system or as a S3 object store.
finalizers Handle the so-called Stable ID filename mappings from CentralEGA.
outgesters Front-facing checks for download permissions.
streamers Fetch the files from the archive and re-encrypt its header for the given requester.

Find the LocalEGA documentation hosted on ReadTheDocs.org.

About

A federated storage for sensitive data

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 56.2%
  • Shell 25.1%
  • Java 12.4%
  • Makefile 3.5%
  • Gherkin 2.3%
  • Dockerfile 0.5%