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