refactor(config): centraliser le contrat des endpoints externes #16

Open
opened 2026-09-09 00:08:56 +02:00 by AntoineVe · 0 comments
Owner

Constat

Les réglages d'endpoint externes ne partagent pas aujourd'hui un même contrat de validation ni une même représentation. CalDAV bénéficie d'un validateur dédié, alors que les paramètres Pronote et RSS reposent sur des types et contrôles différents.

Cette divergence rend la configuration plus difficile à comprendre, à tester et à faire évoluer : chaque nouveau connecteur risque de réimplémenter partiellement son propre parsing, ses erreurs et sa sérialisation.

Proposition

Introduire une primitive de configuration commune pour les endpoints externes, puis migrer progressivement les réglages Pronote et RSS vers ce contrat. La règle retenue doit être documentée une seule fois et appliquée uniformément lors du chargement de Settings.

Le chantier doit conserver la possibilité de tests locaux injectés sans transformer ces facilités de test en comportement implicite de production.

Critères d'acceptation

  • Les réglages concernés sont validés par une règle commune, testée de façon paramétrée.
  • Les erreurs de configuration sont cohérentes, actionnables et n'affichent pas de valeurs de configuration sensibles.
  • Les représentations Pydantic et les journaux respectent le même niveau de protection pour un endpoint pouvant contenir des informations de connexion.
  • Les exemples et guides décrivent le contrat unique, sans duplication contradictoire.
  • Les tests existants de sources restent sans accès réseau réel.

Périmètre

Refactorisation de la configuration et documentation ; pas de changement du protocole des connecteurs.

## Constat Les réglages d'endpoint externes ne partagent pas aujourd'hui un même contrat de validation ni une même représentation. CalDAV bénéficie d'un validateur dédié, alors que les paramètres Pronote et RSS reposent sur des types et contrôles différents. Cette divergence rend la configuration plus difficile à comprendre, à tester et à faire évoluer : chaque nouveau connecteur risque de réimplémenter partiellement son propre parsing, ses erreurs et sa sérialisation. ## Proposition Introduire une primitive de configuration commune pour les endpoints externes, puis migrer progressivement les réglages Pronote et RSS vers ce contrat. La règle retenue doit être documentée une seule fois et appliquée uniformément lors du chargement de `Settings`. Le chantier doit conserver la possibilité de tests locaux injectés sans transformer ces facilités de test en comportement implicite de production. ## Critères d'acceptation - Les réglages concernés sont validés par une règle commune, testée de façon paramétrée. - Les erreurs de configuration sont cohérentes, actionnables et n'affichent pas de valeurs de configuration sensibles. - Les représentations Pydantic et les journaux respectent le même niveau de protection pour un endpoint pouvant contenir des informations de connexion. - Les exemples et guides décrivent le contrat unique, sans duplication contradictoire. - Les tests existants de sources restent sans accès réseau réel. ## Périmètre Refactorisation de la configuration et documentation ; pas de changement du protocole des connecteurs.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AntoineVe/college-infos#16