[Decision D11] Valider le layout XDG, les permissions et la rétention #12
Labels
No labels
Agent/Autonomous OK
Agent/Demeter
Agent/Hermes
Agent/Human
Agent/Needs Review
Area/API
Area/Auth
Area/CLI
Area/Data
Area/Docs
Area/Infra
Area/UI
CI/Failing
CI/Flaky
CI/Green
CI/Needs Runner
CI/Needs Workflow
Compat/Backward Compatible
Compat/Breaking
Compat/Migration
Deploy/Ansible
Deploy/Blocked
Deploy/Homelab
Deploy/Needs Config
Deploy/Needs Secret
Deploy/Ready
Deploy/Rollback
Kind/Bug
Kind/Chore
Kind/Design
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Refactor
Kind/Security
Kind/Spike
Kind/Testing
Ops/Backup
Ops/Incident
Ops/Maintenance
Ops/Monitoring
Ops/Upgrade
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Priority
Someday
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Risk
Critical
Risk
High
Risk
Low
Risk
Medium
Security/Auth
Security/Disclosure
Security/Hardening
Security/Secret
Size
L
Size
M
Size
S
Size
XL
Size
XS
Stack/Ansible
Stack/Docker
Stack/Forgejo
Stack/Hermes
Stack/Node
Stack/Postgres
Stack/Python
Stack/Systemd
Status
Abandoned
Status
Blocked
Status
In Progress
Status
In Review
Status
Need More Info
Status
Ready
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
2027a/auroscope#12
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
MODE: DECISION
Statut
Proposé. Ticket ouvert jusqu’au go explicite.
Question
Où placer config, état, cache, runtime et rapports; quelles permissions et politiques de purge appliquer ?
Layout proposé
${XDG_CONFIG_HOME:-~/.config}/auroscope/config.toml(0600);${XDG_STATE_HOME:-~/.local/state}/auroscope/state.db;${XDG_CACHE_HOME:-~/.cache}/auroscope/;${XDG_RUNTIME_DIR}/auroscope/<tx>/, sinonMkdirTempprivé sous$TMPDIR.Umask
0077, racines0700, fichiers sensibles0600, vérification des fichiers SQLite-wal/-shm. Refus des racines relatives, symlinks sensibles, mauvais propriétaire ou group/world writable.Config
TOML strict : clés inconnues interdites; defaults dans le binaire; commandes en tableaux argv.
$VISUAL,$EDITOR, pager : parsing shellwords sans expansion/backticks, jamaissh -c.Cleanup
Chaque transaction possède un root enregistré par transaction/UID/device/inode. Suppression descriptor-relative sans suivre les symlinks. Startup/
cleanupne supprime que les enfants directs recoupés avec SQLite et PID+start-time. Grace stale proposée : 24 h.Rétention proposée
Décision attendue
Valide la structure et amende si nécessaire les quatre valeurs numériques. Clôture/ADR après ton go seulement.
Documentation
Protocole automatique de décision
GO DECISIONn’autorise ni code de production ni plan d’implémentation; ce travail doit avoir son propre ticketMODE: EXECUTION.Structure validé mais la rétention doit être raccourcie. Rien d'illimité par défaut, configurable au besoin
Ticket classé comme décision humaine. La discussion continue ici, mais aucune implémentation ni ADR accepté ne sera produit tant que Mathieu n’aura pas publié exactement
GO DECISIONdans un commentaire distinct.Entendu. Je maintiens le layout XDG et les permissions proposés, mais je remplace la rétention par des valeurs finies et plus courtes :
La grâce de récupération des handoffs stale reste à 24 h : ce n’est pas une archive, seulement une fenêtre de sécurité avant nettoyage.
Comparativement, 30 jours pour les décisions/outcomes serait trop court pour diagnostiquer un incident ancien, tandis que 365 jours garde une trace utile sans croissance illimitée. Les rapports et caches sont reconstructibles et peuvent donc être purgés bien plus tôt. Chaque seuil sera configurable explicitement, mais aucun mode illimité ni purge désactivée par défaut.
Recommandation actuelle D11 : retenir ces valeurs avec le layout et les contrôles de propriété/symlinks déjà proposés. Cela reste une proposition en discussion ; ce commentaire ne vaut pas acceptation de la décision.
GO DECISION
Décision D11 consignée et vérifiée.
docs/decisions/0012-xdg-layout-permissions-retention.mddocs/specification.mdetdocs/architecture/design-proposals.mdac66a71a3af8fccb611f4783ce6164726383a8edVérifications :
git diff --checkréussi; branche décisionnelle et tête de la PR relues sur le remote au même commit; PR #1 ouverte et mergeable. Aucun code de production ni plan d’implémentation n’a été créé.