fix(config): refuser les fenêtres de synchronisation négatives #14

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

Constat

AppSettings déclare sync_past_days et sync_future_days comme des int sans borne. Une vérification directe accepte AppSettings(sync_past_days=-1, sync_future_days=-1).

Ces valeurs alimentent le calcul de fenêtre de synchronisation et peuvent produire une période vide ou inversée, avec un comportement dépendant de l'implémentation CalDAV plutôt qu'une erreur de configuration claire. Une faute de frappe dans .env peut donc mener à des synchronisations partielles difficiles à diagnostiquer.

Proposition

Ajouter des contraintes de domaine à la configuration (au minimum ge=0) et, si le contrat le requiert, une validation inter-champs de la fenêtre effective. Garder des messages concis, sans exposer le contenu de l'environnement.

Critères d'acceptation

  • Toute valeur négative pour SYNC_PAST_DAYS ou SYNC_FUTURE_DAYS est refusée au chargement de la configuration.
  • Les valeurs 0 et les valeurs positives continuent de fonctionner et sont testées.
  • Les tests couvrent l'instanciation directe et le chargement depuis l'environnement.
  • Les exemples de configuration et le guide d'exploitation donnent les bornes et l'effet de 0 jour.

Périmètre

Validation de configuration, tests et documentation ; aucune modification de la stratégie de synchronisation elle-même.

## Constat `AppSettings` déclare `sync_past_days` et `sync_future_days` comme des `int` sans borne. Une vérification directe accepte `AppSettings(sync_past_days=-1, sync_future_days=-1)`. Ces valeurs alimentent le calcul de fenêtre de synchronisation et peuvent produire une période vide ou inversée, avec un comportement dépendant de l'implémentation CalDAV plutôt qu'une erreur de configuration claire. Une faute de frappe dans `.env` peut donc mener à des synchronisations partielles difficiles à diagnostiquer. ## Proposition Ajouter des contraintes de domaine à la configuration (au minimum `ge=0`) et, si le contrat le requiert, une validation inter-champs de la fenêtre effective. Garder des messages concis, sans exposer le contenu de l'environnement. ## Critères d'acceptation - Toute valeur négative pour `SYNC_PAST_DAYS` ou `SYNC_FUTURE_DAYS` est refusée au chargement de la configuration. - Les valeurs 0 et les valeurs positives continuent de fonctionner et sont testées. - Les tests couvrent l'instanciation directe et le chargement depuis l'environnement. - Les exemples de configuration et le guide d'exploitation donnent les bornes et l'effet de 0 jour. ## Périmètre Validation de configuration, tests et documentation ; aucune modification de la stratégie de synchronisation elle-même.
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#14