studio-plan.md : section 8 executable pour les lots 0 a 4 (prerequis, etapes, verifications, gate) et section 9 catalogue v0 (styles, preambule, gabarits, calibrage). Decisions 14 a 21 : upload par URL signee et ingestion serveur, MVP texte + image source sur objets et lieux, prix differes et Grant manuel, une recharge prolonge tout le solde, plafonds d'upload par type, catalogue calibre fin de lot 3, lignage en colonnes, contrat fournisseur multi-fichier. Corrige les contradictions laissees par les revisions : Kind retire de Persona, talking head, API credits, webhook fal.ai signe en ED25519 et non en HMAC, enum ResourceType deja etendu. Les noms suivent le code du lot 0 (ResourceIngestionService, GetInfoAsync, ReadAllAsync). immersif-frontiere-plan.md : decisions 1, 4 et 6 marquees reportees. Kanban : cartes 280 et 300 a jour, carte 305 sur le watermark inactif depuis l'upload direct. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
19 lines
1.5 KiB
Markdown
19 lines
1.5 KiB
Markdown
---
|
|
title: Le watermark des images est inactif depuis l'upload direct
|
|
area: backend manager
|
|
horizon: v2
|
|
tags: manager-service, Médiathèque
|
|
flag: warn | IsImageWatermark activé ne filigrane rien
|
|
src: conversation 13/09 — lot 0 du Studio (studio-plan.md §8)
|
|
---
|
|
<p><strong>Constat du 13/09.</strong> Le seul code de watermark vivait dans <code>ResourceController.Upload</code> (base64, <code>System.Drawing</code>) : il écrivait le texte <strong>« fortsaintheribert.be » en dur</strong>, en Arial. manager-app n'en applique aucun. Depuis que l'upload passe du navigateur à Firebase, <strong>aucune image n'est filigranée</strong>, même sur une instance où <code>Instance.IsImageWatermark</code> est activé.</p>
|
|
<p>Le lot 0 du Studio supprime ce code mort et ne réimplémente rien : pas de régression par rapport à la prod actuelle, mais le drapeau ment.</p>
|
|
<p><strong>À trancher avant de le refaire</strong>, dans le <code>ResourceIngestionService</code> du lot 0 (le seul endroit qui voit passer toutes les images) :</p>
|
|
<ul>
|
|
<li>le Fort le veut-il encore ?</li>
|
|
<li>texte ou logo, et <strong>par instance</strong> au lieu d'un nom de domaine en dur ;</li>
|
|
<li>une police embarquée dans le repo — Arial n'existe pas dans le conteneur <code>aspnet:8.0</code> Linux — via <code>SixLabors.ImageSharp.Drawing</code> ;</li>
|
|
<li>jamais sur une <code>Image360</code>, comme la compression.</li>
|
|
</ul>
|
|
<p>Distinct de la gravure « générée par IA » du Studio (<code>Instance.IsAiWatermarkBurned</code>, décision 6), qui réutilisera le même chemin.</p>
|