Appearance
Registre des risques licences et sources d'assets
Date : 2026-05-14. Statut : garde-fou opérationnel, pas un avis juridique.
Cette page recense les risques d'assets, contenus, sources de données et licences qui impactent le scanner, la collection, le pricing et la future marketplace SKN. Elle ne remplace pas une revue juridique. Elle sert à éviter qu'une preuve de concept interne devienne accidentellement une redistribution publique d'assets que nous ne contrôlons pas.
Règle centrale
Indexer en privé reste une copie. Servir une image publiquement est une redistribution.
Des droits inconnus, manquants ou ambigus sont acceptables uniquement pour du lab privé sur une infrastructure contrôlée. Ils ne sont pas acceptables pour des assets embarqués dans l'app, exposés via CDN public, affichés en UI production, utilisés en marketing payant ou livrés comme dataset téléchargeable.
Chaque source utilisée par le produit doit garder :
- nom de la source et URL upstream ;
- type de source : image, metadata, pricing, vente comparable, upload utilisateur, sortie modèle ;
- licence ou URL des conditions quand disponible ;
- statut des droits :
approved,internal_only,unknownoublocked; - usages autorisés :
private_lab,private_beta,public_app,public_api,marketing,training,redistribution; - permission de cache, permission de rehost et permission d'affichage public ;
- obligation d'attribution ;
- date de dernière revue et reviewer.
Registre des risques
| Zone | Exemples actuels | Risque principal | Autorisé maintenant | Requis avant usage production |
|---|---|---|---|---|
Images de produits scellés depuis ptcg-assets | Clone local 1niceroli/ptcg-assets, packshots, ETB, displays, tins, collections | Le repo GitHub n'expose pas de licence déclarée (NOASSERTION), et les images incluent probablement des artworks de packaging Pokémon protégés | Lab privé de scan scellé, embeddings privés, analyse privée des candidats | Permission écrite, licence compatible ou remplacement par des assets production-safe |
| Références bootstrap scellées SKN-owned | Photos françaises possédées sous tcg-collector-backend/src/api/tests/fixtures/sealed-samples | Sûr pour le lab, mais le benchmark actuel réutilise les mêmes photos comme références, donc il peut surestimer l'accuracy réelle | Matching lab privé, affichage candidat debug, benchmark de régression | Set d'évaluation inédit séparé, politique de rétention documentée et politique d'assets production explicite |
| Images de cartes Pokémon | Images TCGdex, cache image local, candidats de scan debug | Les artworks de cartes sont protégés ; les droits de cache et rehost doivent correspondre aux termes de la source | Travail scanner privé/dev avec provenance conservée | Vérification des termes source pour cache, affichage public, rehost, attribution et usage commercial |
| Logos Pokémon, symboles, noms produit, marques de set | Logos de sets, noms Pokémon, packaging, labels slabs | Risque trademark et confusion de marque ; l'app ne doit pas suggérer une affiliation officielle | Références descriptives et classification interne | Disclaimers clairs, wording produit compatible trademark et revue juridique avant lancement public |
| Screenshots concurrents et références UI/UX | Screens MonPrice, TCG CardScanner, Iestims, Zebradex dans les dossiers de recherche | Les screenshots sont protégés et ne doivent pas devenir des assets marketing publics ou training | Recherche concurrentielle interne uniquement, avec contexte source/date | Supprimer ou remplacer avant docs publiques/marketing sauf permission ou revue fair-use/juridique explicite |
| Données marketplace et pricing | eBay, Cardmarket, TCGPlayer, PriceCharting, providers RapidAPI | Conditions API, restrictions scraping, limites de cache, rate limits et clauses d'usage commercial | Évaluation provider et design de schéma normalisé | Revue des termes, accord API si nécessaire, politique de cache, affichage de fraîcheur et abstraction provider |
| Photos de scan uploadées par les utilisateurs | Captures téléphone, images debug, screenshots d'issues | Les photos peuvent contenir données personnelles, EXIF, éléments d'arrière-plan ou signaux de valeur de collection | Traitement transitoire du scan et cas debug explicites | Politique de rétention, stripping EXIF, chemin de suppression, contrôle d'accès et copy privacy côté utilisateur |
| Labels slabs et données de certification | Labels PSA/CGC/BGS, texte de grade, numéros de certification | Les bases de certification et designs de labels peuvent avoir des termes et limites de marque | Expériences OCR/classification sur images fournies par l'utilisateur | Revue des termes avant requêtes aux bases officielles ou enrichissement de certification affiché |
| Embeddings et index dérivés | Embeddings DINOv2 depuis images cartes/scellés, tables pgvector | Les embeddings peuvent dériver d'assets aux droits incertains et ne doivent pas devenir un dataset redistribué | Index privé de matching sur backend contrôlé | Liaison au registre source, pas de dump public, pas d'image candidate publique sans droits image approuvés |
| Modèles ML et librairies tierces | DINOv2, Ultralytics YOLO, OpenCV, FAISS/pgvector, dépendances npm/python | Licences modèle/dépendance avec contraintes possibles de notice, attribution, copyleft ou commercialisation. L'usage d'Ultralytics YOLO doit être revu au regard de l'AGPL-3.0 ou des termes Enterprise commerciaux avant un usage production fermé et commercial. | Usage engineering avec suivi des dépendances et gating lab privé | Audit licences, notices, registre des licences modèle et décision de licence commerciale avant release production |
| Stockage serveur public et CDN | Stockage images VPS, images servies par nginx, futur CDN | Héberger des images sur notre serveur peut devenir une redistribution même si le fichier vient d'ailleurs | Debug privé authentifié ou serving explicitement autorisé par les termes | Allowlist d'assets publics basée sur le statut des droits |
Politique pratique
Lab interne
Le lab interne peut ingérer des sources au statut unknown ou internal_only si l'accès est limité à l'équipe et si la sortie sert uniquement à évaluer la qualité du scanner. Cela inclut les expériences de scan scellé utilisant ptcg-assets.
Les endpoints lab internes ne doivent pas exposer les dossiers source bruts, datasets complets ou archives d'images téléchargeables. Pour les endpoints de scan scellé, retourner la metadata produit et la confiance est acceptable. Retourner des images candidates est acceptable uniquement dans les surfaces debug privées.
Bêta privée
La bêta privée ne doit pas afficher par défaut des images tierces non licenciées. Si une source non approuvée est nécessaire pour le matching, elle doit rester backend-only et le client doit recevoir un placeholder, un crop de la photo utilisateur ou un candidat metadata-only.
Production publique
La production doit bloquer les images unknown et internal_only depuis :
- les bundles de l'app mobile ;
- les APIs publiques ;
- les routes CDN ou nginx publiques ;
- les pages marketing ;
- la documentation publique ;
- les datasets téléchargeables ;
- les médias de listings marketplace.
Les images production-safe doivent être couvertes par des termes source explicites, une permission directe, une licence compatible ou des uploads possédés par l'utilisateur avec consentement adapté.
Implication pour le scanner scellé
ptcg-assets est utile pour prouver si DINOv2 plus pgvector peut identifier des produits scellés. Il ne doit pas être copié tel quel dans le data path backend public, le bundle app ou le CDN.
L'architecture sealed-lab la plus saine est :
- garder
ptcg-assetscomme clone source privé ; - créer un registre source normalisé des produits scellés ;
- indexer seulement un subset contrôlé pour le matching lab ;
- stocker la provenance source sur chaque produit et image ;
- garder les embeddings privés ;
- retourner des images candidates publiques seulement après validation des droits d'affichage public.
Actions immédiates
- Ajouter un registre source avant de scaler l'indexing des produits scellés.
- Marquer
ptcg-assetscommeinternal_onlyjusqu'à permission ou assets de remplacement. - Vérifier les termes TCGdex, pokemon-api.com, eBay, Cardmarket, TCGPlayer et providers graded avant pricing ou affichage image public.
- Supprimer l'EXIF et définir la rétention des uploads de scan debug.
- Ajouter une allowlist production pour que les routes images publiques ne servent que des assets approuvés.
- Garder la revue juridique comme gate de lancement avant release publique payante.