Aller au contenu

PD-47-CONFRONTATION-STEP3

E-01 — Contradiction charset vs regex sur s3_object_key_wal

Verdict : CONFIRMÉ Justification : La spécification contient une contradiction entre le jeu de caractères défini pour s3_object_key_wal et la regex associée. Le jeu de caractères est défini comme [a-z0-9/_\.-], ce qui implique des caractères en minuscule, tandis que la regex ^wal/[A-Z0-9]{24}(\.[A-Z0-9]{8})?\.enc$ utilise des caractères en majuscule. Cette contradiction doit être résolue pour garantir la cohérence de l'implémentation.

E-02 — FAILED_FORMAT absent de la machine d'états et de l'enum status

Verdict : CONFIRMÉ Justification : L'absence de FAILED_FORMAT dans l'enum status et dans la machine d'états pose un problème, car il est mentionné dans plusieurs endroits de la spécification comme un statut possible. Il faut clarifier si FAILED_FORMAT est un statut à part entière ou un code de rejet pour éviter les ambiguïtés.

E-03 — SCHEDULED absent de l'enum status

Verdict : CONFIRMÉ Justification : La spécification définit clairement SCHEDULED comme un état dans la machine d'états, mais cet état n'est pas inclus dans l'enum status. Cela crée une incohérence qui doit être résolue pour assurer que tous les états possibles soient correctement représentés.

E-04 — Contradiction INV-47-05 "exactement un" vs §5.6 "au moins un + déduplication"

Verdict : CONFIRMÉ Justification : La spécification contient une contradiction entre l'invariant INV-47-05, qui exige exactement un événement append-only par tentative de backup, et la section §5.6, qui permet au moins un événement avec déduplication. Cette contradiction doit être résolue pour garantir que les exigences soient claires et cohérentes.

E-05 — Fréquence configurable jusqu'à 48h vs RPO non configurable de 24h

Verdict : CONFIRMÉ Justification : La spécification permet la configuration de la fréquence de backup logique jusqu'à 48 heures, mais le RPO (Recovery Point Objective) est fixé à 24 heures. Cela peut entraîner des situations où le RPO n'est pas respecté si la fréquence de backup est configurée à plus de 24 heures. Il faut revoir cette configuration pour s'assurer que le RPO soit toujours respecté.

E-06 — Incohérence terminologique full vs pg_dump dans backup_id

Verdict : CONFIRMÉ Justification : L'utilisation de termes différents (full et pg_dump) pour désigner la même chose dans le contexte du backup_id crée une ambiguïté. Il est essentiel de normaliser la terminologie pour éviter les confusions.

E-07 — Bornes de longueur backup_id incohérentes avec la regex

Verdict : CONFIRMÉ Justification : Les bornes de longueur spécifiées pour backup_id (19 à 64 caractères) ne correspondent pas aux calculs basés sur la regex fournie. Cela peut entraîner des problèmes d'implémentation et de validation. Il faut ajuster les bornes de longueur pour qu'elles soient cohérentes avec la regex.

E-08 — Seuil suppression clair : plage min/max inutile si non configurable

Verdict : CONFIRMÉ Justification : Puisque le seuil de suppression clair n'est pas configurable, spécifier une plage (min/max) est superflu et peut prêter à confusion. Il serait plus clair de simplement indiquer la valeur fixe.

E-09 — Aucun mécanisme observable pour la réconciliation crash post-commit

Verdict : CONFIRMÉ Justification : La spécification exige une réconciliation après un crash post-commit, mais ne fournit aucun détail sur comment cette réconciliation doit être effectuée ou observée. Cela rend difficile la mise en œuvre et le test de ce comportement.

E-10 — Absence de test pour les scénarios de crash §5.6

Verdict : CONFIRMÉ Justification : L'absence de tests spécifiques pour les scénarios de crash décrits en §5.6 signifie que ces comportements critiques ne sont pas vérifiés, ce qui pourrait conduire à des problèmes de fiabilité et de résilience.

E-11 — Ambiguïté retry vs transition FAILED→SCHEDULED

Verdict : CONFIRMÉ Justification : La relation entre les mécanismes de retry et la transition FAILED → SCHEDULED n'est pas claire, ce qui peut entraîner des interprétations erronées lors de l'implémentation.

E-12 — Aucune vérification d'intégrité sur les segments WAL individuels à l'upload

Verdict : CONFIRMÉ Justification : L'absence de vérification d'intégrité pour les segments WAL lors de l'upload signifie que des corruptions ou altérations pourraient ne pas être détectées jusqu'à la restauration, ce qui pourrait compromettre la récupération des données.

E-13 — Rotation de clé de chiffrement non adressée

Verdict : CONFIRMÉ Justification : La spécification ne traite pas explicitement de la rotation de la clé de chiffrement, ce qui est essentiel pour maintenir la sécurité des données chiffrées au fil du temps.

E-14 — Backoff exponentiel sans délai initial

Verdict : CONFIRMÉ Justification : Un facteur de backoff sans délai initial rend le calcul du délai entre les retries indéterminé, ce qui peut affecter la fiabilité et l'efficacité des mécanismes de retry.

E-15 — Hypothèse dangereuse : synchronisation horaire entre composants

Verdict : CONFIRMÉ Justification : L'hypothèse implicite d'une synchronisation parfaite des horloges entre les composants peut être problématique, car les dérives d'horloge peuvent survenir et affecter le fonctionnement du système.

E-16 — Test TC-ERR-08 : périodicité "trimestrielle" non contractualisée

Verdict : CONFIRMÉ Justification : La mention d'une périodicité trimestrielle pour les tests de restauration sans qu'elle soit explicitement contractualisée dans la spécification peut prêter à confusion.

E-17 — Relance watchdog unique : absence de couverture si relance échoue

Verdict : CONFIRMÉ Justification : L'absence d'un plan pour gérer l'échec d'une relance watchdog unique signifie qu'il pourrait y avoir des scénarios où le système reste inactif sans intervention humaine.

E-18 — Cycle de vie de la DEK (Data Encryption Key) non spécifié

Verdict : CONFIRMÉ Justification : Le manque de détails sur le cycle de vie de la DEK, y compris sa génération et sa destruction, peut entraîner des risques en matière de sécurité si elle n'est pas gérée correctement.

Tableau de synthèse

Écart Verdict Impact
E-01 CONFIRMÉ Bloquant
E-02 CONFIRMÉ Bloquant
E-03 CONFIRMÉ Bloquant
E-04 CONFIRMÉ Bloquant
E-05 CONFIRMÉ Majeur
E-06 CONFIRMÉ Majeur
E-07 CONFIRMÉ Majeur
E-08 CONFIRMÉ Mineur
E-09 CONFIRMÉ Majeur
E-10 CONFIRMÉ Majeur
E-11 CONFIRMÉ Majeur
E-12 CONFIRMÉ Majeur
E-13 CONFIRMÉ Majeur
E-14 CONFIRMÉ Majeur
E-15 CONFIRMÉ Mineur
E-16 CONFIRMÉ Mineur
E-17 CONFIRMÉ Majeur
E-18 CONFIRMÉ Mineur