Client Layer
Overview
The Client Layer handles all user interactions with the NFDI4Immuno repository, providing interfaces for data submission, search, and retrieval.
The client layer contains two separate components: the command line interface (CLI) and the front-end/web interface.

The primary target for development is the CLI which connects directly to the API Gateway,
Front-end/web interface Components
The Front-end/web interface is complex with many different moving parts.

The front-end is organized into several key modules:
- Authentication: Handles user login and session management
- Submission: Provides tools for data submission
- Search: Enables data discovery and filtering
- Retrieval: Manages data retrieval and download
- Data Management: Handles access rights and data release
- User Management: Handles user profiles and permissions
Primary Interactions

The front-end interacts with:
- API Gateway: Primary communication channel with backend services
- Authentication Service: User identity and access and quota management
- External Resources: Third-party services and reference data
- Project metadata: Store for user defined reusable submission information
- Temporary submission storage: Storage for data for interrupted submissions. This store is not related to the temporary store in the submission validation
The key features of the front-end are listed in the table below.
| Feature Area | Key Capabilities | Primary Interaction Partners |
|---|---|---|
| User Authentication | Federated login support, Role-Based Access Control (RBAC), and session management. | Authentication Service, User Management module. |
| Data Submission | Metadata validation, file upload management, and real-time submission status tracking. | API Gateway, Temporary Submission Storage. |
| Search & Discovery | Advanced query builder, complex filter application, and result visualization. | API Gateway, Search Service. |
| Data Access | Access request workflow management, secure data download, and usage tracking. | API Gateway, Data Management module. |