FDSA Resources

Technology Stack

The Federated & Distributed Data Sharing Appliance (FDSA) is built on a robust and scalable tech stack, incorporating a range of modern technologies and third-party components to ensure high performance, security, and seamless integration. 

Core Technologies 

  • Docker: Utilized for containerization, allowing FDSA to deploy and manage applications in a consistent environment across multiple systems. Docker ensures the portability and scalability of the appliance. 
  • Docker Compose: Facilitates the orchestration of multi-container Docker applications. Used for defining and running the multi-container FDSA services, ensuring they work together seamlessly. 
  • nginx: Employed as a high-performance reverse proxy and web server, nginx handles load balancing, security, and routing within the FDSA environment. 
  • Python: The core programming language used for developing FDSA's backend services and automation scripts. Python's extensive libraries and frameworks contribute to rapid development and integration. 
  • Flask: A lightweight Python web framework, Flask is used for building FDSA’s RESTful APIs and web services. It allows for quick and flexible development of secure and scalable applications. 
  • PostgreSQL: The primary database management system used in FDSA, PostgreSQL provides robust, scalable, and secure data storage, with support for complex queries and transactions. 
  • Hasura GraphQL Engine: Integrates seamlessly with PostgreSQL to provide a powerful GraphQL API for real-time data access. Hasura automates much of the data access process, making it easier to manage and query federated data. 
  • Keycloak: A comprehensive open-source identity and access management solution, Keycloak is used in FDSA for managing authentication & authorization, and 2FA. 

Third-Party Software Notices and Information 

FDSA incorporates the following third-party components, each integral to the appliance's functionality: 

  • Docker - For containerization and deployment. 
  • nginx - For reverse proxy, load balancing, and web server functionalities. 
  • Python - The core programming language for backend services. 
  • PostgreSQL - The primary relational database management system. 
  • Flask - A web framework for building APIs and web services. 
  • Docker Compose - For orchestrating multi-container Docker applications. 
  • Hasura GraphQL Engine - For providing a real-time GraphQL API. 
  • Keycloak - For managing authentication and authorization processes