Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

rfc(adr): Job Execution History & Asset Lifecycle — Hot Lineage, Ephemeral Scratch Storage & Automated Loi 25 Purge

Open
#66 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
8/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Active
Tech stack
postgresql
Domain
backend, data, security

Research direction

This is a design RFC, not a code task: the deliverable is the ADR file docs/adr/ADR-079-job-execution-history-and-lifecycle-retention.md, which the issue asks to write. Start by reading the retention table and the three data classes in the issue body, then the proposed job_retention_policies schema and the orazaka-job-service purge job it mentions. Done means the maintainers have reviewed and accepted the ADR, which requires domain and legal input on Loi 25 and GDPR, so a newcomer should not start without asking first.

Written by the indexing model from the issue text.

Description

area:architecture area:compliance priority:next product:krizaka type:feature
Contexte & Problématique

Chaque tâche exécutée par les plateformes Krizaka (génération vidéo/image dans Orazaka, transcodage dans Orochia, audit documentaire dans Yomizaka) génère des données à plusieurs étapes :

  1. Les paramètres et prompts soumis par l'utilisateur.
  2. Les fichiers temporaires d'exécution (scratch storage : frames extraites, fichiers d'échange FFmpeg, embeddings transitoires).
  3. Les artefacts finaux générés (vidéos MP4, images, bundles Next.js).
  4. La télémétrie d'exécution (logs, métriques VRAM, tokens consommés, settlement financier).

Nous devons répondre formellement à ces questions via un ADR :

  • Doit-on conserver un historique de tous les jobs ?
  • Quelle est la durée de vie des inputs utilisateurs vs des artefacts finaux ?
  • Comment structurer la rétention pour respecter la Loi 25 québécoise et le RGPD tout en optimisant les coûts d'infrastructure ?

Décisions Proposées pour l'ADR
1. Segmentation en 3 Classes de Données de Job
Classe Nature des Données Emplacement Règle de Rétention Rationale
A. Télémétrie & Audit Trail Run ID, Tenant ID, User ID, Modèle utilisé, Statut d'exécution, Coût en crédits, Latence Base de données PostgreSQL (runs, job_executions) 12 mois glissants (puis agrégation statistique anonymisée) Obligation comptable et légale pour la facturation (krizaka-billing), traçabilité C2PA et support client
B. Inputs Utilisateur (Photos / Vidéos) Fichiers bruts uploadés servant de prompt visuel Bunny Storage (/inputs/) 24 heures (mode éphémère par défaut) ou sur demande utilisateur Protection de la vie privée (Loi 25), réduction drastique de l'empreinte de stockage, minimisation des risques de fuite
C. Scratch Intermédiaire Fichiers temporaires de montage, frames PNG individuelles, fichiers VRAM Disque local de worker / RAM tempfs 0 seconde (Purge immédiate) à la terminaison du job (succès ou échec) Les workers restent sans état (stateless), aucun déchet ne persiste sur les GPU
D. Outputs Finaux Vidéos générées, images finales, packs exportés Bunny Storage (/outputs/) Tier Gratuit : 14 jours
Tier Pro / Créateur : Illimité (ou jusqu'à suppression manuelle)
Valeur ajoutée délivrée au client, possibilité de ré-télécharger
2. Mécanisme de Nettoyage Automatisé (Lifecycle Daemon)
  • Worker Cleanup Hook : Tout worker (orazaka-worker-media, job executor) implémente un bloc finally garantissant la destruction des répertoires temporaires (rm -rf /tmp/scratch/${runId}).
  • Cron de Rétention Bunny Storage : Mise en place d'un job planifié (via orazaka-automation-service) appliquant les règles de rétention sur les préfixes /inputs/ âgés de plus de 24h dont le job est clos.
  • Conformité Loi 25 / Droit à l'Oubli :
    • Un appel à DELETE /api/v1/users/{userId} déclenche une saga de purge en cascade :
      1. Suppression récursive du préfixe stockage : rmdir /<zone>/t/<tenantId>/u/<userId>/
      2. Suppression de la collection Bunny Stream associée.
      3. Anonymisation des métadonnées de run dans la table d'audit (remplacement des identifiants par un hash irréversible).

Tâches & Prochaines Étapes
  • Rédiger docs/adr/ADR-079-job-execution-history-and-lifecycle-retention.md.
  • Définir la table job_retention_policies dans le schéma de base de données.
  • Implémenter le job automatisé de purge des fichiers temporaires dans orazaka-job-service.
  • Mettre à jour la documentation légale et de conformité (politique de conservation des données).
Dominant language
No language data
Stars
0
Forks
0
Avg merge
1h 52m
Merged PRs (30d)
26

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from krizaka/.github

All issues in krizaka/.github

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.