Skip to content

Commit d8e11ef

Browse files
committed
Add readme
1 parent e95ca04 commit d8e11ef

File tree

4 files changed

+42
-8
lines changed

4 files changed

+42
-8
lines changed

README.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
1-
# Dashboard-DSS Integration Example
1+
# Dashboard Mediator
22

3-
To-Do.
3+
A FastAPI-based service that orchestrates Eclipse Dataspace Connector (EDC) contract negotiations and data transfers. The Mediator acts as an intermediary that manages the complex workflow of negotiating data access contracts and coordinating secure data transfers between connectors.
4+
5+
## Overview
6+
7+
The Dashboard Mediator simplifies EDC interactions by:
8+
9+
- **Automating contract negotiation** with provider connectors
10+
- **Managing transfer processes** using pull-based data access
11+
- **Receiving credentials** via Server-Sent Events (SSE) for secure data retrieval
12+
- **Providing a simple REST API** for initiating EDC workflows
13+
14+
## Architecture
15+
16+
```
17+
┌─────────────┐ ┌──────────────────┐ ┌──────────────┐
18+
│ Client │─────▶│ Mediator │─────▶│ Provider │
19+
│ Application │ │ (This Service) │ │ Connector │
20+
└─────────────┘ └──────────────────┘ └──────────────┘
21+
22+
│ SSE
23+
24+
┌──────────────────┐
25+
│ Consumer Backend │
26+
│ (Credentials) │
27+
└──────────────────┘
28+
```
29+
30+
## Features
31+
32+
- **Contract Negotiation**: Automated negotiation flow with provider connectors
33+
- **Transfer Management**: Handles transfer process initiation and monitoring
34+
- **SSE-based Credentials**: Real-time credential reception via Server-Sent Events
35+
- **Bearer Token Extraction**: Automatic extraction of access tokens for data retrieval
36+
- **Comprehensive Logging**: Detailed logging with colored output for debugging
37+
- **Input Validation**: Pydantic-based validation for all API inputs

logger_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def setup_logging(level: str = "DEBUG") -> logging.Logger:
1414
"""
1515

1616
coloredlogs.install(level=level)
17-
logger = logging.getLogger("orchestrator")
17+
logger = logging.getLogger("mediator")
1818

1919
logging.getLogger("httpcore").setLevel(logging.INFO)
2020
logging.getLogger("httpx").setLevel(logging.INFO)

main.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44

55
app = FastAPI(
6-
title="Dashboard Backend API",
7-
description="Dashboard backend that orchestrates connector negotiation and transfer via connectors",
6+
title="Dashboard Mediator API",
7+
description="Dashboard Mediator that orchestrates connector negotiation and transfer via connectors",
88
version="1.0.0",
99
)
1010

@@ -17,5 +17,5 @@ async def health_check():
1717
"""Health check endpoint"""
1818
return {
1919
"status": "healthy",
20-
"service": "Dashboard Orchestrator"
20+
"service": "Dashboard Mediator"
2121
}

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[project]
2-
name = "orchestrator"
2+
name = "mediator"
33
version = "0.1.0"
4-
description = "The Orchestrator is responsible for managing contract negotiation and coordinating communication between the various servers involved in the process."
4+
description = "The Mediator is responsible for managing contract negotiation and coordinating communication between the various servers involved in the process."
55
authors = [
66
{name = "Ilias Moysidis",email = "iliamous@iti.gr"}
77
]

0 commit comments

Comments
 (0)