Aller au contenu principal

Flux média

Objectif du flux

Uploader, valider, stocker et rattacher des médias à des publications, acteurs, mini-sites ou contenus PlayLoop sans exposer de risques de sécurité.

Acteurs/systèmes impliqués

  • Utilisateur, acteur, mairie ou administrateur.
  • Frontend.
  • API Laravel.
  • Service Media.
  • Stockage fichiers à confirmer.
  • Jobs de traitement média en vision cible.
  • Services de modération ou antivirus à confirmer.

Étapes principales

  1. L’utilisateur sélectionne un média.
  2. Le frontend transmet le fichier ou une demande d’upload.
  3. Laravel vérifie l’identité, le droit et le contexte.
  4. Le média est validé : type, taille, extension, usage.
  5. Le fichier est stocké.
  6. Les traitements secondaires sont déclenchés si nécessaire : optimisation, miniature, scan, métadonnées.
  7. Le média est rattaché à l’objet métier.
  8. L’accès public ou privé est déterminé selon le contexte.

Données manipulées

  • Fichier média.
  • Type MIME et extension.
  • Taille.
  • Propriétaire ou auteur.
  • Objet rattaché : acteur, publication, campagne, mini-site.
  • URL ou référence de stockage.
  • Métadonnées techniques.

Règles sécurité

  • Les types de fichiers autorisés doivent être limités.
  • Les fichiers ne doivent pas être exécutables côté serveur.
  • Les accès aux médias privés doivent être contrôlés.
  • Les médias publics ne doivent pas exposer de données privées involontaires.
  • Les traitements doivent être auditables si le média est lié à une action sensible.

Erreurs/points de vigilance

  • Fichier trop volumineux.
  • Type MIME falsifié.
  • Upload non rattaché à un objet métier.
  • Suppression d’un média encore utilisé.
  • Stockage non documenté ou non sauvegardé.

État actuel vs cible

SujetÉtat actuel visibleVision cible
MédiasMédias documentés comme service partagé.Service Media central avec validation et rattachement métier.
StockageStratégie stockage documentée mais détails à confirmer.Stockage réversible, sécurisé et compatible CDN si besoin.
TraitementsJobs médias documentés comme importants.Optimisation et contrôles asynchrones.

Diagramme Mermaid

TODO / points à confirmer

  • Stockage actuel confirmé : Supabase Storage, bucket documents. CDN ou alternative à confirmer si besoin.
  • Limites de taille par type d’offre.
  • Formats autorisés.
  • Politique de suppression et rétention.
  • Besoin d’antivirus ou de modération média.