Spaces:
Sleeping
Sleeping
| # Architecture | |
| ## Arborescence cible | |
| ```text | |
| app/ | |
| frontend/ | |
| src/ | |
| components/ | |
| pages/ | |
| hooks/ | |
| store/ | |
| lib/ | |
| types/ | |
| backend/ | |
| app/ | |
| api/ | |
| services/ | |
| connectors/ | |
| models/ | |
| mcp/ | |
| utils/ | |
| config/ | |
| tests/ | |
| unit/ | |
| integration/ | |
| docs/ | |
| Dockerfile | |
| docker-compose.yml | |
| README.md | |
| ``` | |
| ## Principes de séparation | |
| - **API routes** : orchestration HTTP légère. | |
| - **Services** : logique métier. | |
| - **Connecteurs** : encapsulation d’accès aux sources externes. | |
| - **Models** : contrats de données normalisés. | |
| - **Frontend** : pas d’accès direct aux APIs externes institutionnelles. | |
| ## Contrat connecteur (`BaseConnector`) | |
| - `search(query, filters, page, page_size)` | |
| - `get_item(source_id)` | |
| - `resolve_manifest(item_or_url)` | |
| - `healthcheck()` | |
| - `capabilities()` | |
| ## Robustesse réseau (MVP) | |
| - Appels externes backend asynchrones. | |
| - Timeouts raisonnables. | |
| - Dégradation élégante et succès partiels. | |
| - Validation URL d’import + garde-fous SSRF basiques. | |