feat(provenance): copie hors poste de l'archive et archivages concurrents - #48
Merged
Merged
Conversation
…ents - `--mirror <répertoire>` (répétable, ou OPENEIDAS_PROVENANCE_MIRROR) : chaque `archive` recopie objets, manifestes et jetons vers un support distinct du poste (disque externe, NAS, stockage objet monté) ; sous-commande `mirror` pour rattraper un support resté débranché - la copie ne crée jamais la destination (un support non monté est signalé, code 3, au lieu de remplir le disque local), n'écrase jamais un fichier existant et abandonne une copie dont l'empreinte ne correspond pas - verrou sur l'archive et un manifeste par seconde au plus : des archivages simultanés (fins de session parallèles) ne divisent plus la chaîne - PROVENANCE.md : copie hors poste et archivage automatique en fin de session (hook SessionEnd) Vérifié sur une copie de l'archive réelle : copie initiale puis `verify` du miroir (jetons vérifiés), second passage idempotent, support absent non créé, fichier divergent laissé en l'état, trois archivages simultanés sans rupture de chaîne. Co-authored-by: Claude <noreply@anthropic.com>
La mise en lecture seule des fichiers copiés échoue sur un disque externe formaté en exFAT ou NTFS, ce qui interrompait la copie. Elle devient facultative sur le miroir : l'empreinte vérifiée après copie reste le contrôle d'intégrité. Vérifié avec un chmod refusé : 30 fichiers copiés, 0 erreur, miroir revérifié (archive intègre). Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objet
Suite de #46 : renforce l'archive de provenance.
--mirror <répertoire>(répétable, ouOPENEIDAS_PROVENANCE_MIRROR) : chaquearchiverecopie objets, manifestes et jetons vers un support hors poste (disque externe, NAS, stockage objet monté) ; sous-commandemirrorpour rattraper un support resté débranché.PROVENANCE.md: copie hors poste et archivage automatique en fin de session (hookSessionEndcôté poste, hors dépôt).Base :
dev(4ba7ab0). Aucun code Rust modifié.Vérifications
Sur une copie de l'archive réelle :
--archive <miroir> verify --tsa-ca: jetons vérifiés, archive intègre ;archive --mirror: nouveaux objets et manifeste recopiés ;archivelancés simultanément : trois manifestes consécutifs, chaîne intègre (avant le correctif : collision de nom et chaîne divisée).Revue humaine obligatoire
Voir PROVENANCE.md. Chaque case est cochée par le contributeur humain qui valide la PR, après l'avoir fait lui-même.
make licenses)Assistance par IA
Co-authored-by: Claude <noreply@anthropic.com>, auteur et committer restent humains, etscripts/provenance.py archivea été lancé